OVO offers 2 payment types, which are One-Time Payment and Recurring Payment. For both payment types, tokenization must be completed first before transactions can be executed.
Account Binding process should be done before payment can be made and processed. Merchant will send account binding request from customer to DOKU. The request includes customer's phone number that is registered to customer's OVO account.
Each OVO account can only be bind to one customer on one merchant. Customer needs to do verification for account binding process by inputting OTP and PIN.
After customer has bind/linked their OVO account, customer can check their account balance infirmation using Balance Inquiry. Merchant will send balance inquiry request from customer to DOKU.
Merchant can also use balance inquiry API to check if customer has sufficient balance before invoking payment process.
After customer's account is bind/linked and customer has enough balance for payment, merchant can send payment request from customer to DOKU.
One Time Payment
For One-Time Payments, each transaction must be verified by the customer by entering an OTP and PIN. To enable this flow, merchants are required to include the parameter paymentType: "SALE" in the payment request body.
In response, the merchant will receive a webRedirectUrl, which should be used to redirect the customer to complete the payment by entering their OTP and PIN. Once the payment process is completed, the merchant will receive a payment notification confirming the transaction status.
Recurring Payment
For OVO Recurring, payments are processed on a scheduled basis. Therefore, OTP and PIN verification is not required for every transaction. Customers only need to complete the verification once during the account binding process, which grants the merchant authorization to execute subsequent scheduled payments.
To initiate this flow, merchants are required to include the parameter paymentType: "RECURRING" in the payment request body. In this scheme, the merchant will not receive a webRedirectUrl, as no customer redirection is needed. The payment request will be processed directly by the acquirer, and the merchant will receive a notification with the transaction result.
Numeric String. Reference number that should be unique in the same day (request-id)
Example: 418075533589
AuthorizationstringRequired
Access Token obtained from Get B2B Token API
Example: 95221
Body
originalPartnerReferenceNostringRequired
Partner Reference No Purchase Transaction | max: 32 | Mandatory
Example: INV-0001
originalExternalIdstringOptional
External ID Purchase Transaction | max: 36 |
Example: REQ-0001
reasonstringOptional
Reason from customer | max: 255
Example: Request by Customer
partnerRefundNostringRequired
Partner Refund No| max: 64 | Mandatory
Example: INV-REF-0001
Responses
200
Successful
application/json
post
/direct-debit/core/v1/debit/refund
200
Successful
Account Unbinding
If a registered customer no longer wants their account/card to be bind/linked and wish to remove themself from DOKU's and merchant’s system, merchant can send account unbinding request that is initiated by customer.