# Checkout - New Fields and Status Values on Check Status API

We are introducing important updates to the `Check Status API` response format to improve clarity and ensure consistency across integrations. These changes affect all merchants currently using the API to retrieve payment status information.

***

## 🔍 What’s New?

**1. `order.status` field for Checkout Page**

A new object field `order.status` is added to reflect the current order status.

**Possible values:**

* `ORDER_GENERATED` – Order has been created but not yet paid.
* `ORDER_EXPIRED` – Order expired without payment.

***

**2. `PENDING` status for Direct API**

The enum value `PENDING` will now appear in the `transaction.status` field to indicate that the payment is still in progress and awaiting confirmation (applies to channels such as Credit Card, ShopeePay, and others).

***

**3. Null values for unselected channels**

If a customer has not yet selected a payment channel, the following fields will return `null`:

* `service.id`
* `acquirer.id`
* `channel.id`

These fields will be filled only after the customer selects a channel.

***

### 🔁 Before vs After

### Before

```json
{
  "order": {
    "invoice_number": "INV-5489910000093492",
    "amount": 120000,
    "status": "ORDER_GENERATED",
    "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": "" }
}
```

### After

```json
{
  "order": {
    "invoice_number": "INV-548991000009310030",
    "amount": 120000.0,
    "status": "ORDER_GENERATED"
  },
  "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": {}
}

```

| Field                | Before                    | After                                    |
| -------------------- | ------------------------- | ---------------------------------------- |
| `order.status`       | Not available             | `ORDER_GENERATED`, `ORDER_EXPIRED` (new) |
| `transaction.status` | `SUCCESS`, `FAILED`, etc. | `PENDING` added as a new possible value  |

***

### 📌 Action Required

Please update your system to accommodate the new format and status values by **\[date]**.

* Merchants using **Checkout Page** should handle the `order.status` object.
* Merchants using **Direct API** must anticipate the new `"PENDING"` value in `transaction.status`.

These changes are **mandatory** and will apply to all integrations using the Check Status API.

If you have questions or need clarification, please contact your DOKU representative or visit our developer documentation.

***

If you have questions or need further clarification, please reach out to your DOKU representative or contact our support team.

Thank you for your continued support.\
**DOKU Product Team**
