Skip to Content
VantraAPI Docs
Payments

Payment methods

Choose QR, card, Alipay, or WeChat Pay.

Current availability

TEST simulates payments without contacting a bank. LIVE creation requires approved, unexpired KYC and an enabled bank merchant configuration for the requested method. Each request must fit its currency amount range. Bank callback verification, polling and LIVE cancellation remain unavailable pending bank authentication implementation; creation alone does not confirm settlement.

MethodCreate route
LDB QRPOST /api/v1/payments/generate-ldb-qr
Indochina Bank QRPOST /api/v1/payments/generate-ib-qr
LDB CardPOST /api/v1/payments/card
AlipayPOST /api/v1/payments/wallet
WeChat PayPOST /api/v1/payments/wallet

Common request rules

Use server-side HMAC authentication. Idempotency-Key is optional on create requests. Supply orderId for duplicate-order checks; a protected existing order returns 409 Conflict. Without a key or order ID, repeated calls can create separate payments. amount is a JSON number in the stated currency units (not an automatic cents conversion), at least 0.01, with at most six decimal places. The gateway accepts uppercase LAK, USD, and THB; this does not guarantee every live provider/method/currency combination is enabled.

currency is required. orderId, description, and metadata are optional, but supplying your order ID is recommended for reconciliation. Card order IDs, if supplied, must be 12–32 characters. Unknown body properties are rejected. Send paymentMethod only for the card or wallet routes, not the bank-specific QR routes.

Read the response

Successful API calls use { success, title, message, timestamp, data }. Read payment fields from data. Payment creation normally returns HTTP 201 and PENDING. transactionId is the gateway payment identifier; orderId is your reference; simulationId is the internal TEST identifier used by the portal simulator. Do not use them interchangeably.

See status and reconciliation before fulfilling an order.

Request metadata is stored with the transaction and included in callbacks. Payment-generation responses and idempotent replays do not return it.

On this page