Testing Magic Amounts (Sandbox)
Untuk keperluan testing di sandbox environment, terdapat beberapa magic amounts yang dapat digunakan untuk mensimulasikan berbagai skenario disbursement tanpa melakukan transaksi sebenarnya:
Success Test Cases
Gunakan salah satu dari amount berikut untuk mendapatkan response sukses:
| Amount | Status | Description |
|---|
199119.00 | SUCCESS | Disbursement berhasil |
190145.00 | SUCCESS | Disbursement berhasil |
Failed Test Cases
Gunakan amount berikut untuk mensimulasikan kegagalan disbursement:
| Amount | Status | Response Code | Response Message | Description |
|---|
299229.00 | FAILED | - | - | Disbursement gagal (generic failure) |
123986.00 | FAILED | 51 | "Insufficient fund/ over credit limit" | Disbursement gagal karena saldo tidak mencukupi |
Validate (Inquiry) Bank Account
API Validate (Inquiry) Bank Account adalah layanan API yang memungkinkan Merchant untuk memverifikasi keabsahan nomor rekening bank tujuan sebelum melakukan transaksi disbursement. Melalui layanan ini, Merchant dapat memasukkan nomor rekening dan kode bank penerima untuk memastikan bahwa detail rekening tersebut valid dan terdaftar. API ini memberikan informasi mengenai nama pemilik rekening sebagai konfirmasi kepada Merchant sebelum melanjutkan proses transfer.
- Method:
POST
- Type:
application/json
- Path:
/disbursement/v1.0/account-inquiry-external
- Service Code:
16
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| Content-Type | string | ✓ | String yang menunjukkan jenis media. | application/json |
| X-TIMESTAMP | string | ✓ | ISO-8601 | 2022-09-16T13:00:00+07:00 |
| X-SIGNATURE | string | ✓ | Lihat Disini bagian symmetric signature | |
| X-PARTNER-ID | string | ✓ | Disbursement secret key dari dashboard Doitpay | 01JP4QP4R908GVK9X5KN7YCJEG |
| X-EXTERNAL-ID | string(64) | ✓ | Request ID yang unik. | |
| CHANNEL-ID | string | | Nilai seharusnya DOITPAY | |
| Authorization | string | ✓ | Otentikasi dengan bearer token lihat disini pada bagian access token | Bearer ZGMyNDA3NWQtNmM4Ny00NGNiLTQ2NTAtMDhkYWMxNTAzNzY0 |
Request Body Validate (Inquiry)
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| beneficiaryBankCode | string | ✓ | The bank code of the account. (work with swift code or BI code) | 002/BRINIDJA |
| beneficiaryAccountNo | string | ✓ | The account number of the recipient. | 1234567890 |
| partnerReferenceNo | string | ✓ | Transaction identifier on customers' service | 11223344 |
additionalInfo Validate (Inquiry)
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| deviceId | string | | device id of the request source | 123456789 |
| amount | object | Conditional | amount mandatori di beberapa integrasi sesuai kesepakatan bisnis | |
| channel | string | | channel of the request source | mobilephone |
amount Validate (Inquiry)
| Parameter | Type | Mandatori | Keterangan | Contoh |
|---|
value | string | Conditional | Jumlah yang ingin ditransfer dengan format ISO 4217 | 10000.00 |
currency | string | Conditional | currency of transfer | IDR |
Example Validate (Inquiry)
{
"beneficiaryAccountNo": "087783146495",
"beneficiaryBankCode": "002",
"partnerReferenceNo": "11223344",
"additionalInfo": {
"deviceId": "12345679237",
"channel": "mobilephone",
"amount": {
"currency": "IDR",
"value": "12345678.00"
}
}
}
Response Body Validate (Inquiry)
| Parameter | Tipe | Keterangan |
|---|
| responseCode | string | Kode response, lihat bagian daftar Response Code di bawah |
| responseMessage | string | Penjelasan terhadap response code yang diterima |
| beneficiaryAccountName | string | Nama pemilik akun bank yang sudah divalidasi |
| beneficiaryAccountNo | string | Nomor bank account yang sudah divalidasi |
| beneficiaryBankCode | string | Bank code |
| beneficiaryBankName | string | Nama bank |
{
"responseCode": "2001600",
"responseMessage": "Success",
"partnerReferenceNo": "20201029000000000001",
"beneficiaryAccountName": "NAMAKU",
"beneficiaryAccountNo": "7647654564346543",
"beneficiaryBankCode": "002",
"beneficiaryBankName": "bri",
"currency": "IDR",
"additionalInfo": {
"emoneySourceAccountNo": "",
"amount": {
"currency": "IDR",
"value": "12345678.00"
}
}
}
Create Disbursement
API Create Disbursement adalah layanan API yang memungkinkan Merchant untuk melakukan proses transfer dana ke rekening bank tujuan penerima (beneficiary). Dalam layanan ini, Merchant dapat membuat permintaan disbursement baru dengan memasukkan nomor rekening penerima (bankAccountNo), kode bank (bankCode), dan jumlah yang akan ditransfer (amount). Setiap permintaan disbursement akan menghasilkan ID transaksi unik (referenceNo) yang berfungsi sebagai identifikasi transaksi.
- Method:
POST
- Type:
application/json
- Path:
/disbursement/v1.0/transfer-interbank
- Service Code:
18
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| Content-Type | string | ✓ | String yang menunjukkan jenis media. | application/json |
| X-TIMESTAMP | string | ✓ | ISO-8601 | 2022-09-16T13:00:00+07:00 |
| X-SIGNATURE | string | ✓ | Lihat Disini bagian symmetric signature | |
| X-PARTNER-ID | string | ✓ | Disbursement secret key dari dashboard Doitpay | 01JP4QP4R908GVK9X5KN7YCJEG |
| X-EXTERNAL-ID | string(64) | ✓ | Request ID yang unik. | |
| CHANNEL-ID | string | | Nilai seharusnya DOITPAY | |
| Authorization | string | ✓ | Otentikasi dengan bearer token lihat disini pada bagian access token | Bearer ZGMyNDA3NWQtNmM4Ny00NGNiLTQ2NTAtMDhkYWMxNTAzNzY0 |
Request Body Create Disbursement
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| partnerReferenceNo | string | ✓ | Unique transaction identifier on merchant system which assigned to each transaction | 1234 |
| beneficiaryAccountNo | string | ✓ | Nomor rekening tujuan | 1234567890 |
| beneficiaryAccountName | string | ✓ | Nama pemilik rekening tujuan | |
| beneficiaryBankCode | string | ✓ | Kode bank tujuan transfer (bisa menggunakan BI code atau swift code) | 0001 |
| beneficiaryAddress | string | | alamat dari rekening tujuan | |
| beneficiaryBankName | string | | Nama bank tujuan | |
| beneficiaryEmail | string | | Email dari rekening tujuan | |
| transactionDate | string | ✓ | tanggal transaksi dengan format ISO8601 | |
| additionalInfo | object | ✓ | lihat tabel di bawah | |
| amount | object | ✓ | lihat tabel di bawah | |
| sourceAccountNo | string | ✓ | ID dari balance business (dapat diambil di dashboard) | 01H84J9X0R6T8GQ1Z4BRQYNPZX |
amount Create Disbursement
| Parameter | Type | Mandatori | Keterangan | Contoh |
|---|
value | string | ✓ | Jumlah yang ingin ditransfer dengan format ISO 4217. Di lingkungan sandbox, gunakan nilai Magic Amounts untuk memicu response tertentu. | 10000.00 |
currency | string | ✓ | currency of transfer | IDR |
additionalInfo Create Disbursement
| Parameter | Type | Mandatori | Keterangan | Contoh |
|---|
deviceId | string | | device id of the request source | 123456789 |
channel | string | | channel of the request source | mobilephone |
| validationReferenceNo | string | ✓ | partnerReferenceNo sent during account validation | 1122334455 |
| remark | string | | deskripsi transfer yang akan muncul di sisi penerima | testing |
Example Create Disbursement
{
"additionalInfo": {
"remark": "testing",
"validationReferenceNo": "69ff0334-ad89-4035-82ee-67ceedb74f4a"
},
"amount": { "currency": "IDR", "value": "11243.00" },
"beneficiaryAccountName": "test",
"beneficiaryAccountNo": "test",
"beneficiaryBankCode": "008",
"partnerReferenceNo": "dbede4ba-408b-4fa9-9b1f-70cd226d0e12",
"sourceAccountNo": "test",
"transactionDate": "2025-03-18T12:19:23+07:00"
}
Response Body Create Disbursement
| Parameter | Type | Keterangan |
|---|
| responseCode | string | Kode response, lihat bagian daftar Response Code di bawah |
| responseMessage | string | Penjelasan terhadap response code yang diterima |
| beneficiaryAccountNo | string | Lihat tabel di bawah ini |
| beneficiaryBankCode | string | Kode bank tujuan transfer (bisa menggunakan BI code atau swift code) |
| partnerReferenceNo | string | reference number yang merchant kirim ke doitpay |
| referenceNo | string | reference number yang doitpay kembalikan kepada merchant |
| sourceAccountNo | string | ID dari balance business (dapat diambil di dashboard)u |
| additionalInfo | object | |
additionalInfo Create Disbursement
| Key | Value | Description | Contoh |
|---|
| deviceId | string | | 123456567 |
| channel | string | | trx_123 |
| validationReferenceNo | string | referenceNo yang merchant kirim saat melakukan account validation | 12345 |
| remark | string | | testing |
{
"additionalInfo": {
"remark": "testing",
"validationReferenceNo": "69ff0334-ad89-4035-82ee-67ceedb74f4a"
},
"amount": {
"currency": "IDR",
"value": "12345678.00"
},
"beneficiaryAccountNo": "888801000003301",
"beneficiaryBankCode": "002",
"partnerReferenceNo": "111111111",
"referenceNo": "01G4C9YXKRQ4Q9N8A7CG89BZ6B",
"responseCode": "2021800",
"responseMessage": "Successful",
"sourceAccountNo": "01H84J9X0R6T8GQ1Z4BRQYNPZX"
}
Validate (Inquiry) E-Money Account
API Validate (Inquiry) E-Money Account adalah layanan API yang memungkinkan Merchant untuk memverifikasi keabsahan nomor akun e-money tujuan sebelum melakukan transaksi top-up. Melalui layanan ini, Merchant dapat memasukkan nomor customer dan platform code untuk memastikan bahwa detail akun tersebut valid dan terdaftar. API ini memberikan informasi mengenai nama pemilik akun sebagai konfirmasi kepada Merchant sebelum melanjutkan proses top-up.
- Method:
POST
- Type:
application/json
- Path:
/disbursement/v1.0/emoney/account-inquiry
- Service Code:
37
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| Content-Type | string | ✓ | String yang menunjukkan jenis media. | application/json |
| X-TIMESTAMP | string | ✓ | ISO-8601 | 2025-05-28T14:36:38+07:00 |
| X-SIGNATURE | string | ✓ | Lihat Disini bagian symmetric signature | |
| X-PARTNER-ID | string | ✓ | Disbursement secret key dari dashboard Doitpay | 01JA9X86Z8KHZ6WP6JAJGGXJPC |
| X-EXTERNAL-ID | string(64) | ✓ | Request ID yang unik. | 6365552 |
| CHANNEL-ID | string | | Nilai seharusnya DOITPAY | |
| Authorization | string | ✓ | Otentikasi dengan bearer token lihat disini pada bagian access token | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9... |
Request Body Validate (Inquiry)
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| customerNumber | string | ✓ | Nomor customer e-money yang akan diverifikasi | 62811742234 |
| partnerReferenceNo | string | ✓ | Transaction identifier on customers' service | 34173491-36d9-4ab0-b5ad-7e92c7a48244 |
| additionalInfo | object | ✓ | lihat tabel di bawah | |
additionalInfo Validate (Inquiry)
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| platformCode | string | ✓ | Kode platform e-money (DANA) | DANA |
| amount | object | Conditional | amount mandatori di beberapa integrasi sesuai kesepakatan bisnis | |
amount Validate (Inquiry)
| Parameter | Type | Mandatori | Keterangan | Conditionalontoh |
|---|
value | string | Conditional | Jumlah yang ingin ditransfer dengan format ISO 4217 | 10000.00 |
currency | string | Conditional | currency of transfer | IDR |
Example Validate (Inquiry)
{
"additionalInfo": {
"platformCode": "DANA",
"amount": {
"currency": "IDR",
"value": "12345678.00"
}
},
"customerNumber": "62811742234",
"partnerReferenceNo": "34173491-36d9-4ab0-b5ad-7e92c7a48244"
}
Response Body Validate (Inquiry)
| Parameter | Tipe | Keterangan |
|---|
| responseCode | string | Kode response, lihat bagian daftar Response Code di bawah |
| responseMessage | string | Penjelasan terhadap response code yang diterima |
| customerName | string | Nama pemilik akun e-money yang sudah divalidasi |
| customerNumber | string | Nomor customer e-money yang sudah divalidasi |
| additionalInfo | object | Informasi tambahan terkait validasi |
{
"additionalInfo": {
"isFeeChargedToUser": false,
"amount": {
"currency": "IDR",
"value": "12345678.00"
}
},
"customerName": "DNID dXX",
"customerNumber": "62811742234",
"responseCode": "2003700",
"responseMessage": "Request has been processed successfully"
}
Create E-Money Top-Up
API Create E-Money Top-Up adalah layanan API yang memungkinkan Merchant untuk melakukan proses top-up dana ke akun e-money tujuan penerima (customer). Dalam layanan ini, Merchant dapat membuat permintaan top-up baru dengan memasukkan nomor customer, platform code, dan jumlah yang akan di-top-up (amount). Setiap permintaan top-up akan menghasilkan ID transaksi unik (referenceNo) yang berfungsi sebagai identifikasi transaksi.
- Method:
POST
- Type:
application/json
- Path:
/disbursement/v1.0/emoney/topup
- Service Code:
38
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| Content-Type | string | ✓ | String yang menunjukkan jenis media. | application/json |
| X-TIMESTAMP | string | ✓ | ISO-8601 | 2025-05-28T14:36:44+07:00 |
| X-SIGNATURE | string | ✓ | Lihat Disini bagian symmetric signature | |
| X-PARTNER-ID | string | ✓ | Disbursement secret key dari dashboard Doitpay | 01JA9X86Z8KHZ6WP6JAJGGXJPC |
| X-EXTERNAL-ID | string(64) | ✓ | Request ID yang unik. | 6365552 |
| CHANNEL-ID | string | | Nilai seharusnya DOITPAY | |
| Authorization | string | ✓ | Otentikasi dengan bearer token lihat disini pada bagian access token | Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9... |
Request Body Create E-Money Top-Up
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| partnerReferenceNo | string | ✓ | Unique transaction identifier on merchant system which assigned to each transaction | 333e6bad-15b2-450e-a218-150372f1c6cb |
| customerNumber | string | ✓ | Nomor customer e-money tujuan | 62811742234 |
| customerName | string | ✓ | Nama pemilik akun e-money tujuan | DNID dXX |
| additionalInfo | object | ✓ | lihat tabel di bawah | |
| amount | object | ✓ | lihat tabel di bawah | |
amount Create E-Money Top-Up
| Parameter | Type | Mandatori | Keterangan | Contoh |
|---|
value | string | ✓ | Jumlah yang ingin ditransfer dengan format ISO 4217 | 10005.00 |
currency | string | ✓ | currency of transfer | IDR |
additionalInfo Create E-Money Top-Up
| Parameter | Type | Mandatori | Keterangan | Contoh |
|---|
emoneySourceAccountNo | string | ✓ | ID dari balance business (dapat diambil di dashboard) | 01J7MQEXHT8PTAKTHSW077V70T |
platformCode | string | ✓ | Kode platform e-money (DANA, OVO, dll) | DANA |
| validationReferenceNo | string | ✓ | partnerReferenceNo sent during account validation | 34173491-36d9-4ab0-b5ad-7e92c7a48244 |
| remark | string | | deskripsi transfer yang akan muncul di sisi penerima | testing bifast doitpay |
Example Create E-Money Top-Up
{
"additionalInfo": {
"emoneySourceAccountNo": "01J7MQEXHT8PTAKTHSW077V70T",
"platformCode": "DANA",
"remark": "testing",
"validationReferenceNo": "34173491-36d9-4ab0-b5ad-7e92c7a48244"
},
"amount": {
"currency": "IDR",
"value": "10005.00"
},
"customerName": "DNID dXX",
"customerNumber": "62811742234",
"partnerReferenceNo": "333e6bad-15b2-450e-a218-150372f1c6cb"
}
Response Body Create E-Money Top-Up
| Parameter | Type | Keterangan |
|---|
| responseCode | string | Kode response, lihat bagian daftar Response Code di bawah |
| responseMessage | string | Penjelasan terhadap response code yang diterima |
| customerNumber | string | Nomor customer e-money yang sudah di-top-up |
| partnerReferenceNo | string | reference number yang merchant kirim ke doitpay |
| referenceNo | string | reference number yang doitpay kembalikan kepada merchant |
| amount | object | Jumlah dan mata uang yang di-top-up |
| additionalInfo | object | Informasi tambahan terkait transaksi |
{
"additionalInfo": {
"isFeeChargedToUser": false
},
"amount": {
"value": "10005.00",
"currency": "IDR"
},
"customerNumber": "62811742234",
"partnerReferenceNo": "",
"referenceNo": "DIS_01JWAX4Y2EJNK0YHG4QKBTPZRM",
"responseCode": "2023800",
"responseMessage": "Request has been processed successfully"
}
Check Disbursement Status
API Check Disbursement Status adalah layanan API yang memungkinkan Merchant untuk mengetahui status dari transaksi disbursement yang telah dibuat sebelumnya. Dengan menggunakan refereceNo atau partnerReferenceNo yang terkait dengan disbursement tersebut, Merchant dapat memeriksa apakah proses disbursement telah berhasil, sedang diproses, atau mengalami kendala. Layanan ini membantu Merchant memantau status terkini dari setiap transaksi transfer dana yang dilakukan ke rekening bank tujuan.
- Method:
POST
- Type:
application/json
- Path:
/disbursement/v1.0/transfer/status
- Service Code:
36
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| Content-Type | string | ✓ | String yang menunjukkan jenis media. | application/json |
| X-TIMESTAMP | string | ✓ | ISO-8601 | 2022-09-16T13:00:00+07:00 |
| X-SIGNATURE | string | ✓ | Lihat Disini bagian symmetric signature | |
| X-PARTNER-ID | string | ✓ | Disbursement secret key dari dashboard Doitpay | 01JP4QP4R908GVK9X5KN7YCJEG |
| X-EXTERNAL-ID | string(64) | ✓ | Request ID yang unik. | |
| CHANNEL-ID | string | | Nilai seharusnya DOITPAY | |
| Authorization | string | ✓ | Otentikasi dengan bearer token lihat disini pada bagian access token | Bearer ZGMyNDA3NWQtNmM4Ny00NGNiLTQ2NTAtMDhkYWMxNTAzNzY0 |
Request Body Check Disbursement
| Parameter | Type | Mandatori | Keterangan | Contoh |
|---|
| originalPartnerReferenceNo | string | ✓ | reference number yang merchant kirim ke doitpay | 1234 |
| originalReferenceNo | string | | reference number yang doitpay kembalikan kepada merchant | 1234567890 |
| serviceCode | string | ✓ | Nilai seharusnya 18 | |
| transactionDate | string | | waktu disbursement yang merchant kirim | 0001 |
| additionalInfo | object | | | |
| amount | object | | | |
Example Check Disbursement
{
"originalPartnerReferenceNo": "test_fee_9",
"serviceCode": "18",
"transactionDate": "2019-07-03T12:08:56-07:00",
"amount": {
"value": "12345678",
"currency": "IDR"
}
}
Response Body Check Disbursement
| Parameter | Type | Keterangan |
|---|
| responseCode | string | Kode response, lihat bagian daftar Response Code di bawah |
| responseMessage | string | Penjelasan terhadap response code yang diterima |
| beneficiaryAccountNo | string | |
| beneficiaryBankCode | string | |
| latestTransactionStatus | string | status saat ini. 00 = success, 03 = pending, 06 = failed |
| transactionStatusDesc | string | deskripsi dari status |
| originalPartnerReferenceNo | string | reference number yang merchant kirim ke sistem doitpay |
| originalReferenceNo | string | reference number dari doitpay |
| currency | string | mata uang yang digunakan pada disbursement |
| amount | object | lihat tabel di bawah |
| sourceAccountNo | string | ID dari balance yang digunakan untuk disbursement |
amount Check Disbursement
| Parameter | Type | Mandatori | Keterangan | Contoh |
|---|
value | string | | Jumlah yang ingin ditransfer dengan format ISO 4217 | 10000.00 |
currency | string | | currency of transfer | IDR |
additionalInfo Check Disbursement
| Key | Value | Description | Contoh |
|---|
| deviceId | string | | 123456567 |
| channel | string | | trx_123 |
{
"additionalInfo": {},
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountNo": "7647654564346543",
"beneficiaryBankCode": "002",
"currency": "",
"latestTransactionStatus": "03",
"transactionStatusDesc": "PROCESSING",
"originalPartnerReferenceNo": "aasdawfrdfgsadsdf",
"originalReferenceNo": "01JBXP0F7J662E5RTCNJM76QCW",
"referenceNumber": "",
"serviceCode": "18",
"sourceAccountNo": "",
"transactionId": "",
"responseCode": "2003600",
"responseMessage": "Request has been processed successfully"
}
Balance Inquiry
API Balance Inquiry adalah layanan API yang memungkinkan Merchant untuk memeriksa saldo terbaru pada akun mereka. Dengan memanfaatkan layanan ini, Merchant dapat memantau ketersediaan dana sebelum melakukan transaksi lebih lanjut, seperti disbursement atau pembayaran lainnya. API ini memberikan respons berupa jumlah saldo yang tersedia saat ini, sehingga Merchant dapat memastikan dana yang cukup untuk setiap transaksi.
- Method:
POST
- Type:
application/json
- Path:
/disbursement/v1.0/balance-inquiry
- Service Code:
11
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| Content-Type | string | ✓ | String yang menunjukkan jenis media. | application/json |
| X-TIMESTAMP | string | ✓ | ISO-8601 | 2022-09-16T13:00:00+07:00 |
| X-SIGNATURE | string | ✓ | Lihat Disini bagian symmetric signature | |
| X-PARTNER-ID | string | ✓ | Disbursement secret key dari dashboard Doitpay | 01JP4QP4R908GVK9X5KN7YCJEG |
| X-EXTERNAL-ID | string(64) | ✓ | Request ID yang unik. | |
| CHANNEL-ID | string | | Nilai seharusnya DOITPAY | |
| Authorization | string | ✓ | Otentikasi dengan bearer token lihat disini pada bagian access token | Bearer ZGMyNDA3NWQtNmM4Ny00NGNiLTQ2NTAtMDhkYWMxNTAzNzY0 |
Request Body Balance Inquiry
| Parameter | Type | Mandatori | Keterangan | Contoh |
|---|
accountNo | string | ✓ | ID dari balance business (dapat diambil di dashboard, digunakan sebagai sourceAccountNo pada disbursement) | 123456 |
{
"accountNo": "01J7MQEXE226T92AVDKQ44WQFG"
}
Response Balance Inquiry
| Parameter | Type | Keterangan | Contoh |
|---|
| responseCode | string | Kode response, lihat bagian daftar Response Code di bawah | 2001100 |
| responseMessage | string | Penjelasan terhadap response code yang diterima | Success |
| accountInfo | array of object | lihat table di bawah | |
accountInfo Balance Inquiry
| Parameter | Type | Keterangan | Contoh |
|---|
| availableBalance | object | object dari balance, lihat table di bawah | |
availableBalance Balance Inquiry
| Parameter | Type | Keterangan | Contoh |
|---|
| currency | string | currency dari balance | IDR |
| value | string | ISO4217 dari balance yang tersedia untuk melakukan disbursement | 100000.00 |
{
"accountInfo": [
{
"availableBalance": {
"currency": "IDR",
"value": "99960000.00"
}
}
],
"responseCode": "2001100",
"responseMessage": "Request has been processed successfully"
}
Single disbursement notify (callback)
API Single Disbursement Notify (Callback) adalah layanan notifikasi yang secara otomatis memberi tahu Merchant tentang perubahan status pada transaksi disbursement yang sebelumnya dibuat. Ketika status disbursement berubah (misalnya berhasil atau gagal), sistem akan mengirimkan pemberitahuan ke URL callback yang telah disediakan oleh Merchant. Notifikasi ini mencakup informasi status terbaru dan waktu disbursement berhasil sehingga Merchant dapat memantau dan memperbarui status transaksi secara real-time tanpa perlu melakukan pengecekan manual.
- Method:
POST
- Type:
application/json
- URL:
https://yourdomain.com/v1.0/transfer-interbank/notify
- Service Code:
18
Symmetric Signature Disbursement Notification
Saat menerima notifikasi disbursement, API anda perlu melakukan validasi signature untuk menjamin proses keamanan data. Berikut penjelasannya:
Formula :
stringToSign = HttpMethod + “:” + Endpoint + “:” + DisbursementSecretKey + “:” +
LowerCase(HexEncode(SHA-256(Minify(RequestBody)))) + “:” + Timestamp
hash = HMAC_SHA512(stringToSign, secretKey)
signature = Base64(hash)
Buatlah sebuah variabel stringToSign.
-
HttpMethod adalah string nama metode yang sedang digunakan. Bisa saja POST, PUT, atau DELETE.
-
Endpoint adalah relative URL atau full path URL yang mana tanpa host atau domainnya.
-
DisbursementSecretKey adalah nilai token yang Anda dapatkan dari Disbursement Secret Key.
-
RequestBody adalah payload yang ingin Anda kirim.
-
Timestamp menggunakan ISO-8601.
-
secretKey adalah Disbursement Secret Key.
Hash stringToSign menggunakan HMAC_SHA512 cryptographic dan secret key (nama lain saat ini adalah API key). Kemudian, encode dengan Base 64.
Masukkan nilainya ke X-SIGNATURE.
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|
| X-TIMESTAMP | string | ✓ | ISO-8601 | 2022-09-16T13:00:00+07:00 |
| X-SIGNATURE | string | ✓ | Lihat Symmetric Signature Disbursement Notification | |
| X-EXTERNAL-ID | string(64) | ✓ | Request ID yang unik. | |
| CHANNEL-ID | string | | Channel yang digunakan | DOITPAY |
Request Body Single disbursement
| Parameter | Tipe | Keterangan | Contoh |
|---|
| responseCode | string | Kode response, lihat bagian daftar Response Code di bawah | |
| responseMessage | string | Penjelasan terhadap response code yang diterima | |
| originalReferenceNo | string | reference number dari doitpay | |
| originalPartnerReferenceNo | string | reference number yang merchant kirim ke system doitpay | |
| beneficiaryAccountNo | string | nomor rekening tujuan disbursement | |
| beneficiaryBankCode | string | kode bank tujuan disbursement | |
| currency | string | mata uang disbursement | |
| latestTransactionStatus | string | status saat ini | - 00 = success - 03 = pending - 06 = failed - 04 = reversed/refunded |
| transactionStatusDesc | string | deskripsi dari status | |
| sourceAccountNo | string | ID dari balance business (dapat diambil di dashboard) | |
| amount | object | | |
amount Single disbursement
| Parameter | Tipe | Keterangan | Contoh |
|---|
| value | string | ISO4217 dengan 2 desimal. Menunjukkan nominal pembayaran. | 1000.00 |
| currency | string | Kode mata uang, hanya menerima IDR. | IDR |
additionalInfo Single disbursement
{
"responseCode": "2021800",
"responseMessage": "Success",
"originalReferenceNo": "123456789",
"originalPartnerReferenceNo": "987654321",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"beneficiaryAccountNo": "9876543210",
"beneficiaryBankCode": "BANK123",
"currency": "IDR",
"latestTransactionStatus": "00",
"transactionStatusDesc": "Success",
"sourceAccountNo": "12345678"
}
Response Body Single disbursement
| Parameter | Tipe | Keterangan | Contoh |
|---|
| responseCode | string | Kode response, lihat bagian daftar Response Code di bawah | |
| responseMessage | string | Penjelasan terhadap response code yang diterima | |
Handle Reversal / Refund Callback
Reversal (atau refund) adalah kondisi ketika transaksi disbursement awalnya telah mendapat status sukses, namun kemudian dibatalkan oleh bank karena alasan tertentu, seperti:
- Rekening tujuan sudah tidak aktif
- Sistem bank melakukan pembatalan internal
- Melebihi batas waktu settlement
Dalam skenario seperti ini, bank akan mengembalikan dana ke akun Doitpay yang kemudian akan kami teruskan kepada merchant mengenai reversal tersebut.
Flow Diagram Reversal / Refund Callback
Response Code Single disbursement
| Kode | Keterangan | Request Retryable | Status Disbursement |
|---|
| 200XX00 | Request success di mana XX adalah service code disbursement API | - | Berhasil |
| 202XX00 | Request diterima dan diproses di mana XX adalah service code disbursement API | - | Berhasil |
| 4091801 | Conflict partner reference no saat membuat disbursement | Ya | Gagal |
| 400XX01 | Invalid field format. Dimana XX adalah service code untuk setiap API Disbursement | Ya | Gagal |
| 400XX02 | Missing mandatory field. Dimana XX adalah service code untuk setiap API Disbursement. | Ya | Gagal |
| 401XX00 | Unauthorized Signature. Dimana XX adalah service code untuk setiap API Disbursement. | Ya | Gagal |
| 401XX01 | Invalid Access Token. Dimana XX adalah service code untuk setiap API Disbursement. | Ya | Gagal |
| 403XX14 | Insufficient Balance. Dimana XX adalah service code untuk setiap API Disbursement. | Ya | Gagal |
| 404XX01 | Transaction Not Found. Dimana XX adalah service code untuk setiap API Disbursement. | Ya | * |
| 404XX03 | Invalid Bank Code. Dimana XX adalah service code untuk setiap API Disbursement. | Ya | Gagal |
| 404XX11 | Account Not Found. Dimana XX adalah service code untuk setiap API Disbursement. | Ya | Gagal |
| 500XX00 | Terjadi kesalahan sistem di doitpay, mohon dibantu menghubungi doitpay untuk mendapatkan detail. Dimana XX adalah service code untuk setiap API Disbursement | * | * |
Catatan:
- menandakan tidak dapat diuji kembali
* menandakan disbursement dapat gagal atau berhasil, lihat penanganan error disbursement
Penanganan Error saat Membuat Disbursement
Saat melakukan proses pembuatan disbursement, Anda mungkin mengalami error, terutama dari jenis 5xx.
Sebelum menandai transaksi sebagai gagal, lakukan inquiry status disbursement terlebih dahulu.
Disbursement dapat dianggap gagal jika ketika melakukan inquiry disbursement status merchant menerima response:
{
"code": 2003600,
"latestTransactionStatus": "06"
}
ATAU
{
"responseCode": "4041801",
"responseMessage": "Transaction Not Found"
}
Jika salah satu dari dua kondisi di atas terpenuhi, aman untuk menandai disbursement sebagai gagal.
Jika tidak, silakan hubungi kami untuk pengecekan lebih lanjut.
Ewallet Channels
Berikut ini adalah channel yang kami dukung untuk disbursement via E-Wallet channel:
| Name | Channel Code |
|---|
| DANA | DANA |
| OVO | OVO |
| GOPAY | GOPAY |
| SHOPEEPAY | SHOPEEPAY |
| LINKAJA | LINKAJA |
Bank Code
| Bank Name | Swift Code | Bank Code |
|---|
| Bank Mayapada | MAYAIDJA | 097 |
| Bank Ekspor Indonesia | BEXIIDJA | 003 |
| Bank Arta Niaga Kencana | ARNKIDJ1 | 020 |
| Bank Sumitomo Mitsui Indonesia | SUNIIDJA | 045 |
| Deutsche Bank AG. | DEUTIDJA | 067 |
| Bank Sri Partha | SIPAIDB10B3 | 466 |
| Bank Akita | | 525 |
| Bank Fama Internasional | | 562 |
| Allo Bank/Bank Harda Internasional | HRDAIDJ1 | 567 |
| ANZ Indonesia | ANZBIDJX | 061 |
| Bank Aceh | | 116 |
| Bank Aceh Syariah | PDACIDJ1 | 116 |
| Bank Aladin Syariah | NETBIDJA | 947 |
| Bank Amar Indonesia / Anglomas | LOMAIDJ1 | 531 |
| Bank Antardaerah | | 088 |
| Bank Artha Graha Internasional | ARTGIDJA | 037 |
| Bank Bengkulu | PDBKIDJ1 | 133 |
| Bank BPD DIY | PDYKIDJ1 | 112 |
| Bank BPD DIY Syariah | SYYKIDJ1 | 112 |
| Bank BTPN Syariah | PUBAIDJ1 | 547 |
| Bank Bukopin | BBUKIDJA | 441 |
| Bank Bukopin Syariah | SDOBIDJ1 | 521 |
| Bank Bumi Arta | BBAIIDJA | 076 |
| Bank Capital Indonesia | BCIAIDJA | 054 |
| Bank Central Asia | CENAIDJA | 014 |
| Bank China Construction Bank Indonesia | MCORIDJA | 036 |
| Bank CNB (Centratama Nasional Bank) | MEEKIDJ1 | 559 |
| Bank Danamon | BDINIDJA | 011 |
| Bank Danamon Syariah | SYBDIDJ1 | 722 |
| Bank Dinar Indonesia / Oke Bank | LMANIDJ1 | 526 |
| Bank DKI | BDKIIDJ1 | 111 |
| Bank DKI Syariah | SYDKIDJ1 | 724 |
| Bank Ganesha | GNESIDJA | 161 |
| Bank IBK Indonesia / Agris | IBKOIDJA | 945 |
| Bank Ina Perdana | IAPTIDJA | 513 |
| Bank Index Selindo | BIDXIDJA | 555 |
| Bank Jago / Artos | ATOSIDJ1 | 542 |
| Bank Jago Syariah | SYATIDJ1 | 542 |
| Bank Jambi | PDJMIDJ1 | 115 |
| Bank Jambi Syariah | SYJMIDJ1 | 115 |
| Bank Jasa Jakarta | JSABIDJ1 | 472 |
| Bank Jateng | PDJGIDJ1 | 113 |
| Bank Jateng Syariah | SYJGIDJ1 | 725 |
| Bank Jatim | PDJTIDJ1 | 114 |
| Bank Jatim Syariah | SYJTIDJ1 | 114 |
| Bank Kalbar | PDKBIDJ1 | 123 |
| Bank Kalbar Syariah | SYKBIDJ1 | 123 |
| Bank Kalsel | PDKSIDJ1 | 122 |
| Bank Kalsel Syariah | SYKSIDJ1 | 122 |
| Bank Kalteng | PDKGIDJ1 | 125 |
| Bank Kaltim Syariah | SYKTIDJ1 | 124 |
| Bank Kaltim / Kaltimtara | PDKTIDJ1 | 124 |
| Bank Lampung | PDLPIDJ1 | 121 |
| Bank Maluku | PDMLIDJ1 | 131 |
| Bank Mandiri | BMRIIDJA | 008 |
| Bank MANTAP (Mandiri Taspen) | SIHBIDJ1 | 564 |
| Bank Maspion Indonesia | MASDIDJ1 | 157 |
| Bank Mayora Indonesia | MAYOIDJA | 553 |
| Bank Mega | MEGAIDJA | 426 |
| Bank Mega Syariah | BUTGIDJ1 | 506 |
| Bank Mestika Dharma | MEDHIDS1 | 151 |
| Bank Mizuho Indonesia | MHCCIDJA | 048 |
| Bank Multi Arta Sentosa / Bank Mas | BMSEIDJA | 548 |
| Bank Mutiara (Jtrust) | CICTIDJA | 095 |
| Bank Sumbar/Nagari | PDSBIDJ1 | 118 |
| Bank Sumbar/Nagari Syariah | SYSBIDJ1 | 118 |
| Bank NTB Syariah | PDNBIDJ1 | 128 |
| Bank NTT | PDNTIDJA | 130 |
| Bank Nusantara Parahyangan | | 145 |
| Bank OCBC NISP | NISPIDJA | 028 |
| Bank OCBC NISP Syariah | SYONIDJ1 | 028 |
| Bank of America NA | BOFAID2X | 033 |
| Bank of China (Hong Kong) Limited | BKCHIDJA | 069 |
| Bank of India Indonesia / Swadesi | | 146 |
| Bank of Tokyo Mitsubishi UFJ | BOTKIDJX | 042 |
| Bank Papua | PDIJIDJ1 | 132 |
| Bank Rakyat Indonesia | BRINIDJA | 002 |
| Bank Riau Kepri | PDRIIDJA | 119 |
| Bank Riau Kepri Syariah | | 119 |
| Bank Sahabat Sampoerna | BDIPIDJ1 | 523 |
| Bank Shinhan Indonesia | | 152 |
| Bank Sinarmas | SBJKIDJA | 153 |
| Bank Sinarmas Syariah | SYTBIDJ1 | 734 |
| Bank Sulselbar | PDWSIDJA | 126 |
| Bank Sulselbar Syariah | SYWSIDJ1 | 126 |
| Bank Sulteng (Sulawesi Tengah) | PDWGIDJ1 | 134 |
| Bank Sultra | PDWRIDJ1 | 135 |
| Bank SulutGo | PDWUIDJ1 | 127 |
| Bank Sumsel Babel | BSSPIDSP | 120 |
| Bank Sumsel Babel Syariah | SYSSIDJ1 | 120 |
| Bank Sumut | PDSUIDJ1 | 117 |
| Bank Sumut Syariah | SYSUIDJ1 | 117 |
| Bank Resona Perdania | BPIAIDJA | 047 |
| Bank Victoria International | VICTIDJ1 | 566 |
| Bank Victoria Syariah | | 405 |
| Bank Woori Saudara (HS 1906) | BSDRIDJA | 212 |
| BCA (Bank Central Asia) Syariah | SYCAIDJ1 | 536 |
| BJB | | 110 |
| BJB Syariah | SYJBIDJ1 | 425 |
| Blu/BCA Digital | BBLUIDJA | 501 |
| BNI (Bank Negara Indonesia) | BNINIDJA | 009 |
| BNP Paribas Indonesia | BNPAIDJA | 057 |
| BPD Bali | ABALIDBS | 129 |
| BPD Banten | PDBBIDJ1 | 137 |
| BPR EKA (Bank Eka) | | 867 |
| BRI Agroniaga | | 494 |
| BSI (Bank Syariah Indonesia) | BSMDIDJA | 451 |
| BTN | BTANIDJA | 200 |
| BTN Syariah | SYBTIDJ1 | 200 |
| BTPN | SUNIIDJA | 213 |
| CIMB Niaga | BNIAIDJA | 022 |
| CIMB Niaga Syariah | SYNAIDJ1 | 022 |
| Citibank | CITIIDJX | 031 |
| Commonwealth Bank | BICNIDJA | 950 |
| CTBC (Chinatrust) Indonesia | CTCBIDJA | 949 |
| DBS Indonesia | DBSBIDJA | 046 |
| ICBC Indonesia | ICBKIDJA | 164 |
| LINE Bank/KEB Hana | HNBNIDJA | 484 |
| Maybank Indonesia | IBBKIDJA | 016 |
| Maybank Syariah | SYBKIDJ1 | 016 |
| Motion/MNC Bank | BUMIIDJA | 485 |
| Muamalat | MUABIDJA | 147 |
| Neo Commerce/Yudha Bhakti | YUDBIDJ1 | 490 |
| Nobu (Nationalnobu) Bank | LFIBIDJ1 | 503 |
| Panin Bank | PINBIDJA | 019 |
| Panin Dubai Syariah | ARFAIDJ1 | 517 |
| Permata | BBBAIDJA | 013 |
| Permata Syariah | SYBBIDJ1 | 013 |
| QNB Indonesia | AWANIDJA | 167 |
| Rabobank International Indonesia | | 060 |
| SBI Indonesia | | 498 |
| Seabank/Bank Kesejahteraan Ekonomi | SSPIIDJA | 535 |
| Standard Chartered Bank | SCBLIDJX | 050 |
| TMRW/UOB | BBIJIDJA | 023 |
| HSBC Indonesia | HSBCIDJA | 041 |
| Bank Indonesia | INDOIDJA | |
| BPR KS | | 688 |
Untuk testing di sandbox, mohon menggunakan bank code: 002.