VantPay Checkout API#
The easiest way to test the full VantPay checkout flow is to initiate and complete a real (live) transaction with a small amount you are comfortable losing.Important
This is a real transaction. Your linked account or card will be debited. Use only test amounts you can afford to give away.
Supported channels typically include Card and Bank Transfer (Pay with Transfer / Virtual Account).
Authentication#
All endpoints require Bearer Token authentication.
Initiate Checkout#
Endpoint: POST /api/v1/checkout/initiate
This is the entry point for the payment flow. It initializes a transaction by capturing customer identity and defining the allowed payment methods.email: Customer's email address for receipting.phoneNumber: Contact number for SMS notifications or verification.firstName / lastName: Customer's legal name.amount: The total transaction value in minor units.paymentReference: A unique string from your system to track this specific order.channels: An array of allowed payment methods (e.g., ["Card", "Bank"]).--header 'accept: */*' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "string",
"phoneNumber": "string",
"firstName": "string",
"lastName": "string",
"amount": 0,
"paymentReference": "string",
"channels": [
"string"
]
}'
Create Virtual Account#
Endpoint: POST /api/v1/checkout/create-account
Used specifically for "Pay with Transfer" flows. This generates a temporary bank account for the customer to send funds to.paymentReference: The unique ID linked to the initialized checkout.prefix: The 3-digit identifier assigned to you as a partner.validity: Duration (in minutes) before the account expires (Recommended: 10–30 mins).amount: The specific amount expected for this transfer.--header 'accept: */*' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"paymentReference": "string",
"prefix": "string",
"validity": 0,
"amount": 0
}'
Complete Checkout#
Endpoint: POST /api/v1/checkout/complete-checkout
The final step to finalize the transaction. This endpoint confirms the payment and retrieves the final success or failure status.paymentChannel: The method used (e.g., "Bank").account: The virtual account number or card identifier used.amount: The confirmed amount paid.paymentReference: Your unique transaction reference.accessCode: The authorization token retrieved for this session.--header 'accept: */*' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"paymentChannel": "Bank",
"account": "string",
"amount": 0,
"paymentReference": "string",
"accessCode": "string"
}'
Get Access Code#
Endpoint: GET /api/v1/checkout/query/{paymentReference}
Used to retrieve the accessCode required for completing or verifying a transaction session. It acts as a secure handshake between the initiation and completion phases.Modified at 2026-02-26 01:49:33