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"
}
]
}
}{
"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"
}
]
}
}{
"service": {
"id": "VIRTUAL_ACCOUNT"
},
"acquirer": {
"id": "BANK_SYARIAH_MANDIRI"
},
"channel": {
"id": "VIRTUAL_ACCOUNT_BANK_SYARIAH_MANDIRI"
},
"transaction": {
"status": "SUCCESS",
"date": "2021-01-27T06:00:20Z",
"original_request_id": "d24a5644-6078-4249-8740-4a6dcd92df5a"
},
"order": {
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"virtual_account_info": {
"virtual_account_number": "6059000000000205"
},
"virtual_account_payment": {
"identifier": [
{
"name": "PAY_TERMINAL_ID",
"value": ""
},
{
"name": "BANK_REFERENCE",
"value": "1232990188"
},
{
"name": "PAY_CHANNEL",
"value": "6019"
}
]
}
}
{
"service": {
"id": "VIRTUAL_ACCOUNT"
},
"acquirer": {
"id": "BRI"
},
"channel": {
"id": "VIRTUAL_ACCOUNT_BRI"
},
"transaction": {
"status": "SUCCESS",
"date": "2020-08-11T09:06:18Z",
"original_request_id": "e5a8a8b8-7eab-4be3-91d8-5e2d7ab7cc25"
},
"order": {
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"virtual_account_info": {
"virtual_account_number": "1236260000000004"
},
"virtual_account_payment": {
"identifier": [
{
"name": "TRANSAKSI_ID",
"value": "127503812"
},
{
"name": "TERMINAL_ID",
"value": "1"
}
]
}
}{
"service": {
"id": "VIRTUAL_ACCOUNT"
},
"acquirer": {
"id": "BNI"
},
"channel": {
"id": "VIRTUAL_ACCOUNT_BNI"
},
"order": {
"invoice_number": "INV-1640337742",
"amount": 20000
},
"virtual_account_info": {
"virtual_account_number": "8803300000000098",
"merchant_unique_reference": "UNIQUE_00003",
"billing_type": "FIXED",
"identifier":[
{
"name": "BILLING_NUMBER",
"value": "3280300000000001234"
}
]
},
"virtual_account_payment": {
"identifier": [
{
"name": "TRX_ID",
"value": "11901640337564039UNIQUE_00003"
},
{
"name": "PAYMENT_NTB",
"value": "228853"
}
]
},
"transaction": {
"status": "SUCCESS",
"date": "2021-12-24T16:23:39Z",
"original_request_id": "456b001e-adc8-4fb8-a976-95831fb61468"
}
}{
"service": {
"id": "VIRTUAL_ACCOUNT"
},
"acquirer": {
"id": "DOKU"
},
"channel": {
"id": "VIRTUAL_ACCOUNT_DOKU"
},
"transaction": {
"status": "SUCCESS",
"date": "2021-01-22T07:06:28Z",
"original_request_id": "09e0defe-a071-45b3-9feb-ac134374628c"
},
"order": {
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"virtual_account_info": {
"virtual_account_number": "8000100000000323"
},
"virtual_account_payment": {
"identifier": [
{
"name": "TRACE_NUMBER",
"value": "19832"
},
{
"name": "TRANSACTION_NUMBER",
"value": "d094700e379f0fb3b543e25c77f8e4b3e068f057"
},
{
"name": "HOST_REFERENCE_NUMBER",
"value": ""
}
]
}
}{
"service": {
"id": "VIRTUAL_ACCOUNT"
},
"acquirer": {
"id": "CIMB"
},
"channel": {
"id": "VIRTUAL_ACCOUNT_BANK_CIMB"
},
"transaction": {
"status": "SUCCESS",
"date": "2020-08-11T09:06:18Z",
"original_request_id": "e5a8a8b8-7eab-4be3-91d8-5e2d7ab7cc25"
},
"order": {
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"virtual_account_info": {
"virtual_account_number": "1236260000000004"
},
"virtual_account_payment": {
"identifier": [
{
"name": "TRANSAKSI_ID",
"value": "127503812"
},
{
"name": "TERMINAL_ID",
"value": "1"
}
]
}
}{
"service": {
"id": "VIRTUAL_ACCOUNT"
},
"acquirer": {
"id": "BANK_PERMATA"
},
"channel": {
"id": "VIRTUAL_ACCOUNT_BANK_PERMATA"
},
"transaction": {
"status": "SUCCESS",
"date": "2020-08-11T09:06:18Z",
"original_request_id": "e5a8a8b8-7eab-4be3-91d8-5e2d7ab7cc25"
},
"order": {
"invoice_number": "INV-20210124-0001",
"amount": 150000
},
"virtual_account_info": {
"virtual_account_number": "1236260000000004"
},
"virtual_account_payment": {
"identifier": [
{
"name": "TRANSAKSI_ID",
"value": "127503812"
},
{
"name": "TERMINAL_ID",
"value": "1"
}
]
}
}{
"acquirer": {
"id": "BANK_DANAMON",
"name": "Bank Danamon"
},
"service": {
"id": "VIRTUAL_ACCOUNT",
"name": "Virtual Account"
},
"channel": {
"id": "VIRTUAL_ACCOUNT_BANK_DANAMON",
"name": "Virtual Account Bank Danamon"
},
"order": {
"invoice_number": "INV-1635748123946513",
"amount": 20000
},
"virtual_account_info": {
"virtual_account_number": "8922600000000063"
},
"virtual_account_payment": {
"reference_number": "AFNGf6wAWrFe2LSmpfXviRXYv7nPK1LOsao9TtLC",
"date": "20211206152845",
"identifier": [
{
"name": "USER_REF_NO",
"value": "AFNGf6wAWrFe2LSmpfXviRXYv7nPK1LOsao9TtLC"
},
{
"name": "PAY_ACCOUNT",
"value": "706913838473"
},
{
"name": "PAY_BANK",
"value": "Danamon"
},
{
"name": "PAY_DESC",
"value": "Payment Simulator for 8922600000000063"
},
{
"name": "PAY_AMOUNT",
"value": "20000"
},
{
"name": "BILL_AMOUNT",
"value": "20000"
}
]
},
"transaction": {
"status": "SUCCESS",
"original_request_id": "b693d940-bd15-4b85-9d02-57844c4039e3",
"date": "2021-12-06T08:28:45Z"
}
}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=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6PsClient-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=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6PsClient-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"
}
]
}
}{
"service": {
"id": "ONLINE_TO_OFFLINE"
},
"acquirer": {
"id": "ALFA"
},
"channel": {
"id": "ONLINE_TO_OFFLINE_ALFA"
},
"order": {
"invoice_number": "INV-20210125-0001",
"amount": 150000
},
"transaction": {
"status": "SUCCESS",
"date": "2021-01-22T07:06:28Z",
"original_request_id": "2103"
},
"online_to_offline_info": {
"payment_code": "8896512345678123"
},
"online_to_offline_payment": {
"identifier": [
{
"name": "AGENT_ID",
"value": "100001"
},
{
"name": "AGENT_STORE_ID",
"value": "10000232"
},
{
"name": "AGENT_TRX_ID",
"value": "c1aa04bf421e5b38c3d18933e9994d3f289def65"
}
]
},
"additional_info": {
"insurance_info": {
"policy_type": "Dana Pendidikan",
"policy_number": "9090901234",
"policy_account_name": "Andreas",
"policy_status": "aktif",
"bill_due_date": "21 May 2021"
}
}
}{
"service": {
"id": "ONLINE_TO_OFFLINE"
},
"acquirer": {
"id": "INDOMARET"
},
"channel": {
"id": "ONLINE_TO_OFFLINE_INDOMARET"
},
"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": "INDOMARET"
},
{
"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=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6PsClient-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
DOKU OVO Open API will publish 3 scenarios that are in the process before payment to after payment. Here are the cases that will be published :
Binding
{
"service":{
"id":"EMONEY"
},
"acquirer":{
"id":"OVO"
},
"channel":{
"id":"EMONEY_OVO"
},
"customer":{
"id":"123123123",
"name":"Joko",
"email":"[email protected]",
"phone":"081287458232",
"additional_info":"Test"
},
"wallet": {
"issuer": "OVO",
"token_id": "410d3bce942991550d81f20171234df3",
"masked_phone_number": "****0621",
"status":"SUCCESS"
}
}OVO Open API - Binding 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
customer.id
string
Mandatory
Merchant customer ID
customer.name
string
Optional
Customer name that sent when initiate the payment
customer.email
string
Optional
Customer email that sent when initiate the payment
customer.phone
string
Optional
Customer phone that sent when initiate the payment
customer.additional_info
string
Mandatory
Customer additional_info that sent when initate the payment
wallet.issuer
string
Mandatory
Wallet issuer that receive on API Get List Token OVO Response
wallet.token_id
string
Mandatory
Wallet token ID that receive on API Get List Token OVO Response
wallet.masked_phone_number
string
Mandatory
Wallet Masked Phone Number that receive on API Get List Token OVO Response
wallet.status
string
Mandatory
Wallet Status
Payment
{
"service":{
"id":"EMONEY"
},
"acquirer":{
"id":"OVO"
},
"channel":{
"id":"EMONEY_OVO"
},
"customer":{
"id":"123123123",
"name":"Joko",
"email":"[email protected]",
"phone":"081287458232",
"additional_info":"Test"
},
"order":{
"invoice_number":"INV-20210124-0001",
"amount":200000
},
"transaction":{
"status":"SUCCESS",
"date":"2021-06-11T02:17:59Z",
"original_request_id":"4bb5232-3fe6-47a5-b0b0-d0fc3c6b5fdb"
},
"ovo_payment": {
"ovo_id":"08227631610000",
"cash_used": 19000,
"point_used": 1000,
"response_code":OVO123213,
"response_message":Blablabla
},
"additional_info":{
"message":"no additional info",
"test": "test"
}
}OVO Open API - Payment 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
customer.id
string
Mandatory
Merchant customer id
customer.name
string
Optional
Customer name that sent when initiate the payment
customer.email
string
Optional
Customer email that sent when initiate the payment
customer.phone
string
Optional
Customer phone number that sent when initiate the payment
customer.additional_info
string
Optional
Customer additional_info that sent when initate the payment
order.invoice_number
string
Mandatory
Merchant transaction id unique per client id
order.amount
string
Mandatory
Total amount in IDR
transaction.status
string
Mandatory
Status of transaction
Possible value :SUCCESS, FAILED
transaction.date
string
Mandatory
Transaction requested to Bank on UTC time in ISO8601 format
transaction.original_request_id
string
Mandatory
Request ID to DOKU API when generate payment / refund
transaction.message
string
Mandatory
Transaction message
additional_info.message
string
Mandatory
Additional info message
additional_info.test
string
Mandatory
Additional info test
Refund
{
"service":{
"id":"EMONEY"
},
"acquirer":{
"id":"OVO"
},
"channel":{
"id":"EMONEY_OVO"
},
"customer":{
"id":"123123123"
},
"order":{
"invoice_number":"INV-20210124-0001"
},
"transaction":{
"status":"REFUNDED",
"date":"2021-06-11T02:17:59Z",
"original_request_id":"4bb5232-3fe6-47a5-b0b0-d0fc3c6b5fdb"
},
"ovo_payment": {
"ovo_id":"08227631610000"
},
"refund": {
"id": "864271549283077864271549287589",
"amount": 6000,
"ovo_cash": 5000,
"ovo_point": 1000,
"reason": "Cancel Order",
"response_code": OVO123213,
"response_message": Blablabla
},
"additional_info":{
"message":"no additional info",
"test":"test"
}
}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=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6PsClient-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=vl9DBTX5KhEiXmnpOD0TSm8PYQknuHPdyHSTSc3W6PsClient-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?