Skip to main content

Create payment order

POST
URLhttps://open-api.tingee.vn/v1/direct-link/create-transfer

Create a straight-through disbursement payment order (for the VietinBank and BaoKim flows)

💡 Note on transaction processing (VietinBank)

With VietinBank, a single disbursement order is processed by the bank immediately after the order is created successfully. For batch disbursement transactions, however, the initial order status is PENDING and the bank continues posting afterwards. You need to call the transaction inquiry API to get the final processing result.

Header Request​

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

Body Parameter​

FieldTypeRequiredDescription
bankBinstring✓Bank BIN. Always pass 970415 (VietinBank's BIN)
debitAccountNumberstring✓Payment (debit) account number.
debitAccountNamestring✕Payment account holder name.
transactionTypestring✓Transaction type, applied to all transactions in the order (VietinBank does not support transactionType at the records level):
- in-bank: Within the bank
- fast-out: NAPAS 247 fast transfer
- regular-out: Standard interbank transfer
feeMethodstring✕Fee method, applied to all transactions in the order:
- O: The payment account pays the fee (default)
- B: The receiving account pays the fee
currencystring✕Posting currency of the payment account (default: VND)
recordsarray✓Array with 1 item containing the transaction to disburse.

Items in records​

FieldTypeRequiredDescription
requestIdstring✓Transaction reference generated by the partner, used to match results. Must be unique per transaction (no duplicates within the same request or with previously sent transactions), up to 50 characters.
creditAccountNumberstring✓Recipient account number.
creditAccountNamestring✓Recipient account holder name
(without diacritics, in UPPERCASE).
amountnumber✓Transaction amount (minimum 2,000 VND)
creditBankBinstring✓Recipient bank BIN. See Supported banks.
creditBranchCodestring✕Recipient bank branch code (if any).
remarkstring✓Transfer description / transaction details

Sample Request Payload​

Below are sample payloads for single and batch disbursement orders. Click any tab below — all the Code samples and Sample Response sections further down sync automatically to the scenario you pick!

{
"bankBin": "970415",
"debitAccountNumber": "117000107563",
"debitAccountName": "Customer Title 1",
"transactionType": "in-bank",
"feeMethod": "O",
"records": [
{
"requestId": "TRANS_0611_A03",
"creditAccountNumber": "103000614434",
"creditAccountName": "CUSTOMER TITLE 1",
"amount": 100000,
"creditBankBin": "970415",
"remark": "thanh toán"
}
]
}

Code samples​

curl --location --request POST 'https://open-api.tingee.vn/v1/direct-link/create-transfer' \
--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": "970415",
"debitAccountNumber": "117000107563",
"debitAccountName": "Customer Title 1",
"transactionType": "in-bank",
"feeMethod": "O",
"records": [
{
"requestId": "TRANS_0611_A03",
"creditAccountNumber": "103000614434",
"creditAccountName": "CUSTOMER TITLE 1",
"amount": 100000,
"creditBankBin": "970415",
"remark": "thanh toán"
}
]
}'

Sample Response​

{
"code": "00",
"message": "Success",
"data": {
"totalRecords": 1,
"processedRecords": 1,
"batchId": null,
"records": [
{
"status": "SUCCESS",
"requestId": "TRANS_0611_A03",
"transactionId": "3NGiS-89m8nkbW5",
"message": "Giao dich hach toan thanh cong"
}
]
}
}

Response data structure​

FieldTypeDescription
statusstringOverall order status (BaoKim only): SUCCESS (accepted/processed) or FAILED (transaction failed).
batchIdstringVietinBank: Transaction batch ID (only set for batch orders; single orders return null) — used to Query transactions.
BaoKim: Disbursement order ID in the TINGEE system — use it as batchId when querying with inquiryType = BATCH_DETAIL.
totalRecordsnumberTotal number of transactions in the disbursement order.
processedRecordsnumberNumber of transactions already processed (VietinBank only).
recordsarrayDetailed result of each transaction.

Items in data.records​

FieldTypeDescription
requestIdstringThe transaction reference you sent.
statusstringTransaction status:
- SUCCESS: Successful
- PENDING: Pending (call the Query transactions API to get the final result)
- FAILED: Failed
transactionIdstringVietinBank: Transaction ID in the bank's system (null if not yet posted).
BaoKim: Equal to requestId (used to query TRANSFER_DETAIL); null if the transaction failed.
messagestringDetailed message or status explanation (VietinBank only).
amountnumberTransaction amount (BaoKim only).
feeAmountnumberTransaction fee charged by BaoKim (BaoKim only).
creditAccountNumberstringRecipient account number / card number / wallet number (BaoKim only).
creditAccountNamestringRecipient name you sent (BaoKim only; null if not provided).
errorobjectError information (BaoKim only, when status = FAILED), including code (error code) and message (error description).

Common error codes​

CodeDescriptionHow to handle
1116The transaction reference (requestId) has already been usedGenerate a new, unique requestId for each transaction. Look up the earlier transaction before resending to avoid a duplicate disbursement.
1124requestId already exists (BAOKIM)Use a new requestId; check the status of the earlier transaction with Query transactions before resending.
1115The recipient bank could not be determinedPass a valid creditBankBin for each record (see Banks).
1117The BAOKIM wallet does not yet support multiple transactions in one requestSend only one record in records per request.
1086, 1087, 1088The BAOKIM wallet has not been configured, has no wallet ID set up, or has not been synchronizedComplete linking and synchronizing the BAOKIM wallet with TINGEE before disbursing.
1021The bank is not supportedCheck bankBin; the automatic disbursement flow supports VietinBank (970415) and BAOKIM.
90, 91, 92, 97Request authentication error (timestamp, client-id, signature)See System error codes.
OthersOther errorsSee Error codes.