Skip to main content

Confirm a virtual account (VA)

Use this API to confirm the creation of a virtual account (VA) after the initiation step. It is typically used when the bank requires OTP verification to complete the linking.

POST
URLhttps://open-api.tingee.vn/v1/confirm-va

Confirm a VA creation request with the confirmId received from the create-va API. Some banks also require otpNumber.

Header Request​

HeaderRequiredDescription
Content-Type✓application/json
x-client-id✓Partner identifier issued by TINGEE.
x-signature✓HMAC SHA512 authentication signature. See How to generate the signature.
x-request-timestamp✓Time the request is sent (format: yyyyMMddHHmmssSSS, UTC+7)

Body Parameter​

FieldTypeRequiredDescription
merchantIdnumber✕Merchant ID
(required if you connect with a Master Merchant account).
bankBinstring✓Bank BIN. See Supported banks.
confirmIdstring✓Confirmation ID received from the create-va API.
otpNumberstring✓OTP the bank sends to the account holder (SMS / bank app).

Code samples​

curl --location --request POST 'https://open-api.tingee.vn/v1/confirm-va' \
--header 'accept: application/json' \
--header 'x-client-id: YOUR_CLIENT_ID' \
--header 'x-request-timestamp: 20240509154004003' \
--header 'x-signature: YOUR_SIGNATURE' \
--header 'Content-Type: application/json' \
--data '{
"bankBin": "970418",
"confirmId": "886b05e9-2d94-4b41-9839-138c941fd1d9",
"otpNumber": "123456"
}'

Sample Response​

{
"code": "00",
"message": "Success",
"data": {
"bankName": "BIDV",
"accountType": "personal-account",
"accountNumber": "0935926988",
"vaAccountNumber": "88880935926988",
"shopId": 1024
}
}
FieldTypeDescription
codestringResult code (00 = success).
messagestringResponse message.
data.bankNamestringBank code (e.g. BIDV, MBB, ACB).
data.accountTypestringAccount type (personal-account, business-account, business-household-account).
data.accountNumberstringLinked original account number.
data.vaAccountNumberstringOfficial virtual account number created.
data.shopIdnumberID of the shop the account is assigned to.

Common error codes​

CodeDescriptionHow to handle
1065OTP timed outThe confirmId has expired or does not exist. Call Create/Link account number again to get a new confirmId.
1080Incorrect ConfirmIdThe confirmId does not belong to the Merchant calling the API.
1021The bank does not support the confirmation stepThis bank is not confirmed via the confirm-va API (e.g. VCB and TPBank receive the result via webhookUrl).
1134Invalid response from the bankTry again in a few minutes; if the error persists, contact TINGEE.
90, 91, 92, 97Request authentication error (timestamp, client-id, signature)See System error codes.
OthersOther errorsSee Error codes.