API Documentation
NeoX documents
NeoX documents
  • 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
      • Virtual Account Status
      • 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
  • Example cURL

Was this helpful?

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

API Create List Virtual Cards

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

Description: Create a batch of virtual cards under a specified card policy.

Request

Request Body Field Descriptions (JSON)

Field Name
Type
Required
Description

requestId

string

Yes

Unique batch request ID (UUID recommended)

cardPolicy

string

Yes

Card policy request ID to apply to all cards

virtualCards

array

Yes

List of virtual card creation objects

virtualCards[].virtualCardRequestId

string

Yes

Unique request ID for each virtual card

virtualCards[].cardHolderName

string

Yes

Name of the card holder

virtualCards[].cardBrand

string

No

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

virtualCards[].extraInfo

object

No

Additional information (optional)

Request sample

{
  "requestId": "b1e2c3d4-5678-1234-9abc-1234567890ab",
  "cardPolicy": "e424ae34-5c56-45c8-882e-98c4325981d3",
  "virtualCards": [
    {
      "virtualCardRequestId": "a1b2c3d4-5678-1234-9abc-1234567890ab",
      "cardHolderName": "John Doe",
      "cardBrand": "mastercard"
    },
    {
      "virtualCardRequestId": "b2c3d4e5-6789-2345-9bcd-2345678901bc",
      "cardHolderName": "Jane Smith",
      "cardBrand": "visa"
    }
  ]
}

Response

Response Field Descriptions

Field Name
Type
Description

code

number

Response code

state

number

State of the response

data.requestId

object

Detail data of batch VirtualCard create request

message

string

Response message

neoResponseId

string

Unique Neo response identifier

data object fields:

Field Name
Type
Description

requestId

string

Unique request identifier

merchantCode

string

Merchant code

createdAt

string

Creation timestamp (ISO 8601)

status

string

Status of the batch creation (default: "PASSED")

message

string

Processing message

Response sample

{
  "code": 1,
  "state": 2,
  "data": {
    "requestId": "14453285-93d2-4fef-8a3e-fa6b8a99cf6f",
    "merchantCode": "COLRLC",
    "createdAt": "2025-06-04T01:15:39.529Z",
    "status": "PASSED",
    "message": "Please wait while we are processing your request"
  },
  "message": "Successful",
  "neoResponseId": "c3f228b8-fc58-45c2-a01c-e954d1225635"
}

Example cURL

curl -X POST "https://{base_url_openapi}/v2/vc/virtual-cards/batch" \
  -H "Authorization: Bearer <YOUR_TOKEN>" \
  -H "Content-Type: application/json" \
  -H "Accept-Language: en" \
  -d '{
    "requestId": "b1e2c3d4-5678-1234-9abc-1234567890ab",
    "cardPolicy": "e424ae34-5c56-45c8-882e-98c4325981d3",
    "virtualCards": [
      {
        "virtualCardRequestId": "a1b2c3d4-5678-1234-9abc-1234567890ab",
        "cardHolderName": "John Doe",
        "cardBrand": "mastercard"
      },
      {
        "virtualCardRequestId": "b2c3d4e5-6789-2345-9bcd-2345678901bc",
        "cardHolderName": "Jane Smith",
        "cardBrand": "visa"
      }
    ]
  }'

Notes

  • Requires Bearer token in the Authorization header.

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

  • The request body must be in JSON format.

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

  • Use a unique virtualCardRequestId for each virtual card to avoid duplicate creations.

PreviousAPI Create Virtual CardNextAPI Get List Virtual Cards

Last updated 1 day ago

Was this helpful?