OVO Recurring
Last updated
Last updated
DOKU API
Legacy DocumentationClient ID / Secret Key from OVO
DOKU account. To access DOKU API, you need DOKU client id & DOKU client key that you can find in DOKU back office.
Here is the overview flow for OVO Recurring :
Here is the sample of request header to implement every API list below :
Parameter | Description |
---|---|
Client-Id | Client ID retrieved from DOKU Back Office |
Request-Id | Unique random string (max 128 characters) generated from merchant side to protect duplicate request |
Request-Timestamp | Timestamp request on UTC time in ISO8601 UTC+0 format. It means to proceed transaction on UTC+7 (WIB), merchant need to subtract time with 7. Ex: to proceed transaction on September 22th 2020 at 08:51:00 WIB, the timestamp should be 2020-09-22T01:51:00Z |
Signature | Security parameter that needs to be generated on merchant Backend and placed to the header request to ensure that the request is coming from valid merchant. Please refer to this section to generate the signature |
Merchant and DOKU must validate signature in API list, see how to generate signature. You can refer to Generate Signature.
Merchant can binding OVO account to customer id, each OVO account can only binding to one customer on one merchant. Customer need to verify OTP and input PIN on OVO page.
API Request
Type | Value |
---|---|
HTTP Method | POST |
API endpoint (Sandbox) |
|
API endpoint (Production) |
|
Here is the overview flow for OVO Recurring Customer Binding :
Here is the sample of request body to binding OVO account to customer id :
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Merchant customer id |
|
| Optional | Customer name |
|
| Optional | Customer email |
|
| Optional | Customer phone number |
|
| Optional | Customer additional info |
|
| Mandatory | Register phone number on OVO |
|
| Mandatory | URL for direct page after success register |
|
| Mandatory | URL for direct page after failed register |
|
| Mandatory | Service Type, please input |
API Response
After hitting the above API request, DOKU will give the response.
Type | Value |
---|---|
HTTP Status | 201 |
Result | SUCCESS |
Here is the sample of response body:
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Merchant customer id |
|
| Optional | Customer name |
|
| Optional | Customer email |
|
| Optional | Customer phone number |
|
| Optional | Customer additional info |
|
| Mandatory | Register phone number on OVO |
|
| Mandatory | URL from DOKU for Customer to binding their account |
|
| Mandatory | Always |
After successful account linkage, merchant can get OVO token that can be used for that customer to payment using OVO. Token is created by DOKU, and valid for 1 year.
API Request
Type | Value |
---|---|
HTTP Method | POST |
API endpoint (Sandbox) |
|
API endpoint (Production) |
|
Here is the sample of request body to get Token for OVO :
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Customer id that already have active token |
|
| Optional |
|
API Response
After hitting the above API request, DOKUwill give the response.
Type | Value |
---|---|
HTTP Status | 200 |
Result | SUCCESS |
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Merchant customer id |
|
| Optional | Customer name |
|
| Mandatory | Token Type : |
|
| Mandatory | Issuer for wallet binding |
|
| Mandatory | Token generated by DOKU |
|
| Mandatory | Phone number masked |
This balance check API allows users to check their latest OVO balance. The user should be able to access their balance at any time so they can make accurate and up to date decision regarding their transactions.
API Request
Type | Value |
---|---|
HTTP Method | POST |
API endpoint (Sandbox) |
|
API endpoint (Production) |
|
Here is the sample of request body to get balance for OVO :
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Customer id that already have active token |
|
| Mandatory | Token generated by DOKU |
API Response
After hitting the above API request, DOKUwill give the response.
Type | Value |
---|---|
HTTP Status | 201 |
Result | SUCCESS |
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Merchant customer id |
|
| Optional | Customer name |
|
| Optional | Customer email |
|
| Optional | Customer phone number |
|
| Optional | Customer additional info |
|
| Mandatory | OVO Cash Balance |
|
| Mandatory | OVO Point Balance |
Payment using OVO token from OVO cash balance or/and OVO point balance. When OVO have program for payment using OVO point, customer can paying using OVO point balance on merchant. Payment using mixed OVO point and OVO cash, OVO point will be deducted first and the remaining will be deducted from OVO cash. Customer need to verify payment by input PIN on OVO page.
API Request
Type | Value |
---|---|
HTTP Method | POST |
API endpoint (Sandbox) |
|
API endpoint (Production) |
|
Here is the overview flow for OVO Recurring Payment Flow :
Here is the sample of request body to do payment using OVO Token :
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Merchant customer id |
|
| Optional | Customer name |
|
| Optional | Customer email |
|
| Optional | Customer phone number |
|
| Optional | Customer additional info |
|
| Optional | additional info |
|
| Mandatory | Merchant transaction id unique per client id, only accept alphanumeric, _ and - Min length is 3, max length is 32 |
|
| Optional | Privacy concern so optional, but if send will help our risk engine |
|
| Optional | Privacy concern so optional, but if send will help our risk engine |
|
| Mandatory | Privacy concern so optional, but if send will help our risk engine |
|
| Mandatory | Converted total amount. |
|
| Mandatory | OVO E-Wallet Token |
|
| Optional | Default false, if True will use all OVO Point first before use OVO Cash |
|
| Optional | True. if this transaction is first payment of subcription |
API Response
After hitting the above API request, DOKUwill give the response.
Type | Value |
---|---|
HTTP Status | 201 |
Result | SUCCESS |
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Merchant customer id |
|
| Optional | Customer name |
|
| Optional | Customer email |
|
| Optional | Customer phone number |
|
| Optional | Customer additional info |
|
| Optional | additional info |
|
| Mandatory | Merchant transaction id unique per client id, only accept alphanumeric, _ and - Min length is 3, max length is 32 |
|
| Optional | Privacy concern so optional, but if send will help our risk engine |
|
| Optional | Privacy concern so optional, but if send will help our risk engine |
|
| Mandatory | Privacy concern so optional, but if send will help our risk engine |
|
| Mandatory | Converted total amount. |
|
| Mandatory | PENDING for successful token request (waiting for OTP verification) / SUCCESS if not need OTP, TOKEN_EXPIRED (need to input PIN twice and still can proceed to transaction) |
Refund OVO transaction. For payment using mixed OVO cash and OVO point, OVO point will be refunded first.
API Request
Type | Value |
---|---|
HTTP Method | POST |
API endpoint (Sandbox) |
|
API endpoint (Production) |
|
Here is the sample of request body to do refund for OVO Transaction :
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Invoice number of the transaction that being refunded, same as the request payment |
|
| Mandatory | Request ID from Payment Initiation of the transaction that being refunded |
|
| Mandatory | Transaction amount that wants to be refunded |
|
| Optional | Reason refund |
API Response
After hitting the above API request, DOKUwill give the response.
Type | Value |
---|---|
HTTP Status | 201 |
Result | SUCCESS |
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Same as the request |
|
| Mandatory | Same as the request |
|
| Mandatory | Amount to be refunded |
|
| Optional | Reason refund |
|
| Mandatory | SUCCESS / FAILED |
|
| Optional | Reason if failed refund |
Customer should always have option to unlink their OVO account from any merchant.
API Request
Type | Value |
---|---|
HTTP Method | POST |
API endpoint (Sandbox) |
|
API endpoint (Production) |
|
Here is the sample of request body to unlink their OVO Account :
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Merchant id |
|
| Mandatory | Merchant name |
|
| Mandatory | Token created from register ovo account that owned by this customer id |
API Response
After hitting the above API request, DOKUwill give the response.
Type | Value |
---|---|
HTTP Status | 201 |
Result | SUCCESS |
Parameter | Type | Mandatory | Description |
---|---|---|---|
|
| Mandatory | Merchant id |
|
| Mandatory | Merchant name |
|
| Mandatory | Token created from register ovo account that owned by this customer id |
|
| Mandatory | DELETED Token |
|
| Optional | SUCCESS unbind token_id from customer |