Non-SNAP
To get the status of a transaction, you can send a request to DOKU Check Status API. It will response with the transaction status. This method requires the transaction order.invoice_number
(or Request-Id
) as the identifier.
Hit Check status after 60 seconds after payment completion!
To get the status for the transaction, please ensure your application is already hit after 60 seconds after payment completion.
Transaction Status Mapping
Here is the list of status that DOKU will provide for the transaction.status
:
PENDING
Transaction is waiting to be paid by the customer
NO
Wait for HTTP Notification or Call Check Status API to get final status
VIRTUAL_ACCOUNT
, ONLINE_TO_OFFLINE
, CREDIT_CARD_AUTHORIZE
, PAYLATER
SUCCESS
Transaction is paid by the customer
YES
-
All Channels
FAILED
Transaction is failed to be paid
NO
Generate new payment request to DOKU
VIRTUAL_ACCOUNT
,CREDIT_CARD
, DIRECT_DEBIT
, E_MONEY
, PAYLATER
EXPIRED
Transaction due date is exceeded
YES
Generate new payment request to DOKU
VIRTUAL_ACCOUNT
, ONLINE_TO_OFFLINE
, PAYLATER
REFUNDED
Transaction fund is refunded to merchant
YES
-
CREDIT CARD
, EMONEY
, PAYLATER
TIMEOUT
Transaction is timeout
NO
Call Check Status API to get final status
E_MONEY
REDIRECT
Transaction is waiting for acquirer verification
NO
Wait for HTTP Notification or Call Check Status API to get final status
CREDIT_CARD
API Request
HTTP Method
GET
API endpoint (Sandbox)
https://api-sandbox.doku.com/orders/v1/status/{{order.invoice_number OR Request-Id}}
API endpoint (Production)
https://api.doku.com/orders/v1/status/{{order.invoice_number OR Request-Id}}
Here is the sample of notification request header:
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
Signature Generation for GET Method
For GET Method, you don't need to generate a Digest. Learn more on this section.
API Response
The response will be similar to HTTP notification. Some parameters might not be presented in certain status cases, please check our Postman Collection to try it out yourself.
Convenience store
Alfa
Indomaret
The response will be similar to HTTP notification. Some parameters might not be presented in certain status cases, please check our Postman Collection to try it yourself.
Alfa O2O Notification Explanation
order.invoice_number
string
Mandatory
The invoice number that sent when initate the payment
order.amount
string
Mandatory
The amount of the transaction
transaction.status
string
Mandatory
The transaction status to be use to update the status on merchant side
Possible value: SUCCESS
, FAILED
, TIMEOUT
transaction.date
string
Mandatory
The date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.original_request_id
string
Mandatory
The request ID that sent when initiate the payment
service.id
string
Mandatory
The service that is used for the transaction
acquirer.id
string
Mandatory
The acquirer that processed the transaction
channel.id
string
Mandatory
The channel of the transaction
jdm.journey_id
string
Mandatory
Journey id for transaction
online_to_offline_info.created_date
string
Mandatory
Created date for Transaction
online_to_offline_info.expired_date
string
Mandatory
Expired date for Transaction
online_to_offline_info.reusable_status
string
Mandatory
Reusable status for Payment Code
online_to_offline_payment.identifier
array
Mandatory
Identifier for Transaction
e-Wallet
DANA
ShopeePay
DOKU e-Wallet
OVO Push Payment
OVO Recurring
Link Aja
The response will be similar to HTTP notification. Some parameters might not be presented in certain status cases, please check our Postman Collection to try it yourself.
order.invoice_number
string
Mandatory
Same as the request that merchant sent on the payment initiation
order.amount
number
Mandatory
Same as the request that merchant sent on the payment initiation
transaction.status
string
Mandatory
The transaction status to be use to update the status on merchant side
Possible value: SUCCESS, FAILED, PENDING
transaction.date
string
Mandatory
The date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.service_code
string
Optional
Service Code
transaction.type
string
Conditional
Type for DANA transaction.
Mandatory if transaction.status
value SUCCESS or FAILED.
Possible value: SALE
transaction.original_request_id
string
Mandatory
The request ID that sent when initiate the payment
service.id
string
Mandatory
The service that is used for the transaction
acquirer.id
string
Conditional
The acquirer that processed the transaction.
Mandatory if transaction.status
value SUCCESS.
channel.id
string
Mandatory
The channel of the transaction
additional_info
array
Optional
emoney_payment.status
string
Optional
Status of the Payment
emoney_payment.date
string
Optional
Date of the order
emoney_payment.approval_code
string
Optional
Approval Code from DOKU
emoney_payment.response_code
string
Optional
Response code for the order
emoney_payment.response_message
string
Optional
Response message for the Order
emoney_configuration.sub_merchant.id
string
Optional
Sub merchant ID
Direct Debit
Direct Debit Notification Explanation
order.invoice_number
string
Mandatory
Same as the request that merchant sent on the payment initiation
order.amount
number
Mandatory
Same as the request that merchant sent on the payment initiation
transaction.status
string
Mandatory
The transaction status to be use to update the status on merchant side
Possible value: SUCCESS, FAILED
transaction.date
string
Mandatory
The date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.original_request_id
string
Mandatory
The request ID that sent when initiate the payment
service.id
string
Mandatory
The service that is used for the transaction
acquirer.id
string
Mandatory
The acquirer that processed the transaction
channel.id
string
Mandatory
The channel of the transaction
card_payment.masked_card_number
string
Optional
The masked card number that charged for this transaction
card_payment.payment_id
string
Optional
The token that will be use for this transaction
card_payment.response_code
string
Optional
DOKU / Acquirer response code Possible value: see here
card_payment.response_message
string
Optional
DOKU / Acquirer response code Possible value: see here
Cards
Sale
Recurring
Authorize
Capture
The response will be similar to HTTP notification. Some parameters might not be presented in certain status cases, please check our Postman Collection to try it yourself.
Credit Card Notification Explanation
order.invoice_number
string
Mandatory
Same as the request that merchant sent on the payment initiation
order.amount
number
Mandatory
Same as the request that merchant sent on the payment initiation
transaction.status
string
Mandatory
The transaction status to be use to update the status on merchant side
Possible value: SUCCESS, FAILED, PENDING
transaction.date
string
Mandatory
The date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.type
string
Conditional
Type for Credit Card Transaction.
Mandatory if transaction.status
value SUCCESS or FAILED.
Possible value: SALE, INSTALLMENT, MOTO, AUTHORIZE, CAPTURE, RECURRING, REFUND
transaction.original_request_id
string
Mandatory
The request ID that sent when initiate the payment
service.id
string
Mandatory
The service that is used for the transaction
acquirer.id
string
Conditional
The acquirer that processed the transaction.
Mandatory if transaction.status
value SUCCESS.
channel.id
string
Mandatory
The channel of the transaction
card_payment.card_masked
string
Conditional
The masked card number that charged for this transaction.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.approval_code
string
Conditional
Acquirer approval code for this transaction.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.response_code
string
Conditional
Acquirer response code.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.response_message
string
Conditional
Acquirer response code
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.type
string
Conditional
Type for Credit Card Transaction.
Mandatory if transaction.status
value SUCCESS or FAILED.
Possible value: SALE, INSTALLMENT, MOTO, AUTHORIZE, CAPTURE, RECURRING, REFUND
card_payment.acquiring_off_us_status
string
Mandatory
Payment acquiring_off_us_status
Possible value: true, false
card_payment.request_id
string
Mandatory
Request ID for transaction
card_payment.card_type
string
Conditional
Card type.
Mandatory if transaction.status
value SUCCESS or FAILED.
Possible value: CREDIT, DEBIT
card_payment.three_dsecure_status
string
Optional
Three dsecure status
Possible value: TRUE, FALSE
card_payment.issuer
string
Conditional
Card issuer.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.transaction_status
string
Mandatory
Transaction status
Possible value: SUCCESS, FAILED, PENDING
card_payment.brand
string
Conditional
Card brand.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.date
string
Optional
Transaction card date
card_payment.authorize_id
string
Optional
Transaction authorize ID
card_payment.authentication_id
string
Optional
Transaction authentication ID
order.invoice_number
string
Mandatory
Same as the request that merchant sent on the payment initiation
order.amount
number
Mandatory
Same as the request that merchant sent on the payment initiation
transaction.status
string
Mandatory
The transaction status to be use to update the status on merchant side
Possible value: SUCCESS, FAILED, PENDING
transaction.date
string
Mandatory
The date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.type
string
Conditional
Type for Credit Card Transaction.
Mandatory if transaction.status
value SUCCESS or FAILED.
Possible value: SALE, INSTALLMENT, MOTO, AUTHORIZE, CAPTURE, RECURRING, REFUND
transaction.original_request_id
string
Mandatory
The request ID that sent when initiate the payment
service.id
string
Mandatory
The service that is used for the transaction
acquirer.id
string
Conditional
The acquirer that processed the transaction.
Mandatory if transaction.status
value SUCCESS.
channel.id
string
Mandatory
The channel of the transaction
card_payment.card_masked
string
Conditional
The masked card number that charged for this transaction.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.approval_code
string
Conditional
Acquirer approval code for this transaction.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.response_code
string
Conditional
Acquirer response code.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.response_message
string
Conditional
Acquirer response code
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.type
string
Conditional
Type for Credit Card Transaction.
Mandatory if transaction.status
value SUCCESS or FAILED.
Possible value: SALE, INSTALLMENT, MOTO, AUTHORIZE, CAPTURE, RECURRING, REFUND
card_payment.acquiring_off_us_status
string
Mandatory
Payment acquiring_off_us_status
Possible value: true, false
card_payment.request_id
string
Mandatory
Request ID for transaction
card_payment.card_type
string
Conditional
Card type.
Mandatory if transaction.status
value SUCCESS or FAILED.
Possible value: CREDIT, DEBIT
card_payment.three_dsecure_status
string
Optional
Three dsecure status
Possible value: TRUE, FALSE
card_payment.issuer
string
Conditional
Card issuer.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.transaction_status
string
Mandatory
Transaction status
Possible value: SUCCESS, FAILED, PENDING
card_payment.brand
string
Conditional
Card brand.
Mandatory if transaction.status
value SUCCESS or FAILED.
card_payment.date
string
Optional
Transaction card date
card_payment.authorize_id
string
Optional
Transaction authorize ID
card_payment.authentication_id
string
Optional
Credit Card Notification Explanation
Paylater
The response will be similar to HTTP notification. Some parameters might not be presented in certain status cases, please check our Postman Collection to try it yourself.
service.id
string
Mandatory
The service that is used for the transaction
acquirer.id
string
Mandatory
The acquirer that processed the transaction
channel.id
string
Mandatory
The channel of the transaction
order.invoice_number
string
Mandatory
Same as the request that merchant sent on the payment initiation
order.amount
number
Mandatory
Same as the request that merchant sent on the payment initiation
transaction.status
string
Mandatory
The transaction status to be use to update the status on merchant side
Possible value: SUCCESS, PENDING
transaction.date
string
Mandatory
The date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.original_request_id
string
Mandatory
The request ID that sent when initiate the payment
payment.
merchant_unique_reference
string
Mandatory
The merchant unique reference that sent when initiate the payment
Last updated