Intrabank Transfer

This section will explain how merchants can initiate intrabank transfer using SNAP specification.

ServiceCodeMethodURLDescription
17POST/{version}/transfer-intrabankAPI Trigger Intrabank Transfer

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 Name

Attrib.

Datatype

Description

partnerReferenceNo

M

String(64)

Transaction identifier on service consumer system
Uniqueness checking will be done within 2 (two) months only. If the same partnerReferenceNo reused after 2 months, we will treat it as new request.

amount.value

M

String(16,2)

Net amount of the transaction.
If it’s IDR, then the value includes 2 decimal digits.
e.g. IDR 10.000, will be placed with 10000.00

amount.currency

M

String(3)

Currency (should always be IDR)

beneficiaryAccountNo

M

String(34)

Beneficiary account number

beneficiaryEmail

O

String(50)

Beneficiary Email

remark

M

String(50)

Remark/transaction description. Unique is encouraged
Previously remark could have been maximum 100 characters, under Open API it is restricted to maximum 50 characters.

sourceAccountNo

M

String(19)

  • *For Facilitator**: Bank account ID registered in Payouts for facilitator model, can be accessed in Midtrans Dashboard in Bank Accounts menu.
  • *For Aggregator**: 0000000000

transactionDate

M

String(25)

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

originatorInfos

M

Array of Objects

The Originator Customer Account Details
To be filled if there is a request from the sender or if the consent from sender has been granted.
This is subject to Article 8 paragraph 5 of Law No. 3 of 2011 concerning Fund Transfers.
Also check for other provisions, such as the PPATK regulation.

originatorInfos.originatorCustomerNo

M

String(34)

Originator customer account number

originatorInfos.originatorCustomerName

M

String(100)

Originator customer account name

originatorInfos.originatorBankCode

M

String(11)

Originator bank code

additionalInfo.beneficiaryAccountName

M

String(100)

Name of the beneficiary

additionalInfo.beneficiaryBankCode

M

String(8)

3 digit BI Bank Code + 4 digit BI Branch Code for the beneficiary bank

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

referenceNo

C

String(64)

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

partnerReferenceNo

M

String(64)

Transaction identifier on service consumer system

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)

beneficiaryAccountNo

M

String(34)

Beneficiary account number

sourceAccountNo

O

String(19)

  • *For Facilitator**: Bank account ID registered in Payouts for facilitator model, can be accessed in Midtrans Dashboard in Bank Accounts menu.
  • *For Aggregator**: 0000000000

transactionDate

M

String(25)

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

originatorInfos

M

Array of Objects

The Originator Customer Account Details
To be filled if there is a request from the sender or if the consent from sender has been granted.
This is subject to Article 8 paragraph 5 of Law No. 3 of 2011 concerning Fund Transfers.
Also check for other provisions, such as the PPATK regulation.

originatorInfos.originatorCustomerNo

M

String(34)

Originator customer account number

originatorInfos.originatorCustomerName

M

String(100)

Originator customer account name

originatorInfos.originatorBankCode

M

String(11)

Originator bank code

additionalInfo.beneficiaryAccountName

M

String(100)

Name of the beneficiary

additionalInfo.beneficiaryBankCode

M

String(8)

3 digit BI Bank Code + 4 digit BI Branch Code for the beneficiary bank

Sample

Request

The following section is a sample of request parameter:

curl --location --request POST 'https://merchants.midtrans.com/v1.0/transfer-intrabank' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxMmUzODE4Mi00YjIxLTQ0YWMtOTVkNi1mMjFhMjEwZmIxZTAiLCJjbGllbnRJZCI6IjY2ODA1MmUzNGYxOTRhYThiZTc5ZTE1YTIxZTRmYzJmIiwibmJmIjoxNjYzODQwNTU5LCJleHAiOjE2NjM4NDE0NTksImlhdCI6MTY2Mzg0MDU1OX0.fEr0vIbB2kY8alZ-SROl3ftAFbfRd0uU-lGq9XuFi8M' \
--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 '{
   "partnerReferenceNo": "61945219227478976148442931867349",
   "amount": { "value": "100000.00", "currency": "IDR" },
   "beneficiaryAccountNo": "1172993826",
   "beneficiaryEmail": "[email protected]",
   "remark": "Payout April 17",
   "sourceAccountNo": "bnia750516c",
   "transactionDate": "2021-12-07T23:02:03+07:00",
   "originatorInfos": [
          {
              "originatorCustomerNo": "0192873719",
              "originatorCustomerName": "James",
              "originatorBankCode": "014",
          },
          {
              "originatorCustomerNo": "8739182635",
              "originatorCustomerName": "Richard",
              "originatorBankCode": "014",
          }
     ],
   "additionalInfo": {
       "beneficiaryAccountName": "Jon Snow",
       "beneficiaryBankCode": "0020307"
   }
}'

Response

The following section is a sample of response parameter:

Content-Type : application/json
x-timestamp  : 2022-03-04T08:02:09+07:00
-------------------------------------------------------------------------------
{
   "responseCode": "2021700",
   "responseMessage": "Request In Progress",
   "referenceNo": "558rFI9lxMdQlOkm65",
   "partnerReferenceNo": "61945219227478976148442931867349",
   "amount": { "value": "100000.00", "currency": "IDR" },
   "beneficiaryAccountNo": "1172993826",
   "beneficiaryEmail": "[email protected]",
   "sourceAccount": "bnia750516c",
   "transactionDate": "2021-12-07T23:02:03+07:00",
   "originatorInfos": [
         {
             "originatorCustomerNo": "0192873719",
             "originatorCustomerName": "James",
             "originatorBankCode": "014",
         },
         {
             "originatorCustomerNo": "8739182635",
             "originatorCustomerName": "Richard",
             "originatorBankCode": "014",
         }
    ],
   "additionalInfo": {
       "beneficiaryAccountName": "Jon Snow",
       "beneficiaryBankCode": "0020307"
   }
}
Content-Type : application/json
x-timestamp  : 2022-03-04T08:02:09+07:00
-------------------------------------------------------------------------------
{"responseCode": "4001700", "responseMessage": "Bad Request. Beneficiary Account not found"}

Migration

Request

The following table is a comparison of request parameter:

Payouts non-SNAP-based (current)

Payouts SNAP-based

Description

partnerReferenceNo

Transaction identifier on service consumer system

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)

beneficiary_account

beneficiaryAccountNo

Beneficiary account number

beneficiary_email

beneficiaryEmail

Beneficiary email

notes

remark

Remark/transaction description

Previously remark could have been maximum 100 characters, under Open API it is restricted to maximum 50 characters.

bank_account_id

sourceAccountNo

  • *For Facilitator**: Bank account ID registered in Payouts for facilitator model, can be accessed in Midtrans Dashboard in Bank Accounts menu.
  • *For Aggregator**: 0000000000

transactionDate

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

beneficiary_name

additionalInfo.beneficiaryAccountName

Name of the beneficiary

beneficiary_bank

Bank name used by the beneficiary

additionalInfo.beneficiaryBankCode

3 digit BI Bank Code + 4 digit BI Branch Code for the beneficiary bank

Response

The following table is a comparison of response parameter:

Payouts non-SNAP-based (current)

Payouts SNAP-based

Description

status

Payout Status

responseCode

Response code

responseMessage

Response description

reference_no

referenceNo

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

partnerReferenceNo

Transaction identifier on service consumer system

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)

beneficiaryAccountNo

Beneficiary account

sourceAccountNo

  • *For Facilitator**: Bank account ID registered in Payouts for facilitator model, can be accessed in Payouts Dashboard in Bank Accounts menu.
  • *For Aggregator**: 0000000000

transactionDate

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

originatorInfos[*].originatorCustomerNo

Originator customer account number

originatorInfos[*].originatorCustomerName

Originator customer account name

originatorInfos[*].originatorBankCode

Originator bank code

additionalInfo.beneficiaryName

Name of the beneficiary

additionalInfo.beneficiaryBankCode

3 digit BI Bank Code + 4 digit BI Branch Code for the beneficiary bank

Response Codes

Payouts non-SNAP-based (current)Payout SNAP-basedDescription
2021700Request In Progress
4001700Bad Request
4001701Invalid Field Format [fieldName]
4001702Missing Mandatory Field [fieldName]
4011700Unauthorized
4011701Invalid Token (B2B)
4091701Duplicate partnerReferenceNo
5001700Internal Server Error

Notes:

If you received 5xx error during transfer, please do status inquiry before recreating new transfer request just to be sure we have not proceed the previous request.