Skip to main content

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

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.

1. Virtual Account

API Request

TypeValue
HTTP MethodPOST
API endpoint (Sandbox)https://api-sandbox.doku.com/v1.0/transfer-va/status
API endpoint (Production)https://api.doku.com/[v1.0/transfer-va/status

Here is the sample of notification request header:

X-TIMESTAMP: 2020-12-21T14:56:11+07:00
X-SIGNATURE: ieNOENDdN4MnectGytx5UvmOfASZ2oGWMCJ8gVqkw3tB98ofgY9cbxSeY4IYoYeoKs+0QP4h8BTBhemlfeXp1w==
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
Authorization: bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
Content type: application/ json
CHANNEL-ID: 95221
Request Header Explanation
ParameterData TypeTypeDescription
X-TIMESTAMPstringMandatoryClient's current local time with format :
YYYY-MM-DDTHH:mm:ssZD
X-SIGNATUREstringMandatoryRepresents signature of a request. Identify Signature Type used Value:
1. Symmetric Signature with Get Token (Default)
HMAC_SHA512 (clientSecret, stringToSign) dengan formula stringToSign = HTTPMethod +”:β€œ+ EndpointUrl +":"+ AccessToken +":β€œ+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":β€œ + TimeStamp
Notes :
1. The full URL endpoint includes all parameters in the associated URL
2. For the minify(Request Body) parameter, if there is no Request Body then an empty string is used.
X-PARTNER-IDstringMandatoryClient Id for merchant that generated by DOKU
X-EXTERNAL-IDstringMandatoryNumeric String. Reference number that should be unique in the same day (Request Id)
AuthorizationstringMandatoryRepresents access_token of a request;
String starts with keyword β€œBearer ” followed by access_token (e.g. Bearer eyJraWQiOi...Jzc29zIiwiY)
Content typestringMandatoryString represents indicate the media type of the resource (e.g. application/json)
CHANNEL-IDstring(5)Mandatory95221

Here is the sample of request body to get status of VA number:

{
"partnerServiceId":" 088899",
"customerNo":12345678901234567890,
"virtualAccountNo":" 08889912345678901234567890",
"inquiryRequestId":"abcdef-123456-abcdef",
"paymentRequestId":"abcdef-123456-abcdef",
"additionalInfo":{

}
}
Request Body Explanation
ParameterTypeMandatoryDescription
partnerServiceIdstring (8)MandatoryDerivative of X-PARTNER-ID , similar to company code, 8 digit left padding space
customerNostring (20)MandatoryUnique number (up to 20 digits)
virtualAccountNostring (28)MandatorypartnerServiceId (8 digit left padding space) + customerNo (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo
inquiryRequestIdstring (128)ConditionalUnique identifier from Inquiry. If not send, will return array of transaction based on virtualAccountNo
paymentRequestIdstring (128)OptionalCustomer address
Allowed chars: alphabetic, numeric, special chars
Max Length: 255
additionalInfostringOptionalAdditional info

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.

{
"responseCode":"2002600",
"responseMessage":"Success",
"virtualAccountData":{
"paymentFlagReason":{
"english":"Success",
"indonesia":"Sukses"
},
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"inquiryRequestId":"abcdef-123456-abcdef",
"paymentRequestId":"abcdef-123456-abcdef",
"trxId" : " test123"
"paidAmount":{
"value":"12345678.00",
"currency":"IDR"
},
"billAmount":{
"value":"12345678.00",
"currency":"IDR"
},
"additionalInfo":{
"acquirer" : "BRI"
},
}
}
BRI VA Check Status Explanation
ParameterTypeMandatoryDescription
responseCodestring (7)MandatoryResponse Code
responseMessagestring (150)MandatoryResponse Description
virtualAccountData.paymentFlagReasonstring (200)OptionalReason for Payment Status multi language
virtualAccountData.partnerServiceIdstringMandatoryDerivative of X-PARTNER-ID , similar to company code,
virtualAccountData.customerNostringMandatoryUnique number
virtualAccountData.virtualAccountNostringMandatorypartnerServiceId (8 digit left padding space) + customerNo (up to 20 digits)
virtualAccountData.inquiryRequestIdstringConditionalUnique identifier from Inquiry
virtualAccountData.paymentRequestIdstringConditionalUnique identifier for this Payment from PJP. Mandatory if Payment happened.
virtualAccountData.trxId
virtual_account_number
stringOptionalThe virtual account number that used for the transaction
virtualAccountData.paidAmountobjectMandatoryPaid Amount with 2 decimal
virtualAccountData.paidAmount.billAmountobjectMandatoryTransaction Amount.
virtualAccountData.additionalInfo.acquirerobjectMandatoryAcquirer Name

2. Direct Debit

API Request

TypeValue
HTTP MethodPOST
API endpoint (Sandbox)https://api-sandbox.doku.com/v1.0/debit/status
API endpoint (Production)https://api.doku.com/v1.0/debit/status

Here is the sample of notification request header:

X-TIMESTAMP: 2020-12-21T14:56:11+07:00
X-SIGNATURE: ieNOENDdN4MnectGytx5UvmOfASZ2oGWMCJ8gVqkw3tB98ofgY9cbxSeY4IYoYeoKs+0QP4h8BTBhemlfeXp1w==
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
Authorization: bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
Content type: application/ json
CHANNEL-ID: 95221
Request Header Explanation
ParameterData TypeTypeDescription
X-TIMESTAMPstringMandatoryClient's current local time with format :
YYYY-MM-DDTHH:mm:ssZD
X-SIGNATUREstringMandatoryRepresents signature of a request. Identify Signature Type used Value:
1. Symmetric Signature with Get Token (Default)
HMAC_SHA512 (clientSecret, stringToSign) dengan formula stringToSign = HTTPMethod +”:β€œ+ EndpointUrl +":"+ AccessToken +":β€œ+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":β€œ + TimeStamp
Notes :
1. The full URL endpoint includes all parameters in the associated URL
2. For the minify(Request Body) parameter, if there is no Request Body then an empty string is used.
X-PARTNER-IDstringMandatoryClient Id for merchant that generated by DOKU
X-EXTERNAL-IDstringMandatoryNumeric String. Reference number that should be unique in the same day (Request Id)
AuthorizationstringMandatoryRepresents access_token of a request;
String starts with keyword β€œBearer ” followed by access_token (e.g. Bearer eyJraWQiOi...Jzc29zIiwiY)
Content typestringMandatoryString represents indicate the media type of the resource (e.g. application/json)
CHANNEL-IDstring(5)Mandatory95221
{
"originalPartnerReferenceNo":"2020102900000000000001",
"originalReferenceNo":"2020102977770000000009",
"originalExternalId":"30443786930722726463280097920912",
"serviceCode":"17",
"transactionDate":"2020-12-21T14:56:11+07:00",
"amount":{
"value":"12345678.00",
"currency":"IDR"
},
"merchantId":"23489182303312",
"subMerchantId":"23489182303312",
"externalStoreId":"183908924912387",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Direct Debit Notification Explanation
ParameterTypeMandatoryDescription
originalPartnerReferenceNostringMandatoryOriginal transaction identifier on service consumer system
originalReferenceNostringOptionalOriginal transaction identifier on service provider system
originalExternalIdstringOptionalOriginal External-ID on header message
serviceCodestringMandatoryAPI type indicator. Use : 53 for Check Status API
transactionDatestringOptionaltransaction date : ISO 8601
amountobjectMandatoryValue and Currency
merchantIdstringOptionalMerchant identifier that is unique per each merchant
subMerchantIdstringOptionalSub merchant ID
externalStoreIdstringOptionalExternal Store ID for merchant
additionalInfoobjectOptionalAdditional information

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.

{
"responseCode":"2005500",
"responseMessage":"Request has been processed successfully",
"originalPartnerReferenceNo":"2020102900000000000001",
"originalReferenceNo":"2020102977770000000009",
"approvalCode":"201039000200",
"originalExternalId":"30443786930722726463280097920912",
"serviceCode":"17",
"latestTransactionStatus":"00",
"transactionStatusDesc":"success",
"originalResponseCode":"2005500",
"originalResponseMessage":"Request has been processed successfully",
"sessionId":"883737GHY8839",
"requestID":"3763773",
"refundHistory":[
{
"refundNo":"96194816941239812",
"partnerReferenceNo":"239850918204981205970",
"refundAmount":{
"value":"12345678.00",
"currency":"IDR"
},
"refundStatus":"00",
"refundDate":"2020-12-23T07:44:16+07:00",
"reason":"Customer Complain"
},
{
"refundNo":"96194123981251341",
"partnerReferenceNo":"2398509123131981205970",
"refundAmount":{
"value":"112345678.00",
"currency":"IDR"
},
"refundStatus":"00",
"refundDate":"2020-12-23T07:54:16+07:00",
"reason":"Customer Complain"
}
],
"transAmount":{
"value":"112345678.00",
"currency":"IDR"
},
"feeAmount":{
"value":"112345678.00",
"currency":"IDR"
},
"paidTime":"2020-12-21T14:56:11+07:00",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
BRI VA Check Status Explanation
ParameterTypeMandatoryDescription
responseCodestring (7)MandatoryResponse Code
responseMessagestring (150)MandatoryResponse Description
originalReferenceNostring (64)ConditionalReason for Payment Status multi language
originalPartnerReferenceNostringOptionalOriginal transaction identifier on service consumer system,
approvalCodestringOptionalApproval Code
originalExternalIdstringOptionalOriginal External-ID on header message
serviceCodestringMandatoryTransaction type indicator (service code of the original transaction request).
00 - Success
03 - Pending
06 - Failed
latestTransactionStatusstringMandatory00 - Success
03 - Pending
06 - Failed
`transactionStatusDesc``stringOptionalDescription status transaction
originalResponseCodestringOptionalResponse code
originalResponseMessagestringOptionalResponse description
sessionIdstringOptionalTransaction invoice ID
requestIDstringOptionalTransaction request ID
refundNostringConditionalTransaction Identifier on Service Provider System
partnerRefundNostringConditionalReferenceNumber from PJP AIS for the refund.
refundAmountobjectOptionalNet amount and Currency of the refund.
refundStatusstringConditionalRefund Status
refundDatestringConditionaldd-MM-yyyy
transAmountobjectOptionalTransaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.
feeAmountobjectOptionalFee amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.
paidTimestringConditionaltransaction date : ISO 8601
additionalInfoobjectOptionalAdditional information