# SNAP

{% hint style="warning" %}
**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.
{% endhint %}

## Virtual Account

### API Request&#x20;

#### Endpoint

<table><thead><tr><th width="248">Type</th><th>Value</th></tr></thead><tbody><tr><td><strong>HTTP Method</strong></td><td>POST</td></tr><tr><td><strong>API endpoint (Sandbox)</strong></td><td><code>https://api-sandbox.doku.com/orders/v1.0/transfer-va/status</code></td></tr><tr><td><strong>API endpoint (Production)</strong></td><td><code>https://api.doku.com/orders/v1.0/transfer-va/status</code></td></tr></tbody></table>

Here is the sample of Check Status request header  :

```json
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
```

#### Request Header Explanation

<table><thead><tr><th>Parameter</th><th width="123">Data Type	</th><th width="116">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>X-TIMESTAMP</strong></td><td>string</td><td>Mandatory</td><td>Client's current local time with format :<br><code>YYYY-MM-DDTHH:mm:ssZD</code></td></tr><tr><td><strong>X-SIGNATURE</strong></td><td>string</td><td>Mandatory</td><td>Represents signature of a request. Identify Signature Type used Value:<br>1. Symmetric Signature with Get Token (Default)<br><code>HMAC_SHA512 (clientSecret, stringToSign)</code> with formula <code>stringToSign = HTTPMethod +”:“+ EndpointUrl +":"+ AccessToken +":“+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":“ + TimeStamp</code><br>Notes :<br>1. The full URL endpoint includes all parameters in the associated URL<br>2. For the <code>minify(Request Body)</code> parameter, if there is no Request Body then an empty string is used.</td></tr><tr><td><strong>X-PARTNER-ID</strong></td><td>string</td><td>Mandatory</td><td>Client ID for merchant that generated by DOKU</td></tr><tr><td><strong>X-EXTERNAL-ID</strong></td><td>string</td><td>Mandatory</td><td>Reference number that should be unique in the same day or to be known as Request ID</td></tr><tr><td><strong>Authorization</strong></td><td>string</td><td>Mandatory</td><td>Represents access_token of a request; Keyword starts with “Bearer ” followed by access_token (e.g. <code>Bearer eyJraWQiOi...Jzc29zIiwiY</code>)</td></tr><tr><td><strong>Content type</strong></td><td>string</td><td>Mandatory</td><td>The media type of the resource (e.g. application/json)</td></tr></tbody></table>

#### Request Body

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

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

| Parameter          | Type         | Mandatory   | Description                                                                                                                     |
| ------------------ | ------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `partnerServiceId` | string (8)   | Mandatory   | Derivative of X-PARTNER-ID , similar to company code, 8 digit left padding space                                                |
| `customerNo`       | string (20)  | Mandatory   | Unique number (up to 20 digits)                                                                                                 |
| `virtualAccountNo` | string (28)  | Mandatory   | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
| `inquiryRequestId` | string (128) | Conditional | Unique identifier from Inquiry. If not send, will return array of transaction based on **virtualAccountNo**                     |
| `paymentRequestId` | string (128) | Optional    | Unique identifier for this Payment from PJP. Mandatory if Payment happened.                                                     |
| `additionalInfo`   | string       | Optional    | Additional info                                                                                                                 |

### API Response

#### Response Body

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 yourself.

{% tabs %}
{% tab title="BRI" %}

```json
{
    "responseCode": "2002600",
    "responseMessage": "Successful",
    "virtualAccountData": {
        "paymentFlagReason": {
            "english": "Pending",
            "indonesia": "Belum Terbayar"
        },
        "partnerServiceId": "   12345",
        "customerNo": "70020000342",
        "virtualAccountNo": "   1234570020000342",
        "paidAmount": {
            "value": "200000.00",
            "currency": "IDR"
        },
        "billDetails": [
            {
                "billAmount": {
                    "value": "200000.00",
                    "currency": "IDR"
                }
            }
        ]
    },
    "additionalInfo": {
        "acquirer": {
            "id": "BRI"
        },
        "trxId": "Testjess12345"
    }
}
```

{% endtab %}

{% tab title="BNI" %}

```json
{
    "responseCode": "2002600",
    "responseMessage": "Successful",
    "virtualAccountData": {
        "paymentFlagReason": {
            "english": "Pending",
            "indonesia": "Belum Terbayar"
        },
        "partnerServiceId": "   12345",
        "customerNo": "70020000342",
        "virtualAccountNo": "   1234570020000342",
        "paidAmount": {
            "value": "200000.00",
            "currency": "IDR"
        },
        "billDetails": [
            {
                "billAmount": {
                    "value": "200000.00",
                    "currency": "IDR"
                }
            }
        ]
    },
    "additionalInfo": {
        "acquirer": {
            "id": "BNI"
        },
        "trxId": "Testjess12345"
    }
}
```

{% endtab %}

{% tab title="BNC" %}

```json
{
    "responseCode": "2002600",
    "responseMessage": "Successful",
    "virtualAccountData": {
        "paymentFlagReason": {
            "english": "Pending",
            "indonesia": "Belum Terbayar"
        },
        "partnerServiceId": "   12345",
        "customerNo": "70020000342",
        "virtualAccountNo": "   1234570020000342",
        "paidAmount": {
            "value": "200000.00",
            "currency": "IDR"
        },
        "billDetails": [
            {
                "billAmount": {
                    "value": "200000.00",
                    "currency": "IDR"
                }
            }
        ]
    },
    "additionalInfo": {
        "acquirer": {
            "id": "BNC"
        },
        "trxId": "Testjess12345"
    }
}
```

{% endtab %}

{% tab title="BTN" %}

```json
{
    "responseCode": "2002600",
    "responseMessage": "Successful",
    "virtualAccountData": {
        "paymentFlagReason": {
            "english": "Pending",
            "indonesia": "Belum Terbayar"
        },
        "partnerServiceId": "   12345",
        "customerNo": "70020000342",
        "virtualAccountNo": "   1234570020000342",
        "paidAmount": {
            "value": "200000.00",
            "currency": "IDR"
        },
        "billDetails": [
            {
                "billAmount": {
                    "value": "200000.00",
                    "currency": "IDR"
                }
            }
        ]
    },
    "additionalInfo": {
        "acquirer": {
            "id": "BTN"
        },
        "trxId": "Testjess12345"
    }
}
```

{% endtab %}

{% tab title="Danamon" %}

```json
{
    "responseCode": "2002600",
    "responseMessage": "Successful",
    "virtualAccountData": {
        "paymentFlagReason": {
            "english": "Pending",
            "indonesia": "Belum Terbayar"
        },
        "partnerServiceId": "   12345",
        "customerNo": "70020000342",
        "virtualAccountNo": "   1234570020000342",
        "paidAmount": {
            "value": "200000.00",
            "currency": "IDR"
        },
        "billDetails": [
            {
                "billAmount": {
                    "value": "200000.00",
                    "currency": "IDR"
                }
            }
        ]
    },
    "additionalInfo": {
        "acquirer": {
            "id": "DANAMON"
        },
        "trxId": "Testjess12345"
    }
}
```

{% endtab %}

{% tab title="Mandiri" %}

```json
{
    "responseCode": "2002600",
    "responseMessage": "Successful",
    "virtualAccountData": {
        "paymentFlagReason": {
            "english": "Pending",
            "indonesia": "Belum Terbayar"
        },
        "partnerServiceId": "   12345",
        "customerNo": "70020000342",
        "virtualAccountNo": "   1234570020000342",
        "paidAmount": {
            "value": "200000.00",
            "currency": "IDR"
        },
        "billDetails": [
            {
                "billAmount": {
                    "value": "200000.00",
                    "currency": "IDR"
                }
            }
        ]
    },
    "additionalInfo": {
        "acquirer": {
            "id": "MANDIRI"
        },
        "trxId": "Testjess12345"
    }
}
```

{% endtab %}

{% tab title="Permata" %}

```json
{
    "responseCode": "2002600",
    "responseMessage": "Successful",
    "virtualAccountData": {
        "paymentFlagReason": {
            "english": "Pending",
            "indonesia": "Belum Terbayar"
        },
        "partnerServiceId": "   12345",
        "customerNo": "70020000342",
        "virtualAccountNo": "   1234570020000342",
        "paidAmount": {
            "value": "200000.00",
            "currency": "IDR"
        },
        "billDetails": [
            {
                "billAmount": {
                    "value": "200000.00",
                    "currency": "IDR"
                }
            }
        ]
    },
    "additionalInfo": {
        "acquirer": {
            "id": "PERMATA"
        },
        "trxId": "Testjess12345"
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="BRI" %}

<table><thead><tr><th>Parameter</th><th width="174">Type</th><th>Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><code>responseCode</code></td><td>String (7)</td><td>Mandatory</td><td>Response Code</td></tr><tr><td><code>responseMessage</code></td><td>String (150)</td><td>Mandatory</td><td>Response Description</td></tr><tr><td><code>virtualAccountData.paymentFlagReason</code></td><td>String (200)</td><td>Optional</td><td>Reason for Payment Status multi language</td></tr><tr><td><code>virtualAccountData.partnerServiceId</code></td><td>String</td><td>Mandatory</td><td>Derivative of X-PARTNER-ID , similar to company code,</td></tr><tr><td><code>virtualAccountData.customerNo</code></td><td>String</td><td>Mandatory</td><td>Unique number</td></tr><tr><td><code>virtualAccountData.virtualAccountNo</code></td><td>String</td><td>Mandatory</td><td>partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits)</td></tr><tr><td><code>virtualAccountData.inquiryRequestId</code></td><td>String</td><td>Conditional</td><td>Unique identifier from Inquiry</td></tr><tr><td><code>virtualAccountData.paymentRequestId</code></td><td>String</td><td>Conditional</td><td>Unique identifier for this Payment from PJP. Mandatory if Payment happened.</td></tr><tr><td><code>virtualAccountData.paidAmount</code></td><td>Object</td><td>Mandatory</td><td>Paid Amount with 2 decimal</td></tr><tr><td><code>virtualAccountData.paidAmount.billDetails</code></td><td>Object</td><td>Mandatory</td><td>Transaction Amount.</td></tr><tr><td><code>additionalInfo</code></td><td>Object</td><td>Mandatory</td><td>Additional Info</td></tr></tbody></table>
{% endtab %}

{% tab title="BNI" %}

| Parameter                                   | Type         | Mandatory   | Description                                                                  |
| ------------------------------------------- | ------------ | ----------- | ---------------------------------------------------------------------------- |
| `responseCode`                              | String (7)   | Mandatory   | Response Code                                                                |
| `responseMessage`                           | String (150) | Mandatory   | Response Description                                                         |
| `virtualAccountData.paymentFlagReason`      | String (200) | Optional    | Reason for Payment Status multi language                                     |
| `virtualAccountData.partnerServiceId`       | String       | Mandatory   | Derivative of X-PARTNER-ID , similar to company code,                        |
| `virtualAccountData.customerNo`             | String       | Mandatory   | Unique number                                                                |
| `virtualAccountData.virtualAccountNo`       | String       | Mandatory   | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits) |
| `virtualAccountData.inquiryRequestId`       | String       | Conditional | Unique identifier from Inquiry                                               |
| `virtualAccountData.paymentRequestId`       | String       | Conditional | Unique identifier for this Payment from PJP. Mandatory if Payment happened.  |
| `virtualAccountData.paidAmount`             | Object       | Mandatory   | Paid Amount with 2 decimal                                                   |
| `virtualAccountData.paidAmount.billDetails` | Object       | Mandatory   | Transaction Amount.                                                          |
| `additionalInfo`                            | Object       | Mandatory   | Additional Info                                                              |
| {% endtab %}                                |              |             |                                                                              |

{% tab title="BNC" %}

| Parameter                                   | Type         | Mandatory   | Description                                                                  |
| ------------------------------------------- | ------------ | ----------- | ---------------------------------------------------------------------------- |
| `responseCode`                              | String (7)   | Mandatory   | Response Code                                                                |
| `responseMessage`                           | String (150) | Mandatory   | Response Description                                                         |
| `virtualAccountData.paymentFlagReason`      | String (200) | Optional    | Reason for Payment Status multi language                                     |
| `virtualAccountData.partnerServiceId`       | String       | Mandatory   | Derivative of X-PARTNER-ID , similar to company code,                        |
| `virtualAccountData.customerNo`             | String       | Mandatory   | Unique number                                                                |
| `virtualAccountData.virtualAccountNo`       | String       | Mandatory   | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits) |
| `virtualAccountData.inquiryRequestId`       | String       | Conditional | Unique identifier from Inquiry                                               |
| `virtualAccountData.paymentRequestId`       | String       | Conditional | Unique identifier for this Payment from PJP. Mandatory if Payment happened.  |
| `virtualAccountData.paidAmount`             | Object       | Mandatory   | Paid Amount with 2 decimal                                                   |
| `virtualAccountData.paidAmount.billDetails` | Object       | Mandatory   | Transaction Amount.                                                          |
| `additionalInfo`                            | Object       | Mandatory   | Additional Info                                                              |
| {% endtab %}                                |              |             |                                                                              |

{% tab title="BTN" %}

| Parameter                                   | Type         | Mandatory   | Description                                                                  |
| ------------------------------------------- | ------------ | ----------- | ---------------------------------------------------------------------------- |
| `responseCode`                              | String (7)   | Mandatory   | Response Code                                                                |
| `responseMessage`                           | String (150) | Mandatory   | Response Description                                                         |
| `virtualAccountData.paymentFlagReason`      | String (200) | Optional    | Reason for Payment Status multi language                                     |
| `virtualAccountData.partnerServiceId`       | String       | Mandatory   | Derivative of X-PARTNER-ID , similar to company code,                        |
| `virtualAccountData.customerNo`             | String       | Mandatory   | Unique number                                                                |
| `virtualAccountData.virtualAccountNo`       | String       | Mandatory   | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits) |
| `virtualAccountData.inquiryRequestId`       | String       | Conditional | Unique identifier from Inquiry                                               |
| `virtualAccountData.paymentRequestId`       | String       | Conditional | Unique identifier for this Payment from PJP. Mandatory if Payment happened.  |
| `virtualAccountData.paidAmount`             | Object       | Mandatory   | Paid Amount with 2 decimal                                                   |
| `virtualAccountData.paidAmount.billDetails` | Object       | Mandatory   | Transaction Amount.                                                          |
| `additionalInfo`                            | Object       | Mandatory   | Additional Info                                                              |
| {% endtab %}                                |              |             |                                                                              |

{% tab title="Danamon" %}

| Parameter                                   | Type         | Mandatory   | Description                                                                  |
| ------------------------------------------- | ------------ | ----------- | ---------------------------------------------------------------------------- |
| `responseCode`                              | String (7)   | Mandatory   | Response Code                                                                |
| `responseMessage`                           | String (150) | Mandatory   | Response Description                                                         |
| `virtualAccountData.paymentFlagReason`      | String (200) | Optional    | Reason for Payment Status multi language                                     |
| `virtualAccountData.partnerServiceId`       | String       | Mandatory   | Derivative of X-PARTNER-ID , similar to company code,                        |
| `virtualAccountData.customerNo`             | String       | Mandatory   | Unique number                                                                |
| `virtualAccountData.virtualAccountNo`       | String       | Mandatory   | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits) |
| `virtualAccountData.inquiryRequestId`       | String       | Conditional | Unique identifier from Inquiry                                               |
| `virtualAccountData.paymentRequestId`       | String       | Conditional | Unique identifier for this Payment from PJP. Mandatory if Payment happened.  |
| `virtualAccountData.paidAmount`             | Object       | Mandatory   | Paid Amount with 2 decimal                                                   |
| `virtualAccountData.paidAmount.billDetails` | Object       | Mandatory   | Transaction Amount.                                                          |
| `additionalInfo`                            | Object       | Mandatory   | Additional Info                                                              |
| {% endtab %}                                |              |             |                                                                              |

{% tab title="Mandiri" %}

| Parameter                                   | Type         | Mandatory   | Description                                                                  |
| ------------------------------------------- | ------------ | ----------- | ---------------------------------------------------------------------------- |
| `responseCode`                              | String (7)   | Mandatory   | Response Code                                                                |
| `responseMessage`                           | String (150) | Mandatory   | Response Description                                                         |
| `virtualAccountData.paymentFlagReason`      | String (200) | Optional    | Reason for Payment Status multi language                                     |
| `virtualAccountData.partnerServiceId`       | String       | Mandatory   | Derivative of X-PARTNER-ID , similar to company code,                        |
| `virtualAccountData.customerNo`             | String       | Mandatory   | Unique number                                                                |
| `virtualAccountData.virtualAccountNo`       | String       | Mandatory   | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits) |
| `virtualAccountData.inquiryRequestId`       | String       | Conditional | Unique identifier from Inquiry                                               |
| `virtualAccountData.paymentRequestId`       | String       | Conditional | Unique identifier for this Payment from PJP. Mandatory if Payment happened.  |
| `virtualAccountData.paidAmount`             | Object       | Mandatory   | Paid Amount with 2 decimal                                                   |
| `virtualAccountData.paidAmount.billDetails` | Object       | Mandatory   | Transaction Amount.                                                          |
| `additionalInfo`                            | Object       | Mandatory   | Additional Info                                                              |
| {% endtab %}                                |              |             |                                                                              |

{% tab title="Permata" %}

| Parameter                                   | Type         | Mandatory   | Description                                                                  |
| ------------------------------------------- | ------------ | ----------- | ---------------------------------------------------------------------------- |
| `responseCode`                              | String (7)   | Mandatory   | Response Code                                                                |
| `responseMessage`                           | String (150) | Mandatory   | Response Description                                                         |
| `virtualAccountData.paymentFlagReason`      | String (200) | Optional    | Reason for Payment Status multi language                                     |
| `virtualAccountData.partnerServiceId`       | String       | Mandatory   | Derivative of X-PARTNER-ID , similar to company code,                        |
| `virtualAccountData.customerNo`             | String       | Mandatory   | Unique number                                                                |
| `virtualAccountData.virtualAccountNo`       | String       | Mandatory   | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits) |
| `virtualAccountData.inquiryRequestId`       | String       | Conditional | Unique identifier from Inquiry                                               |
| `virtualAccountData.paymentRequestId`       | String       | Conditional | Unique identifier for this Payment from PJP. Mandatory if Payment happened.  |
| `virtualAccountData.paidAmount`             | Object       | Mandatory   | Paid Amount with 2 decimal                                                   |
| `virtualAccountData.paidAmount.billDetails` | Object       | Mandatory   | Transaction Amount.                                                          |
| `additionalInfo`                            | Object       | Mandatory   | Additional Info                                                              |
| {% endtab %}                                |              |             |                                                                              |
| {% endtabs %}                               |              |             |                                                                              |

## Direct Debit

### API Request&#x20;

#### Endpoint

<table><thead><tr><th width="248">Type</th><th>Value</th></tr></thead><tbody><tr><td><strong>HTTP Method</strong></td><td>POST</td></tr><tr><td><strong>API endpoint (Sandbox)</strong></td><td><code>https://api-sandbox.doku.com/orders/v1.0/debit/status</code></td></tr><tr><td><strong>API endpoint (Production)</strong></td><td><code>https://api.doku.com/orders/v1.0/debit/status</code></td></tr></tbody></table>

Here is the sample of Check Status request header  :

```json
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
```

#### Request Header Explanation

<table><thead><tr><th>Parameter</th><th width="123">Data Type	</th><th width="116">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>X-TIMESTAMP</strong></td><td>string</td><td>Mandatory</td><td>Client's current local time with format :<br><code>YYYY-MM-DDTHH:mm:ssZD</code></td></tr><tr><td><strong>X-SIGNATURE</strong></td><td>string</td><td>Mandatory</td><td>Represents signature of a request. Identify Signature Type used Value:<br>1. Symmetric Signature with Get Token (Default)<br><code>HMAC_SHA512 (clientSecret, stringToSign)</code> with formula <code>stringToSign = HTTPMethod +”:“+ EndpointUrl +":"+ AccessToken +":“+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":“ + TimeStamp</code><br>Notes :<br>1. The full URL endpoint includes all parameters in the associated URL<br>2. For the <code>minify(Request Body)</code> parameter, if there is no Request Body then an empty string is used.</td></tr><tr><td><strong>X-PARTNER-ID</strong></td><td>string</td><td>Mandatory</td><td>Client ID for merchant that generated by DOKU</td></tr><tr><td><strong>X-EXTERNAL-ID</strong></td><td>string</td><td>Mandatory</td><td>Reference number that should be unique in the same day or to be known as Request ID</td></tr><tr><td><strong>Authorization</strong></td><td>string</td><td>Mandatory</td><td>Represents access_token of a request; Keyword starts with “Bearer ” followed by access_token (e.g. <code>Bearer eyJraWQiOi...Jzc29zIiwiY</code>)</td></tr><tr><td><strong>Content type</strong></td><td>string</td><td>Mandatory</td><td>The media type of the resource (e.g. application/json)</td></tr></tbody></table>

#### Request Body

Here is the sample of request body to get status of Direct Debit :&#x20;

```json
{
   "originalPartnerReferenceNo":"2020102900000000000001",
   "originalReferenceNo":"2020102977770000000009",
   "originalExternalId":"30443786930722726463280097920912",
   "serviceCode":"55",
   "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"
   }
}
```

| Parameter                  | Type   | Mandatory | Description                                                |
| -------------------------- | ------ | --------- | ---------------------------------------------------------- |
| originalPartnerReferenceNo | string | Optional  | Original transaction identifier on service consumer system |
| originalReferenceNo        | string | Optional  | Original transaction identifier on service provider system |
| originalExternalId         | string | Optional  | Original External-ID on header message                     |
| serviceCode                | string | Mandatory | API type indicator. Use : 55 for Check Status API          |
| transactionDate            | string | Optional  | transaction date : ISO 8601                                |
| amount                     | object | Optional  | Value and Currency                                         |
| merchantId                 | string | Optional  | Merchant identifier that is unique per each merchant       |
| subMerchantId              | string | Optional  | Sub merchant ID                                            |
| externalStoreId            | string | Optional  | External Store ID for merchant                             |
| additionalInfo             | object | Optional  | Additional information                                     |

### API Response

#### Response Body

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 yourself.

{% tabs %}
{% tab title="BRI" %}

```json
{
   "responseCode":"2005500",
   "responseMessage":"Request has been processed successfully",
   "originalPartnerReferenceNo":"2020102900000000000001",
   "originalReferenceNo":"2020102977770000000009",
   "approvalCode":"201039000200",
   "originalExternalId":"30443786930722726463280097920912",
   "serviceCode":"55",
   "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"
   }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="BRI" %}

| Parameter                  | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| -------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`             | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`          | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| originalReferenceNo        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| originalPartnerReferenceNo | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| approvalCode               | String       | Optional    | Unique number                                                                                                                                                                                                               |
| originalExternalId         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| serviceCode                | String       | Mandatory   | Transaction type indicator (service code of the original transaction request)                                                                                                                                               |
| latestTransactionStatus    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| transactionStatusDesc      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| originalResponseCode       | String       | Optional    | Response code                                                                                                                                                                                                               |
| originalResponseMessage    | String       | Optional    | Response description                                                                                                                                                                                                        |
| sessionId                  | String       | Optional    | Transaction invoice ID                                                                                                                                                                                                      |
| requestID                  | String       | Optional    | Transaction request ID                                                                                                                                                                                                      |
| refundNo                   | String       | Conditional | Transaction Identifier on Service Provider System                                                                                                                                                                           |
| partnerRefundNo            | String       | Conditional | ReferenceNumber from PJP AIS for the refund.                                                                                                                                                                                |
| refundAmount               | object       | Optional    | Net amount of the refund                                                                                                                                                                                                    |
| refundStatus               | String       | Conditional | <p>00 = Success<br>03 = Pending<br>04 = Failed</p>                                                                                                                                                                          |
| refundDate                 | String       | Conditional | <p>(ISO 8601) <br>Transaction date : dd-MM-yyyy ( Mandatory )<br><br>HH:mm:Ss ( Optional )</p>                                                                                                                              |
| reason                     | String       | Optional    | Refund reason.                                                                                                                                                                                                              |
| transAmount                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| feeAmount                  | String       | Optional    | Fee amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                                    |
| paidTime                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| additionalInfo             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}               |              |             |                                                                                                                                                                                                                             |
| {% endtabs %}              |              |             |                                                                                                                                                                                                                             |

## E-Wallet

### API Request&#x20;

#### Endpoint

<table><thead><tr><th width="248">Type</th><th>Value</th></tr></thead><tbody><tr><td><strong>HTTP Method</strong></td><td>POST</td></tr><tr><td><strong>API endpoint (Sandbox)</strong></td><td><code>https://api-sandbox.doku.com/orders/v1.0/debit/status</code></td></tr><tr><td><strong>API endpoint (Production)</strong></td><td><code>https://api.doku.com/orders/v1.0/debit/status</code></td></tr></tbody></table>

Here is the sample of Check Status request header  :

```json
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
```

#### Request Header Explanation

<table><thead><tr><th>Parameter</th><th width="123">Data Type	</th><th width="116">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><strong>X-TIMESTAMP</strong></td><td>string</td><td>Mandatory</td><td>Client's current local time with format :<br><code>YYYY-MM-DDTHH:mm:ssZD</code></td></tr><tr><td><strong>X-SIGNATURE</strong></td><td>string</td><td>Mandatory</td><td>Represents signature of a request. Identify Signature Type used Value:<br>1. Symmetric Signature with Get Token (Default)<br><code>HMAC_SHA512 (clientSecret, stringToSign)</code> with formula <code>stringToSign = HTTPMethod +”:“+ EndpointUrl +":"+ AccessToken +":“+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":“ + TimeStamp</code><br>Notes :<br>1. The full URL endpoint includes all parameters in the associated URL<br>2. For the <code>minify(Request Body)</code> parameter, if there is no Request Body then an empty string is used.</td></tr><tr><td><strong>X-PARTNER-ID</strong></td><td>string</td><td>Mandatory</td><td>Client ID for merchant that generated by DOKU</td></tr><tr><td><strong>X-EXTERNAL-ID</strong></td><td>string</td><td>Mandatory</td><td>Reference number that should be unique in the same day or to be known as Request ID</td></tr><tr><td><strong>Authorization</strong></td><td>string</td><td>Mandatory</td><td>Represents access_token of a request; Keyword starts with “Bearer ” followed by access_token (e.g. <code>Bearer eyJraWQiOi...Jzc29zIiwiY</code>)</td></tr><tr><td><strong>Content type</strong></td><td>string</td><td>Mandatory</td><td>The media type of the resource (e.g. application/json)</td></tr></tbody></table>

#### Request Body

Here is the sample of request body to get status of E-Wallet :&#x20;

```json
{
   "originalPartnerReferenceNo":"INV_SHOPEE_202407250004",
   "serviceCode":"55",
   "transactionDate":"2020-12-21T14:56:11+07:00",
   "amount":{
      "value":"2000.00",
      "currency":"IDR"
   },
   "merchantId":"23489182303312",
   "subMerchantId":"23489182303312",
   "externalStoreId":"183908924912387",
   "additionalInfo":{
      "deviceId":"12345679237",
      "channel":"mobilephone"
   }
}
```

| Parameter                  | Type   | Mandatory | Description                                                |
| -------------------------- | ------ | --------- | ---------------------------------------------------------- |
| originalPartnerReferenceNo | string | Optional  | Original transaction identifier on service consumer system |
| originalReferenceNo        | string | Optional  | Original transaction identifier on service provider system |
| originalExternalId         | string | Optional  | Original External-ID on header message                     |
| serviceCode                | string | Mandatory | API type indicator. Use : 55 for Check Status API          |
| transactionDate            | string | Optional  | transaction date : ISO 8601                                |
| amount                     | object | Optional  | Value and Currency                                         |
| merchantId                 | string | Optional  | Merchant identifier that is unique per each merchant       |
| subMerchantId              | string | Optional  | Sub merchant ID                                            |
| externalStoreId            | string | Optional  | External Store ID for merchant                             |
| additionalInfo             | object | Optional  | Additional information                                     |

### API Response

* **OVO Open API Sale**
* **OVO Open API Recurring**
* **ShopeePay**
* **DANA**

#### Response Body

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 yourself.

#### **OVO Open API Sale**

{% tabs %}
{% tab title="Pending" %}

<pre class="language-json"><code class="lang-json"><strong>{
</strong>   "responseCode":"2005500",
   "responseMessage":"Successful",
   "originalPartnerReferenceNo":"2020102900000000000001",
   "originalReferenceNo":"2020102977770000000009",
   "originalExternalId":"30443786930722726463280097920912",
   "serviceCode":"55",
   "latestTransactionStatus":"03",
   "transactionStatusDesc":"PENDING",
   "originalResponseCode":"2005503",
   "originalResponseMessage":"Request has been processed successfully",
   "paidTime":"2020-12-21T14:56:11+07:00",
   "transAmount":{
      "value":"112345678.00",
      "currency":"IDR"
   },
   "additionalInfo":{
      "acquirer": {
         "id" : "OVO SNAP Direct Debit"
      }
   }
}
</code></pre>

{% endtab %}

{% tab title="Success Payment" %}

```json
{
   "responseCode":"2005500",
   "responseMessage":"Successful",
   "originalPartnerReferenceNo":"2020102900000000000001",
   "originalReferenceNo":"2020102977770000000009",
   "originalExternalId":"30443786930722726463280097920912",
   "serviceCode":"55",
   "latestTransactionStatus":"00",
   "transactionStatusDesc":"SUCCESS",
   "originalResponseCode":"2005503",
   "originalResponseMessage":"Request has been processed successfully",
   "paidTime":"2020-12-21T14:56:11+07:00",
   "transAmount":{
      "value":"112345678.00",
      "currency":"IDR"
   },
   "additionalInfo":{
      "acquirer": {
         "id" : "OVO SNAP Direct Debit"
      }
   }
}
```

{% endtab %}

{% tab title="Refund" %}

```json
{
    "responseCode": "2005500",
    "responseMessage": "Successful",
    "originalPartnerReferenceNo": "INV_SHOPEE_20260701002",
    "originalReferenceNo": "C3fl1d4sNn",
    "originalExternalId": "693036698",
    "serviceCode": "55",
    "latestTransactionStatus": "04",
    "transactionStatusDesc": "REFUNDED",
    "originalResponseCode": "2005400",
    "originalResponseMessage": "Successful",
    "paidTime": "2025-07-01T11:40:54+07:00",
    "transAmount": {
        "value": "500000.00",
        "currency": "IDR"
    },
    "refundHistory": [
        {
            "refundNo": "REFUND_NO_SdvDY8",
            "partnerReferenceNo": "INV_SHOPEE_20260701002",
            "refundAmount": {
                "value": "10000.00",
                "currency": "IDR"
            },
            "refundStatus": "00",
            "refundDate": "2025-07-01T11:50:53+07:00",
            "partnerRefundNo": "RFN_SHOPEE_20260701002_1"
        }
    ],
    "additionalInfo": {
        "acquirer": {
            "id": "OVO SNAP Direct Debit"
        }
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Pending" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator 55                                                                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |

{% tab title="Success Payment" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator 55                                                                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |

{% tab title="Refund" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `approvalCode`               | String       | Optional    | Unique number                                                                                                                                                                                                               |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator (service code of the original transaction request)                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `refundNo`                   | String       | Conditional | Transaction Identifier on Service Provider System                                                                                                                                                                           |
| `partnerReferenceNo`         | String       | Conditional | ReferenceNumber from PJP AIS for the refund.                                                                                                                                                                                |
| `refundAmount`               | object       | Optional    | Net amount of the refund                                                                                                                                                                                                    |
| `refundStatus`               | String       | Conditional | 00 = Success                                                                                                                                                                                                                |
| `refundDate`                 | String       | Conditional | <p>(ISO 8601) <br>Transaction date : dd-MM-yyyy ( Mandatory )<br><br>HH:mm:Ss ( Optional )</p>                                                                                                                              |
| `reason`                     | String       | Optional    | Refund reason.                                                                                                                                                                                                              |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |
| {% endtabs %}                |              |             |                                                                                                                                                                                                                             |

#### **OVO Open API Recurring**

{% tabs %}
{% tab title="Success Payment" %}

```json
{
   "responseCode":"2005500",
   "responseMessage":"Successful",
   "originalPartnerReferenceNo":"2020102900000000000001",
   "originalReferenceNo":"2020102977770000000009",
   "originalExternalId":"30443786930722726463280097920912",
   "serviceCode":"55",
   "latestTransactionStatus":"00",
   "transactionStatusDesc":"SUCCESS",
   "originalResponseCode":"2005500",
   "originalResponseMessage":"Request has been processed successfully",
   "paidTime":"2020-12-21T14:56:11+07:00",
   "transAmount":{
      "value":"112345678.00",
      "currency":"IDR"
   },
   "additionalInfo":{
      "acquirer": {
         "id" : "OVO SNAP Direct Debit"
      }
   }
}
```

{% endtab %}

{% tab title="Refund" %}

```json
{
    "responseCode": "2005500",
    "responseMessage": "Successful",
    "originalPartnerReferenceNo": "INV_SHOPEE_20260701002",
    "originalReferenceNo": "C3fl1d4sNn",
    "originalExternalId": "693036698",
    "serviceCode": "55",
    "latestTransactionStatus": "04",
    "transactionStatusDesc": "REFUNDED",
    "originalResponseCode": "2005400",
    "originalResponseMessage": "Successful",
    "paidTime": "2025-07-01T11:40:54+07:00",
    "transAmount": {
        "value": "500000.00",
        "currency": "IDR"
    },
    "refundHistory": [
        {
            "refundNo": "REFUND_NO_SdvDY8",
            "partnerReferenceNo": "INV_SHOPEE_20260701002",
            "refundAmount": {
                "value": "10000.00",
                "currency": "IDR"
            },
            "refundStatus": "00",
            "refundDate": "2025-07-01T11:50:53+07:00",
            "partnerRefundNo": "RFN_SHOPEE_20260701002_1"
        }
    ],
    "additionalInfo": {
        "acquirer": {
            "id": "OVO SNAP Direct Debit"
        }
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Success Payment" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator 55                                                                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |

{% tab title="Refund" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `approvalCode`               | String       | Optional    | Unique number                                                                                                                                                                                                               |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator (service code of the original transaction request)                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `refundNo`                   | String       | Conditional | Transaction Identifier on Service Provider System                                                                                                                                                                           |
| `partnerReferenceNo`         | String       | Conditional | ReferenceNumber from PJP AIS for the refund.                                                                                                                                                                                |
| `refundAmount`               | object       | Optional    | Net amount of the refund                                                                                                                                                                                                    |
| `refundStatus`               | String       | Conditional | 00 = Success                                                                                                                                                                                                                |
| `refundDate`                 | String       | Conditional | <p>(ISO 8601) <br>Transaction date : dd-MM-yyyy ( Mandatory )<br><br>HH:mm:Ss ( Optional )</p>                                                                                                                              |
| `reason`                     | String       | Optional    | Refund reason.                                                                                                                                                                                                              |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |
| {% endtabs %}                |              |             |                                                                                                                                                                                                                             |

#### **ShopeePay**

{% tabs %}
{% tab title="Pending" %}

```json
{
    "responseCode": "2005500",
    "responseMessage": "Successful",
    "originalPartnerReferenceNo": "INV_SHOPEE_20231130115650",
    "originalExternalId": "UAT_20231130115650143",
    "serviceCode": "54",
    "latestTransactionStatus": "03",
    "transactionStatusDesc": "PENDING",
    "originalResponseCode": "2005400",
    "originalResponseMessage": "Successful",
    "paidTime": "2023-11-30 11:56:50",
    "transAmount": {
        "value": "100000.00",
        "currency": "IDR"
    },
    "additionalInfo": {
        "acquirer": {
            "id": "SHOPEE_PAY"
        }
    }
}
```

{% endtab %}

{% tab title="Success" %}

```json
{
    "responseCode": "2005500",
    "responseMessage": "Successful",
    "originalPartnerReferenceNo": "INV_SHOPEE_20231130115650",
    "originalReferenceNo": "h0v9Z34vyX",
    "originalExternalId": "UAT_20231130115650143",
    "serviceCode": "54",
    "latestTransactionStatus": "00",
    "transactionStatusDesc": "SUCCESS",
    "originalResponseCode": "2005400",
    "originalResponseMessage": "Successful",
    "paidTime": "2023-11-30 11:59:31",
    "transAmount": {
        "value": "100000.00",
        "currency": "IDR"
    },
    "additionalInfo": {
        "acquirer": {
            "id": "SHOPEE_PAY"
        }
    }
}
```

{% endtab %}

{% tab title="Refund" %}

```json
{
    "responseCode": "2005500",
    "responseMessage": "Successful",
    "originalPartnerReferenceNo": "INV_SHOPEE_20260701002",
    "originalReferenceNo": "C3fl1d4sNn",
    "originalExternalId": "693036698",
    "serviceCode": "55",
    "latestTransactionStatus": "04",
    "transactionStatusDesc": "REFUNDED",
    "originalResponseCode": "2005400",
    "originalResponseMessage": "Successful",
    "paidTime": "2025-07-01T11:40:54+07:00",
    "transAmount": {
        "value": "500000.00",
        "currency": "IDR"
    },
    "refundHistory": [
        {
            "refundNo": "REFUND_NO_SdvDY8",
            "partnerReferenceNo": "INV_SHOPEE_20260701002",
            "refundAmount": {
                "value": "10000.00",
                "currency": "IDR"
            },
            "refundStatus": "00",
            "refundDate": "2025-07-01T11:50:53+07:00",
            "partnerRefundNo": "RFN_SHOPEE_20260701002_1"
        }
    ],
    "additionalInfo": {
        "acquirer": {
            "id": "SHOPEE_PAY"
        }
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Pending" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator 55                                                                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |

{% tab title="Success" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator 55                                                                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |

{% tab title="Refund" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator 55                                                                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |
| {% endtabs %}                |              |             |                                                                                                                                                                                                                             |

#### **DANA**

{% tabs %}
{% tab title="Pending" %}

```json
{
    "responseCode": "2005500",
    "responseMessage": "Successful",
    "originalPartnerReferenceNo": "INV20240711007",
    "originalReferenceNo": "rarPxBRuvdByoOnbmUrQqtVyz6UdgUgik2M0yyR98l10EeadmVnnq62pVMPCMR8W",
    "originalExternalId": "307350227",
    "serviceCode": "55",
    "latestTransactionStatus": "03",
    "transactionStatusDesc": "PENDING",
    "originalResponseCode": "2005400",
    "originalResponseMessage": "Successful",
    "paidTime": "2024-07-11T14:23:55+07:00",
    "transAmount": {
        "value": "1.00",
        "currency": "IDR"
    },
    "additionalInfo": {
        "acquirer": {
            "id": "DANA Snap Direct Debit"
        }
    }
}
```

{% endtab %}

{% tab title="Success" %}

```json
{
    "responseCode": "2005500",
    "responseMessage": "Successful",
    "originalPartnerReferenceNo": "INV20240723006",
    "originalReferenceNo": "20240723111212800110166234101713965",
    "originalExternalId": "209469647",
    "serviceCode": "55",
    "latestTransactionStatus": "00",
    "transactionStatusDesc": "SUCCESS",
    "originalResponseCode": "2005400",
    "originalResponseMessage": "Successful",
    "paidTime": "2024-07-23T16:55:29+07:00",
    "transAmount": {
        "value": "1.00",
        "currency": "IDR"
    },
    "additionalInfo": {
        "acquirer": {
            "id": "DANA Snap Direct Debit"
        }
    }
}
```

{% endtab %}

{% tab title="Refund" %}

```json
{
    "responseCode": "2005500",
    "responseMessage": "Successful",
    "originalPartnerReferenceNo": "INV_SHOPEE_20260701002",
    "originalReferenceNo": "C3fl1d4sNn",
    "originalExternalId": "693036698",
    "serviceCode": "55",
    "latestTransactionStatus": "04",
    "transactionStatusDesc": "REFUNDED",
    "originalResponseCode": "2005400",
    "originalResponseMessage": "Successful",
    "paidTime": "2025-07-01T11:40:54+07:00",
    "transAmount": {
        "value": "500000.00",
        "currency": "IDR"
    },
    "refundHistory": [
        {
            "refundNo": "REFUND_NO_SdvDY8",
            "partnerReferenceNo": "INV_SHOPEE_20260701002",
            "refundAmount": {
                "value": "10000.00",
                "currency": "IDR"
            },
            "refundStatus": "00",
            "refundDate": "2025-07-01T11:50:53+07:00",
            "partnerRefundNo": "RFN_SHOPEE_20260701002_1"
        }
    ],
    "additionalInfo": {
        "acquirer": {
            "id": "DANA Snap Direct Debit"
        }
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Pending" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator 55                                                                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |

{% tab title="Success" %}

| Parameter                          | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`                     | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`                  | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`              | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo`       | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `originalExternalId`               | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                      | String       | Mandatory   | Transaction type indicator 55                                                                                                                                                                                               |
| `latestTransactionStatus`          | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`            | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`             | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`          | String       | Optional    | Response description                                                                                                                                                                                                        |
| `transAmount`                      | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `refundHistory.refundNo`           | string       | Optional    | Transaction Identifier on Service Provider System                                                                                                                                                                           |
| `refundHistory.partnerReferenceNo` | string       | Mandatory   | Transaction Identifier No                                                                                                                                                                                                   |
| `refundAmount`                     | object       | Mandatory   | Refund Amount                                                                                                                                                                                                               |
| `refundStatus`                     | string       | Mandatory   | Refund Status                                                                                                                                                                                                               |
| `refundDate`                       | string       | Optional    | Refund Date                                                                                                                                                                                                                 |
| `paidTime`                         | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`                   | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                       |              |             |                                                                                                                                                                                                                             |

{% tab title="Refund" %}

| Parameter                    | Type         | Mandatory   | Description                                                                                                                                                                                                                 |
| ---------------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`               | String (7)   | Mandatory   | Response Code                                                                                                                                                                                                               |
| `responseMessage`            | String (150) | Mandatory   | Response Description                                                                                                                                                                                                        |
| `originalReferenceNo`        | String (200) | Conditional | Original transaction identifier on service provider system.                                                                                                                                                                 |
| `originalPartnerReferenceNo` | String       | Optional    | Original transaction identifier on service consumer system                                                                                                                                                                  |
| `originalExternalId`         | String       | Optional    | Original External-ID on header message                                                                                                                                                                                      |
| `serviceCode`                | String       | Mandatory   | Transaction type indicator 55                                                                                                                                                                                               |
| `latestTransactionStatus`    | String       | Mandatory   | <p>Unique identifier for this Payment from PJP. Mandatory if Payment happened. <br><br>00 = Success<br>01 = Initiated<br>02 = Paying<br>03 = Pending<br>04 = Refunded<br>05 = Canceled<br>06 = Failed<br>07 = Not Found</p> |
| `transactionStatusDesc`      | String       | Optional    | Description status transaction                                                                                                                                                                                              |
| `originalResponseCode`       | String       | Optional    | Response code                                                                                                                                                                                                               |
| `originalResponseMessage`    | String       | Optional    | Response description                                                                                                                                                                                                        |
| `transAmount`                | object       | Optional    | Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.                                                                                                            |
| `paidTime`                   | String       | Conditional | transaction date : ISO 8601                                                                                                                                                                                                 |
| `additionalInfo`             | object       | Mandatory   | Additional information                                                                                                                                                                                                      |
| {% endtab %}                 |              |             |                                                                                                                                                                                                                             |
| {% endtabs %}                |              |             |                                                                                                                                                                                                                             |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.doku.com/get-started-with-doku-api/check-status-api/snap.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
