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 :

TypeValue

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=
ParameterDescription

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

ParameterTypeMandatoryDescription

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.

TypeValue

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
ParameterDescription

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": "anton@doku.com"
  },
  "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

ParameterTypeMandatoryDescription

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.

TypeValue

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
ParameterDescription

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

ParameterTypeMandatoryDescription

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.

TypeValue

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
ParameterDescription

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

ParameterTypeMandatoryDescription

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.

TypeValue

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=
ParameterDescription

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"