For the complete documentation index, see llms.txt. This page is also available as Markdown.

i.saku

i.saku offers a one time payment type that allows customers to make a payment without account binding.

Integration Steps

Overview of integration process with i.saku.


1. Payment

Payment process using i.saku doesn't require account binding. After the customer creates an order and chooses i.saku as the payment method on the merchant's platform, the merchant will hit this payment API to get a redirect URL to DOKU/i.saku payment flow for the customer to complete the payment.

API Endpoint

Environment
Endpoint

HTTP Method

POST

API Production

Path

.../direct-debit/core/v2.0/debit/payment-host-to-host

Sample of Request Header, Request Body and Response Body

Payment

post
Header parameters
X-TIMESTAMPstring · utc timestampRequired

Client's current local time in yyyy-MM- ddTHH:mm:ssTZD format

Example: 2020-12-21T07:56:11.000Z
X-SIGNATUREstringRequired

Algorithm symmetric signature HMAC_SHA512 (clientSecret, stringToSign)

Example: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-PARTNER-IDstringRequired

Unique ID for a partner (DOKU'S Client ID)

Example: 821508239190
X-EXTERNAL-IDstringRequired

Numeric String. Reference number that should be unique in the same day (request-id)

Example: 418075533589
X-DEVICE-IDstringRequired

Device identification on which the API services are currently being accessed by the end user (customer). Can’t contain symbols

Example: 95221
X-IP-ADDRESSstringOptional

conditional. IP address of the end user (customer) using IPv4 format

Example: 95221
AuthorizationstringRequired

Access Token obtained from Get B2B Token API

Example: 95221
Body
partnerReferenceNostringRequired

invoice number from partner | max: 64 | Mandatory

Example: INV-0001
validUptostringOptional

Expired time payment url | format: 2024-07-10T11:57:58+07:00

Example: 2024-07-10T11:57:58+07:00
pointOfInitiationstringOptional

Point of initiation from partner | value: app/pc/mweb | max: 20

Example: app
Responses
200

Successful

application/json
responseCodestringRequired

Response Code with format HTTP status code + service code + case code. service code and status code refer to: https://developers.doku.com/getting-started-with-doku-api/response-code/http-status-and-case-code#id-3.-e-wallet . | Mandatory | min length: 1 | max length: 7.

Example: 2000500
responseMessagestringRequired

Response Message

Example: Successful
webRedirectUrlstringRequired

Redirect URL to Merchant's page/platform for customer to input OTP/PIN

Example: https://app-uat.doku.com/link/283702597342040
partnerReferenceNostringOptional

Invoice Number from Partner

Example: INV-0001
post/direct-debit/core/v2.0/debit/payment-host-to-host
POST /direct-debit/core/v2.0/debit/payment-host-to-host HTTP/1.1
Host: {api-domain}
X-TIMESTAMP: 2020-12-21T07:56:11.000Z
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-PARTNER-ID: 821508239190
X-EXTERNAL-ID: 418075533589
X-DEVICE-ID: 95221
Authorization: 95221
Content-Type: application/json
Accept: */*
Content-Length: 317

{
  "partnerReferenceNo": "INV-0001",
  "validUpto": "2024-07-10T11:57:58+07:00",
  "pointOfInitiation": "app",
  "urlParams": [
    {
      "url": "www.merchant.co.id",
      "type": "PAY_RETURN",
      "isDeepLink": "Y/N"
    }
  ],
  "amount": {
    "value": "10000.00",
    "currency": "IDR"
  },
  "additionalInfo": {
    "channel": "EMONEY_ISAKU_SNAP",
    "isDeepLink": "N",
    "phoneNo": "PAY_RETURN"
  }
}
200

Successful

{
  "responseCode": "2000500",
  "responseMessage": "Successful",
  "webRedirectUrl": "https://app-uat.doku.com/link/283702597342040",
  "partnerReferenceNo": "INV-0001"
}

2. Payment Notification

After payment is completed, DOKU will send HTTP Notification to merchant's defined Notification URL.Learn how to handle the notification from DOKU.

3. Additional Feature

Online Refund

This endpoint is used to create a refund request for a previous successful i.saku payment. The merchant can request a transaction refund through DOKU.

API Endpoint

Environment
Endpoint

HTTP Method

POST

API Production

Path

.../direct-debit/core/v1/debit/refund

Sample of Request Header, Request Body and Response Body

Refund

post
Header parameters
X-TIMESTAMPstring · utc timestampRequired

Client's current local time in yyyy-MM- ddTHH:mm:ssTZD format

Example: 2020-12-21T07:56:11.000Z
X-SIGNATUREstringRequired

Algorithm symmetric signature HMAC_SHA512 (clientSecret, stringToSign)

Example: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-PARTNER-IDstringRequired

Unique ID for a partner (DOKU'S Client ID)

Example: 821508239190
X-EXTERNAL-IDstringRequired

Numeric String. Reference number that should be unique in the same day (request-id)

Example: 418075533589
X-DEVICE-IDstringRequired

Device identification on which the API services are currently being accessed by the end user (customer). Can’t contain symbols

Example: 95221
X-IP-ADDRESSstringOptional

conditional. IP address of the end user (customer) using IPv4 format

Example: 95221
AuthorizationstringRequired

Access Token obtained from Get B2B Token API

Example: 95221
Body
originalPartnerReferenceNostringRequired

Partner Reference No from Purchase Transaction | max: 64 | Mandatory

Example: INV-0001
originalExternalIdstringOptional

External ID from Purchase Transaction | max: 64 |

Example: REQ-0001
reasonstringOptional

Reason for Refund | max: 255

Example: Request by Customer
partnerRefundNostringRequired

Partner Refund No from Partner | max: 64 | Mandatory

Example: INV-REF-0001
Responses
200

Successful

application/json
responseCodestringRequired

Response Code with format HTTP status code + service code + case code. service code and status code refer to: https://developers.doku.com/getting-started-with-doku-api/response-code/http-status-and-case-code#id-3.-e-wallet . | Mandatory | min length: 1 | max length: 7.

Example: 2000700
responseMessagestringRequiredExample: Successful
refundTimestringRequired

format: yyyy-MM-dd'T'HH:mm:ssXXX

Example: 2024-01-01T09:09:00.123
post/direct-debit/core/v1/debit/refund
POST /direct-debit/core/v1/debit/refund HTTP/1.1
Host: {api-domain}
X-TIMESTAMP: 2020-12-21T07:56:11.000Z
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-PARTNER-ID: 821508239190
X-EXTERNAL-ID: 418075533589
X-DEVICE-ID: 95221
Authorization: 95221
Content-Type: application/json
Accept: */*
Content-Length: 239

{
  "additionalInfo": {
    "channel": "EMONEY_ISAKU_SNAP"
  },
  "originalPartnerReferenceNo": "INV-0001",
  "originalExternalId": "REQ-0001",
  "refundAmount": {
    "value": "10000.00",
    "currency": "IDR"
  },
  "reason": "Request by Customer",
  "partnerRefundNo": "INV-REF-0001"
}
200

Successful

{
  "responseCode": "2000700",
  "responseMessage": "Successful",
  "refundAmount": {
    "value": "10000.00",
    "currency": "IDR"
  },
  "refundTime": "2024-01-01T09:09:00.123"
}

Last updated