# Orders

> Read one order and its line items. Every paid operation creates an order, failed attempts included.

## GET /api/v1/order/{orderCode}

Reads one order with its line items. Every paid operation produces an order — including **failed** attempts, which are recorded so the failure is auditable.

**Request**

```http
GET /api/v1/order/ORD-2026-0038214
```

**Response — 200**

```json
{
  "orderCode": "ORD-2026-0038214",
  "status": 1,
  "amount": 11.40,
  "amountCurrency": "USD",
  "products": [
    {
      "name": "apiname.com",
      "productCode": "COM",
      "productType": 1,
      "orderType": 1,
      "status": 1,
      "price": 11.40,
      "priceCurrency": "USD",
      "period": 1,
      "description": "Register: apiname.com",
      "additionalData": null
    }
  ]
}
```

| status | Order status |
| --- | --- |
| 1 | `Active` |
| 2 | `Pending` |
| 3 | `Canceled` |
| 4 | `InProgress` |

`products[].status`: `1` Ordered · `2` Canceled · `3` InProgress.

`orderType`: `1` Register · `2` Renew · `3` Transfer · `4` Restore · `9` Trustee · `10` Hosting lease · `11` Create (SSL/hosting) · `12` Ownership change.

`productType`: `1` Domain · `2` SSL · `3` Deposit · `4` Domain trustee · `5` Hosting · `6` Ownership change.

:::note[A trustee domain produces two line items]
One for the domain (`productType: 1`) and one for the trustee service (`productType: 4`). The order `amount` is the sum. Pass this through to your customer's invoice so the extra charge is visible.
:::
