Conventions
The rules that catch people out. Everything else is on each endpoint's page.
Dates are London days
from=2026-11-11&to=2026-11-11 means the whole of 11 November in London, midnight to midnight, including British Summer Time. Both ends are included.
- Leave both out and you get the last 7 days.
- One request covers 92 days at most. Longer returns
400 range_too_large. - Timestamps in responses are UTC, for example
2026-11-11T19:42:10.000Z. A transaction at 00:30 in June is on the previous day in UTC.
Amounts are in pounds
26.4 means £26.40, not 2,640 pence. Every amount is a decimal rounded to 2 places, next to a currency field such as GBP.
Lists use cursors
Lists are newest first, 50 to a page unless you send limit. When pagination.hasMore is true, send pagination.nextCursor back as cursor, with the same filters.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://europe-west2-fyre-pos.cloudfunctions.net/publicApi/v1/transactions?from=2026-11-11&to=2026-11-11&cursor=eyJ2IjoxLCJyIjoidHJhbnNhY3Rpb25zIn0.c2lnbmF0dXJl"A page can hold fewer records than limit and still have hasMore: true. Keep going until hasMore is false. A cursor from a different endpoint or with changed filters returns 400 invalid_cursor.
Sensitive fields need include
Some fields are left out unless you ask for them by name in include, as a comma-separated list.
include value | Field that appears | Endpoints |
|---|---|---|
unit_cost | Line item unitCost | Transactions and their line items |
discount_code | discount.code | Transactions |
card | Card provider and last four digits | Payments, and payments inside a transaction |
contact | Branch phone and taxNumber | Branches |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://europe-west2-fyre-pos.cloudfunctions.net/publicApi/v1/payments?include=card"A value an endpoint does not support returns 400 invalid_request. card also needs payments:read.
Errors have one shape
{
"error": {
"code": "branch_forbidden",
"message": "This API key is not permitted to access the requested branch",
"requestId": "6f1c2a9e-4b1d-4c4b-9d8e-0a1b2c3d4e5f",
"details": { "branchId": "YOUR_BRANCH_ID" }
}
}Switch on code, not message. Quote requestId when you contact Yuze; it is also in the X-Request-Id header.
A key can make 60 requests a minute, and 10 of those can be reports. Over the limit you get 429 rate_limited with a Retry-After header in seconds. If the limit cannot be checked, a report returns 503 rate_limit_unavailable; try again a few seconds later.

