Payment to VA from Intra Bank

This section will explain how merchants can initiate Payment to Virtual Account from Intrabank using SNAP specification.

ServiceCodeMethodURLDescription
33POST/{version}/transfer-va/payment-intrabankAPI Payment VA

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.

inquiryRequestId

O

String(128)

If inquiry VA is used in tandem with payment VA, then fill this field with value from inquiry VA’s response

partnerServiceId

M

String(8)

Fill with placeholder value of “00000000”, we will not check this field

customerNo

M

String(20)

Fill with placeholder value of “00000000”, we will not check this field

virtualAccountNo

M

String(28)

Customer virtual account number

sourceAccountNo

M

String(19)

For Facilitator: Bank account ID registered in Iris for facilitator model, can be accessed in IRIS Portal in Bank Accounts menu.
For Aggregator: 0000000000

paidAmount.value

M

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

paidAmount.currency

M

String(3)

Currency (should always be IDR)

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

virtualAccountData

M

Object

{}.partnerReferenceNo

M

String(64)

Transaction Identifier On service Consumer System

{}.inquiryRequestId

O

String(128)

inquiryRequestId from request

{}.referenceNo

C

String(64)

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

{}.partnerServiceId

M

String(8)

Filled with placeholder value of “00000000”

{}.customerNo

M

String(20)

Filled with placeholder value of “00000000”

{}.virtualAccountNo

M

String(28)

Customer virtual account number

{}.virtualAccountName

M

String(255)

Customer name
Filled with placeholder value of “virtual-account-name”

{}.sourceAccountNo

M

String(19)

For Facilitator: Bank account ID registered in Iris for facilitator model, can be accessed in IRIS Portal in Bank Accounts menu.
For Aggregator: 0000000000

{}.paidAmount.value

M

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

{}.paidAmount.currency

M

String(3)

Currency (should always be IDR)

{}.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-va/payment-intrabank' \
--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 '{"partnerReferenceNo":"158dd631-e5bb-4697-9530-2f3821ec4e20","inquiryRequestId":"158dd631e5bb469795302f3821ec4e20","partnerServiceId":"00000000","customerNo":"00000000","virtualAccountNo":"80777087897654374","sourceAccountNo":"bca2750516c","paidAmount":{"value":"25000.00","currency":"IDR"},"additionalInfo":{"beneficiaryBankCode":"0140397"}}'

Response

The following section is a sample of response parameter:

Content-Type : application/json
x-timestamp  : 2022-03-04T08:02:09+07:00
-------------------------------------------------------------------------------
{
    "responseCode": "2023300",
    "responseMessage": "Request In Progress",
    "virtualAccountData": {
        "partnerReferenceNo": "158dd631-e5bb-4697-9530-2f3821ec4e20",
        "inquiryRequestId": "158dd631e5bb469795302f3821ec4e20",
        "referenceNo": "l3hc0d4oy1639vln3b",
        "partnerServiceId": "00000000",
        "customerNo": "00000000",
        "virtualAccountNo": "80777087897654374",
        "virtualAccountName": "virtual-account-name",
        "sourceAccountNo": "bca2750516c",
        "paidAmount": {
            "value": "25000.00",
            "currency": "IDR"
        }
    },
    "additionalInfo": {
        "beneficiaryBankCode": "0140397"
    }
}

Content-Type : application/json
x-timestamp  : 2022-03-04T08:02:09+07:00
-------------------------------------------------------------------------------
{"responseCode": "5003300", "responseMessage": "Internal Server Error"}

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

inquiryRequestId

If inquiry VA is used in tandem with payment VA, then fill this field with value from inquiry VA’s response

partnerServiceId

Fill with placeholder value of “00000000”, we will not check this field

customerNo

Fill with placeholder value of “00000000”, we will not check this field

beneficiary_account

virtualAccountNo

Beneficiary virtual account number

beneficiary_email

Beneficiary Email

notes

Remark/transaction description

bank_account_id

sourceAccountNo

For Facilitator: Bank account ID registered in Iris for facilitator model, can be accessed in IRIS Portal in Bank Accounts menu.
For Aggregator: 0000000000

amount

paidAmount.value

Net amount of the transaction.

If it’s IDR then value includes 2 decimal digits.

paidAmount.currency

Currency (should always be IDR)

beneficiary_name

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

partnerReferenceNo

Transaction identifier on service consumer system

inquiryRequestId

inquiryRequestId from request

reference_no

referenceNo

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

partnerServiceId

customerNo

virtualAccountNo

Beneficiary Account

virtualAccountName

sourceAccountNo

For Facilitator: Bank account ID registered in Iris for facilitator model, can be accessed in IRIS Portal in Bank Accounts menu.
For Aggregator: 0000000000

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

paidAmount.currency

Currency (should always be IDR)

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
2023300Request In Progress
4003300Bad Request
4003301Invalid Field Format [fieldName]
4003302Missing Mandatory Field [fieldName]
4013300Unauthorized
4013301Invalid Token (B2B)
4093301Duplicate partnerReferenceNo
5003300Internal 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.