Skip to main content

Check Status API - 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.

API Request

TypeValue
HTTP MethodGET
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:

Client-Id: MCH-0001-10791114622547
Request-Id: e71fe02a-bfef-4af9-a6f6-2cf1f03b00e7
Request-Timestamp: 2020-11-18T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps=
Request Header Explanation
ParameterDescription
Client-IdClient ID retrieved from DOKU Back Office
Request-IdUnique random string (max 128 characters) generated from merchant side to protect duplicate request
Request-TimestampTimestamp 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
SignatureSecurity 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.

Virtual Account

{
"service": {
"id": "VIRTUAL_ACCOUNT"
},
"acquirer": {
"id": "BCA"
},
"channel": {
"id": "VIRTUAL_ACCOUNT_BCA"
},
"transaction": {
"status": "SUCCESS",
"date": "2021-01-27T03:24:23Z",
"original_request_id": "15022aab-444f-4b04-afa8-ddfce89432ec"
},
"order": {
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"virtual_account_info": {
"virtual_account_number": "1900600000000046"
},
"virtual_account_payment": {
"identifer": [
{
"name": "REQUEST_ID",
"value": "7892931"
},
{
"name": "REFERENCE",
"value": "6769200"
},
{
"name": "CHANNEL_TYPE",
"value": "6010"
}
]
}
}
BCA VA Notification Explanation
ParameterTypeMandatoryDescription
service.idstringMandatoryThe service that is used for the transaction
acquirer.idstringMandatoryThe acquirer that processed the transaction
channel.idstringMandatoryThe channel of the transaction
transaction.statusstringMandatoryThe transaction status to be use to update the status on merchant side
Possible value: PENDING, SUCCESS, EXPIRED, FAILED
transaction.datestringMandatoryThe date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.original_request_idstringMandatoryThe request ID that sent when initiate the payment
order.invoice_numberstringMandatoryThe invoice number that sent when initate the payment
order.amountstringMandatoryThe amount of the transaction
virtual_account_info.
virtual_account_number
stringOptionalThe virtual account number that used for the transaction
virtual_account_payment.identifierarrayOptionalList of transaction identifier that coming from the acquiring. Merchant can save these data for reference

Online to Offline

{
"order": {
"invoice_number": "INV-67220100000",
"amount": 120000
},
"transaction": {
"status": "SUCCESS",
"date": "2021-12-29T02:37:35Z",
"original_request_id": "INV-67220100000"
},
"service": {
"id": "ONLINE_TO_OFFLINE"
},
"acquirer": {
"id": "ALFA"
},
"channel": {
"id": "ONLINE_TO_OFFLINE_ALFA"
},
"online_to_offline_info": {
"created_date": "20211229093735",
"expired_date": "20211229100732",
"reusable_status": "false"
},
"online_to_offline_payment": {
"identifier": [
{
"name": "AGENT_ID",
"value": "ALFAMART"
},
{
"name": "AGENT_STORE_ID",
"value": "store"
},
{
"name": "AGENT_TRX_ID",
"value": "505045001763766906"
}
]
}
}
Alfa O2O Notification Explanation
ParameterTypeMandatoryDescription
order.invoice_numberstringMandatoryThe invoice number that sent when initate the payment
order.amountstringMandatoryThe amount of the transaction
transaction.statusstringMandatoryThe transaction status to be use to update the status on merchant side
Possible value: SUCCESS, FAILED, TIMEOUT
transaction.datestringMandatoryThe date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.original_request_idstringMandatoryThe request ID that sent when initiate the payment
service.idstringMandatoryThe service that is used for the transaction
acquirer.idstringMandatoryThe acquirer that processed the transaction
channel.idstringMandatoryThe channel of the transaction
jdm.journey_idstringMandatoryJourney id for transaction
online_to_offline_info.created_datestringMandatoryCreated date for Transaction
online_to_offline_info.expired_datestringMandatoryExpired date for Transaction
online_to_offline_info.reusable_statusstringMandatoryReusable status for Payment Code
online_to_offline_payment.identifierarrayMandatoryIdentifier for Transaction

E-Money

{
"order": {
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"transaction": {
"status": "SUCCESS",
"date": "2021-08-24T06:55:37Z",
"original_request_id": "6503362"
},
"service": {
"id": "EMONEY"
},
"acquirer": {
"id": "OVO"
},
"channel": {
"id": "EMONEY_OVO"
},
"ovo_payment": {
"status": "SUCCESS",
"date": "20210824135537",
"batch_number": 195,
"trace_number": 6503362,
"reference_number": 10,
"approval_code": "4318514",
"response_code": "00",
"cash_used": 150000,
"cash_balance": 9850000,
"ovo_points_used": 0,
"ovo_points_balance": 10000000,
"ovo_points_earned": 0
},
"ovo_configuration": {
"merchant_id": "123456",
"tid": "4562019",
"mid": "Doku20191241234",
"store_code": "Doku2019"
},
"ovo_info": {
"ovo_account_name": "testing Doku",
"ovo_id": "081211111111"
}
}
OVO E-Money Check Status Explanation
ParameterTypeMandatoryDescription
order.invoice_numberstringMandatoryThe invoice number that sent when initate the payment
order.amountstringMandatoryThe amount of the transaction
transaction.statusstringMandatoryThe transaction status to be use to update the status on merchant side
Possible value: SUCCESS, FAILED, TIMEOUT
transaction.datestringMandatoryThe date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.original_request_idstringMandatoryThe request ID that sent when initiate the payment
service.idstringMandatoryThe service that is used for the transaction
acquirer.idstringMandatoryThe acquirer that processed the transaction
channel.idstringMandatoryThe channel of the transaction
ovo_payment.statusstringMandatoryPayment status generated by DOKU
ovo_payment.datestringMandatoryPayment date generated by DOKU with the format of yyyyMMddHHmmss UTC+7 time
ovo_payment.batch_numbernumberMandatoryBatch number of transaction for settlement. Value increment on daily basis, except if the Reference Number already reached maximum value
ovo_payment.trace_numbernumberMandatoryGenerated by OVO
Max length: 6
ovo_payment.reference_numbernumberMandatoryTransaction ID for every transaction generated by OVO. Increment for each Push to Pay Transaction
Maximum value: 999999
ovo_payment.approval_codestringMandatoryGenerated by OVO
ovo_payment.response_codestringMandatoryGenerated by OVO. Please refer to the section below for the response_code mapping
ovo_payment.cash_usednumberOptionalOVO Cash that being charged for the transaction
ovo_payment.cash_balancenumberOptionalOVO Cash remaining balance after the transaction
ovo_payment.ovo_points_usednumberOptionalOVO Points that being charged for the transaction
ovo_payment.ovo_points_balancenumberOptionalOVO Points remaining balance after the transaction
ovo_payment.ovo_points_earnednumberOptionalOVO Points earned after the transaction
ovo_configuration.merchant_idstringOptionalMerchant ID by OVO
Allowed chars: numeric
Max length: 7
ovo_configuration.tidstringOptionalTID by OVO
Allowed chars: numeric
Max length: 8
ovo_configuration.midstringOptionalMID by OVO
Allowed chars: alphabetic, numeric
Max length: 15
ovo_configuration.store_codestringOptionalStore code by OVO Allowed chars: alphabetic, numeric
Max length: 15
ovo_info.ovo_account_namestringOptionalName of the OVO customer
ovo_info.ovo_idstringMandatoryID for OVO phone number to do payment

Credit Card

{
"order": {
"invoice_number": "INV-1645668870",
"amount": 90000
},
"transaction": {
"status": "SUCCESS",
"date": "2022-02-24T02:15:05Z",
"type": "SALE",
"original_request_id": "091773eb-a482-408d-949d-73281d91f610"
},
"service": {
"id": "CREDIT_CARD"
},
"acquirer": {
"id": "BANK_MANDIRI"
},
"channel": {
"id": "CREDIT_CARD"
},
"card_payment": {
"card_masked": "461700*******6656",
"approval_code": "194462",
"response_code": "00",
"response_message": "PAYMENT APPROVED",
"type": "SALE",
"acquiring_off_us_status": "FALSE",
"request_id": "091773eb-a482-408d-949d-73281d91f610",
"card_type": "Debit",
"three_dsecure_status": "TRUE",
"issuer": "PT. BANK MANDIRI (PERSERO), Tbk",
"transaction_status": "SUCCESS",
"brand": "VISA",
"date": "2022-02-24T02:15:05Z"

}
}
Credit Card Notification Explanation
ParameterTypeMandatoryDescription
order.invoice_numberstringMandatorySame as the request that merchant sent on the payment initiation
order.amountnumberMandatorySame as the request that merchant sent on the payment initiation
transaction.statusstringMandatoryThe transaction status to be use to update the status on merchant side
Possible value: SUCCESS, FAILED, PENDING
transaction.datestringMandatoryThe date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.typestringConditionalType for Credit Card Transaction.
Mandatory if transaction.status value SUCCESS or FAILED.

Possible value: SALE, INSTALLMENT, MOTO, AUTHORIZE, CAPTURE, RECURRING, REFUND
transaction.original_request_idstringMandatoryThe request ID that sent when initiate the payment
service.idstringMandatoryThe service that is used for the transaction
acquirer.idstringConditionalThe acquirer that processed the transaction.
Mandatory if transaction.status value SUCCESS.
channel.idstringMandatoryThe channel of the transaction
card_payment.card_maskedstringConditionalThe masked card number that charged for this transaction.
Mandatory if transaction.status value SUCCESS or FAILED.
card_payment.approval_codestringConditionalAcquirer approval code for this transaction.
Mandatory if transaction.status value SUCCESS or FAILED.
card_payment.response_codestringConditionalAcquirer response code.
Mandatory if transaction.status value SUCCESS or FAILED.
card_payment.response_messagestringConditionalAcquirer response code
Mandatory if transaction.status value SUCCESS or FAILED.
card_payment.typestringConditionalType 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_statusstringMandatoryPayment acquiring_off_us_status
Possible value: true, false
card_payment.request_idstringMandatoryRequest ID for transaction
card_payment.card_typestringConditionalCard type.
Mandatory if transaction.status value SUCCESS or FAILED.

Possible value: CREDIT, DEBIT
card_payment.three_dsecure_statusstringOptionalThree dsecure status
Possible value: TRUE, FALSE
card_payment.issuerstringConditionalCard issuer.
Mandatory if transaction.status value SUCCESS or FAILED.
card_payment.transaction_statusstringMandatoryTransaction status
Possible value: SUCCESS, FAILED, PENDING
card_payment.brandstringConditionalCard brand.
Mandatory if transaction.status value SUCCESS or FAILED.
card_payment.datestringOptionalTransaction card date
card_payment.authorize_idstringOptionalTransaction authorize ID
card_payment.authentication_idstringOptionalTransaction authentication ID

Direct Debit

{
"order": {
"amount": 500000,
"invoice_number":"INV-20210217-0003"
},
"channel":{
"id":"DIRECT_DEBIT_BRI"
},
"service":{
"id":"DIRECT_DEBIT"
},
"acquirer":{
"id":"BRI"
},
"transaction":{
"date":"2021-02-17T09:50:17.235078",
"status":"SUCCESS",
"original_request_id":"20210217095009645"
},
"card_payment":{
"payment_id":"432828221538",
"response_code":"0000",
"response_message":"SUCCESS",
"masked_card_number":"************8232"
}
}
Direct Debit Notification Explanation
ParameterTypeMandatoryDescription
order.invoice_numberstringMandatorySame as the request that merchant sent on the payment initiation
order.amountnumberMandatorySame as the request that merchant sent on the payment initiation
transaction.statusstringMandatoryThe transaction status to be use to update the status on merchant side
Possible value: SUCCESS, FAILED
transaction.datestringMandatoryThe date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.original_request_idstringMandatoryThe request ID that sent when initiate the payment
service.idstringMandatoryThe service that is used for the transaction
acquirer.idstringMandatoryThe acquirer that processed the transaction
channel.idstringMandatoryThe channel of the transaction
card_payment.masked_card_numberstringOptionalThe masked card number that charged for this transaction
card_payment.payment_idstringOptionalThe token that will be use for this transaction
card_payment.response_codestringOptionalDOKU / Acquirer response code
Possible value: see here
card_payment.response_messagestringOptionalDOKU / Acquirer response code
Possible value: see here

Internet Banking

{
"order": {
"amount": 500000,
"invoice_number":"INV-20210217-0003"
},
"channel":{
"id":"DIRECT_DEBIT_BRI"
},
"service":{
"id":"DIRECT_DEBIT"
},
"acquirer":{
"id":"BRI"
},
"transaction":{
"date":"2021-02-17T09:50:17.235078",
"status":"SUCCESS",
"original_request_id":"20210217095009645"
},
"card_payment":{
"payment_id":"432828221538",
"response_code":"0000",
"response_message":"SUCCESS",
"masked_card_number":"************8232"
}
}
Direct Debit Notification Explanation
ParameterTypeMandatoryDescription
order.invoice_numberstringMandatorySame as the request that merchant sent on the payment initiation
order.amountnumberMandatorySame as the request that merchant sent on the payment initiation
transaction.statusstringMandatoryThe transaction status to be use to update the status on merchant side
Possible value: SUCCESS, FAILED
transaction.datestringMandatoryThe date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.original_request_idstringMandatoryThe request ID that sent when initiate the payment
service.idstringMandatoryThe service that is used for the transaction
acquirer.idstringMandatoryThe acquirer that processed the transaction
channel.idstringMandatoryThe channel of the transaction
card_payment.masked_card_numberstringOptionalThe masked card number that charged for this transaction
card_payment.payment_idstringOptionalThe token that will be use for this transaction
card_payment.response_codestringOptionalDOKU / Acquirer response code
Possible value: see here
card_payment.response_messagestringOptionalDOKU / Acquirer response code
Possible value: see here

Transaction Status Mapping

Learn more about the transaction.status possible value here: