---
title: "List orders"
operation_id: "api.partner.wolt.orders.list"
method: GET
path: "/api/partner/v1/wolt/orders"
group: "Wolt Partner API"
authenticated: true
canonical: "https://fature.al/api-reference/endpoints/api-partner-wolt-orders-list.html"
---

# List orders

Part of the [fature.al API](/api-reference/index.html) documentation.

## GET /api/partner/v1/wolt/orders

The venue's orders, newest first.

Page backwards by passing the `next_cursor` from the previous response as `?cursor=`. Stop
when `has_more` is `false`.

This is a snapshot for listing and backfill. For keeping in step with the venue in real time,
poll the event feed instead: it is append-only and ordered, so nothing is missed.

Full URL: `https://fature.al/api/partner/v1/wolt/orders`

Authentication: required (bearer token).

### Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `cursor` | integer | no | Return orders older than this id; pass the previous next_cursor. |
| `limit` | integer | no | Page size, 1-100. Defaults to `25`. |
| `status` | string | no | Filter by raw Wolt status (e.g. received, acknowledged, ready, delivered). |
| `from` | string | no | Only orders received on/after this date (YYYY-MM-DD). |
| `to` | string | no | Only orders received on/before this date (YYYY-MM-DD). |

### Example request

```bash
curl -X GET 'https://fature.al/api/partner/v1/wolt/orders' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'X-Client-Id: YOUR_CLIENT_ID' \
  -H 'X-Client-Secret: YOUR_CLIENT_SECRET' \
  -H 'Accept: application/json'
```

### Responses

**200** — OK

| Field | Type | Description |
| --- | --- | --- |
| `status` | boolean |  |
| `data` | object |  |
| `data.orders` | array |  |
| `data.orders[].id` | integer | Fatureal order id; use this as {id} in the order and action routes |
| `data.orders[].wolt_order_id` | string | Wolt's own order id |
| `data.orders[].display_number` | string, nullable | Human order number shown to the customer |
| `data.orders[].status` | string | Raw Wolt lifecycle status: received, acknowledged, production, ready, picked_up, courier_at_customer, delivered, rejected, refunded, ... |
| `data.orders[].fiscal_state` | string | Fiscal state derived from the invoice: pending, deferred, fiscalised or failed |
| `data.orders[].total_amount` | number | Charged total in major currency units |
| `data.orders[].currency` | string | ISO 4217 currency code |
| `data.orders[].received_at` | string, nullable | When Wolt handed the order to us (ISO-8601) |
| `data.orders[].pickup_at` | string, nullable | Committed handover time (ISO-8601), set when a pickup time was chosen on accept |
| `data.orders[].delivery_type` | string, nullable | Wolt delivery type: takeaway, eatin, homedelivery, ... |
| `data.orders[].self_delivery` | boolean | Whether the venue fulfils delivery with its own courier |
| `data.orders[].branch` | string, nullable | Branch name |
| `data.orders[].invoice` | object, nullable | Linked fiscal invoice reference, or null before fiscalisation |
| `data.orders[].invoice.id` | integer | Fatureal invoice id |
| `data.orders[].invoice.number` | any | Fiscal invoice number, once assigned |
| `data.orders[].invoice.state` | string | Fiscal state: pending, deferred, fiscalised or failed |
| `data.orders[].invoice.fiscal_iic` | any | Fiscal IIC (NSLF), once fiscalised |
| `data.orders[].invoice.fiscal_fic` | any | Fiscal FIC (NIVF), once fiscalised |
| `data.next_cursor` | string |  |
| `data.has_more` | boolean |  |

```json
{
    "status": true,
    "data": {
        "orders": [
            {
                "id": 1,
                "wolt_order_id": "wolt order id",
                "display_number": "display number",
                "status": "status",
                "fiscal_state": "fiscal state",
                "total_amount": 4200,
                "currency": "USD",
                "received_at": "received at",
                "pickup_at": "pickup at",
                "delivery_type": "delivery type",
                "self_delivery": true,
                "branch": "branch",
                "invoice": {
                    "id": 1,
                    "number": "number",
                    "state": "state",
                    "fiscal_iic": "fiscal iic",
                    "fiscal_fic": "fiscal fic"
                }
            }
        ],
        "next_cursor": "next cursor",
        "has_more": true
    }
}
```

**403** — The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.

| Field | Type | Description |
| --- | --- | --- |
| `status` | boolean | Always false |
| `message` | string | Localised explanation, safe to log but not to branch on |
| `code` | string | Stable machine readable reason: `unauthenticated`, `wolt_not_enabled`, `forbidden`, `no_venue`, `order_not_found`, `invalid_transition`, `invalid_data`, `action_failed`, `wolt_upstream_error`, `idempotency_key_required`, `idempotency_in_progress` |

```json
{
    "status": true,
    "message": "Hello there",
    "code": "code"
}
```

**429** — Rate limit reached: 180 reads a minute per token. Retry after the number of seconds in the Retry-After header.

| Field | Type | Description |
| --- | --- | --- |
| `message` | string |  |

```json
{
    "message": "Hello there"
}
```
