# Get order details

Source: https://docs.fiest.io/api/reference/get-order-details
Canonical sandbox contract: https://docs.fiest.io/openapi.yaml

## GET /v1/restaurants/{restaurantId}/orders/{orderId}

Returns one order by the opaque order_id returned by findOrders, including stable UUID or deterministic legacy sold-line IDs, catalog UUIDs where available, selected options, and explicit sale-time or legacy tax evidence.

## Authentication

Send an OAuth access token in the `Authorization` header as
`Bearer $FIEST_ACCESS_TOKEN`.

Required scopes: `fiest.restaurant.read`, `fiest.orders.read`

## Quick request

```bash
curl --request GET \
  --url 'https://api-sandbox.fiest.io/v1/restaurants/11111111-1111-4111-8111-111111111111/orders/fiest-50b6d34f-bc6e-4248-b3d6-839b3dda31a1' \
  --header 'Authorization: Bearer $FIEST_ACCESS_TOKEN'
```

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `restaurantId` | path | Yes | string (uuid) | A restaurant identifier returned by the authorized restaurant list. |
| `orderId` | path | Yes | string | Opaque non-sequential order identifier returned by the order list. |

## Success response

### 200 — Exact order details.

```json
{
  "data": {
    "restaurantId": "11111111-1111-4111-8111-111111111111",
    "currency": "EUR",
    "order": {
      "orderId": "fiest-50b6d34f-bc6e-4248-b3d6-839b3dda31a1",
      "receiptHash": "fiest-50b6d34f-bc6e-4248-b3d6-839b3dda31a1",
      "restaurantOrderNumber": 1042,
      "occurredAt": "2026-07-15T10:42:00.000Z",
      "businessDate": "2026-07-15",
      "orderType": "dine_in",
      "tableNumber": 12,
      "status": "paid",
      "paymentMethod": "card",
      "orderOrigin": {
        "kind": "fiest",
        "provider": null
      },
      "originalAmountMinor": 1350,
      "totalAmountMinor": 1350,
      "vatMinor": 161,
      "refundAmountMinor": 0,
      "discountAmountMinor": 0,
      "items": [
        {
          "lineId": "7fbb7bd1-661c-4a1e-9748-acde61280973",
          "catalogItemId": "67fb6fb2-0f46-455b-934e-25707b77be08",
          "catalogItemKind": "menu_item",
          "catalogCategoryId": "af16a392-f8a1-47b4-849f-4d707001e9b1",
          "menuId": "43f64da8-4ec2-4900-b137-1c0927c975d2",
          "name": "Margherita",
          "category": "Pizza",
          "itemType": "food",
          "quantity": 1,
          "unitPriceMinor": 1350,
          "originalUnitPriceMinor": null,
          "grossAmountMinor": 1350,
          "discountAmountMinor": 0,
          "vatAmountMinor": 161,
          "taxEvidence": "snapshot",
          "taxCountryCode": "FI",
          "taxRatesAsOf": "2026-07-15",
          "vatRates": [
            {
              "category": "reduced",
              "rateBps": 1350,
              "vatAmountMinor": 161
            }
          ],
          "selectedOptions": [
            {
              "optionId": "5378e830-a342-4f45-8793-f3eef0a3b063",
              "optionGroupId": "437e9ca5-8daf-411a-b371-0bedb5ecb263",
              "name": "Extra cheese",
              "quantity": 1,
              "unitPriceMinor": 100,
              "grossAmountMinor": 100,
              "vatAmountMinor": 12
            }
          ]
        }
      ],
      "itemsTruncated": false,
      "grossSalesMinor": 1350,
      "netSalesMinor": 1189,
      "vatAllocationMethod": "stored",
      "vatBreakdown": {
        "countryCode": "FI",
        "ratesAsOf": "2026-07-15",
        "rows": [
          {
            "category": "reduced",
            "rateBps": 1350,
            "grossAmountMinor": 1350,
            "netAmountMinor": 1189,
            "vatAmountMinor": 161
          }
        ]
      },
      "tipAmountMinor": 0,
      "refundedItems": [],
      "refundedItemsTruncated": false
    }
  }
}
```

## Error responses

### 400 — The request parameters are invalid.

```json
{
  "error": "invalid_request",
  "message": "The requested date range is invalid.",
  "request_id": "req_sandbox_invalid_request"
}
```

### 401 — The access token is missing, invalid, or expired.

```json
{
  "error": "invalid_token",
  "error_description": "The access token is invalid.",
  "request_id": "req_sandbox_invalid_token"
}
```

### 403 — The authorization has expired or does not include the required scope.

```json
{
  "error": "insufficient_scope",
  "error_description": "The operation requires an OAuth scope that is not granted.",
  "request_id": "req_sandbox_insufficient_scope"
}
```

### 404 — The restaurant or requested resource does not exist or is outside the authorization.

```json
{
  "error": "not_found",
  "request_id": "req_sandbox_not_found"
}
```

### 429 — The partner request limit has been exceeded.

```json
{
  "error": "rate_limited",
  "request_id": "req_sandbox_rate_limited"
}
```

### 503 — The API or one of its required services is unavailable.

```json
{
  "error": "service_unavailable",
  "request_id": "req_sandbox_service_unavailable"
}
```

## Related

- [Quick start](https://docs.fiest.io/api/quickstart)
- [Stable API errors](https://docs.fiest.io/api/reference/errors)
- [OpenAPI 3.1 contract, YAML](https://docs.fiest.io/openapi.yaml)
- [OpenAPI 3.1 contract, JSON](https://docs.fiest.io/openapi.json)
- [Authorize and call the Fiest Partner API](https://docs.fiest.io/api/quickstart)