> ## Documentation Index
> Fetch the complete documentation index at: https://docs-v2.reeple.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Status codes

> Every status value, response code and status ID the Checkout API returns

Every response carries a `status`, a `statusCode` and a `message`. Order-related responses also
carry a numeric `statusId`.

```json theme={null}
{
  "status": "success",
  "statusCode": "00",
  "message": "Operation successful",
  "data": {}
}
```

<Warning>
  `statusCode` is a **string**, not a number — `"00"`, not `0`. Comparing it numerically will
  silently do the wrong thing.
</Warning>

## Response codes

| `statusCode` | Meaning                                                      |
| ------------ | ------------------------------------------------------------ |
| `00`         | Successful — the operation completed, or the payment settled |
| `01`         | Order created                                                |
| `02`         | Pending — awaiting authentication or bank notification       |
| `13`         | Order not found, or a payment for it is already pending      |
| `400`        | The payload could not be decrypted                           |
| `401`        | Missing API key, or a key of the wrong type                  |
| `604`        | Payment link not found                                       |

## Order status IDs

Returned as `statusId` alongside a human-readable `status`.

| `statusId` | `status`     | Final? |
| ---------- | ------------ | ------ |
| `1`        | `Initiated`  | No     |
| `2`        | `Pending`    | No     |
| `5`        | `Successful` | Yes    |

<Note>
  Branch on the `isFinalStatus` boolean in the
  [order status](/api-reference/orders/get-order-status) response rather than hard-coding
  `statusId` values — it's the field the API intends you to use, and it won't drift if new
  intermediate states are added.
</Note>

## Payment response messages

`orderPaymentResponseMessage` describes where a pending payment is waiting.

| Message                                  | Method        | Meaning                             |
| ---------------------------------------- | ------------- | ----------------------------------- |
| `Initiated`                              | any           | Order created, no payment attempted |
| `pending-authenticaion`                  | card          | Awaiting 3-D Secure                 |
| `pending bank notification`              | bank transfer | Awaiting the customer's transfer    |
| `Transaction was completed successfully` | any           | Settled                             |

<Note>
  `pending-authenticaion` is spelled that way in the API's responses. Match on the code (`02`),
  not the message text.
</Note>

## Payment option codes

Returned as `code` in `otherPaymentOptions`, and as `paymentType` on an order summary.

| Code            | Method        |
| --------------- | ------------- |
| `C`             | Card          |
| `BANK-TRANSFER` | Bank transfer |
| `USSD`          | USSD          |

See [Payment methods](/payment-methods) for the payload each one expects.
