Flavoso APIGrundlagenRechte

Rechte

Neun Rechte steuern, was deine App darf. Schreiben schließt Lesen ein; Reservierungen gibt es ab dem Tarif Pro.

So funktionieren Rechte

Deine App trägt in der Konsole ein, welche Rechte sie anfragen darf, und fragt bei der Autorisierung mit scope nach, durch Leerzeichen getrennt. Der Inhaber sieht sie in Klartext und stimmt allen zu oder keinem.

Schreiben schließt Lesen ein: mit orders:write darf eine App Bestellungen auch lesen. Welche Rechte eine Verbindung hat, steht in der Antwort des Token-Endpunkts unter scope und in GET /me unter scopes.

Frag nur an, was deine App für ihren Zweck braucht. Genau das prüft die Freigabe, und ein Inhaber stimmt eher zu, wenn die Liste kurz ist.

Die neun Rechte

RechtDas liest der InhaberWas es freischaltetTarif
orders:readBestellungen sehenGET /orders, GET /orders/{id}; Ereignisse order.*.jeder Tarif
orders:writeBestellungen annehmen, ablehnen und weiterschaltenDazu annehmen, ablehnen, stornieren, weiterschalten und übernehmen: POST /orders/{id}/accept, reject, cancel, status und acknowledge.jeder Tarif
menu:readSpeisekarte sehenGET /menu und die Listen der Karte; Ereignisse menu.*.jeder Tarif
menu:writeSpeisekarte bearbeiten: Gerichte, Kategorien, Optionen, Preise und VerfügbarkeitDazu PUT /menu, POST /menu/availability und Anlegen, Ändern, Löschen von Kategorien, Gerichten, Optionsgruppen und Optionen.jeder Tarif
store:readÖffnungszeiten, Status und Tische sehenGET /store, Öffnungszeiten, Sondertage, GET /tables, GET /areas; Ereignisse store.*.jeder Tarif
store:writeBestellannahme pausieren, Öffnungs- und Vorlaufzeiten ändernDazu Pause und Fortsetzen, PATCH /store, PUT /store/hours und Sondertage.jeder Tarif
reservations:readReservierungen sehenGET /reservations, einzelne Reservierungen, freie Zeiten, dazu GET /tables und GET /areas, um table_ids aufzulösen; Ereignisse reservation.*.ab Pro
reservations:writeReservierungen anlegen, bestätigen und ändernDazu anlegen, ändern und den Stand setzen.ab Pro
reports:readUmsätze und Verkaufszahlen sehenGET /reports/sales, GET /reports/products.jeder Tarif

Wenn ein Recht fehlt

Fehlt ein Recht, antwortet die Schnittstelle mit 403 insufficient_scope, und der Kopf WWW-Authenticate nennt das fehlende Recht. Das Recht bekommt die Verbindung nur, wenn der Inhaber deine App mit diesem Recht neu verbindet.

HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer realm="flavoso", error="insufficient_scope", scope="menu:write"
Content-Type: application/json

{
  "error": {
    "code": "insufficient_scope",
    "message": "This connection lacks the 'menu:write' scope.",
    "request_id": "req_4f0c2a9d1e7b3c5a8f6d2e10"
  }
}

Rechte und Ereignisse

Ein Ereignis zeigt Daten, also bekommt eine Verbindung es nur mit dem passenden Leserecht (oder dem Schreibrecht derselben Gruppe). Das gilt für Webhooks und für GET /events gleich.

EreignisseNötiges Recht
order.*orders:read
reservation.*reservations:read
menu.*menu:read
store.*store:read
app.*keins, nur die eigene Verbindung

Rechte und Tarife

Die Schnittstelle gehört zu jedem Tarif und kostet nichts extra. Reservierungen gibt es ab dem Tarif Pro: in einem Betrieb mit Starter antworten die Routen der Reservierungen mit 403 plan_required, auch wenn die Verbindung das Recht hat. Der Zustimmungsbildschirm weist darauf hin, und GET /me nennt den Tarif unter plan.

Läuft das Abo eines Betriebs nicht, antworten alle Routen außer GET /me und DELETE /connection mit 403 account_inactive.

Rechte ändern

Die Rechte, die deine App anfragen darf, änderst du in der Konsole. Nach der Freigabe warten zusätzliche Rechte auf eine neue Prüfung; bis dahin gilt die geprüfte Liste.

Bestehende Verbindungen behalten ihre Rechte. Mehr Rechte bekommt eine Verbindung nur, wenn der Inhaber deine App mit dem neuen scope neu verbindet. Danach kommt app.scopes_changed mit previous_scopes.

Etwas unklar geblieben? Schreib an support@flavoso.com und nenne die Kennung aus X-Request-Id. Damit finden wir deine Anfrage im Protokoll.