Skip to main content

Create a Deep Link

This API lets partners create a Deep Link that opens the banking app on a mobile device directly with the transaction details prefilled, shortening the user's steps and increasing the conversion rate.

POST
URLhttps://open-api.tingee.vn/v1/deep-link/generate

Create a Deep Link for opening a payment app, making a transfer or paying a bill.

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).
typestring✓Deep Link type (qr-code, payment-with-bank-account, bill-payment).
Currently the system only processes qr-code and payment-with-bank-account; bill-payment is not supported yet.
qrCodestring~VietQR (EMVCo) data string to pay
(Required if type is qr-code).
redirectUrlstring~URL to redirect to after the user finishes in the app.
Required for all banks except MB Bank (970422).
bankBinstring✓BIN of the bank (app) used to pay.
Supported banks: ACB (970416), Sacombank (970403), BIDV (970418), OCB (970448), MB Bank (970422), VPBank (970432).
destinationBankBinstring~Beneficiary bank BIN. See Supported banks.
(Required if type is payment-with-bank-account).
accountNumberstring~Beneficiary account number.
(Required if type is payment-with-bank-account or bill-payment).
accountNamestring~Beneficiary account holder name.
(Required if type is bill-payment).
billNumberstring~Bill number
(Required if type is bill-payment).
amountnumber✕Transaction amount (used when type is payment-with-bank-account).
contentstring✕Transfer description (used when type is payment-with-bank-account).

Code samples​

curl --location --request POST 'https://open-api.tingee.vn/v1/deep-link/generate' \
--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 '{
"type": "qr-code",
"qrCode": "base64_data",
"redirectUrl": "https://your-app.com/callback",
"bankBin": "970422",
"accountNumber": "0123456789",
"amount": 50000,
"content": "Thanh toan don hang"
}'

Sample Response​

{
"code": "00",
"message": "Success",
"data": "mbbank://applink?targetPage=QRPay&source=HENO&qrContent=00020101021238..."
}
FieldTypeDescription
codestringResult code (00 = success).
messagestringResponse message.
datastringDeep Link that opens the banking app matching bankBin (in each bank's own URL scheme format).

Common error codes​

CodeDescriptionHow to handle
1063Bank does not support Deep Link yetUse the bankBin of a supported bank: ACB, Sacombank, BIDV, OCB, MB, VPBank.
1064Deep Link type is not supported yetSet type to qr-code or payment-with-bank-account.
1095, 1096Master Merchant merchantId errorPass the merchantId of a sub-Merchant that belongs to the calling Master Merchant.
90, 91, 92, 97Request authentication error (timestamp, client-id, signature)See System error codes.
OthersOther errorsSee Error codes.