Every operation the terminal and the back office perform, they perform over this API. Get a token, then fire real requests at a seeded demo tenant — nothing here is a mock. Orientation and the sync protocol live in the developer hub; the machine-readable spec is at /docs/openapi.yaml.
One click signs in as the demo tenant's manager, authorizes this page, and shows you
the token to copy. Sign-in takes three fields — email, password and
tenantId — because one server hosts many businesses.
Get a token first — the snippet fills in with it.
Money is integer cents everywhere — no floats near a total. Prices are VAT-inclusive, with VAT extracted at 15/115 per line after discounts.
Errors share one shape — { error, message, correlationId } — so branch on
the stable error code rather than the HTTP status. Rate-limited buckets
answer 429 with Retry-After.
Payments and sale commits accept an idempotency key. That matters here more than usual: terminals are offline-first, so they retry, and a retried payment must never charge twice.