{
    "openapi": "3.1.0",
    "info": {
        "title": "fature.al Partner API",
        "version": "1.0",
        "description": "# fature.al Partner API\n\nThis is the API a third party uses to run one venue's Wolt orders through fature.al: pull the order\nlifecycle from the feed, relay accept, reject and ready back to Wolt, and read the fiscal invoice\nfature.al issued for each order.\n\nIt is separate from the main API because the token means something narrower here. Everything else\n(the bearer token, the `X-Client-Id` and `X-Client-Secret` pair, the response envelope) works the\nsame way, and the main documentation at [`\/docs\/api`](\/docs\/api) covers it.\n\n## Servers\n\n| Environment | URL |\n|-------------|-----|\n| **Live** | `https:\/\/fature.al\/api\/partner\/v1` |\n| **Sandbox\/Demo** | `https:\/\/demo.fature.al\/api\/partner\/v1` |\n\n## One token, one venue\n\nThe bearer token resolves to a single Wolt venue, and every endpoint is pinned to it. An order id\nthat belongs to another venue answers 404, not 403, so a wrong id and a foreign id are\nindistinguishable by design.\n\nCall `GET \/ping` first: it returns the company, branch and venue the token is bound to, which is how\nyou confirm the credentials and discover what you are operating on.\n\n## The event feed is the spine\n\nPoll `GET \/events` with the last `next_cursor` you received. The feed is append-only, so nothing is\nlost across your downtime, and delivery is at-least-once, so treat `(order_id, type)` as idempotent.\nEach event carries a compact snapshot of the order at that moment, which is usually enough to avoid\na second call.\n\n## Every write needs an Idempotency-Key\n\nThe eight action endpoints require an `Idempotency-Key` header. A request without one is refused\nwith **400**.\n\n- A retry with the same key replays the first result instead of relaying a second action to Wolt,\n  and the replay carries an `Idempotent-Replayed: true` header. Keys are kept for 24 hours.\n- A second call with the same key while the first is still in flight is refused with **409**.\n- Only successful results are stored, so a transient failure is safe to retry with the same key.\n\n## Errors\n\nFailures use the same envelope as the rest of the API plus a stable `code`:\n\n```json\n{\"status\": false, \"message\": \"No such order for this venue.\", \"code\": \"order_not_found\"}\n```\n\nBranch on `code`, not on `message`, which is localised.\n\n| Code | Status | Meaning |\n|------|--------|---------|\n| `unauthenticated` | 401 | The token is missing or invalid |\n| `wolt_not_enabled` | 403 | The company does not have the Wolt add-on |\n| `forbidden` | 403 | The token has no Wolt right |\n| `no_venue` | 403 | The token resolves to no single active venue |\n| `order_not_found` | 404 | No such order for this venue |\n| `invalid_transition` | 409 | The action is not valid for the order's current status. Nothing was relayed to Wolt |\n| `idempotency_key_required` | 400 | The Idempotency-Key header is missing |\n| `idempotency_in_progress` | 409 | A call with the same key is still running |\n| `invalid_data` | 422 | The body did not validate |\n| `action_failed` | 422 | The action failed on our side and was not completed |\n| `wolt_upstream_error` | 502 | Wolt refused or did not answer. Safe to retry with the same key |\n\n## Rate limits\n\nReads carry the poll loop, so they are the more generous bucket; writes relay to Wolt, so they are\ntighter. Both are per token.\n\n| | Limit |\n|---|-------|\n| Reads (`GET`) | 180\/minute |\n| Writes (`POST`) | 60\/minute |\n\nOver the limit the response is **429** with a `Retry-After` header saying how many seconds to wait."
    },
    "servers": [
        {
            "url": "https:\/\/fature.al\/api\/partner\/v1",
            "description": "Live"
        },
        {
            "url": "https:\/\/demo.fature.al\/api\/partner\/v1",
            "description": "Sandbox"
        }
    ],
    "tags": [
        {
            "name": "Wolt Partner API"
        }
    ],
    "security": [
        {
            "bearerAuth": [],
            "clientId": [],
            "clientSecret": []
        },
        {
            "bearerAuth": []
        }
    ],
    "paths": {
        "\/wolt\/ping": {
            "get": {
                "operationId": "partner.wolt.ping",
                "description": "Verify the token and return the single Wolt venue it is bound to. Call this\nfirst to confirm credentials and discover which company\/branch\/venue the\ntoken operates on.",
                "summary": "Ping",
                "tags": [
                    "Wolt Partner API"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "company": {
                                                    "type": "string"
                                                },
                                                "branch": {
                                                    "type": "string"
                                                },
                                                "venue_id": {
                                                    "type": "string"
                                                },
                                                "connection_status": {
                                                    "type": "string"
                                                },
                                                "server_time": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "company",
                                                "branch",
                                                "venue_id",
                                                "connection_status",
                                                "server_time"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 180 reads a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/events": {
            "get": {
                "operationId": "partner.wolt.events",
                "description": "The spine of the integration. Poll this endpoint with the last next_cursor\nyou received to get the venue's order lifecycle events in order. The feed is\nappend-only, so nothing is missed across your downtime; delivery is\nat-least-once, so treat (order_id, type) as idempotent. Each event carries a\ncompact snapshot of the order at that moment in `order`.",
                "summary": "Event feed",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "since",
                        "in": "query",
                        "description": "The cursor to resume from; pass the previous next_cursor. Defaults to 0, the start of retention.",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        },
                        "example": 10420
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Max events to return, 1-200.",
                        "schema": {
                            "type": "integer",
                            "default": 50
                        },
                        "example": 50
                    },
                    {
                        "name": "types",
                        "in": "query",
                        "description": "Comma-separated event types to include, e.g. order.received,order.ready.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "order.received,order.ready"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "events": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/WoltOrderEvent"
                                                    }
                                                },
                                                "next_cursor": {
                                                    "type": "string"
                                                },
                                                "has_more": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "events",
                                                "next_cursor",
                                                "has_more"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 180 reads a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders": {
            "get": {
                "operationId": "partner.wolt.orders.list",
                "description": "The venue's orders, newest first. Page backwards with ?cursor=<next_cursor>.",
                "summary": "List orders",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "cursor",
                        "in": "query",
                        "description": "Return orders older than this id; pass the previous next_cursor.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 10420
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Page size, 1-100.",
                        "schema": {
                            "type": "integer",
                            "default": 25
                        },
                        "example": 25
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Filter by raw Wolt status (e.g. received, acknowledged, ready, delivered).",
                        "schema": {
                            "type": "string"
                        },
                        "example": "received"
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "description": "Only orders received on\/after this date (YYYY-MM-DD).",
                        "schema": {
                            "type": "string"
                        },
                        "example": "2026-08-01"
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "Only orders received on\/before this date (YYYY-MM-DD).",
                        "schema": {
                            "type": "string"
                        },
                        "example": "2026-08-31"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "orders": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#\/components\/schemas\/WoltOrderCompact"
                                                    }
                                                },
                                                "next_cursor": {
                                                    "type": "string"
                                                },
                                                "has_more": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "orders",
                                                "next_cursor",
                                                "has_more"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 180 reads a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}": {
            "get": {
                "operationId": "partner.wolt.orders.show",
                "description": "The authoritative snapshot of one order: header, parties, lines, totals and\nfiscal linkage.",
                "summary": "Get an order",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "order": {
                                                    "$ref": "#\/components\/schemas\/WoltOrderDetail"
                                                }
                                            },
                                            "required": [
                                                "order"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 180 reads a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}\/invoice": {
            "get": {
                "operationId": "partner.wolt.orders.invoice",
                "description": "Returns the fiscal invoice issued for the order (identifiers IIC\/FIC\/EIC,\nverification via pdf_url, client, amounts and lines). The invoice object is\nidentical to the one from GET \/api\/v1\/invoice\/{id}\/details. It is null while\nthe order has not been fiscalised yet; poll fiscal_state (pending, deferred,\nfiscalised, failed) or watch the order.fiscalized feed event.",
                "summary": "Get the order's fiscal invoice",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "fiscal_state": {
                                                    "type": "string"
                                                },
                                                "invoice": {
                                                    "anyOf": [
                                                        {
                                                            "$ref": "#\/components\/schemas\/InvoiceDetail"
                                                        },
                                                        {
                                                            "type": "null"
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "fiscal_state",
                                                "invoice"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 180 reads a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}\/accept": {
            "post": {
                "operationId": "partner.wolt.orders.accept",
                "description": "Relays acceptance to Wolt. On a marketplace order, pickup_minutes tells Wolt\nwhen it will be ready so a courier is dispatched to match; on a self-delivery\norder it is the total delivery time committed to the customer.",
                "summary": "Accept an order",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": true,
                        "description": "Your own unique key for this action. A retry with the same key replays the first result instead of relaying a second action to Wolt, and the replay carries an Idempotent-Replayed: true header. Kept for 24 hours.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "a2f1c9e4-5b60-4d7a-9c31-8e0f2b6d4a17"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "pickup_minutes": {
                                        "type": "integer",
                                        "description": "Minutes from now until ready, 5-180.",
                                        "example": 20
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "order": {
                                                    "$ref": "#\/components\/schemas\/WoltOrderDetail"
                                                }
                                            },
                                            "required": [
                                                "order"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "400": {
                        "description": "The Idempotency-Key header is missing.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The order's current status does not allow this action, or a call with the same Idempotency-Key is still in flight. Nothing was relayed to Wolt.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "pickup_minutes is outside 5-180, or the action failed on our side and was not completed.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "502": {
                        "description": "Wolt refused or did not answer. Safe to retry with the same Idempotency-Key.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 60 writes a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}\/confirm-preorder": {
            "post": {
                "operationId": "partner.wolt.orders.confirm-preorder",
                "description": "Confirms a customer-scheduled pre-order. It is parked until Wolt releases it\ninto production near its due time, after which it can be marked ready.",
                "summary": "Confirm a pre-order",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": true,
                        "description": "Your own unique key for this action. A retry with the same key replays the first result instead of relaying a second action to Wolt, and the replay carries an Idempotent-Replayed: true header. Kept for 24 hours.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "a2f1c9e4-5b60-4d7a-9c31-8e0f2b6d4a17"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "order": {
                                                    "$ref": "#\/components\/schemas\/WoltOrderDetail"
                                                }
                                            },
                                            "required": [
                                                "order"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "400": {
                        "description": "The Idempotency-Key header is missing.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The order's current status does not allow this action, or a call with the same Idempotency-Key is still in flight. Nothing was relayed to Wolt.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "The action failed on our side and was not completed.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "502": {
                        "description": "Wolt refused or did not answer. Safe to retry with the same Idempotency-Key.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 60 writes a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}\/reject": {
            "post": {
                "operationId": "partner.wolt.orders.reject",
                "summary": "Reject an order",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": true,
                        "description": "Your own unique key for this action. A retry with the same key replays the first result instead of relaying a second action to Wolt, and the replay carries an Idempotent-Replayed: true header. Kept for 24 hours.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "a2f1c9e4-5b60-4d7a-9c31-8e0f2b6d4a17"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/components\/schemas\/WoltRejectRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "order": {
                                                    "$ref": "#\/components\/schemas\/WoltOrderDetail"
                                                }
                                            },
                                            "required": [
                                                "order"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "422": {
                        "description": "The reject code is not one of GENERIC, ITEMS_UNAVAILABLE or VENUE_CLOSING_SOON, or the action failed on our side. A validation failure adds an errors object to the envelope.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "The Idempotency-Key header is missing.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The order's current status does not allow this action, or a call with the same Idempotency-Key is still in flight. Nothing was relayed to Wolt.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "502": {
                        "description": "Wolt refused or did not answer. Safe to retry with the same Idempotency-Key.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 60 writes a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}\/ready": {
            "post": {
                "operationId": "partner.wolt.orders.ready",
                "summary": "Mark an order ready for handover. Creates the fiscal invoice if it does not exist yet",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": true,
                        "description": "Your own unique key for this action. A retry with the same key replays the first result instead of relaying a second action to Wolt, and the replay carries an Idempotent-Replayed: true header. Kept for 24 hours.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "a2f1c9e4-5b60-4d7a-9c31-8e0f2b6d4a17"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "order": {
                                                    "$ref": "#\/components\/schemas\/WoltOrderDetail"
                                                }
                                            },
                                            "required": [
                                                "order"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "400": {
                        "description": "The Idempotency-Key header is missing.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The order's current status does not allow this action, or a call with the same Idempotency-Key is still in flight. Nothing was relayed to Wolt.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "The action failed on our side and was not completed.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "502": {
                        "description": "Wolt refused or did not answer. Safe to retry with the same Idempotency-Key.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 60 writes a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}\/pickup-completed": {
            "post": {
                "operationId": "partner.wolt.orders.pickup-completed",
                "summary": "Self-delivery step 1: the venue's own courier collected the order",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": true,
                        "description": "Your own unique key for this action. A retry with the same key replays the first result instead of relaying a second action to Wolt, and the replay carries an Idempotent-Replayed: true header. Kept for 24 hours.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "a2f1c9e4-5b60-4d7a-9c31-8e0f2b6d4a17"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "order": {
                                                    "$ref": "#\/components\/schemas\/WoltOrderDetail"
                                                }
                                            },
                                            "required": [
                                                "order"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "400": {
                        "description": "The Idempotency-Key header is missing.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The order's current status does not allow this action, or a call with the same Idempotency-Key is still in flight. Nothing was relayed to Wolt.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "The action failed on our side and was not completed.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "502": {
                        "description": "Wolt refused or did not answer. Safe to retry with the same Idempotency-Key.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 60 writes a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}\/courier-at-customer": {
            "post": {
                "operationId": "partner.wolt.orders.courier-at-customer",
                "summary": "Self-delivery step 2: the courier reached the customer",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": true,
                        "description": "Your own unique key for this action. A retry with the same key replays the first result instead of relaying a second action to Wolt, and the replay carries an Idempotent-Replayed: true header. Kept for 24 hours.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "a2f1c9e4-5b60-4d7a-9c31-8e0f2b6d4a17"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "order": {
                                                    "$ref": "#\/components\/schemas\/WoltOrderDetail"
                                                }
                                            },
                                            "required": [
                                                "order"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "400": {
                        "description": "The Idempotency-Key header is missing.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The order's current status does not allow this action, or a call with the same Idempotency-Key is still in flight. Nothing was relayed to Wolt.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "The action failed on our side and was not completed.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "502": {
                        "description": "Wolt refused or did not answer. Safe to retry with the same Idempotency-Key.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 60 writes a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}\/delivered": {
            "post": {
                "operationId": "partner.wolt.orders.delivered",
                "summary": "Close the order: customer pickup (takeaway) once ready, or self-delivery drop-off complete",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": true,
                        "description": "Your own unique key for this action. A retry with the same key replays the first result instead of relaying a second action to Wolt, and the replay carries an Idempotent-Replayed: true header. Kept for 24 hours.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "a2f1c9e4-5b60-4d7a-9c31-8e0f2b6d4a17"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "order": {
                                                    "$ref": "#\/components\/schemas\/WoltOrderDetail"
                                                }
                                            },
                                            "required": [
                                                "order"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "400": {
                        "description": "The Idempotency-Key header is missing.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The order's current status does not allow this action, or a call with the same Idempotency-Key is still in flight. Nothing was relayed to Wolt.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "The action failed on our side and was not completed.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "502": {
                        "description": "Wolt refused or did not answer. Safe to retry with the same Idempotency-Key.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 60 writes a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/wolt\/orders\/{id}\/retry-fiscalize": {
            "post": {
                "operationId": "partner.wolt.orders.retry-fiscalize",
                "summary": "Retry a deferred\/failed fiscalisation for this order",
                "tags": [
                    "Wolt Partner API"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "The order's Fatureal id, from the feed or the order list.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 8801
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": true,
                        "description": "Your own unique key for this action. A retry with the same key replays the first result instead of relaying a second action to Wolt, and the replay carries an Idempotent-Replayed: true header. Kept for 24 hours.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "a2f1c9e4-5b60-4d7a-9c31-8e0f2b6d4a17"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "order": {
                                                    "$ref": "#\/components\/schemas\/WoltOrderDetail"
                                                }
                                            },
                                            "required": [
                                                "order"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "status",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#\/components\/responses\/AuthenticationException"
                    },
                    "400": {
                        "description": "The Idempotency-Key header is missing.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "The company has no Wolt add-on, the token has no Wolt right, or it resolves to no single active venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such order for this venue.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The order's current status does not allow this action, or a call with the same Idempotency-Key is still in flight. Nothing was relayed to Wolt.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "The action failed on our side and was not completed.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "502": {
                        "description": "Wolt refused or did not answer. Safe to retry with the same Idempotency-Key.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/components\/schemas\/PartnerError"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit reached: 60 writes a minute per token. Retry after the number of seconds in the Retry-After header.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "message"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "description": "Token-i i perdoruesit, nga Konfigurime > API Tokens.",
                "scheme": "bearer"
            },
            "clientId": {
                "type": "apiKey",
                "description": "Client id i aplikacionit tuaj, fillon me ft_id_",
                "in": "header",
                "name": "X-Client-Id"
            },
            "clientSecret": {
                "type": "apiKey",
                "description": "Client secret i aplikacionit tuaj, fillon me ft_sk_",
                "in": "header",
                "name": "X-Client-Secret"
            }
        },
        "schemas": {
            "InvoiceAddress": {
                "type": "object",
                "properties": {
                    "street": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "city": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "country": {
                        "type": "string",
                        "description": "ISO 3166-1 alpha-3 country code, defaults to ALB."
                    }
                },
                "required": [
                    "street",
                    "city",
                    "country"
                ],
                "title": "InvoiceAddress"
            },
            "InvoiceAmount": {
                "type": "object",
                "properties": {
                    "currency": {
                        "type": "string",
                        "description": "ISO 4217 currency code."
                    },
                    "exchange_rate": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "description": "Rate to the local currency, null when the invoice is already in ALL."
                    },
                    "gross": {
                        "type": "number"
                    },
                    "net": {
                        "type": "number"
                    },
                    "vat": {
                        "type": "number"
                    },
                    "discount": {
                        "type": "number"
                    },
                    "net_all": {
                        "type": "number",
                        "description": "Net converted to the local currency (ALL)."
                    },
                    "gross_all": {
                        "type": "number",
                        "description": "Gross converted to the local currency (ALL)."
                    },
                    "vat_all": {
                        "type": "number",
                        "description": "VAT converted to the local currency (ALL)."
                    },
                    "discount_all": {
                        "type": "number",
                        "description": "Discount converted to the local currency (ALL)."
                    },
                    "local_currency": {
                        "anyOf": [
                            {
                                "description": "Present only on a foreign-currency invoice.",
                                "$ref": "#\/components\/schemas\/InvoiceLocalAmount"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "currency",
                    "exchange_rate",
                    "gross",
                    "net",
                    "vat",
                    "discount",
                    "net_all",
                    "gross_all",
                    "vat_all",
                    "discount_all",
                    "local_currency"
                ],
                "title": "InvoiceAmount"
            },
            "InvoiceBankAccount": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "bank_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "iban": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "swift": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "currency": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "ISO 4217 currency code."
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "bank_name",
                    "iban",
                    "swift",
                    "currency",
                    "notes"
                ],
                "title": "InvoiceBankAccount"
            },
            "InvoiceDetail": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "description": "Fatureal invoice id."
                    },
                    "number": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Fiscal invoice number."
                    },
                    "type": {
                        "type": "string",
                        "description": "Invoice type, e.g. NONCASH."
                    },
                    "issue_date": {
                        "type": "string",
                        "description": "Issue date (YYYY-MM-DD)."
                    },
                    "due_date": {
                        "type": "string",
                        "description": "Payment due date (YYYY-MM-DD)."
                    },
                    "delivery_date": {
                        "type": "string",
                        "description": "Delivery\/supply-end date (YYYY-MM-DD)."
                    },
                    "created_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Creation timestamp (YYYY-MM-DD HH:MM:SS)."
                    },
                    "supply_start_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Supply period start (YYYY-MM-DD)."
                    },
                    "supply_end_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Supply period end (YYYY-MM-DD)."
                    },
                    "client": {
                        "$ref": "#\/components\/schemas\/InvoiceParty"
                    },
                    "amount": {
                        "$ref": "#\/components\/schemas\/InvoiceAmount"
                    },
                    "payment_method": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "payment": {
                        "$ref": "#\/components\/schemas\/InvoicePayment"
                    },
                    "bank_account": {
                        "anyOf": [
                            {
                                "description": "Bank account printed on the invoice, or null.",
                                "$ref": "#\/components\/schemas\/InvoiceBankAccount"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "iic": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "IIC \/ NSLF."
                    },
                    "fic": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "FIC \/ NIVF."
                    },
                    "eic": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "EIC, for e-invoices."
                    },
                    "doc_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "process": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "self_issue_type": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Self-issuance type, when the invoice is self-issued."
                    },
                    "reversed_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When the invoice was reversed (YYYY-MM-DD HH:MM:SS), or null."
                    },
                    "reversed_by": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Id of the invoice this one reverses, or null."
                    },
                    "pdf_url": {
                        "type": "string",
                        "description": "Direct download URL for the invoice PDF."
                    },
                    "reverse_charge": {
                        "type": "boolean"
                    },
                    "periodic_invoice": {
                        "type": "boolean"
                    },
                    "lines": {
                        "type": "array",
                        "items": {
                            "$ref": "#\/components\/schemas\/InvoiceLine"
                        }
                    }
                },
                "required": [
                    "id",
                    "number",
                    "type",
                    "issue_date",
                    "due_date",
                    "delivery_date",
                    "created_at",
                    "supply_start_date",
                    "supply_end_date",
                    "client",
                    "amount",
                    "payment_method",
                    "payment",
                    "bank_account",
                    "notes",
                    "iic",
                    "fic",
                    "eic",
                    "doc_type",
                    "process",
                    "self_issue_type",
                    "reversed_at",
                    "reversed_by",
                    "pdf_url",
                    "reverse_charge",
                    "periodic_invoice",
                    "lines"
                ],
                "title": "InvoiceDetail"
            },
            "InvoiceLine": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "product_code": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Internal product code, when the line is a mapped product."
                    },
                    "unit": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "unit_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "quantity": {
                        "type": "number"
                    },
                    "unitPrice": {
                        "type": "number",
                        "description": "Unit price before discount, major units."
                    },
                    "vat_rate": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "description": "VAT rate percent."
                    },
                    "vat_exempt_type": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "VAT exemption type, when the line is exempt."
                    },
                    "discount_rate": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "description": "Discount rate percent."
                    },
                    "discount": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "description": "Discount amount, major units."
                    },
                    "amount_net": {
                        "type": "number"
                    },
                    "amount_vat": {
                        "type": "number"
                    },
                    "total": {
                        "type": "number",
                        "description": "Gross line total, major units."
                    }
                },
                "required": [
                    "name",
                    "product_code",
                    "unit",
                    "unit_code",
                    "quantity",
                    "unitPrice",
                    "vat_rate",
                    "vat_exempt_type",
                    "discount_rate",
                    "discount",
                    "amount_net",
                    "amount_vat",
                    "total"
                ],
                "title": "InvoiceLine"
            },
            "InvoiceLocalAmount": {
                "type": "object",
                "properties": {
                    "exchange_rate": {
                        "type": "number"
                    },
                    "gross": {
                        "type": "number"
                    },
                    "net": {
                        "type": "number"
                    },
                    "vat": {
                        "type": "number"
                    },
                    "discount": {
                        "type": "number"
                    }
                },
                "required": [
                    "exchange_rate",
                    "gross",
                    "net",
                    "vat",
                    "discount"
                ],
                "title": "InvoiceLocalAmount"
            },
            "InvoiceParty": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "Full name (or company name)."
                    },
                    "id": {
                        "$ref": "#\/components\/schemas\/InvoicePartyId"
                    },
                    "address": {
                        "$ref": "#\/components\/schemas\/InvoiceAddress"
                    }
                },
                "required": [
                    "name",
                    "id",
                    "address"
                ],
                "title": "InvoiceParty"
            },
            "InvoicePartyId": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Identifier type, e.g. NUIS, ID, PASSPORT."
                    },
                    "id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "The identifier value."
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "InvoicePartyId"
            },
            "InvoicePayment": {
                "type": "object",
                "properties": {
                    "state": {
                        "type": "string",
                        "description": "PAID, PARTIALLY_PAID or UNPAID."
                    },
                    "amount_paid": {
                        "type": "number",
                        "description": "Amount received so far, in the invoice currency."
                    },
                    "amount_left": {
                        "type": "number",
                        "description": "Gross total minus what has been received, in the invoice currency."
                    }
                },
                "required": [
                    "state",
                    "amount_paid",
                    "amount_left"
                ],
                "title": "InvoicePayment"
            },
            "PartnerError": {
                "type": "object",
                "properties": {
                    "status": {
                        "type": "boolean",
                        "description": "Always false."
                    },
                    "message": {
                        "type": "string",
                        "description": "Localised explanation, safe to log but not to branch on."
                    },
                    "code": {
                        "type": "string",
                        "description": "Stable machine readable reason: `unauthenticated`, `wolt_not_enabled`,\n`forbidden`, `no_venue`, `order_not_found`, `invalid_transition`,\n`invalid_data`, `action_failed`, `wolt_upstream_error`,\n`idempotency_key_required`, `idempotency_in_progress`."
                    }
                },
                "required": [
                    "status",
                    "message",
                    "code"
                ],
                "title": "PartnerError"
            },
            "WoltCustomer": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Shared by Wolt only for self-delivery orders."
                    },
                    "note": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Customer note left with the order."
                    }
                },
                "required": [
                    "name",
                    "phone",
                    "note"
                ],
                "title": "WoltCustomer"
            },
            "WoltInvoiceRef": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "description": "Fatureal invoice id."
                    },
                    "number": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Fiscal invoice number, once assigned."
                    },
                    "state": {
                        "type": "string",
                        "description": "Fiscal state: pending, deferred, fiscalised or failed."
                    },
                    "fiscal_iic": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Fiscal IIC (NSLF), once fiscalised."
                    },
                    "fiscal_fic": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Fiscal FIC (NIVF), once fiscalised."
                    }
                },
                "required": [
                    "id",
                    "number",
                    "state",
                    "fiscal_iic",
                    "fiscal_fic"
                ],
                "title": "WoltInvoiceRef"
            },
            "WoltOrderCompact": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "description": "Fatureal order id; use this as {id} in the order and action routes."
                    },
                    "wolt_order_id": {
                        "type": "string",
                        "description": "Wolt's own order id."
                    },
                    "display_number": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Human order number shown to the customer."
                    },
                    "status": {
                        "type": "string",
                        "description": "Raw Wolt lifecycle status: received, acknowledged, production, ready, picked_up, courier_at_customer, delivered, rejected, refunded, ..."
                    },
                    "fiscal_state": {
                        "type": "string",
                        "description": "Fiscal state derived from the invoice: pending, deferred, fiscalised or failed."
                    },
                    "total_amount": {
                        "type": "number",
                        "description": "Charged total in major currency units."
                    },
                    "currency": {
                        "type": "string",
                        "description": "ISO 4217 currency code."
                    },
                    "received_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When Wolt handed the order to us (ISO-8601)."
                    },
                    "pickup_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Committed handover time (ISO-8601), set when a pickup time was chosen on accept."
                    },
                    "delivery_type": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Wolt delivery type: takeaway, eatin, homedelivery, ..."
                    },
                    "self_delivery": {
                        "type": "boolean",
                        "description": "Whether the venue fulfils delivery with its own courier."
                    },
                    "branch": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Branch name."
                    },
                    "invoice": {
                        "anyOf": [
                            {
                                "description": "Linked fiscal invoice reference, or null before fiscalisation.",
                                "$ref": "#\/components\/schemas\/WoltInvoiceRef"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "id",
                    "wolt_order_id",
                    "display_number",
                    "status",
                    "fiscal_state",
                    "total_amount",
                    "currency",
                    "received_at",
                    "pickup_at",
                    "delivery_type",
                    "self_delivery",
                    "branch",
                    "invoice"
                ],
                "title": "WoltOrderCompact"
            },
            "WoltOrderCompany": {
                "type": "object",
                "properties": {
                    "tax_id": {
                        "type": "string",
                        "description": "Tax id (NUIS\/NIPT) the customer asked to bill."
                    },
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "address": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "tax_id",
                    "name",
                    "address"
                ],
                "title": "WoltOrderCompany"
            },
            "WoltOrderDetail": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "description": "Fatureal order id; use this as {id} in the order and action routes."
                    },
                    "wolt_order_id": {
                        "type": "string",
                        "description": "Wolt's own order id."
                    },
                    "display_number": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Human order number shown to the customer."
                    },
                    "status": {
                        "type": "string",
                        "description": "Raw Wolt lifecycle status: received, acknowledged, production, ready, picked_up, courier_at_customer, delivered, rejected, refunded, ..."
                    },
                    "fiscal_state": {
                        "type": "string",
                        "description": "Fiscal state derived from the invoice: pending, deferred, fiscalised or failed."
                    },
                    "total_amount": {
                        "type": "number",
                        "description": "Charged total in major currency units."
                    },
                    "currency": {
                        "type": "string",
                        "description": "ISO 4217 currency code."
                    },
                    "received_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When Wolt handed the order to us (ISO-8601)."
                    },
                    "pickup_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Committed handover time (ISO-8601), set when a pickup time was chosen on accept."
                    },
                    "delivery_type": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Wolt delivery type: takeaway, eatin, homedelivery, ..."
                    },
                    "self_delivery": {
                        "type": "boolean",
                        "description": "Whether the venue fulfils delivery with its own courier."
                    },
                    "branch": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Branch name."
                    },
                    "invoice": {
                        "anyOf": [
                            {
                                "description": "Linked fiscal invoice reference, or null before fiscalisation.",
                                "$ref": "#\/components\/schemas\/WoltInvoiceRef"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "customer": {
                        "$ref": "#\/components\/schemas\/WoltCustomer"
                    },
                    "company": {
                        "anyOf": [
                            {
                                "description": "B2B billing company, or null for a normal consumer order.",
                                "$ref": "#\/components\/schemas\/WoltOrderCompany"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "preorder": {
                        "anyOf": [
                            {
                                "description": "Scheduled pre-order info, or null for an instant order.",
                                "$ref": "#\/components\/schemas\/WoltPreorder"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "lines": {
                        "type": "array",
                        "items": {
                            "$ref": "#\/components\/schemas\/WoltOrderLine"
                        }
                    },
                    "totals": {
                        "$ref": "#\/components\/schemas\/WoltOrderTotals"
                    }
                },
                "required": [
                    "id",
                    "wolt_order_id",
                    "display_number",
                    "status",
                    "fiscal_state",
                    "total_amount",
                    "currency",
                    "received_at",
                    "pickup_at",
                    "delivery_type",
                    "self_delivery",
                    "branch",
                    "invoice",
                    "customer",
                    "company",
                    "preorder",
                    "lines",
                    "totals"
                ],
                "title": "WoltOrderDetail"
            },
            "WoltOrderEvent": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "description": "Monotonic cursor id; pass the highest one you have seen as ?since=."
                    },
                    "type": {
                        "type": "string",
                        "description": "Event type, e.g. order.received, order.accepted, order.ready, order.delivered, order.fiscalized, order.fiscalization_failed."
                    },
                    "order_id": {
                        "type": "integer",
                        "description": "Fatureal order id the event is about."
                    },
                    "wolt_order_id": {
                        "type": "string",
                        "description": "Wolt's order id."
                    },
                    "status": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Order status at the moment of the event."
                    },
                    "occurred_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "When the event occurred (ISO-8601)."
                    },
                    "order": {
                        "description": "Compact snapshot of the order at that moment.",
                        "$ref": "#\/components\/schemas\/WoltOrderCompact"
                    }
                },
                "required": [
                    "id",
                    "type",
                    "order_id",
                    "wolt_order_id",
                    "status",
                    "occurred_at",
                    "order"
                ],
                "title": "WoltOrderEvent"
            },
            "WoltOrderLine": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "Item name."
                    },
                    "quantity": {
                        "type": "number"
                    },
                    "unit_price": {
                        "type": "number",
                        "description": "Unit price in major units."
                    },
                    "total": {
                        "type": "number",
                        "description": "Line total in major units, after discount."
                    },
                    "discount": {
                        "type": "number",
                        "description": "Discount applied to the line, major units."
                    },
                    "product": {
                        "anyOf": [
                            {
                                "description": "Linked internal product, or null when the Wolt item is unmapped.",
                                "$ref": "#\/components\/schemas\/WoltProductRef"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "options": {
                        "type": "array",
                        "description": "Chosen modifiers\/options for the line.",
                        "items": {}
                    }
                },
                "required": [
                    "name",
                    "quantity",
                    "unit_price",
                    "total",
                    "discount",
                    "product",
                    "options"
                ],
                "title": "WoltOrderLine"
            },
            "WoltOrderTotals": {
                "type": "object",
                "properties": {
                    "subtotal_before_discount": {
                        "type": "number",
                        "description": "Basket total before any discount, major units."
                    },
                    "discount": {
                        "type": "number",
                        "description": "Total discount applied, major units."
                    },
                    "total": {
                        "type": "number",
                        "description": "Charged total, major units."
                    },
                    "currency": {
                        "type": "string",
                        "description": "ISO 4217 currency code."
                    },
                    "campaigns": {
                        "type": "array",
                        "description": "Applied promotion labels.",
                        "items": {}
                    }
                },
                "required": [
                    "subtotal_before_discount",
                    "discount",
                    "total",
                    "currency",
                    "campaigns"
                ],
                "title": "WoltOrderTotals"
            },
            "WoltPreorder": {
                "type": "object",
                "properties": {
                    "time": {
                        "type": "string",
                        "description": "Scheduled time (ISO-8601)."
                    },
                    "status": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Wolt pre-order status."
                    }
                },
                "required": [
                    "time",
                    "status"
                ],
                "title": "WoltPreorder"
            },
            "WoltProductRef": {
                "type": "object",
                "properties": {
                    "code": {
                        "type": "string",
                        "description": "Internal product code."
                    },
                    "name": {
                        "type": "string",
                        "description": "Internal product name."
                    }
                },
                "required": [
                    "code",
                    "name"
                ],
                "title": "WoltProductRef"
            },
            "WoltRejectRequest": {
                "type": "object",
                "description": "Body of the reject action. Kept as a FormRequest so the allowed reject codes\nare documented as an enum in the API docs, while failedValidation still emits\nthe partner envelope { status, message, code, errors } on bad input.",
                "properties": {
                    "reason": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "A short human-readable reason; Wolt may show it to the customer.",
                        "example": "Kitchen is closing",
                        "maxLength": 255
                    },
                    "code": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Machine reason code. Defaults to GENERIC.",
                        "enum": [
                            "GENERIC",
                            "ITEMS_UNAVAILABLE",
                            "VENUE_CLOSING_SOON"
                        ],
                        "example": "ITEMS_UNAVAILABLE"
                    }
                },
                "title": "WoltRejectRequest"
            }
        },
        "responses": {
            "AuthenticationException": {
                "description": "Unauthenticated",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            }
        }
    }
}