fature.al eshte platforma e faturimit dhe fiskalizimit per bizneset ne Shqiperi. Hap nje llogari
Skip to content
fature.al API Menu

Event feed

GET /api/partner/v1/wolt/events Requires authentication Rate limited by the `api-global` limiter

Send a bearer token in the Authorization header.

The spine of the integration. Poll this endpoint with the last next_cursor you received to get the venue's order lifecycle events in order. The feed is append-only, so nothing is missed across your downtime; delivery is at-least-once, so treat (order_id, type) as idempotent. Each event carries a compact snapshot of the order at that moment in order.

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

Query parameters

Name Type Required Description
since integer no The cursor to resume from; pass the previous next_cursor. Defaults to 0, the start of retention. Defaults to `0`.
limit integer no Max events to return, 1-200. Defaults to `50`.
types string no Comma-separated event types to include, e.g. order.received,order.ready.

Responses

200 OK

Field Type Description
status boolean
data object
data.events array
data.events[].id integer Monotonic cursor id; pass the highest one you have seen as ?since=
data.events[].type string Event type, e.g. order.received, order.accepted, order.ready, order.delivered, order.fiscalized, order.fiscalization_failed
data.events[].order_id integer Fatureal order id the event is about
data.events[].wolt_order_id string Wolt's order id
data.events[].status string, nullable Order status at the moment of the event
data.events[].occurred_at string, nullable When the event occurred (ISO-8601)
data.events[].order object Compact snapshot of the order at that moment
data.events[].order.id integer Fatureal order id; use this as {id} in the order and action routes
data.events[].order.wolt_order_id string Wolt's own order id
data.events[].order.display_number string, nullable Human order number shown to the customer
data.events[].order.status string Raw Wolt lifecycle status: received, acknowledged, production, ready, picked_up, courier_at_customer, delivered, rejected, refunded, ...
data.events[].order.fiscal_state string Fiscal state derived from the invoice: pending, deferred, fiscalised or failed
data.events[].order.total_amount number Charged total in major currency units
data.events[].order.currency string ISO 4217 currency code
data.events[].order.received_at string, nullable When Wolt handed the order to us (ISO-8601)
data.events[].order.pickup_at string, nullable Committed handover time (ISO-8601), set when a pickup time was chosen on accept
data.events[].order.delivery_type string, nullable Wolt delivery type: takeaway, eatin, homedelivery, ...
data.events[].order.self_delivery boolean Whether the venue fulfils delivery with its own courier
data.events[].order.branch string, nullable Branch name
data.events[].order.invoice object, nullable Linked fiscal invoice reference, or null before fiscalisation
data.next_cursor string
data.has_more boolean

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

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

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

Field Type Description
message string

Example request

cURL
curl -X GET 'https://fature.al/api/partner/v1/wolt/events' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'X-Client-Id: YOUR_CLIENT_ID' \
  -H 'X-Client-Secret: YOUR_CLIENT_SECRET' \
  -H 'Accept: application/json'
PHP (Laravel)
use Illuminate\Support\Facades\Http;

$response = Http::withHeaders([
    'Authorization' => 'Bearer YOUR_TOKEN',
    'X-Client-Id' => 'YOUR_CLIENT_ID',
    'X-Client-Secret' => 'YOUR_CLIENT_SECRET',
    'Accept' => 'application/json',
])->get('https://fature.al/api/partner/v1/wolt/events');

$data = $response->json();
PHP (Guzzle)
use GuzzleHttp\Client;

$client = new Client();

$response = $client->request('GET', 'https://fature.al/api/partner/v1/wolt/events', [
    'headers' => [
        'Authorization' => 'Bearer YOUR_TOKEN',
        'X-Client-Id' => 'YOUR_CLIENT_ID',
        'X-Client-Secret' => 'YOUR_CLIENT_SECRET',
        'Accept' => 'application/json',
    ],
]);

$data = json_decode((string) $response->getBody(), true);
JavaScript
const response = await fetch('https://fature.al/api/partner/v1/wolt/events', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'X-Client-Id': 'YOUR_CLIENT_ID',
    'X-Client-Secret': 'YOUR_CLIENT_SECRET',
    'Accept': 'application/json'
  }
});

const data = await response.json();

Example response

200
{
    "status": true,
    "data": {
        "events": [
            {
                "id": 1,
                "type": "type",
                "order_id": 1,
                "wolt_order_id": "wolt order id",
                "status": "status",
                "occurred_at": "occurred at",
                "order": {
                    "id": 1,
                    "wolt_order_id": "wolt order id",
                    "display_number": "display number",
                    "status": "status",
                    "fiscal_state": "fiscal state",
                    "total_amount": 4200,
                    "currency": "USD",
                    "received_at": "received at",
                    "pickup_at": "pickup at",
                    "delivery_type": "delivery type",
                    "self_delivery": true,
                    "branch": "branch",
                    "invoice": []
                }
            }
        ],
        "next_cursor": "next cursor",
        "has_more": true
    }
}
403
{
    "status": true,
    "message": "Hello there",
    "code": "code"
}
429
{
    "message": "Hello there"
}

Regjistrimi eshte falas.

Regjistrohu ne fature.al

This page as Markdown, or the whole API as OpenAPI.