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 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:

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-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.

Online to Offline

  • 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.

{
    "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_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

  • 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.

Coming Soon
Coming Soon

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_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.

{
    "order": {
        "invoice_number": "INV-1645668870",
        "amount": 90000
    },
    "transaction": {
        "status": "SUCCESS",
        "date": "2022-02-24T02:15:05Z",
        "type": "RECURRING",
        "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": "RECURRING",
        "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_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

ParameterTypeMandatoryDescription

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

Last updated