HTTP Notification Sample - Non SNAP
HTTP Notification Sample for Payment Method Non SNAP
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.
Once the customers finish the payment, DOKU will send the notification to your defined Notification URL
.
Virtual Account
Here is the sample notification that DOKU will send to merchant's server :
HTTP Method
POST
Here is the sample of notification request header :
Client-Id: MCH-0001-10791114622547
Request-Id: 479b663f-5c9d-400d-8e80-3e548a8f7639
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps=
Client-Id
Client ID you retrieved from DOKU Back Office
Request-Id
Unique random string (max 128 characters) that generated by DOKU to make sure no duplicate notification
Request-Timestamp
Time Stamp request on UTC time in ISO8601 format
Signature
Verify the Signature to ensure the Notification Authenticity coming from DOKU. Please refer to this section
Here is the sample notification request body :
{
"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"
}
]
}
}
Virtual Account Notification Explanation
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
transaction.status
string
Mandatory
The transaction status to be use to update the status on merchant side
Possible value: SUCCESS
since VA only notify when payment is success
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
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
virtual_account_info.
virtual_account_number
string
Mandatory
The virtual account number that used for the transaction
virtual_account_payment.identifier
string
Optional
List of transaction identifier that coming from the acquiring. Merchant can save these data for reference
Credit Card
Here is the sample notification that DOKU will send to merchant's server.
HTTP Method
POST
Here is the sample notification request header :
Client-Id: MCH-0001-10791114622547
Request-Id: 370c993c-e5ee-4dfc-9e47-0474b55c7b4b
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps
Client-Id
Client ID you retrieved from DOKU Back Office
Request-Id
Unique random string (max 128 characters) that generated by DOKU to make sure no duplicate notification
Request-Timestamp
Time Stamp request on UTC time in ISO8601 format
Signature
Verify the Signature to ensure the Notification Authenticity coming from DOKU. Please refer to this section
Here is the sample notification request body :
{
"order": {
"invoice_number": "INV-1672986414",
"amount": 90000
},
"customer": {
"id": "W7rbKhPYh76VSHYwHRaGDIbBhgTebgAoWtX",
"name": "Anton Budiman",
"email": "[email protected]"
},
"transaction": {
"type": "SALE",
"status": "SUCCESS",
"date": "2023-01-06T06:27:14Z",
"original_request_id": "a438194b-ed79-421a-adb6-062496b08c7b"
},
"service": {
"id": "CREDIT_CARD"
},
"acquirer": {
"id": "BANK_MANDIRI"
},
"channel": {
"id": "CREDIT_CARD"
},
"card_payment": {
"masked_card_number": "557338******1101",
"approval_code": "448998",
"response_code": "00",
"response_message": "PAYMENT APPROVED",
"issuer": "PT. BANK MANDIRI (PERSERO), Tbk"
},
"authorize_id": "16920747459243358",
}
Credit Card Notification Explanation
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
customer.id
string
Mandatory
Same as the request that merchant sent on the payment initiation
customer.name
string
Optional
Same as the request that merchant sent on the payment initiation
customer.email
string
Optional
Same as the request that merchant sent on the payment initiation
transaction.type
string
Mandatory
Transaction Type
Possible value: SALE, INSTALLMENT, AUTHORIZE, MOTO
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`
authorize_id
string
Optional
Used to capture transaction in
Authorize Capture
transaction
card_payment.masked_card_number
string
Optional
The masked card number that charged for this transaction
card_payment.approval_code
string
Optional
Acquirer approval code for this transaction
card_payment.response_code
string
Optional
DOKU / Acquirer response code
card_payment.response_message
string
Optional
DOKU / Acquirer response message
card_payment.issuer
string
Optional
Card Issuer
Convenience Store
Here is the sample notification that DOKU will send to merchant's server.
HTTP Method
POST
Here is the sample notification request header :
Client-Id: MCH-0001-10791114622547
Request-Id: 370c993c-e5ee-4dfc-9e47-0474b55c7b4b
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps
Client-Id
Client ID you retrieved from DOKU Back Office
Request-Id
Unique random string (max 128 characters) that generated by DOKU to make sure no duplicate notification
Request-Timestamp
Time Stamp request on UTC time in ISO8601 format
Signature
Verify the Signature to ensure the Notification Authenticity coming from DOKU. Please refer to this section
Here is the sample notification request body :
{
"service": {
"id": "ONLINE_TO_OFFLINE"
},
"acquirer": {
"id": "ALFA"
},
"channel": {
"id": "ONLINE_TO_OFFLINE_ALFA"
},
"transaction": {
"status": "SUCCESS",
"date": "2021-08-12T07:06:28Z",
"original_request_id": "5b8e438f-fac1-4103-9e0e-ebfdc38b5acb"
},
"order": {
"invoice_number": "INV-20210125-0001",
"amount": 150000
},
"online_to_offline_info": {
"payment_code": "73"
},
"online_to_offline_payment": {
"identifier": [
{
"name": "AGENT_ID",
"value": "ALFAMART"
},
{
"name": "AGENT_STORE_ID",
"value": "store"
},
{
"name": "AGENT_TRX_ID",
"value": "1246"
}
]
}
}
Convenience Store Notification Explanation
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
transaction.status
string
Mandatory
The transaction status to be use to update the status on merchant side
Possible value: SUCCESS
since Convenience Store only notify when payment is success
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
order.invoice_number
string
Mandatory
The invoice number that sent when initate the payment
order.amount
string
Mandatory
The amount of the transaction
online_to_offline_info.
payment_code
string
Mandatory
The payment code number that used for the transaction
online_to_offline_payment.identifier
array
Optional
Same as the inquiry response
additional_info
json
Optional
Same as the additional_info from the request
E-wallet
Here is the sample notification that DOKU will send to merchant's server.
HTTP Method
POST
Here is the sample notification request header :
Client-Id: MCH-0001-10791114622547
Request-Id: 370c993c-e5ee-4dfc-9e47-0474b55c7b4b
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps
Client-Id
Client ID you retrieved from DOKU Back Office
Request-Id
Unique random string (max 128 characters) that generated by DOKU to make sure no duplicate notification
Request-Timestamp
Time Stamp request on UTC time in ISO8601 format
Signature
Verify the Signature to ensure the Notification Authenticity coming from DOKU. Please refer to this section
Here is the sample notification request body :
{
"service":{
"id": "EMONEY"
},
"acquirer":{
"id": "SHOPEE_PAY"
},
"channel":{
"id": "EMONEY_SHOPEE_PAY"
},
"order":{
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"transaction":{
"status": "SUCCESS",
"date": "2021-07-09T02:06:14Z",
"original_request_id": "24bb5232-3fe6-47a5-b0b0-d0fc3c6b5fdb"
},
"shopeepay_configuration":{
"merchant_ext_id": "846609710695590",
"store_ext_id": "99012984"
},
"shopeepay_payment":{
"transaction_status": "3",
"transaction_message": "SUCCESS",
"identifier": [
{
"name": "PAYMENT_REFERENCE_ID",
"value": "INV-20210124-0001"
},
{
"name": "TRANSACTION_SN",
"value": "5928618974087420594542231456745334310931540501886465026193020656"
},
{
"name": "USER_ID_HASH",
"value": "1933182965027045219980555801600298133716162755914500208775934992"
}
]
}
}
Shopeepay Notification Explanation
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
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
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
shopeepay_configuration.
merchant_ext_id
string
Optional
The credential from ShopeePay
shopeepay_configuration.
store_ext_id
string
Optional
The credential from ShopeePay
shopeepay_payment.
transaction_status
string
Optional
The status code from ShopeePay
Possible value: 3
for success, 4
for failed
shopeepay_payment.
transaction_message
string
Optional
The status message from ShopeePay
Possible value: SUCCESS, FAILED
shopeepay_payment.identifier
array
Optional
List of transaction identifier that coming from the acquiring. Merchant can save these data for reference
Direct Debit
Here is the sample notification that DOKU will send to merchant's server.
HTTP Method
POST
Here is the sample notification request header :
Client-Id: MCH-0001-10791114622547
Request-Id: af0fa6bf-5295-42ff-9291-8dfd51976bf0
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps=
Client-Id
Client ID you retrieved from DOKU Back Office
Request-Id
Unique random string (max 128 characters) that generated by DOKU to make sure no duplicate notification
Request-Timestamp
Time Stamp request on UTC time in ISO8601 format
Signature
Verify the Signature to ensure the Notification Authenticity coming from DOKU. Please refer to this section
Here is the sample notification request body :
{
"order": {
"invoice_number": "INV-20210118-0001",
"amount": 90000
},
"transaction": {
"status": "SUCCESS",
"date": "2021-02-17T16:33:26.362464",
"original_request_id": "b6a465ea-bb65-48b2-a22b-3e8fb51cf22e"
},
"service": {
"id": "DIRECT_DEBIT"
},
"acquirer": {
"id": "BRI"
},
"channel": {
"id": "DIRECT_DEBIT_BRI"
},
"card_payment": {
"masked_card_number": "************8232",
"response_code": "0000",
"response_message": "SUCCESS",
"payment_id": "510119432113"
}
}
Direct Debit Notification Explanation
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.approval_code
string
Optional
Acquirer approval code for this transaction
card_payment.response_code
string
Optional
DOKU / Acquirer response code
card_payment.response_message
string
Optional
DOKU / Acquirer response code
Paylater
Here is the sample notification that DOKU will send to merchant's server.
HTTP Method
POST
Here is the sample notification request header :
Client-Id: MCH-0001-10791114622547
Request-Id: 370c993c-e5ee-4dfc-9e47-0474b55c7b4b
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps
Client-Id
Client ID you retrieved from DOKU Back Office
Request-Id
Unique random string (max 128 characters) that generated by DOKU to make sure no duplicate notification
Request-Timestamp
Time Stamp request on UTC time in ISO8601 format
Signature
Verify the Signature to ensure the Notification Authenticity coming from DOKU. Please refer to this section
Here is the sample notification request body :
{
"service": {
"id": "PEER_TO_PEER"
},
"acquirer": {
"id": "AKULAKU"
},
"channel": {
"id": "PEER_TO_PEER_AKULAKU"
},
"order": {
"invoice_number": "INV-20210707-0001",
"amount": 90000
},
"transaction": {
"status": "SUCCESS",
"date": "2021-07-07T08:48:42Z",
"original_request_id": "baec7d95-f30a-4b78-b711-6ebe0ccdf50b"
},
"peer_to_peer_info": {
"virtual_account_number": "2900800000000003",
"created_date": "20200313095850",
"expired_date": "20200313155850",
"status": "SUCCESS",
"merchant_unique_reference": "60123",
"identifier": [
{
"name": "AKULAKU_UNIQUE_REFERENCE",
"value": "BRN-0288-1654748429432TEST-ABC-768"
},
{
"name": "ORDER_ID",
"value": "BRN-0288-1654748429432TEST-ABC-768"
}
]
},
"payment": {
"merchant_unique_reference": "MUR-20210707-0001"
}
}
Akulaku Notification Explanation
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
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
payment.
merchant_unique_reference
string
Mandatory
The merchant unique reference that sent when initiate the payment
QRIS
Here is the sample notification that DOKU will send to the merchant's server.
Value
Post
Here is the sample notification request header :
Client-Id: MCH-0001-10791114622547
Request-Id: 370c993c-e5ee-4dfc-9e47-0474b55c7b4b
Request-Timestamp: 2020-08-11T08:45:42Z
Signature: HMACSHA256=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6Ps
Client-Id
Client ID you retrieved from DOKU Back Office
Request-Id
Unique random string (max 128 characters) that generated by DOKU to make sure no duplicate notification
Request-Timestamp
Time Stamp request on UTC time in ISO8601 format
Signature
Verify the Signature to ensure the Notification Authenticity coming from DOKU. Please refer to this section
Here is the sample notification request body :
{
"service": {
"id": "QRIS",
"name": "QRIS"
},
"acquirer": {
"id": "DOKU",
"name": "DOKU"
},
"channel": {
"id": "QRIS_DOKU",
"name": "QRIS-DOKU"
},
"customer": {
"doku_id": "1673637808",
"name": "accountsnap_1747637808",
"email": "[email protected]",
"phone": "6281747637808"
},
"order": {
"invoice_number": "5ffa5675bb114404a4e426241cf05be0",
"amount": 20000.00
},
"emoney_payment": {
"account_id": "1673637808",
"approval_code": "234604941"
},
"transaction": {
"status": "SUCCESS",
"date": "2025-06-20T04:26:26Z"
},
"additional_info": {
"postalCode": "13120",
"feeType": "1",
"settlement": [
{
"bank_account_settlement_id": "SBA-0001-123123123",
"value": 10.0,
"type": "PERCENTAGE"
},
{
"bank_account_settlement_id": "SBS-0002-321321321",
"value": 90.0,
"type": "PERCENTAGE"
}
],
"origin": {
"product": "QRIS",
"system": "snap-adapter",
"apiFormat": "SNAP",
"source": "DIRECT"
}
}
}
QRIS Notification Explanation:
service.id
string
Mandatory
The service id that is used for the transaction
service.name
string
Mandatory
The service name that is used for the transaction
acquirer.id
string
Mandatory
The acquirer id that processed the transaction
acquirer.name
string
Mandatory
The acquirer name that processed the transaction
channel.id
string
Mandatory
The channel id of the transaction
channel.name
string
Mandatory
The channel name of the transaction
customer.doku_id
string
Mandatory
Customer / Merchant doku id
customer.name
string
Mandatory
Customer / Merchant name
customer.email
string
Mandatory
Customer / Merchant email
customer.phone
string
Mandatory
Customer / Merchant phone
order.invoice_number
string
Mandatory
Same as the request that merchant sent on the payment initiation
order.amount
string
Mandatory
Total amount in IDR
emoney_payment.account_id
string
Mandatory
Acquirer id for this transaction
emoney_payment.approval_code
string
Mandatory
Acquirer approval code for this transaction
transaction.status
string
Mandatory
The transaction status to be use to update the status on merchant side
Possible value: SUCCESS since Convenience Store only notify when payment is success
transaction.date
string
Mandatory
The date when the transaction is completed by the customer in ISO 8601 format (UTC + 0)
additional_info
string
Mandatory
Same as the additional_info from the request
origin.product
string
Mandatory
The product that processed the transaction
origin.system
string
Mandatory
The product that processed the transaction
origin.apiFormat
string
Mandatory
The Api format that processed the transaction
origin.source
string
Mandatory
The source that processed the transaction
Last updated
Was this helpful?