Skip to main content

Query disbursement order information

POST
URLhttps://open-api.tingee.vn/v1/direct-link/transaction-inquiry

Query the list and details of transactions in the Maker/Checker flow (BIDV).

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 970418 - BIDV).
actionTypestring✓Operation type:
- INTERNAL_TRANSFER
- SALARY
- BILL_PAYMENT
inquiryTypestring✓Inquiry type. Possible values:
  • PENDING_APPROVAL_LIST: Get the list of transactions pending approval.
    (Always uses the authorization session of the Checker role).
  • MAKER_PENDING_LIST: Get the list of transactions created by the Maker (draft / pending approval).
    (Always uses the authorization session of the Maker role).
  • FO_REPORT_LIST: Summary report of the posting status of transactions.
    (Available to both Maker and Checker, according to role).
  • BATCH_UPLOAD_INQUIRY: Query the child transaction records by batchId after uploading a batch disbursement order.
    (Always uses the authorization session of the Maker role).
  • TRANSFER_DETAIL: View the posting details of a specific transaction by id.
    (Available to both Maker and Checker, according to role).
  • EDIT_TRANSFER_DETAIL: Get a draft transaction by id for editing. For INTERNAL_TRANSFER, the transaction must have been created through TINGEE and still be in draft status.
    (Always uses the authorization session of the Maker role).
The BATCH_DETAIL value does not apply to BIDV (it is only used for BaoKim — see Transaction inquiry for the automatic disbursement flow).
rolestring✓Role (Maker / Checker). Determines which BIDV authorization session is used with FO_REPORT_LIST and TRANSFER_DETAIL.
idstring~Transaction ID in the BIDV system (the records[].transactionId value when creating an INTERNAL_TRANSFER order, or data.transactionId for SALARY / BILL_PAYMENT; or the id field in the lists).
Required when inquiryType is TRANSFER_DETAIL or EDIT_TRANSFER_DETAIL.
batchIdstring~Transaction batch ID (the data.batchId value returned when creating a batch payment order).
Required when inquiryType = BATCH_UPLOAD_INQUIRY.
statusstring✕Status to filter by.
- For BATCH_UPLOAD_INQUIRY: VALID (valid record) or INVALID (invalid record)
- For FO_REPORT_LIST, MAKER_PENDING_LIST: BIDV transaction status (the status value returned in items, e.g. INIT, PENDING_APPROVAL, SUCCESS)
filterstring✕General search keyword.
Applies to the list inquiry types and BATCH_UPLOAD_INQUIRY.
startDatestring✕Filter by creation date greater than or equal to the given value (format YYYY-MM-DD).
Applies to: FO_REPORT_LIST, MAKER_PENDING_LIST; for INTERNAL_TRANSFER it also applies to PENDING_APPROVAL_LIST.
endDatestring✕Filter by creation date less than or equal to the given value (format YYYY-MM-DD).
Applies the same way as startDate.
startEffectiveDatestring✕Filter by effective date greater than or equal to the given value (format YYYY-MM-DD).
Applies to: FO_REPORT_LIST, PENDING_APPROVAL_LIST, MAKER_PENDING_LIST.
endEffectiveDatestring✕Filter by effective date less than or equal to the given value (format YYYY-MM-DD).
Applies the same way as startEffectiveDate.
debitAccountNumberstring✕Filter by payment (debit) account number.
Applies to: FO_REPORT_LIST, PENDING_APPROVAL_LIST, MAKER_PENDING_LIST.
receiverValuestring✕Filter by recipient information (account number / ID document number).
Applies to: PENDING_APPROVAL_LIST, MAKER_PENDING_LIST; for INTERNAL_TRANSFER it also applies to FO_REPORT_LIST.
amountMinnumber✕Filter by minimum amount.
Applies to: FO_REPORT_LIST, PENDING_APPROVAL_LIST, MAKER_PENDING_LIST.
amountMaxnumber✕Filter by maximum amount.
Applies the same way as amountMin.
currencystring✕Filter by currency (e.g. VND).
Applies to: FO_REPORT_LIST, PENDING_APPROVAL_LIST, MAKER_PENDING_LIST.
channelarray✕Filter by the channel that created the transaction (e.g. ["ERP"]).
Applies to: FO_REPORT_LIST, PENDING_APPROVAL_LIST, MAKER_PENDING_LIST.
batchNostring✕Filter by BIDV batch number (batchNo).
Applies to: PENDING_APPROVAL_LIST, MAKER_PENDING_LIST; for INTERNAL_TRANSFER it also applies to FO_REPORT_LIST.
receiverBankCodearray✕Filter by a list of receiving bank codes in CITAD format (e.g. ["01202001"]).
Applies to: PENDING_APPROVAL_LIST, MAKER_PENDING_LIST; for INTERNAL_TRANSFER it also applies to FO_REPORT_LIST.
transactionTypearray✕Filter by a list of transaction types, using BIDV codes: I (within BIDV), O (outside BIDV), F (247 fast transfer).
Only applies to INTERNAL_TRANSFER: FO_REPORT_LIST, PENDING_APPROVAL_LIST, MAKER_PENDING_LIST.
coreRefstring✕Filter by the bank's core posting reference (core reference).
Only applies to INTERNAL_TRANSFER + FO_REPORT_LIST.
createdBystring✕Filter by the order creator (Maker username on BIDV).
Applies to: PENDING_APPROVAL_LIST.
myTransferstring✕Filter transactions created by the currently authorized user.
Only applies to INTERNAL_TRANSFER + MAKER_PENDING_LIST.
validCreateDateRangeboolean✕Enable filtering by creation date range (startDate – endDate).
Only applies to INTERNAL_TRANSFER: PENDING_APPROVAL_LIST, MAKER_PENDING_LIST.
validEffDateRangeboolean✕Enable filtering by effective date range (startEffectiveDate – endEffectiveDate).
Applies the same way as validCreateDateRange.
amountRangeboolean✕Enable filtering by amount range (amountMin – amountMax).
Applies the same way as validCreateDateRange.
skipCountnumber✕Number of records to skip (pagination). For example, page 2 with 50 records per page: skipCount = 50. Pass a multiple of maxResultCount (the system converts it to a BIDV page number).
maxResultCountnumber✕Maximum number of records per page (default 10, maximum 2000).

Sample request payload​

Each inquiry type requires different input parameters and returns a different data structure. Click a tab below and all the Code samples and Sample Responses below will automatically switch to the inquiry type you selected!

Note: Use this to check the status of the child records after the Maker successfully uploads a batch file. batchId is required. You can also use the status field (VALID/INVALID) to filter valid/invalid records.

{
"bankBin": "970418",
"actionType": "INTERNAL_TRANSFER",
"inquiryType": "BATCH_UPLOAD_INQUIRY",
"role": "Maker",
"batchId": "2667c208-a5ab-4c9c-af4d-cbd4de24b817",
"status": "VALID",
"skipCount": 0,
"maxResultCount": 50
}

Code samples​

curl --location --request POST 'https://open-api.tingee.vn/v1/direct-link/transaction-inquiry' \
--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",
"actionType": "INTERNAL_TRANSFER",
"inquiryType": "BATCH_UPLOAD_INQUIRY",
"role": "Maker",
"batchId": "2667c208-a5ab-4c9c-af4d-cbd4de24b817",
"status": "VALID",
"skipCount": 0,
"maxResultCount": 50
}'

Sample Response​

{
"code": "00",
"message": "Success",
"data": {
"enableUpdateName": false,
"items": [
{
"id": "6dbf35f0-99b2-4d63-8ab3-3027e8cc263d",
"transactionType": "in-bank",
"errorDescription": null,
"debitAccountNumber": "8600007007",
"amount": "32987",
"currency": "VND",
"remark": "Check1",
"feeMethod": "O",
"feeAccountNumber": "8600007007",
"originId": "TRANS_1106_A04",
"notAuthorized": false,
"batchId": "2667c208-a5ab-4c9c-af4d-cbd4de24b817",
"effectiveDate": "11/06/2026",
"status": "VALID",
"creditAccountType": "ACCOUNT",
"creditAccountNumber": "2220366666",
"creditAccountName": "TITLE 1 2220366666",
"creditBankName": "Ngan hang TMCP Dau tu va Phat trien Viet Nam",
"creditBranchCode": "222000"
}
],
"validRows": 1,
"invalidRows": 0,
"total": 1
}
}

Response data structure​

Note: The structure of data depends on inquiryType and actionType. The Sample Responses above illustrate actionType = INTERNAL_TRANSFER.

  • For list inquiry types (BATCH_UPLOAD_INQUIRY, PENDING_APPROVAL_LIST, MAKER_PENDING_LIST, FO_REPORT_LIST), data contains an items array and pagination information.
  • For detail inquiry types (TRANSFER_DETAIL, EDIT_TRANSFER_DETAIL) of INTERNAL_TRANSFER, data directly contains the transaction's information.
  • For SALARY / BILL_PAYMENT, see Differences for SALARY / BILL_PAYMENT below.
  • Fields that BIDV does not return are omitted from the response (or set to null).
FieldTypeDescription
totalnumberTotal number of records matching the filters.
itemsarrayList of transaction details.
validRowsnumberNumber of valid records (only returned with BATCH_UPLOAD_INQUIRY).
invalidRowsnumberNumber of invalid records (only returned with BATCH_UPLOAD_INQUIRY).
enableUpdateNamebooleanBIDV flag indicating whether the batch allows updating beneficiary names (only returned with BATCH_UPLOAD_INQUIRY).

Transaction details (in the data.items array, or directly in data for TRANSFER_DETAIL)​

The Applies to column shows which inquiry types return the field: B = BATCH_UPLOAD_INQUIRY, L = PENDING_APPROVAL_LIST / MAKER_PENDING_LIST / FO_REPORT_LIST, D = TRANSFER_DETAIL.

FieldTypeApplies toDescription
idstringB, L, DTransaction ID in the BIDV system (used as id for TRANSFER_DETAIL and in transactionIds / ids of the submit, approve, reject and delete APIs). For BATCH_UPLOAD_INQUIRY, this is the record ID in the batch file.
statusstringB, L, DTransaction status returned by BIDV (e.g. INIT, PENDING_APPROVAL, SUCCESS, FAILED, REJECTED). For BATCH_UPLOAD_INQUIRY: VALID / INVALID.
statusDescstringL, DTransaction status description in Vietnamese.
statestringLSecondary posting status of the transaction.
stateDescriptionstringDPosting status description.
amountnumberB, L, DTransaction amount. For BATCH_UPLOAD_INQUIRY, BIDV may return it as a string (e.g. "32987").
amountTextstringDAmount in words.
currencystringB, L, DCurrency (VND).
createdDatestringLTransaction creation time (ISO 8601).
createdBystringL, DUsername of the creator (Maker).
remarkstringB, L, DTransaction description.
approvalNotestringL, DApproval submission note from the Maker.
effectiveDatestringB, L, DEffective date of the transaction (YYYY-MM-DD; for BATCH_UPLOAD_INQUIRY BIDV returns DD/MM/YYYY).
transactionTypestringB, L, DTransaction type: in-bank, regular-out, fast-out.
transactionDescstringL, DTransaction type description (e.g. Chuyển tiền trong BIDV khác CTK).
transactionIdstringL, DBIDV transaction ID (used for the Transaction log inquiry API).
transactionCodestringL, DBIDV transaction type code (e.g. PM02).
channelstringL, DChannel that created the transaction (e.g. ERP).
originIdstringB, L, DThe requestId reference the partner sent when creating the order.
batchIdstringBTransaction batch ID.
batchNostringL, DBatch number issued by the bank's system.
prioritybooleanL, DPriority processing flag.
feeMethodstringB, L, DFee bearer (O: payment account, B: recipient).
feeAccountNumberstringB, L, DFee account number.
feeOptstringL, DBIDV fee collection method (e.g. INST).
feeIDstringLFee schedule code.
feeTotalnumberL, DTotal transaction fee.
feeCurrencystringDFee currency.
approvalUsersstringLList of approvers.
approvedBystringLUser who approved the transaction.
approvedDatestringLTime the transaction was approved.
coreRefstringL, DThe bank's core posting reference (core reference).
pmtRefstringLPayment reference number.
pmhIdstringL, DBIDV payment identifier.
errorCodestringB, LError code of the transaction / record (if any).
errorDescriptionstringBError description of an invalid record.
notAuthorizedbooleanBFlag indicating the record's debit account has not been granted permission.
validBenAccountbooleanBRecipient account validation flag.
bankLogoUrlstringDReceiving bank logo.
ibftBankCodestringDReceiving bank BIN (NAPAS).
bankTransferTypenumberDBank-side transfer type.
debitAccountNumberstringB, L, DSender (debit) account number.
debitAccountNamestringL, DSender account name.
creditAccountTypestringB, L, DReceiving method: ACCOUNT (account number) or ID (ID document).
creditAccountNumberstringB, L, DRecipient account number.
creditAccountNamestringB, L, DRecipient name.
creditBankCodestringB, L, DReceiving bank code (CITAD code).
creditBankNamestringB, L, DReceiving bank name.
creditBankShortNamestringB, L, DReceiving bank short name.
creditBankAbbrstringB, L, DReceiving bank abbreviation.
creditBranchCodestringB, L, DReceiving bank branch code.
creditBranchNamestringB, L, DReceiving bank branch name.
creditIdstringB, L, DRecipient ID document number (when creditAccountType = ID).
creditIssueDatestringB, L, DID document issue date.
creditIssueAddressstringB, L, DID document place of issue.
creditCurrencystringB, L, DRecipient currency.
originalCreditAccountNumberstringB, L, DOriginal recipient account number (if returned by BIDV).
originalCreditNamestringB, L, DOriginal recipient name (if returned by BIDV).

data structure with EDIT_TRANSFER_DETAIL (INTERNAL_TRANSFER)​

data is an object with the fields: id, txnType (transaction type: in-bank / regular-out / fast-out), creditAccountType, senderAccountNumber, senderAccountName, receiverAccountNumber, receiverAccountName, receiverBankCode, receiverBankName, receiverBankShortName, receiverBankAbbr, receiverBranchCode, receiverBranchName, receiverId, receiverIssueDate, receiverIssueAddress, receiverCurrency, originalReceiverAccountNumber, originalReceiverName, amount, amountText, currency, remark, approvalNote, feeMethod, feeOpt, feeAccountNumber, feeAmount, feeVAT, feeTotal, originId (the partner's requestId), priority, effectiveDate, transactionCode, acceptedDate, approvedDate, processDate, bankLogoUrl, status, accountingStatus. The meanings are the same as the fields in the table above (prefix sender = sending party, receiver = receiving party).

Differences for SALARY / BILL_PAYMENT​

inquiryTypedata structure
TRANSFER_DETAIL, EDIT_TRANSFER_DETAILdata.transaction is an object with the batch order information: transactionId (batch-level transaction ID), transactionCode, status, statusDesc, amount, currency, debitAccountNumber, debitAccountType, debitAccountName, feeAccountNumber, feeTotal, feeCurrency, feeMethod, effectiveDate, approvalNote (Maker's note), approvalNoteChecker (Checker's note), originId, batchNo, batchId, priority, totalAmountText, remark.
FO_REPORT_LISTdata.items[] contains: id, status, statusDesc, amount, currency, createdDate, createdBy, remark, effectiveDate, channel, originId, batchId, totalRow (total records), successRow (successful records), errorRow (failed records), fileName, feeOpt, feeTotal, approvalUsers, approvedDate, feeAccountNumber, debitAccountNumber, debitAccountName; plus data.total.
PENDING_APPROVAL_LIST, MAKER_PENDING_LISTdata.items[] contains the same fields as FO_REPORT_LIST, plus: senderAccountType, feeCurrency, feeMethod, transactionId, transactionCode, raNote (Maker's note), approvalNote (Checker's note), batchNo, priority, totalAmountText, processDate; plus data.total.
BATCH_UPLOAD_INQUIRYSame as INTERNAL_TRANSFER; each element also has processFlow and a transaction description (txnDesc for SALARY, txDesc for BILL_PAYMENT).

Common error codes​

CodeDescriptionHow to handle
1077The BIDV authorization session for the role has expired or has not been grantedCall Get the authorization URL with the correct role to re-authorize, then query again.
1110The transaction is no longer in draft status, so it cannot be editedOnly use EDIT_TRANSFER_DETAIL for draft transactions; for other transactions use TRANSFER_DETAIL.
1109Transaction not foundCheck the transaction ID (id).
1021The bank is not supported for this APICheck bankBin; the Maker/Checker flow applies to BIDV (970418).
90, 91, 92, 97Request authentication error (timestamp, client-id, signature)See System error codes.
OthersOther errorsSee Error codes.