Kredivo
Last updated
Last updated
DOKU API
Legacy DocumentationDOKU has partenered with various Paylater Providers and one of them is Kredivo to provide Buy Now Pay Later. Learn more about how DOKU can help you integrate with Kredivo here.
Here is the overview of how to integrate with Kredivo :
Obtain payment.url
by generating order
Display Kredivo payment page to customer
Acknowledge payment result
payment.url
by generating orderTo generate order, you will need to hit this API through your Backend:
API Request
HTTP Method
POST
API endpoint (Sandbox)
https://api-sandbox.doku.com/kredivo-peer-to-peer/v2/generate-order
API endpoint (Production)
https://api.doku.com/kredivo-peer-to-peer/v2/generate-order
Here is the sample of request header to generate order:
Request Header Explanation
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
Here is the sample request body to generate order:
Request Body Explanation
order.invoice_number
string
Mandatory
Generated by merchant to identify the order and must unique per request
Allowed chars: alphabetic, numeric, special chars
Max length: 64
order.line_items.name
string
Mandatory
Name of the product item
Allowed chars: alphabetic, numeric, special chars
Max Length: 255
order.line_items.price
double
Mandatory
Price of the product item. Total price and quantity must be match with the order.amount
Allowed chars: numeric
Max Length: 12
order.line_items.quantity
integer
Mandatory
Quantity of the product item
Allowed chars: numeric
Max Length: 4
order.line_items.id
string
Mandatory
Item ID No/SKU number on this transaction (new)
order.line_items.type
string
Mandatory
Type / Category of the item in this transaction.
order.line_items.url
string
Mandatory
URL to the product item on merchant site
order.line_items.image_url
string
Optional
URL to the product item image
order.line_items.parent_type
string
Optional
You can assign the fee to either SELLER or ITEM. If not specified, this will be tied to transaction level
order.line_items.parent_id
string
Optional
This is either the seller Id or item Id
order.amount
double
Mandatory
In IDR currency and without decimal
Allowed chars: numeric
Max length: 12
order.callback_url
string
Mandatory
Merchant URL that will redirected to after the order completed
Allowed chars: alphabetic, numeric, special chars
order.callback_url_cancel
string
Optional
URI that the customer is sent to if the customer chooses to cancel the Kredivo payment before completion
Allowed chars: alphabetic, numeric, special chars
peer_to_peer_info.expired_time
number
Optional
Order expiration time in minutes format
Allowed chars: numeric
Maximum length: 5
Default value: 1440
peer_to_peer_info.merchant_unique_reference
string
Mandatory
Unique reference number generated by merchant, used as order id in acquirer api.
sellers.id
string
Optional
Seller's ID
sellers.name
string
Optional
Seller's name
sellers.email
string
Optional
Seller's email
sellers.url
string
Optional
Seller's URL
sellers.legal_id
string
Optional
Seller's Legal ID ( KTP, SIM or Passport Number)
sellers.address.first_name
string
Optional
Seller's first name
sellers.address.last_name
number
Optional
Seller's last name
sellers.address.address
string
Optional
Seller's address
sellers.address.city
string
Optional
Seller's address city
sellers.address.postal_code
string
Optional
Seller's address postal code.
sellers.address.phone
string
Optional
Seller's phone
sellers.address.country_code
string
Optional
Seller's country code. ISO 3166-1 alpha-3
customer.first_name
string
Mandatory
Customer's first name
Allowed chars: alphabetic, numeric, special chars
Max Length: 255
customer.last_name
string
Optional
Customer's last name
Allowed chars: alphabetic, numeric, special chars
Max length: 255
customer.phone
string
Mandatory
Customer phone number. Format: {calling_code}{phone_number}
. Example: 6281122334455
Allowed chars: numeric
Max Length: 16
customer.email
string
Mandatory
Customer address
Allowed chars: alphabetic, numeric, special chars
Max Length: 400
billing_address.first_name
string
Optional
Billing address of the customer/shopper. Customer's first name
billing_address.last_name
string
Optional
Billing address of the customer/shopper. Customer's last name
billing_address.address
string
Optional
Billing address of the customer/shopper. Customer's address
billing_address.city
string
Optional
Billing address of the customer/shopper. Customer's city
billing_address.postal_code
string
Optional
Billing address of the customer/shopper. Customer's postal code
billing_address.phone
string
Optional
Billing address of the customer/shopper. Customer's phone
billing_address.country_code
string
Optional
Billing address of the customer/shopper. Customer's country code
shipping_address.first_name
string
Mandatory
Shipping address of the customer/shopper. Shipping is required for goods (excluding ticket/voucher). Customer's first name
shipping_address.last_name
number
Optional
Shipping address of the customer/shopper. Customer's last name
shipping_address.address
string
Mandatory
Shipping address of the customer/shopper. Customer's address
shipping_address.city
number
Mandatory
Shipping address of the customer/shopper. Customer's city
shipping_address.postal_code
string
Mandatory
Shipping address of the customer/shopper. Customer's postal code
shipping_address.phone
number
Mandatory
Shipping address of the customer/shopper. Customer's phone
shipping_address.country_code
string
Mandatory
Shipping address of the customer/shopper. Customer's country code
additional_info.override_notification_url
string
Optional
This parameter is intended to override the configured Notification URL
with another URL. Click here for more information.
API Response
After hitting the above API request, DOKU will give the response.
HTTP Status
200
Result
SUCCESS
Response Header Explanation
Client-Id
Same as the request
Request-Id
Same as the request
Response-Timestamp
Timestamp Response on UTC with format ISO8601 UTC+0 from DOKU
Signature
Signature generated by DOKU based on the response body
Here is the sample of response body:
Response Body Explanation
order.invoice_number
string
Mandatory
Same as the request
order.amount
number
Mandatory
Same as the request
payment.status
string
Mandatory
The current payment status
Possible value:
PENDING
: continue redirect the customer to payment.url
.
FAILED
: Retry generate order with different order.invoice_number
and payment.merchant_unique_reference
payment.url
string
Optional
Kredivo payment page URL to display for the customer
peer_to_peer_info.identifier
object
Optional
List of transaction identifier that coming from the acquiring. Merchant can save these data for reference
peer_to_peer_info.created_date
string
Conditional
Date time of URL generated with the format of yyyyMMddHHmmss.
peer_to_peer_info.expired_date
string
Conditional
Date time of URL EXPIRED with the format of yyyyMMddHHmmss.
peer_to_peer_info.created_date_utc
string
Conditional
Date time of URL generated with the format of yyyyMMddHHmmss. The generated date uses UTC+7 time.
peer_to_peer_info.expired_date_utc
string
Conditional
Date time of URL will be expired in UTC. Use this to set the expiry order on merchant side
peer_to_peer_info.merchant_unique_reference
string
Conditional
Same as the request
additional_info.override_notification_url
string
Optional
Same as the request
Once you have the payment.url
, you can now display the payment page by redirecting your customer to the Kredivo payment page.
After the customer completed the payment, they will be redirected to the defined order.callback_url
that you set on the API request.
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: