Check Status API

To get the status of a transaction, you can send a request to Jokul Check Status API. It will response with the transaction status. This method requires the transaction order.invoice_number (or Request-Id) as the identifier.

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 Jokul 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": "BANK_MANDIRI"
},
"channel": {
"id": "VIRTUAL_ACCOUNT_BANK_MANDIRI"
},
"transaction": {
"status": "SUCCESS",
"date": "2021-01-27T07:24:50Z",
"original_request_id": "cc682442-6c22-493e-8121-b9ef6b3fa728"
},
"order": {
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"virtual_account_info": {
"virtual_account_number": "8889940000000213"
},
"virtual_account_payment": {
"identifier": [
{
"name": "TRANSACTION_ID",
"value": "8341422"
},
{
"name": "CHANNEL_ID",
"value": "001"
}
]
}
}
Mandiri VA Notification Explanation
ParameterTypeMandatoryDescription
service.idstringOptionalThe service that is used for the transaction
acquirer.idstringOptionalThe acquirer that processed the transaction
channel.idstringOptionalThe channel of the transaction
transaction.statusstringMandatoryThe transaction status to be use to update the status on merchant side
Possible value: PENDING, SUCCESS, EXPIRED
transaction.datestringOptionalThe date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
transaction.original_request_idstringOptionalThe 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

Transaction Status Mapping

Here is the list of status that Jokul will provide for the transaction.status:

NameDescriptionApplicable for Channels
PENDINGTransaction is waiting to be paid by the customerVIRTUAL_ACCOUNT, ONLINE_TO_OFFLINE
SUCCESSTransaction is paid by the customerAll Channels
FAILED Transaction is failed to be paidCREDIT_CARD, DIRECT_DEBIT, E_MONEY
EXPIREDTransaction due date is exceededVIRTUAL_ACCOUNT, ONLINE_TO_OFFLINE
TIMEOUTTransaction is timeoutE_MONEY