# Get an order

The full order by its ID.

```http
GET https://larm.sa/stores/{storeId}/v1/orders/{id}
```

Scope: `orders:read`

## Path parameters

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | yes |  |


## Response

| Field | Type | Required | Description |
|---|---|---|---|
| `data` | object | yes |  |
| `data.id` | string | yes | Stable order ID. |
| `data.number` | integer | yes | Order number shown to the merchant and the customer. |
| `data.status` | string | yes | Order status as the merchant sees it. Any refund makes it returned. One of: `pending`, `processing`, `completed`, `cancelled`, `returned`. |
| `data.payment_status` | string | yes | One of: `unpaid`, `paid`, `refunded`. |
| `data.currency` | string | yes |  |
| `data.totals` | object | yes |  |
| `data.totals.subtotal` | string | no | Items total before discount and shipping. |
| `data.totals.discount` | string | no | Discount. |
| `data.totals.shipping` | string | no | Shipping fee. |
| `data.totals.total` | string | yes | Amount paid by the customer. |
| `data.items` | array<object> | yes |  |
| `data.items[].product_id` | string | yes |  |
| `data.items[].name` | string | yes | Product name at the time of the order. |
| `data.items[].kind` | string | no | Product kind. One of: `digital`, `physical`, `service`. |
| `data.items[].quantity` | integer | yes |  |
| `data.items[].unit_price` | string | yes | Unit price in SAR. |
| `data.items[].total` | string | yes | Unit price × quantity. |
| `data.order_url` | string \| null (uri) | no | The customer's orders page in the store (<store origin>/orders), the same link as the order email. It is not a link to one order and carries no sign-in token. null when the store has no https domain. |
| `data.created_at` | string (date-time) | yes |  |
| `data.updated_at` | string (date-time) | yes |  |
| `data.paid_at` | string \| null (date-time) | no |  |
| `data.refunded_at` | string \| null (date-time) | no |  |
| `data.customer` | object | no | Included only with the customers:read scope. Returned with `customers:read`. |
| `data.customer.id` | string \| null | no | The customer's account ID in the store, or null for a guest order. |
| `data.customer.name` | string \| null | no | The customer's name as entered. |
| `data.customer.phone` | string \| null | no | Phone number in E.164 format, such as +966512345678, or null if it is not a valid number. |
| `data.customer.email` | string \| null (email) | no |  |
| `data.shipping_address` | object \| null | no | Shipping address as entered by the customer, or null when the order has no address. Included only with customers:read. Returned with `customers:read`. |
| `data.shipping_address.name` | string \| null | no |  |
| `data.shipping_address.phone` | string \| null | no | E.164 format, or null. |
| `data.shipping_address.country` | string \| null | no | Always SA. |
| `data.shipping_address.city` | string \| null | no |  |
| `data.shipping_address.district` | string \| null | no |  |
| `data.shipping_address.street` | string \| null | no |  |
| `data.shipping_address.postal_code` | string \| null | no |  |
| `data.shipping_address.short_address_code` | string \| null | no |  |
| `data.shipping_address.building_number` | string \| null | no |  |
| `data.shipping_address.secondary_number` | string \| null | no |  |
| `data.shipping_address.notes` | string \| null | no |  |
| `data.resource_version` | integer | no | Always 0 for orders. Order the events of one order by resource.version in the webhook envelope. |
| `meta` | object | yes |  |
| `meta.request_id` | string (uuid) | no | The request ID; include it in any support request. |


## Example request

```bash
curl -X GET "https://larm.sa/stores/$STORE_ID/v1/orders/ord_8Kd2" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```


## Example response (200)

```json
{
  "data": {
    "id": "ord_8Kd2",
    "number": 10482,
    "status": "processing",
    "payment_status": "paid",
    "currency": "SAR",
    "totals": {
      "subtotal": "180.00",
      "discount": "0.00",
      "shipping": "25.00",
      "total": "205.00"
    },
    "items": [
      {
        "product_id": "311",
        "name": "Top-up card 100 SAR",
        "kind": "digital",
        "quantity": 2,
        "unit_price": "90.00",
        "total": "180.00"
      }
    ],
    "order_url": "https://store.example/orders",
    "created_at": "2026-10-15T09:12:44Z",
    "updated_at": "2026-10-15T09:13:01Z",
    "paid_at": "2026-10-15T09:13:01Z",
    "refunded_at": null,
    "customer": {
      "id": "c_2041",
      "name": "Sara Alotaibi",
      "phone": "+966512345678",
      "email": "sara@example.com"
    },
    "shipping_address": null,
    "resource_version": 0
  },
  "execution": {
    "appId": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
    "versionId": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
    "installationId": "c7e4a1f2-6b3d-4e8a-9c05-1d2f3a4b5c6d",
    "storeId": "5b1d7a62-0c4e-4f38-9a51-2e7b3c9d8f10",
    "requestId": "3f0c2b8e-7a51-4c1e-9d0a-5b6f1e2d4c3a",
    "generation": 1,
    "routeEpoch": 4,
    "appAuthEpoch": 1,
    "grantRevision": 2
  },
  "meta": {
    "request_id": "3f0c2b8e-7a51-4c1e-9d0a-5b6f1e2d4c3a"
  }
}
```


## Errors

| HTTP | Code | Meaning |
|---|---|---|
| 404 | `RESOURCE_NOT_FOUND` | The ID does not exist in this store. |
| 403 | `SCOPE_REQUIRED` | The token does not carry the required scope. |
| 503 | `APPS_SCOPE_RUNTIME_NOT_READY` | The resource is not enabled on this merchant's store yet. |
