HTTP Notification Sample
After setting up your Notification URL
, we will send the notification for certain events such as when the Virtual Account has been paid by your customers, Credit Card has been charged, Credit Card failed, and etc. Here are the sample for the notifications:
ini untuk SNAP
Virtual Account
Once the customers finish the payment, DOKU will send the notification to your defined Notification URL
. Here is the sample notification that DOKU will send to merchant's server:
Type | Value |
---|---|
HTTP Method | POST |
Here is the sample of notification request header:
{
"X-SIGNATURE": "TsPrkibFNFF17BkIOviPv0CzVSdo5M5c2peE4gTdLsYddCDwgp8fui7+06U/H4tbGdutfVHGu+HW8o4D1MpjjtYooEPif9QcDU2mhVIr8p3YBK0E7yTmg7tmhZsEa/P5TcHvJFgXL1bT3gu4c5uAZ+TtkOEEHuUAprGow1kEO4p3+GAZKOoc0mjvmIGdfwdAK66vBCK1Mj4StjPugAcYYpM7u9uhtoALO2V6dM1TfFKsg3CWQoya4UVx73ePkb5ahhh0gIiTOMrWb2RXhPU4QWlnqLJR9KoWklqUX5UMrZAQuAiKtpTicEiwynIzPffrkeDxa0M7VZjc2LpBPNzXLQ==",
"X-PARTNER-ID": "BRN-0201-1690274481481",
"X-EXTERNAL-ID": "230814190612393107186190192001154673",
"X-TIMESTAMP": "2023-08-14T19:06:12+07:00"
}
Request Header Explanation
Parameter | Description |
---|---|
X-SIGNATURE | Represents signature of a request |
X-PARTNER-ID | Client Id for merchant that generated by DOKU |
X-EXTERNAL-ID | Numeric String. Reference number that should be unique in the same day (Request Id) |
X-TIMESTAMP | Client's current local time with format : YYYY-MM-DDTHH:mm:ssZD |
Here is the sample of notification request body:
- BNC VA
- Bank Mandiri VA
- BRI VA
{
"paidAmount": {
"value": "12500",
"currency": "IDR"
},
"trxDateTime": "2023-08-11T18:29:37+07:00",
"channelCode": "1",
"paymentRequestId": "R_1691752870",
"hashedSourceAccountNo": "7e2abdb908c885c5fee1b21d37915e02",
"additionalInfo": {},
"partnerServiceId": "12361",
"customerNo": "6010000000101",
"virtualAccountNo": "123616010000000101",
"virtualAccountName": "Merchant Success"
}
BNC VA Notification Explanation
Parameter | Type | Mandatory | Description |
---|---|---|---|
paidAmount.value | string | Mandatory | |
paidAmount.currency | string | Mandatory | |
trxDateTime | string | Mandatory | The service that is used for the transaction |
channelCode | string | Mandatory | |
paymentRequestId | string | Mandatory | |
hashedSourceAccountNo | string | Mandatory | |
additionalInfo | string | Mandatory | |
partnerServiceId | string | Mandatory | |
customerNo | string | Mandatory | |
virtualAccountNo | string | Mandatory | |
virtualAccountName | string | Mandatory |
{
"trxDateTime": "2023-08-14T19:06:12+07:00",
"channelCode": "6011",
"referenceNo": "20230814190612379",
"hashedSourceAccountNo": "7e2abdb908c885c5fee1b21d37915e02",
"paidAmount": {
"value": "10000.00",
"currency": "IDR"
},
"paymentRequestId": "R_1692014768",
"paidBills": "FFFFFF",
"flagAdvise": "N",
"trxId": "INV-8889912345678980003",
"partnerServiceId": "88899",
"customerNo": "8889912345678980003",
"virtualAccountNo": "8889912345678980003",
"virtualAccountName": "Jokul Doe 001"
}
Bank Mandiri VA Notification Explanation
Parameter | Type | Mandatory | Description |
---|---|---|---|
paidAmount.value | string | Mandatory | |
paidAmount.currency | string | Mandatory | |
trxDateTime | string | Mandatory | The service that is used for the transaction |
channelCode | string | Mandatory | |
paymentRequestId | string | Mandatory | |
hashedSourceAccountNo | string | Mandatory | |
additionalInfo | string | Mandatory | |
partnerServiceId | string | Mandatory | |
customerNo | string | Mandatory | |
virtualAccountNo | string | Mandatory | |
virtualAccountName | string | Mandatory |
{
"paidAmount": {
"value": "12500",
"currency": "IDR"
},
"trxDateTime": "2023-08-11T18:29:37+07:00",
"channelCode": "1",
"paymentRequestId": "R_1691752870",
"hashedSourceAccountNo": "7e2abdb908c885c5fee1b21d37915e02",
"additionalInfo": {},
"partnerServiceId": "12361",
"customerNo": "6010000000101",
"virtualAccountNo": "123616010000000101",
"virtualAccountName": "Merchant Success"
}
BRI VA Notification Explanation
Parameter | Type | Mandatory | Description |
---|---|---|---|
paidAmount.value | string | Mandatory | |
paidAmount.currency | string | Mandatory | |
trxDateTime | string | Mandatory | The service that is used for the transaction |
channelCode | string | Mandatory | |
paymentRequestId | string | Mandatory | |
hashedSourceAccountNo | string | Mandatory | |
additionalInfo | string | Mandatory | |
partnerServiceId | string | Mandatory | |
customerNo | string | Mandatory | |
virtualAccountNo | string | Mandatory | |
virtualAccountName | string | Mandatory |
Direct Debit
Once the payment process is finished, DOKU will send notification to defined Notification URL
. Here is the sample notification that DOKU will send to merchant's server:
Type | Value |
---|---|
HTTP Method | POST |
Here is the sample of notification request header:
{
"X-PARTNER-ID": "BRN-0233-1677740003693",
"X-EXTERNAL-ID": "169157654793277588402"
}
Request Header Explanation
Parameter | Description |
---|---|
X-PARTNER-ID | Client Id for merchant that generated by DOKU |
X-EXTERNAL-ID | Numeric String. Reference number that should be unique in the same day (Request Id) |
Here is the sample of notification request body:
- OVO
- Allobank
- CIMB
{
"originalPartnerReferenceNo": "E2E_20230809_0005",
"originalReferenceNo": "E2E_20230809_0005",
"originalExternalId": "278717036",
"latestTransactionStatus": "00",
"transactionStatusDesc": "Success",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"additionalInfo": {
"custIdMerchant": "CUST_0005",
"accountType": "WALLET"
}
}
Direct Debit Notification Explanation
Parameter | Type | Mandatory | Description |
---|---|---|---|
originalPartnerReferenceNo | string | Mandatory | Same as the request that merchant sent on the payment initiation |
originalReferenceNo | string | Mandatory | Transaction identifier on service consumer system, will be used as invoice number. |
originalExternalId | `` | ||
latestTransactionStatus | `` | ||
transactionStatusDesc | `` | ||
amount.value | string | Mandatory | Total amount ends in decimal .00 if currency is IDR |
amount.currency | Mandatory | Mandatory | Currency of amount |
additionalInfo.custIdMerchant | `` | ||
additionalInfo.accountType | `` |
{
"originalPartnerReferenceNo": "E2E20230811001",
"originalReferenceNo": "20230811000000050116917278196299",
"originalExternalId": "534375157",
"latestTransactionStatus": "00",
"transactionStatusDesc": "Success",
"amount": {
"value": "5000.00",
"currency": "IDR"
},
"additionalInfo": {
"custIdMerchant": "UATALLO1",
"accountType": "DIRECT_DEBIT"
}
}
Direct Debit Notification Explanation
Parameter | Type | Mandatory | Description |
---|---|---|---|
originalPartnerReferenceNo | string | Mandatory | Same as the request that merchant sent on the payment initiation |
originalReferenceNo | str ing | Mandatory | Transaction identifier on service consumer system, will be used as invoice number. |
originalExternalId | `` | ||
latestTransactionStatus | `` | ||
transactionStatusDesc | `` | ||
amount.value | string | Mandatory | Total amount ends in decimal .00 if currency is IDR |
amount.currency | Mandatory | Mandatory | Currency of amount |
additionalInfo.custIdMerchant | `` | ||
additionalInfo.accountType | `` |
{
"originalPartnerReferenceNo": "E2E20230811001",
"originalReferenceNo": "20230811000000050116917278196299",
"originalExternalId": "534375157",
"latestTransactionStatus": "00",
"transactionStatusDesc": "Success",
"amount": {
"value": "5000.00",
"currency": "IDR"
},
"additionalInfo": {
"custIdMerchant": "UATALLO1",
"accountType": "DIRECT_DEBIT"
}
}
Direct Debit Notification Explanation
Parameter | Type | Mandatory | Description |
---|---|---|---|
originalPartnerReferenceNo | string | Mandatory | Same as the request that merchant sent on the payment initiation |
originalReferenceNo | str ing | Mandatory | Transaction identifier on service consumer system, will be used as invoice number. |
originalExternalId | `` | ||
latestTransactionStatus | `` | ||
transactionStatusDesc | `` | ||
amount.value | string | Mandatory | Total amount ends in decimal .00 if currency is IDR |
amount.currency | Mandatory | Mandatory | Currency of amount |
additionalInfo.custIdMerchant | `` | ||
additionalInfo.accountType | `` |
Responding to HTTP Notification
Your Notification URL
must response with HTTP status 2xx
to confirm the transaction notification is received. The simplest one is to response with 200
.
Retry Notification
In case your Notification URL
didn't response our Notification with 2xx
then we will attempt to deliver your HTTP Notification 6 times with exponential backoff between each interval and will stop retrying until we have received response from your server or there is still no response yet.
Retry Number | Interval (from previous attempts) | Interval (from original attempts) |
---|---|---|
1 | 15 mins | 15 mins |
2 | 45 mins | 1 hours |
3 | 2 hours | 3 hours |
4 | 3 hours | 6 hours |
5 | 6 hours | 12 hours |
6 | 12 hours | 24 hours |
7 | 24 hours (1 day) | 48 hours (2 days) |
8 | 48 hours (2 days) | 96 hours (4 days) |
9 | 72 hours (3 days) | 168 hours (7 days) |
Manual Retry
If you wish to do manual retry for the notification, follow the steps given below:

- Login to DOKU Back Office
- Go to Tools > HTTP Notification
- Find the notification that you wish to retry
- Click the Plane icon to resend the notification
What's next?
Learn more about the best practice on how to handling the HTTP Notification on your side here.