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)
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
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:
data
object fields: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.
Last updated
Was this helpful?