Learn more about how DOKU Sub Account can help you Power up your online payments here.
Integration steps
Here is the overview of how to integrate with DOKU Sub Account:
Transfer Intra Sub Account
1. Create Account
To create the account, you will need to hit this API through your Backend:
API Request
Type | Value |
---|
| |
| https://api-sandbox.doku.com/sac-merchant/v1/accounts
|
API endpoint (Production) | https://api.doku.com/sac-merchant/v1/accounts
|
Here is the sample of request header to create the payment:
Client-Id: MCH-0001-10791114622547
Request-Id: b6a465ea-bb65-48b2-a22b-3e8fb51cf22e
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps=
Request Header Explanation
Here is the sample of request body to create the account:
{
"account": {
"email": "test2@doku.com",
"type": "STANDARD",
"name": "nama2"
}
}
Request Body Explanation
API Response
After hitting the above API request, DOKU will give the response.
Here is the sample response header:
Client-Id: MCH-0001-10791114622547
Request-Id: b6a465ea-bb65-48b2-a22b-3e8fb51cf22e
Response-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=1jap2tpgvWt83tG4J7IhEwUrwmMt71OaIk0oL0e6sPM=
Response Header Explanation
Here is the sample of response body:
{
"account": {
"created_date": "2021-08-04T18:19:00.046085+07:00",
"updated_date": "2021-08-04T18:19:00.046085+07:00",
"name": "nama2",
"email": "test2@doku.com",
"type": "STANDARD",
"status": "PENDING",
"id": "SAC-9914-1628075940045"
}
}
Response Body Explanation
2. Accept Payment
To accept payment add this additional_info.account object into your payment request.
...
"additional_info": {
"account": {
"id": “SAC-11111111”
}
}
...
Request Header Explanation
Sample Usage
Let's assume you are using the DOKU Direct integration. You can simply add these parameters into your API Initiate Payment:
{
"order": {
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"virtual_account_info": {
"expired_time": 60,
"reusable_status": false,
"info1": "Merchant Demo Store",
"info2": "Thank you for shopping",
"info3": "on our store"
},
"customer": {
"name": "Anton Budiman",
"email": "anton@example.com"
},
"additional_info": {
"account": {
"id": “SAC-11111111”
}
}
}
3. Send Payout
You can request to send money from your accounts balance account for any disbursement purpose e.g: withdrawal, refund, paying vendor/supplier, etc
API Request
Type | Value |
---|
| |
| https://api-sandbox.doku.com/sac-merchant/v1/payouts
|
API endpoint (Production) | https://api.doku.com/sac-merchant/v1/payouts
|
Here is the sample of request header to create the payment:
Client-Id: MCH-0001-10791114622547
Request-Id: b6a465ea-bb65-48b2-a22b-3e8fb51cf22e
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps=
Request Header Explanation
Here is the sample of request body for payouts:
{
"account":
{
"id":"SAC-0000-0000000000001"
},
"payout":
{
"amount": 20000,
"invoice_number":"INV/123/45"
},
"beneficiary":
{
"bank_code":"BNINIDJA",
"bank_account_number":"712739123020001",
"bank_account_name":"Ria Florensi"
}
}
Request Body Explanation
API Response
After hitting the above API request, DOKU will give the response.
Here is the sample response header:
Client-Id: MCH-0001-10791114622547
Request-Id: b6a465ea-bb65-48b2-a22b-3e8fb51cf22e
Response-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=1jap2tpgvWt83tG4J7IhEwUrwmMt71OaIk0oL0e6sPM=
Response Header Explanation
Here is the sample of response body:
{
"account": {
"id": "SAC-123-111111"
},
"payout":{
"amount": 20000,
"invoice_number": “INV/123/11”,
"status": “SUCCESS”,
"created":’2021-08-06 15:18:06.820153+07:00”
},
"beneficiary:{
"bank_code": “BNINIDJA”,
"bank_account_number": 1234567,
"bank_account_name": “Ria Florensi”
}
}
Response Body Explanation
4. Transfer Intra Sub Account
The Transfers API allows you to transfer balances between your accounts.
API Request
Type | Value |
---|
| |
| https://api-sandbox.doku.com/sac-merchant/v1/transfers
|
API endpoint (Production) | https://api.doku.com/sac-merchant/v1/transfers
|
Here is the sample of request header to create the payment:
Client-Id: MCH-0001-10791114622547
Request-Id: b6a465ea-bb65-48b2-a22b-3e8fb51cf22e
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps=
Request Header Explanation
Here is the sample of request body for payouts:
{
"transfer":
{
"origin" : "SAC-0000-0000000000001",
"destination" : "SAC-8014-1628130619289",
"amount" : 10000,
"invoice_number" : "INV/7274812"
}
}
Request Body Explanation
API Response
After hitting the above API request, DOKU will give the response.
Here is the sample response header:
Client-Id: MCH-0001-10791114622547
Request-Id: b6a465ea-bb65-48b2-a22b-3e8fb51cf22e
Response-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=1jap2tpgvWt83tG4J7IhEwUrwmMt71OaIk0oL0e6sPM=
Response Header Explanation
Here is the sample of response body:
{
"transfer": {
"invoice_number": "INV/7274812",
"origin": "SAC-0000-0000000000001",
"destination": "SAC-8014-1628130619289",
"amount": 10000,
"status": "SUCCESS",
"created": "2021-08-06 15:18:06.820153+07:00"
}
}
Response Body Explanation
5. Get Balances
Get Balance API allows you to retrieve the balance of your available and pending balance
API Request
Type | Value |
---|
| |
| https://api-sandbox.doku.com/sac-merchant/v1/balances/{account_id}
|
API endpoint (Production) | https://api.doku.com/sac-merchant/v1/balances/{account_id}
|
Here is the sample of request header to get balance:
Client-Id: MCH-0001-10791114622547
Request-Id: b6a465ea-bb65-48b2-a22b-3e8fb51cf22e
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps=
Request Header Explanation
API Response
After hitting the above API request, DOKU will give the response.
Here is the sample response header:
Client-Id: MCH-0001-10791114622547
Request-Id: b6a465ea-bb65-48b2-a22b-3e8fb51cf22e
Response-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=1jap2tpgvWt83tG4J7IhEwUrwmMt71OaIk0oL0e6sPM=
Response Header Explanation
Here is the sample of response body:
{
"balance": {
"pending": "600000",
"available": "1700500"
}
}
Response Body Explanation
Last updated