Transfer Status Inquiry

This section will explain how merchants can initiate inquiry the transfer status using SNAP specification. Transfer Status Inquiry API only available for 2 (two) months old transaction.

ServiceCodeMethodURLDescription
36POST/{version}/transfer/statusAPI Transfer Status Inquiry

📘

Do not call this API directly after create a transfer request, please put 10 minutes buffer so we can ensure we give the final status.

Request

Header

The following table is a header of request parameter:

Field NameAttrib.DatatypeDescription
Content-TypeMStringRepresent media type of request e.g “application/json”
AuthorizationMBearer token obtained from Access Token API in the format Bearer
X-TIMESTAMPMString(25)Client's current local time in “yyyy-MM-ddTHH:mm:ssTZD” format
X-SIGNATUREMSee General API Symmetric Signature
X-PARTNER-IDMSee Credential Exchange
X-EXTERNAL-IDMString(max 36), NumericUnique request reference number from partner. Must be unique.
CHANNEL-IDMSee Credential Exchange

Body

The following table is a body of request parameter:

Field NameAttrib.DatatypeDescription
originalPartnerReferenceNoMString(64)Transaction identifier on service consumer system
serviceCodeMString(2)Transaction type indicator (service code of the original transaction request)

Response

Header

The following table is a header of response parameter:

Field NameAttrib.DatatypeDescription
X-TIMESTAMPMString(25)“yyyy-MM-ddTHH:mm:ssTZD” format

Body

The following table is a body of response parameter:

Field NameAttrib.DatatypeDescription
responseCodeMString(7)Response code
responseMessageMString(150)Response description
originalReferenceNoCString(64)Transaction identifier on service provider system. Must be filled upon successful transaction
originalPartnerReferenceNoMString(64)Transaction identifier on service consumer system
serviceCodeMString(2)Transaction type indicator (service code of the original transaction request)
amount.valueOString(16,2)Net amount of the transaction.
If it’s IDR then value includes 2 decimal digits.
e.g. IDR 10.000, will be placed with 10000.00
amount.currencyOString(3)Currency (should always be IDR)
transactionDateMString(25)Transaction date : ISO 8601 (without millis). e.g “yyyy-MM-ddTHH:mm:ssZ”
latestTransactionStatusMString(10)00 : completed / payout request is sent to the bank and received by beneficiary account
01 : queued / payout is waiting to be approved
02: approved / payout is waiting to be executed
03: processed / payout request is sent to the bank and completed
05: rejected / payout is rejected by approver
06: failed / payout didn’t go through
07: payout didn’t created
transactionStatusDescMString(50)Success: completed / payout request is sent to the bank and received by beneficiary account
Initiated: queued / payout is waiting to be approved
Paying: approved / payout is waiting to be executed
Pending: processed / payout request is sent to the bank and completed
Rejected: rejected / payout is rejected by approver
Failed: failed / payout didn’t go through
Not found: payout didn’t created
referenceNumberMString(30)Reference Number from the system
beneficiaryAccountNoMString(34)Account number of the Beneficiary
sourceAccountNoMString(19)For Facilitator: Bank account ID used on the transfer request
For Aggregator: 0000000000
additionalInfo.failureReasonCString(255)Reason for failure. Must be filled upon a failed transaction.

Sample

Request

The following section is a sample of request parameter:

curl --location --request POST 'https://merchants.midtrans.com/v1.0/transfer/status' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxMmUzODE4Mi00YjIxLTQ0YWMtOTVkNi1mMjFhMjEwZmIxZTAiLCJjbGllbnRJZCI6IjY2ODA1MmUzNGYxOTRhYThiZTc5ZTE1YTIxZTRmYzJmIiwibmJmIjoxNjYzODQwNTU5LCJleHAiOjE2NjM4NDE0NTksImlhdCI6MTY2Mzg0MDU1OX0.fEr0vIbB2kY8alZ-SROl3ftAFbfRd0uU-lGq9XuFi8M' \
--header 'Content-Type: application/json' \
--header 'X-TIMESTAMP: 2022-03-04T08:02:09+07:00' \
--header 'X-SIGNATURE: yqmBXZ3yV6NPG1LtwXMm3quXzJMRX5Ms+r9ebc5xWIZGSKbZL3Oy871GHb7WQUucLa5nxN/HcnZYoNHc+KkWTQ==' \
--header 'X-PARTNER-ID: 668052e34f194aa8be79e15a21e4fc2f' \
--header 'X-EXTERNAL-ID: 91919644194391346361915387229113' \
--header 'CHANNEL-ID: 95221' \
--data-raw '{
   "originalPartnerReferenceNo": "61945219227478976148442931867349",
	 "serviceCode": "17"
}'

Response

The following section is a sample of response parameter:

Content-Type : application/json
x-timestamp  : 2022-03-04T08:02:09+07:00
-------------------------------------------------------------------------------
{
   "responseCode": "2003600",
   "responseMessage": "Successful",
   "originalReferenceNo": "61945219227478976148442931867349",
   "originalPartnerReferenceNo": "61945219227478976148442931867349",
   "serviceCode": "17",
   "amount": {
     "value": "12345678.00",
     "currency": "IDR"
   },
   "transactionDate": "2009-07-03T12:08:56+07:00",
   "latestTransactionStatus": "00",
   "transactionStatusDesc": "Completed",
   "referenceNumber": "61945219227478976148442931867349",
   "beneficiaryAccountNo": "33287352",
   "sourceAccountNo": "1234567890",
   "additionalInfo": {
     "failureReason": ""
   }
}
-------------------------------------------------------------------------------
{
   "responseCode": "2003600",
   "responseMessage": "Successful",
   "originalReferenceNo": "61945219227478976148442931867349",
   "originalPartnerReferenceNo": "61945219227478976148442931867349",
   "serviceCode": "17",
   "amount": {
     "value": "12345678.00",
     "currency": "IDR"
   },
   "transactionDate": "2009-07-03T12:08:56+07:00",
   "latestTransactionStatus": "06",
   "transactionStatusDesc": "Failed",
   "referenceNumber": "61945219227478976148442931867349",
   "beneficiaryAccountNo": "33287352",
   "sourceAccountNo": "1234567890",
   "additionalInfo": {
     "failureReason": "payload validation failed"
   }
}
-------------------------------------------------------------------------------
{
   "responseCode": "2003600",
   "responseMessage": "Successful",
   "originalReferenceNo": "",
   "originalPartnerReferenceNo": "61945219227478976148442931867349",
   "serviceCode": "17",
   "amount": {
     "value": "0.00",
     "currency": "IDR"
   },
   "transactionDate": "",
   "latestTransactionStatus": "07",
   "transactionStatusDesc": "Not Found",
   "referenceNumber": "",
   "beneficiaryAccountNo": "",
   "sourceAccountNo": "",
   "additionalInfo": {
     "failureReason": ""
   }
}

Content-Type : application/json
x-timestamp  : 2022-03-04T08:02:09+07:00
-------------------------------------------------------------------------------
{"responseCode": "4013600", "responseMessage": "Unauthorized. Client"}

Migration

Request

The following table is a comparison of request parameter:

Payouts non-SNAP-based (current)Payouts SNAP-basedDescription
GET /api/v1/payouts/#{reference_no}POST /{version}/transfer/status
{reference_no}originalPartnerReferenceNoTransaction identifier on service consumer system
serviceCodeTransaction type indicator (service code of the original transaction request)

Response

The following table is a comparison of response parameter:

Payouts non-SNAP-based (current)Payouts SNAP-basedDescription
responseCodeResponse code
responseMessageResponse description
reference_nooriginalReferenceNoTransaction identifier on service provider system. Must be filled upon successful transaction
originalPartnerReferenceNoTransaction identifier on service consumer system
serviceCodeTransaction type indicator (service code of the original transaction request)
amountamount.valueNet amount of the transaction.
If it’s IDR then value includes 2 decimal digits.
e.g. IDR 10.000, will be placed with 10000.00
amount.currencyCurrency (should always be IDR)
created_attransactionDatePayout creation date in ISO8601 format
statuslatestTransactionStatus00 - Success: completed / payout request is sent to the bank and received by beneficiary account
01 - Initiated: queued / payout is waiting to be approved
02 - Paying: approved / payout is waiting to be executed
03 - Pending: processed / payout request is sent to the bank and completed
05 - Rejected: rejected / payout is rejected by approver
06 - Failed: failed / payout didn’t go through
07 - Not found: payout didn’t created
transactionStatusDescDescription of transaction status
reference_noreferenceNumberReference number from the system
beneficiary_accountbeneficiaryAccountNoAccount number of the beneficiary
sourceAccountNoFor Facilitator: Bank account ID used on the transfer request
For Aggregator: 0000000000
additionalInfo.failureReasonReason for failure. Must be filled upon a failed transaction.

Response Codes

Payouts non-SNAP-based (current)Payout SNAP-basedDescription
2003600Successful
4003601Invalid Field Format [fieldName]
4003602Missing Mandatory Field [fieldName]
4013600Unauthorized
4013601Invalid Token (B2B)
5003601Internal Server Error