Indonesia Request The Account Verification API checks whether a bank account or e-wallet account is valid and returns the account holder name. This page covers Indonesia (country code id).
Synchronous : the final result is returned in a single response; there is no async callback.Production only : use the production domain and merchant number.Unique order number : duplicate mchNo + orderNum returns an error; verification is not retried.Signature : same rules as Pay-Out create ; see Signature . Endpoint Domain : Prefer unified host openapi.toppayment.com (path unchanged); legacy country domain (e.g. global-id-openapi.toppayment.com) remains available.
URL https://openapi.toppayment.com/id/disbursement/bankVerify
bankCode / bankName are the same as Pay-Out · see Regional Payment Guide — Indonesia — Disbursement bank codes .
Field Required Type Description Content-Type M String Fixed: application/json
Request Body Field Required Type Description mchNo M String(32) Merchant number orderNum M String(64) Merchant order number — must be unique bankCode M String(32) Bank / e-wallet product code — same as Pay-Out bankCard M String(64) Bank account or e-wallet account number timestamp M String(13 digits) Millisecond timestamp sign M String RSA signature — see Signature countryCode O String(16) Country code
Request Examples Headers Bank card E-wallet
Content-Type: application/json
{
"mchNo" : "{{mchNo}}" ,
"orderNum" : "VERIFY202606150001" ,
"bankCode" : "014" ,
"bankCard" : "1234567890" ,
"timestamp" : "1717300000000" ,
"sign" : "Generate per signature rules and replace"
}
{
"mchNo" : "{{mchNo}}" ,
"orderNum" : "VERIFY202606150002" ,
"bankCode" : "10001" ,
"bankCard" : "081234567890" ,
"timestamp" : "1717300000000" ,
"sign" : "Generate per signature rules and replace"
}
Response HTTP Response Field Required Type Description Content-Type M String Fixed: application/json
Response Body Field Required Type Description success M Boolean Whether the request was accepted code M String 9999 = success; others — see Exception codes msg O String English message timeStamp M Number Response timestamp (ms) data O Object Business payload; may be null on failure orderNum M String Merchant order number platOrderNum M String Platform order number accountName O String Account name when verification succeeds (not masked) status M Integer Order status — see table below verifyResult O Integer Verification result — see table below
status (order status)
Value Meaning 0 Processing 1 Processed successfully 2 Processing failed 3 Request failed
verifyResult (verification result)
Value Meaning When status is 1 Account verification succeeded 1 2 Account verification failed (invalid account, name mismatch, etc.) 1 3 Request failed 3
Success Verification failed Upstream request failed Request failed
{
"success" : true ,
"code" : "9999" ,
"msg" : null ,
"timeStamp" : 1717300000123 ,
"data" : {
"orderNum" : "VERIFY202606150001" ,
"platOrderNum" : "V20260615XXXX" ,
"accountName" : "JOHN DOE" ,
"status" : 1 ,
"verifyResult" : 1
}
}
{
"success" : true ,
"code" : "9999" ,
"timeStamp" : 1717300000456 ,
"data" : {
"orderNum" : "VERIFY202606150001" ,
"platOrderNum" : "V20260615XXXX" ,
"accountName" : null ,
"status" : 1 ,
"verifyResult" : 2
}
}
{
"success" : true ,
"code" : "9999" ,
"timeStamp" : 1717300000789 ,
"data" : {
"orderNum" : "VERIFY202606150001" ,
"platOrderNum" : "V20260615XXXX" ,
"accountName" : null ,
"status" : 3 ,
"verifyResult" : 3
}
}
{
"success" : false ,
"code" : "0003" ,
"msg" : "mch no channel available!" ,
"timeStamp" : 1717300000789 ,
"data" : null
}