API Documentation
NeoX documents v.2
NeoX documents v.2
  • Introduction
  • NeoX App
    • E-Wallet
    • eKYC
    • Functionality
  • Payment Gateway
    • Payment Methods
    • Integrations
      • Hosted Checkout
        • Plugin/Extenstion
        • iOS SDK
        • Android SDK
        • React Native SDK
        • Web SDK
        • APIs
      • Direct API
        • Tokenization
      • Refund
        • APIs
        • IPN
    • Transaction Management
      • Query DR
      • Cancel
      • IPN
      • Error Codes
      • Refund on portal
    • Reconciliation
    • Settlement
  • Disbursement
    • Integration
      • Introduction
      • How To Register
      • Security Method
      • Generate token API
      • Get merchant profile API
      • Request disbursement API
      • Get disbursement transaction API
      • Get exchange rate API
      • Inquiry bank account API
      • Currency conversion API
      • Event Notification
      • Response Data Structure
      • Error codes
    • Disbursement Account
    • Disbursement request
    • Transaction Management
      • Query Request/Transaction
      • Webhook
      • Error Codes
    • Reconciliation
  • Collections
    • Integration
      • Introduction
      • How To Register
      • Security Method
      • API authenPlatform
      • API upload file
      • APIs for virtual accounts management
        • API create list of virtual accounts
        • API update KYC virtual account information
        • API update Virtual Account transaction data from merchant
        • API set active/inactive Virtual Account
        • API get list virtual accounts
        • API get detail virtual account
      • APIs for transactions management
        • API update transaction documents
        • API get list transactions
        • API get detail transaction
      • APIs for refund requests management
        • API create refund request
        • API get list refund requests
        • API get detail refund request
      • APIs for withdraw requests management
        • API get list withdraw banks
        • API create withdraw request
        • API get list withdraw requests
        • API get detail withdraw request
      • Event Notification
      • SFTP upload document file of collection transaction
      • Error Codes
    • Virtual Account Management
      • Virtual Account
      • Webhook
    • Transaction Management
      • Webhook
    • Transaction Status Management
      • Webhook
    • Refund Request Management
      • Webhook
    • Withdraw Request Management
      • Webhook
    • Reconciliation
    • Settlement
  • Virtual Card
    • API authenPlatform
    • Error Codes
    • Virtual Card Policy Management
      • API Create Card Policy
      • API Get Detail Card Policy
      • API Get List Card Policies
      • API Set Active Card Policy
      • API Update Card Policy
    • Virtual Card Management
      • Virtual Card APIs
        • API Create Virtual Card
        • API Create List Virtual Cards
        • API Get List Virtual Cards
        • API Get Detail Virtual Card
        • API Get Virtual Card Sensitive Data
        • API Set Active Virtual Card
      • Webhook
      • Decrypting Card Data Algorithm
  • Merchant Portal
    • Onboarding
    • Payment Gateway
      • Reconciliation
      • Withdraw
    • Disbursement
      • Reports
    • Collections
      • Reports
      • Withdraw
Powered by GitBook
On this page
  • Request
  • Response
  • Example cURL
  • Notes

Was this helpful?

  1. Virtual Card
  2. Virtual Card Management
  3. Virtual Card APIs

API Create Virtual Card

Endpoint: POST /v2/vc/virtual-cards/

Description: Create a new virtual card based on a specified card policy and cardholder information.

Request

Request Body Field Descriptions (JSON)

Field Name
Type
Required
Description

requestId

string

Yes

Unique request ID (UUID recommended)

cardPolicy

string

Yes

Card policy request ID to apply

cardHolderName

string

Yes

Name of the cardholder

cardBrand

string

No

Card brand (If not provide, cardBrand on policy will be applied)

extraInfo

object

No

Additional information (optional)

Request sample

{
  "requestId": "e1b2c3d4-5678-1234-9abc-1234567890ab",
  "cardPolicy": "e424ae34-5c56-45c8-882e-98c4325981d3",
  "cardBrand": "mastercard",
  "cardHolderName": "John Doe",
  "extraInfo": {}
}

Response

Response Field Descriptions

Field Name
Type
Description

code

number

Response code

state

number

State of the response

data

object

Details of the created virtual card

message

string

Response message

neoResponseId

string

Unique Neo response identifier

data object fields:

Field Name
Type
Description

virtualCardRequestId

string

Unique virtual card request identifier

cardData.cardHolderName

string

Name of the cardholder

cardData.cardNumber

string

Masked card number

cardData.cardBrand

string

Card brand

cardPolicy.policyRequestId

string

Policy request ID

cardPolicy.policyRevision

number

Policy revision number

cardPolicy.cardCurrency

string

Card currency

cardPolicy.cardLimit

number

Card limit

cardPolicy.minTransAmount

number

Minimum transaction amount

cardPolicy.maxTransAmount

number

Maximum transaction amount

cardPolicy.autoCloseCard

boolean

Whether card auto closes

cardPolicy.supportedMccGroup

array

Supported MCC groups

extraInfo

object

Additional information

status

string

Status of the virtual card

createdAt

string

Creation timestamp (ISO 8601)

Response sample

{
  "code": 1,
  "state": 2,
  "data": {
    "virtualCardRequestId": "dcf35140-f306-4a2d-9435-3c2e2d606c19",
    "cardData": {
      "cardHolderName": "John Doe",
      "cardNumber": "530723******1138",
      "cardBrand": "mastercard"
    },
    "cardPolicy": {
      "policyRequestId": "e424ae34-5c56-45c8-882e-98c4325981d3",
      "policyRevision": 3,
      "cardCurrency": "USD",
      "cardLimit": 30000,
      "minTransAmount": 10,
      "maxTransAmount": 2000,
      "autoCloseCard": false,
      "supportedMccGroup": [
        "9405",
        "8011"
      ]
    },
    "extraInfo": {},
    "status": "INACTIVED",
    "createdAt": "2025-06-05T02:03:39.179Z"
  },
  "message": "Successful",
  "neoResponseId": "ac23ea1c-98db-4ed6-b927-7e7692ef2f69"
}

Example cURL

curl -X POST "https://{base_url_openapi}/v2/vc/virtual-cards/" \
  -H "Authorization: Bearer <YOUR_TOKEN>" \
  -H "Content-Type: application/json" \
  -H "Accept-Language: en" \
  -d '{
    "requestId": "e1b2c3d4-5678-1234-9abc-1234567890ab",
    "cardPolicy": "e424ae34-5c56-45c8-882e-98c4325981d3",
    "cardBrand": "mastercard",
    "cardHolderName": "John Doe",
    "extraInfo": {}
  }'

Notes

  • Requires Bearer token in the Authorization header.

  • The Accept-Language header can be used to specify the response language (Support: "vi", "en").

  • The card will be created based on the specified policy and cardholder details.

  • Use a unique requestId for each request to avoid duplicate creations.

PreviousVirtual Card APIsNextAPI Create List Virtual Cards

Last updated 15 days ago

Was this helpful?