DANA
DANA offers one time payment type that allow customer to make a payment without account binding/card registration process.
Integration Steps
1. Payment
Client's current local time in yyyy-MM- ddTHH:mm:ssTZD format
2020-12-21T07:56:11.000ZAlgorithm symmetric signature HMAC_SHA512 (clientSecret, stringToSign)
85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5Unique ID for a partner (DOKU'S Client ID)
821508239190Numeric String. Reference number that should be unique in the same day (request-id)
418075533589Device identification on which the API services are currently being accessed by the end user (customer). Can’t contain symbols
95221conditional. IP address of the end user (customer) using IPv4 format
95221Access Token obtained from Get B2B Token API
95221invoice number from partner | max: 64 | Mandatory
INV-0001Expired time payment url | format: 2024-07-10T11:57:58+07:00
2024-07-10T11:57:58+07:00Point of initiation from partner | value: app/pc/mweb | max: 20
appSuccessful
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.
2000500Response Message
SuccessfulRedirect URL to Merchant's page/platform for customer to input OTP/PIN
https://app-uat.doku.com/link/283702597342040Invoice Number from Partner
INV-0001Successful
2. Payment Notification
3. Additional Feature
Online Refund
B2B access token obtained from the Get B2B Token API (/authorization/v1/access-token/b2b)
Merchant's client ID registered with DOKU
merchant-client-id-001Unique reference ID for this refund request (per-day uniqueness required). Used for idempotency and tracing. Numeric string.
ext-refund-20260526-00001B2B access token obtained from the Get B2B Token API
Bearer eyJhbGciOiJSUzI1NiJ9...Request timestamp in ISO 8601 format (yyyy-MM-ddTHH:mm:ss+07:00)
2026-05-26T10:00:00+07:00HMAC-SHA512 symmetric signature for request integrity verification
85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5Customer B2B2C token (dokuB2b2cToken) obtained during the DANA binding process.
Required if the original payment was made using a bound DANA token.
Bearer eyJhbGciOiJSUzI1NiJ9...IP address of the end customer's device
103.31.4.0Device ID of the end customer's device
device-id-abc123Request body for initiating a refund on the EMONEY_DANA_SNAP channel
Invoice number of the original payment transaction to be refunded.
This is the partnerReferenceNo (invoice) from the original payment request.
INV-20260526-001The X-EXTERNAL-ID header value from the original payment request.
Used to precisely locate the original transaction.
ext-pay-20260526-00001Merchant's unique reference number for this refund.
Must be unique per originalPartnerReferenceNo. Used for idempotency and reconciliation.
REFUND-20260526-001Human-readable reason for the refund
Customer requested full refundRefund successfully processed by DANA.
The refundNo field contains the acquirer's refund reference number for reconciliation.
Response body for a successful refund request
Response code: HTTP Status (3) + Service Code 58 (2) + Case Code (2).
Example: 2005800 = HTTP 200 + service 58 + case 00 (Successful).
2005800Human-readable response message
SuccessfulInvoice number of the original payment transaction, echoed from the original transaction
INV-20260526-001DANA acquirer reference number from the original payment transaction. Can be used for reconciliation with DANA.
DANA-REF-987654321Refund reference number assigned by the DANA acquirer. Use this for reconciliation and dispute resolution with DANA.
DANA-REFUND-REF-111Merchant's refund reference number, echoed from the request
REFUND-20260526-001Timestamp when the refund was completed, in ISO 8601 format (yyyy-MM-ddTHH:mm:ss+07:00)
2026-05-26T10:05:00+07:00Bad request — missing or invalid fields
Authentication failure — invalid or expired B2B token
Forbidden — refund amount exceeds the remaining refundable balance of the original transaction. The cumulative refunded amount (including previous partial refunds) must not exceed the original transaction amount.
Not found — the original transaction referenced by originalPartnerReferenceNo was not found or is not in a refundable state
Conflict — duplicate X-EXTERNAL-ID within the same day, or partnerRefundNo already used for this invoice
Internal server error or DANA acquirer malfunction
Last updated