Bank Transfer API

The following endpoint to submit bank transfer pay outs

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Bank Transfer API will transfer the fund to the destination account based on beneficiaryBankCode and beneficiaryAddress only without considering beneficiaryAccountName. To ensure correct destination please verify the beneficiaryAccountName using Bank Account Inquiry API.

📘

Using RTGS for high value transfers

Set transferMethod to rtgs inside additionalInfo to disburse amounts of IDR 250,000,000 and above. RTGS transfers behave differently from BI-FAST:

  • Not real-time. A 2001800 response confirms Durianpay accepted the request, not that funds reached the beneficiary.
  • Poll the Bank Transfer Status Inquiry API or wait for the disbursement webhook to receive the final status. Bank Indonesia's SLA for RTGS settlement is 4 hours.
⚠️

originatorInfos becomes mandatory, 14 September 2026

Upcoming change, effective Monday, 14 September 2026:

Originator information becomes mandatory on this endpoint. From that date, requests that do not include originatorCustomerName, originatorIdentityType, originatorIdentityNo, and originatorCountry will be rejected with response code 4001802, and no disbursement will be created. See Originator Information below in the Body Request section.

Body Params
string
required

Unique transaction identifier on merchant system which assigned to each transaction

amount
object
required

JSON object with keys: value and currency. Example: {"value": "20000.00", "currency": "IDR"}

string
required

The name of the recipient account.

string
required

The account number of the recipient.

string
required

The bank code of the account, you get the list from fetch bank list API

string

Address of transfer destination

string

Name of the bank destination. example: Bank BRI

string

Email address of the destination

string

Currency of the transaction i.e. IDR

string

Reference Number / No Referral / Transaction ID

string
required

Identifier of source account. its value is the same as merchant id

string
required

Transaction date in ISO8601 format. Example: 2019-07-03T12:08:56-07:00

originatorInfos
array of objects
required

Information identifying the originator, meaning the party on whose behalf the funds are being transferred. Required on every request from 14 September 2026, under Article 8 paragraph 5 of Law No. 3 of 2011 concerning Fund Transfers and related PPATK provisions. Submit the details of whichever party is the true sender of the funds: your end-customer where you are disbursing funds belonging to them, or your own company where you are disbursing your own funds. You do not need to declare which applies.

originatorInfos*
additionalInfo
object

The field for additional information. JSON object with keys: deviceId, channel, transferMethod and originatorAdditionalInfos. Example: {"deviceId": "1234567", "channel": "mobilephone", "transferMethod": "rtgs"}

Headers
string
required

Timestamp in ISO8601 format, Example: 2024-05-14T18:54:57+07:00

string
required

Signature generated by encrypting HTTP method, relative path, access token, minified request body, and timestamp

string
required

Unique ID for a partner given by Durianpay upon completing registration. Its value is same as the X-CLIENT-KEY

string
required

Unique messaging reference identifier generated by merchant and should be unique within the same day

string
required

Device identification on which the API services is currently being accessed by the merchant. Possible value: 95221

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
text/plain