Concepts
Authentication & keys
Secret keys, test mode, scopes, IP locks and revoking.
Every request (except public tracking) needs a key in the Authorization header:
Authorization: Bearer bz_live_sk_3kX…Kinds of keys
| Prefix | Mode | What happens |
|---|---|---|
bz_live_sk_ | Live | Real orders and bookings reach the restaurant. |
bz_test_sk_ | Test | Every check and price is real, but orders and bookings never reach the kitchen. Test ids start with test_. |
How keys are protected
- Billzova stores only a SHA-256 hash — nobody, including us, can read a key after it is created.
- Keys are accepted only in the header. A key in a URL is refused (URLs end up in logs).
- Revoke a key in the dashboard and it stops working within seconds.
- Optionally lock a key to IP addresses — calls from anywhere else get
IP_NOT_ALLOWED. - Every call is logged with its request id; owners see usage per key in the dashboard.
Scopes
| Scope | Allows |
|---|---|
restaurant:read | Restaurant info, hours, status |
menu:read | The menu |
orders:write | Quote, place and cancel orders |
orders:read | Read and list orders |
reservations:read | Availability, read bookings |
reservations:write | Book and cancel |
New keys get all scopes unless you choose fewer. A call outside the key's scopes gets SCOPE_MISSING.