Virtual Account Overview
DOKU provides various payment channels. One of the most used by our merchants is Virtual Account. By using this payment channels, your customer can pay their order through bank transfer and DOKU will notify you once the payment is completed by your customer. DOKU has partnered with various banks to help you provide many payment options for your customers.
Partnerships Model
Each user may have different needs for the business and the way they receive funds. DOKU has 2 types of models for accepting payments, namely the Aggregator Model and the Direct Model. For full details, you can check the details here.
The following is a list of models in receiving your funds for each bank via Virtual Account.
Name | Aggregator | Direct |
---|---|---|
BCA | ✅ | ✅ |
Mandiri | ✅ | ✅ |
BSI | ✅ | ✅ |
DOKU | ✅ | ✅ |
BRI | ✅ | ✅ |
CIMB | ✅ | ❌ |
Permata | ✅ | ❌ |
BNI | ✅ | ❌ |
Danamon | ✅ | ❌ |
Features for Virtual Account
Virtual Account Number Component
Virtual Account number which is displayed to customer, contains two parts.
The first part is the company code (BIN) and the second part is unique VA Number.
There are 2 types of general features that can be used with Virtual Accounts:
- Register: The VA number will be registered to DOKU and Acquirer will inquiry to our side when the customer make payment at the acquirer channel (ATM, mobile banking, internet banking, etc.)
Features Type | Description |
---|---|
DOKU Generated Payment Code (DGPC) | Merchants don’t need to generate payment code, just need to request from DOKU and DOKU will send a unique payment code. Component VA Number : BIN and Unique VA Number . Suitable for e-commerce business model. |
Merchant Generated Payment Code (MGPC) | Merchants can generate payment codes with their own rules, and send the code to DOKU and customers will use it for payment. Component VA Number : BIN and Unique VA Number . Suitable for top up business model. |
- Direct Inquiry (DIPC): The VA number is registered on merchant side and DOKU will forward Acquirer inquiry request to merchant side when the customer make payment at the acquirer channel (ATM, mobile banking, internet banking, etc.). Component VA Number :
BIN
andUnique VA Number
.
One transaction can't use 2 or 3 features at the same time.
By default, DOKU will register your business with Doku Generate Payment Code feature which means BIN for VA will be generated by DOKU side. But there is no limit for you to be able to use 2 features at the same time. What it can't do is that 1 transaction uses 2 features at the same time.
Get the BIN
If you want to use MGPC or DIPC, then please contact the care team to get a BIN as a component for the VA Number.
Billing Type
Billing type is a type of feature used by merchants to determine the method of payment for their customers when they are in Inquiry. In case, the customer can input the amount according to their expected amount or the customer can also pay according to the amount that has been determined by the merchant.
Here is a billing type and their defenition that can be implemented into virtual account transactions.
Billing Type | Description |
---|---|
FIX_BILL | Customer can only pay the bill with the amount stated in the bill (Closed Amount / Full Payment). |
NO_BILL | Customer can pay with their amount and Virtual Account can accept payments for any nominal value. |
BILL_VARIABLE_AMOUNT | Customer can pay according to the amount they want or randomly in a predetermined range. |
Applicable for Channel
For your information, each acquirer has its own rules. There is an Acquirer that doesn't support billing type. Here's the checklist :
Bank Name | Fix Bill | No Bill | Bill Variable Amount |
---|---|---|---|
BCA | ✅ | ✅ | ✅ |
Mandiri | ✅ | ✅ | ❌ |
BSI | ✅ | ❌ | ❌ |
DOKU | ✅ | ✅ | ❌ |
BRI | ✅ | ✅ | ❌ |
CIMB | ✅ | ✅ | ❌ |
Permata | ✅ | ✅ | ❌ |
Danamon | ✅ | ✅ | ❌ |
BNI only
BNI have a special rules, billing type for BNI are OPEN
, FIXED
,INSTALLMENT
,MIN
,OPEN MIN
and OPEN MAX
. You can see the detail, in BNI Section.
BIN Rules
In accordance with the explanation regarding the Virtual Account Component, BIN is one of the components to create a virtual account. So, here's an explanation regarding BIN rules and adapt them to your needs.
note
These rules only apply to Aggregator Partnership Models, which means merchants use DOKU's BIN.
- BCA VA
- Mandiri VA
- Bank Syariah Indonesia VA
- BRI VA
- DOKU VA
- CIMB VA
- Permata VA
- BNI VA
- Danamon VA
Partnership Model | BIN Type | Description | VA Number Component | Feature |
---|---|---|---|---|
Aggregator | DOKU General | DOKU's BIN in Acquirer, that DOKU provide for merchants to use | DOKU General BIN (6 digit) + DOKU Generated Payment Code (10 digit) | DOKU Generated Payment Code (DGPC) |
Aggregator | DOKU Exclusive | DOKU's BIN in Acquirer, that DOKU provides only for 1 merchant to use. Please contact sales team to get DOKU Exclusive BIN | DOKU Exclusive BIN (starting from 9 digit) + Free Digit (max. 14 digit) | Merchant Generate Payment Code (MGPC), Direct Inquiry (DIPC) |
Direct | Direct | Merchant’s Acquirer BIN. Please contact sales team to get Direct BIN from Acquirer | Merchant’s Acquirer BIN (5 digit) + Free Digit (max. 18 digit) | Merchant Generate Payment Code (MGPC), Direct Inquiry (DIPC) |
Maximum virtual account number is 23 digit.
Partnership Model | BIN Type | Description | VA Number Component | Feature |
---|---|---|---|---|
Aggregator | DOKU General | DOKU's BIN in Acquirer, that DOKU provide for merchants to use | DOKU General BIN (6 digit) + DOKU Generated Payment Code (10 digit) | DOKU Generated Payment Code (DGPC) |
Aggregator | DOKU Exclusive | DOKU's BIN in Acquirer, that DOKU provides only for 1 merchant to use. Please contact sales team to get DOKU Exclusive BIN | DOKU Exclusive BIN (starting from 9 digit) + Free Digit (max. 7 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Direct | Direct | Merchant’s Acquirer BIN. Please contact sales team to get Direct BIN from Acquirer | Merchant’s Acquirer BIN (5 digit) + Free Digit (max. 11 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Maximum virtual account number is 16 digit.
Partnership Model | BIN Type | Description | VA Number Component | Feature |
---|---|---|---|---|
Aggregator | DOKU General | DOKU's BIN in Acquirer, that DOKU provide for merchants to use | DOKU General BIN (5 digit) + DOKU Generated Payment Code (11 digit) | DOKU Generated Payment Code (DGPC) |
Aggregator | DOKU Exclusive | DOKU's BIN in Acquirer, that DOKU provides only for 1 merchant to use. Please contact sales team to get DOKU Exclusive BIN | DOKU Exclusive BIN (starting from 6 digit) + Free Digit (max. 10 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Direct | Direct | Merchant’s Acquirer BIN. Please contact sales team to get Direct BIN from Acquirer | Merchant’s Acquirer BIN (5 digit) + Free Digit (max. 11 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Maximum virtual account number is 16 digit.
Partnership Model | BIN Type | Description | VA Number Component | Feature |
---|---|---|---|---|
Aggregator | DOKU General | DOKU's BIN in Acquirer, that DOKU provide for merchants to use | DOKU General BIN (6 digit) + DOKU Generated Payment Code (10 digit) | DOKU Generated Payment Code (DGPC) |
Aggregator | DOKU Exclusive | DOKU's BIN in Acquirer, that DOKU provides only for 1 merchant to use. Please contact sales team to get DOKU Exclusive BIN | DOKU Exclusive BIN (starting from 9 digit) + Free Digit (max. 9 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Direct | Direct | Merchant’s Acquirer BIN. Please contact sales team to get Direct BIN from Acquirer | Merchant’s Acquirer BIN (5 digit) + Free Digit (max. 13 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Maximum virtual account number is 18 digit.
Partnership Model | BIN Type | Description | VA Number Component | Feature |
---|---|---|---|---|
Aggregator | DOKU General | DOKU's BIN in Acquirer, that DOKU provide for merchants to use | DOKU General BIN (7 digit) + DOKU Generated Payment Code (9 digit) | DOKU Generated Payment Code (DGPC) |
Aggregator | DOKU Exclusive | DOKU's BIN in Acquirer, that DOKU provides only for 1 merchant to use. Please contact sales team to get DOKU Exclusive BIN | DOKU Exclusive BIN (starting from 4 digit) + Free Digit (max. 12 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Maximum virtual account number is 16 digit.
Partnership Model | BIN Type | Description | VA Number Component | Feature |
---|---|---|---|---|
Aggregator | DOKU General | DOKU's BIN in Acquirer, that DOKU provide for merchants to use | DOKU General BIN (8 digit) + DOKU Generated Payment Code (8 digit) | DOKU Generated Payment Code (DGPC) |
Aggregator | DOKU Exclusive | DOKU's BIN in Acquirer, that DOKU provides only for 1 merchant to use. Please contact sales team to get DOKU Exclusive BIN | DOKU Exclusive BIN (starting from 9 digit) + Free Digit (max. 7 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Direct | Direct | Merchant’s Acquirer BIN. Please contact sales team to get Direct BIN from Acquirer | Merchant’s Acquirer BIN (5 digit) + Free Digit (max. 11 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Maximum virtual account number is 16 digit.
Partnership Model | BIN Type | Description | VA Number Component | Feature |
---|---|---|---|---|
Aggregator | DOKU General | DOKU's BIN in Acquirer, that DOKU provide for merchants to use | DOKU General BIN (5 digit) + DOKU Generated Payment Code (11 digit) | DOKU Generated Payment Code (DGPC) |
Aggregator | DOKU Exclusive | DOKU's BIN in Acquirer, that DOKU provides only for 1 merchant to use. Please contact sales team to get DOKU Exclusive BIN | DOKU Exclusive BIN (starting from 8 digit) + Free Digit (max. 8 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Direct | Direct | Merchant’s Acquirer BIN. Please contact sales team to get Direct BIN from Acquirer | Merchant’s Acquirer BIN (4 digit) + Free Digit (max. 12 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Maximum virtual account number is 16 digit.
Partnership Model | BIN Type | Description | VA Number Component | Feature |
---|---|---|---|---|
Aggregator | DOKU General | DOKU's BIN in Acquirer, that DOKU provide for merchants to use | DOKU General BIN (5 digit) + DOKU Generated Payment Code (11 digit) | DOKU Generated Payment Code (DGPC) |
Aggregator | DOKU Exclusive | DOKU's BIN in Acquirer, that DOKU provides only for 1 merchant to use. Please contact sales team to get DOKU Exclusive BIN | DOKU Exclusive BIN (starting from 8 digit) + Free Digit (max. 8 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Direct | Direct | Merchant’s Acquirer BIN. Please contact sales team to get Direct BIN from Acquirer | Merchant’s Acquirer BIN (4 digit) + Free Digit (max. 12 digit) | Merchant Generated Payment Code (MGPC), Direct Inquiry (DIPC) |
Fix virtual account number is 16 digit.
COMING SOON
note
If you want to do live in Production, please contact our team care.
Maximum virtual account number is 16 digit.
Reusable Status
Reusable Status is a parameter in API to indicate if Payment Code can be paid more than once, set this to true if merchants wish to enable it.
Here is a reusable status explanation. Set this value in the API, to implement reusable status.
Value | Description |
---|---|
true | Payment Code can be paid more than once |
false | Payment Code can only be paid once |
note
By default, DOKU will set the value to false
, if you don't send this parameter on request.
Integration steps
- DOKU Generate Payment Code
- Merchant Generate Payment Code
- Direct Inquiry
DOKU Generated Payment Code
Here is the overview of how to integrate with Virtual Account:
- Generate payment code (virtual account number)
- Display payment code (virtual account number)
- Acknowledge payment result
DOKU Direct - Virtual Account Sequence Diagram
1. Generate payment code (virtual account number)
To generate payment code, you will need to hit this API through your Backend:
API Request
Type | Value |
---|---|
HTTP Method | POST |
API endpoint (Sandbox) | https://api-sandbox.doku.com/{{channel-name}}/{{version}}/payment-code |
API endpoint (Production) | https://api.doku.com/{{channel-name}}/{{version}}/payment-code |
You need to change the {{channel-name}}
and {{version}}
accordingly based on what payment channel you wish. Here is the list:
Name | {{channel-name}} | Current Version |
---|---|---|
BCA | bca-virtual-account | v2 |
Mandiri | mandiri-virtual-account | v2 |
Bank Syariah Indonesia (BSI) | bsm-virtual-account | v2 |
DOKU | doku-virtual-account | v2 |
BRI | bri-virtual-account | v2 |
CIMB | cimb-virtual-account | v2 |
Permata | permata-virtual-account | v2 |
BNI | bni-virtual-account | v2 |
Danamon | danamon-virtual-account | v2 |
Every object naming in our Virtual Account APIs are standarized and have their own customization to ensure easy integration. Therefore, you can learn more about how to integrate to each of them by clicking the link above.
2. Display payment code (virtual account number)
You can display the payment code to your customer by using virtual_account_info.virtual_account_number
that you retrieved from the API response.
3. Acknowledge payment result
After the payment is being made by your customer, DOKU will send HTTP Notification to your defined Notification URL
. Learn how to handle the notification from DOKU:
Merchant Generated Payment Code
Here is the overview of how to integrate with Virtual Account:
- Generate payment code (virtual account number)
- Display payment code (virtual account number)
- Acknowledge payment result
Direct API - Virtual Account Sequence Diagram
1. Generate payment code (virtual account number)
To generate payment code, you will need to hit this API through your Backend:
API Request
Type | Value |
---|---|
HTTP Method | POST |
API endpoint (Sandbox) | https://api-sandbox.doku.com/{{channel-name}}/{{version}}/merchant-payment-code |
API endpoint (Production) | https://api.doku.com/{{channel-name}}/{{version}}/merchant-payment-code |
You need to change the {{channel-name}}
and {{version}}
accordingly based on what payment channel you wish. Here is the list:
Name | {{channel-name}} | Current Version |
---|---|---|
BCA | bca-virtual-account | v2 |
Mandiri | mandiri-virtual-account | v2 |
Bank Syariah Indonesia (BSI) | bsm-virtual-account | v2 |
DOKU | doku-virtual-account | v2 |
BRI | bri-virtual-account | v2 |
CIMB | cimb-virtual-account | v2 |
Permata | permata-virtual-account | v2 |
BNI | bni-virtual-account | v2 |
Danamon | danamon-virtual-account | v2 |
Every object naming in our Virtual Account APIs are standarized and have their own customization to ensure easy integration. Therefore, you can learn more about how to integrate to each of them by clicking the link above.
2. Display payment code (virtual account number)
You can display the payment code to your customer by using virtual_account_info.virtual_account_number
that you retrieved from the API response.
3. Acknowledge payment result
After the payment is being made by your customer, DOKU will send HTTP Notification to your defined Notification URL
. Learn how to handle the notification from DOKU:
Direct Inquiry
Here is the overview of how to integrate with Virtual Account:
- Setup
Inquiry URL
- Generate payment code
- Receive inquiry request from DOKU
- Acknowledge payment result
Direct API - VA Direct Inquiry Sequence Diagram
1. Setup Inquiry URL
To receive the inquiry request from DOKU. You must set your Inquiry URL
to DOKU. Please contact our team for the setup.
Please inform the Inquiry URL
for Sandbox environment and Production environment.
2. Generate Payment code
Generate payment is done in your system.
3. Receive inquiry request from DOKU
API Request
DOKU will hits your Inquiry URL
with the following API request:
Type | Value |
---|---|
HTTP Method | POST |
Here is the sample of request header that DOKU generated for inquiry:
4. Acknowledge payment result
After the payment is being made by your customer, DOKU will send HTTP Notification to your defined Notification URL
. Learn how to handle the notification from DOKU:
What's next?
You can learn more about how to integrate to each payment channels you wish by clicking the menu on the sidebar.