Skip to content

Create Payin Order

Request URL

methodurl
POST/api/pay/payment/create/v1

Headers

Header ParameterDescription
timestampRequest timestamp
nonceRandom value
countryCountry code (VN)
appCodeApplication ID

Supported Payment Types (paymentType)

Payment Method NamePaymentType
QR2101
VA2102
Wallet2103

Request Parameters

FieldTypeRequiredLengthDescription
merchantOrderNoStringyes32Merchant order number
paymentTypeIntyesPayment type, see the payment type list
amountStringyes20Payin amount in VND, integer only
realNameStringyes64Payer name
emailStringyes50Payer email (must match a valid regex format)
phoneStringyes50Phone number: 10 digits starting with 0
bankCodeStringno50Bank code; see the Bank List.
Required when paymentType is 2102 (VA)
signStringyesSignature
callbackUrlStringno200Callback URL
Request Example
{
"merchantOrderNo": "OrderNoExample",
"realName": "TeemoPay",
"amount": "30000",
"callbackUrl": "https://www.callbackexample.com",
"paymentType": 2101,
"email": "TeemoPay@example.com",
"phone": "0900000000",
"sign": "YOUR_SIGN"
}

Response Parameters

FieldTypeRequiredLengthDescription
merchantOrderNoStringyes32Merchant order number
tradeNoStringyesPlatform order number
amountStringyesTransaction amount
paymentTypeIntyesPayment type
paymentInfoStringyesPayment link returned by the upstream channel
additionalInfoJSONObjectnoAdditional information, including original QR code
statusIntyesPayin status: 1 = Paying, 3 = Failed
errorMsgStringnoError message (returned only in case of failure)
Response Example
{
"code": 200,
"data": {
"merchantOrderNo": "OrderNoExample",
"amount": "30000",
"tradeNo": "TS2501010001VN0000000000000000",
"paymentType": 2101,
"paymentInfo": "https://mock/payment/",
"additionalInfo": {},
"status": 1,
"errorMsg": null
},
"msg": "success",
"traceId": "30c38418a758434dba4da32fe73b5fd2.106.17833191761712117"
}