# Order Status for Checkout Page

### 1. Order Status on Checkout Report

Merchant can check their status order from DOKU Dashboard on Menu **Report > Checkout Orders.**

<figure><img src="/files/kpjPXyKz1c90sF4h3k3F" alt=""><figcaption><p>Checkout Report </p></figcaption></figure>

<table><thead><tr><th width="176">Status Order</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:yellow;"><strong>Pending</strong></mark> </td><td>Pending status reflects state when merchant do initiate payment, and the customer still not do the payment within the payment due date time</td></tr><tr><td><mark style="color:green;"><strong>Success</strong></mark></td><td>Success status shows that customer successfully paid the transaction and faced a success result page</td></tr><tr><td><mark style="color:red;"><strong>Expired</strong></mark></td><td>Expired status will appear if the order is not paid within the specified payment due date</td></tr></tbody></table>

### 2. Order Status on Check Status API

{% hint style="warning" %}
Only merchant who registered from December 2024 can implemented this, contact our support team to activate this for existing merchant
{% endhint %}

{% hint style="success" %}
The Check Status API now returns the **checkout order status**, even when the payment channel has not yet published its transaction status.

Previously, the API only returned data after the payment channel created a transaction record. As a result, when a customer generated a checkout order and selected a payment method (for example ShopeePay), the Check Status API could return **`Not Found`** until the payment channel published the `PENDING` status.

With this features, the API will return the **order-level status** once the checkout order is generated.
{% endhint %}

| Scenario                                          | Previous Behavior                                   | Current Behavior                                                                         |
| ------------------------------------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| Customer generates checkout and selects ShopeePay | Check Status returns **Not Found**                  | Check Status returns `order.status = ORDER_GENERATE`                                     |
| Customer completes payment with ShopeePay         | Check Status returns `transaction.status = SUCCESS` | Check Status returns `order.status = ORDER_GENERATED` and `transaction.status = SUCCESS` |

> This features allows merchants to **track the checkout order earlier**, even before the payment channel publishes the transaction status.

#### API Response

{% tabs %}
{% tab title="Before Choose Channel" %}

```json
{
    "order": {
        "invoice_number": "INV-5489910000093492",
        "amount": 120000,
        "status": "ORDER_GENERATED" /“ORDER_EXPIRED"/"ORDER_RECOVERED",
        "date": "2025-07-09T02:58:30Z"
    },
    "transaction": {
        "status": "PENDING",
        "date": "2025-07-09T02:58:30Z",
        "original_request_id": "3719"
    },
    "service": {
        "id": ""
    },
    "acquirer": {
        "id": ""
    },
    "channel": {
        "id": ""
    }
}

```

{% endtab %}

{% tab title="After Choose Channel" %}

```json
{
    "order": {
        "invoice_number": "INV-548991000009310030",
        "amount": 120000.0,
        "status": "ORDER_GENERATED" / “ORDER_EXPIRED”
    },
    "transaction": {
        "status": "PENDING",
        "date": "2025-07-10T03:00:48Z",
        "original_request_id": "76392"
    },
    "service": {
        "id": "DIGITAL_BANKING"
    },
    "acquirer": {
        "id": "BTPN",
        "name": "Bank Tabungan Pensiunan Nasional"
    },
    "channel": {
        "id": "JENIUS_PAY"
    },
    "additional_info": {
        "doku_wallet_notify_url": "https://doku.com",
        "origin": {
            "product": "CHECKOUT",
            "system": "mid-jokul-checkout-system",
            "api_format": "JOKUL",
            "source": "direct"
        },
        "line_items": [
            {
                "quantity": 1.0,
                "price": "120000",
                "image_url": "http://doku.com/",
                "name": "DOKU Basic T-Shirt",
                "sku": "FashionSKU123",
                "type": "ABC",
                "category": "Fashion",
                "url": "http://doku.com/"
            }
        ]
    },
    "digital_banking_payment": {}
}

```

{% endtab %}
{% endtabs %}

<table><thead><tr><th>Body parameter</th><th width="96">Type</th><th width="113">Mandatory</th><th>Description</th></tr></thead><tbody><tr><td><code>order.status</code></td><td>array</td><td>optional</td><td>Possible Value : <code>ORDER_GENERATED</code><br><code>ORDER_EXPIRED</code><br><code>ORDER_RECOVERED</code></td></tr></tbody></table>


---

# 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/accept-payments/doku-checkout/order-status-for-checkout-page.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.
