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.

📘

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.

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

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 <AccessToken>
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 Name

Attrib.

Datatype

Description

responseCode

M

String(7)

Response code

responseMessage

M

String(150)

Response description

originalReferenceNo

C

String(64)

Transaction identifier on service provider system. Must be filled upon successful transaction

originalPartnerReferenceNo

M

String(64)

Transaction identifier on service consumer system

serviceCode

M

String(2)

Transaction type indicator (service code of the original transaction request)

amount.value

O

String(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.currency

O

String(3)

Currency (should always be IDR)

transactionDate

M

String(25)

Transaction date : ISO 8601 (without millis). e.g “yyyy-MM-ddTHH:mm:ssZ”

latestTransactionStatus

M

String(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

transactionStatusDesc

M

String(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

referenceNumber

M

String(30)

Reference Number from the system

beneficiaryAccountNo

M

String(34)

Account number of the Beneficiary

sourceAccountNo

M

String(19)

  • *For Facilitator**: Bank account ID used on the transfer request
  • *For Aggregator**: 0000000000

additionalInfo.failureReason

C

String(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-based

Description

responseCode

Response code

responseMessage

Response description

reference_no

originalReferenceNo

Transaction identifier on service provider system. Must be filled upon successful transaction

originalPartnerReferenceNo

Transaction identifier on service consumer system

serviceCode

Transaction type indicator (service code of the original transaction request)

amount

amount.value

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.currency

Currency (should always be IDR)

created_at

transactionDate

Payout creation date in ISO8601 format

status

latestTransactionStatus

00 - 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

transactionStatusDesc

Description of transaction status

reference_no

referenceNumber

Reference number from the system

beneficiary_account

beneficiaryAccountNo

Account number of the beneficiary

sourceAccountNo

For Facilitator: Bank account ID used on the transfer request
For Aggregator: 0000000000

additionalInfo.failureReason

Reason 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