VantPay API Documentation
API Docs
API Docs
  1. API Docs
  • Authentication
    • authenticate-merchant
      POST
  • Virtual Account
    • create-static-account
      POST
    • create-dynamic-account
      POST
    • get-static-virtual-accounts
      GET
    • get-wallet-balance
      GET
    • get-prefixes
      GET
    • get-dynamic-virtual-accounts
      GET
    • validate-virtual-account
      POST
  • Inward Transfers
    • Inward TransQuery (TSQ)
      • inward-traansquery
    • Inward Transactions
      • get-wallet transactions
  • Merchant Settlement
    • Merchant Payout
      • merchant-settlement
    • Get Settlement History
      • get-settlement-history
    • Confirm Payout Status
      • get-settlement-status
  • Checkout
    • initiate-checkout
      POST
    • create-account
      POST
    • complete-checkout
      POST
    • query-access-code
      GET
  1. API Docs

Checkout

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.

Checkout API Reference

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.
Request Body:
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.
Request Body Fields:
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.
Request Body Fields:
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
Previous
get-settlement-status
Next
initiate-checkout
Built with