API FlavosoFondamentauxDroits

Droits

Neuf droits déterminent ce que votre application peut faire. L'écriture inclut la lecture ; les réservations sont disponibles à partir de l'offre Pro.

Fonctionnement des droits

Dans la console, vous indiquez les droits que votre application peut demander ; elle les demande ensuite lors de l'autorisation avec scope, séparés par des espaces. Le propriétaire les voit formulés en clair et les accepte tous ou les refuse tous.

L'écriture inclut la lecture : avec orders:write, une application peut aussi lire les commandes. Les droits d'une connexion figurent dans la réponse du point de terminaison des jetons sous scope et dans GET /me sous scopes.

Ne demandez que ce dont votre application a besoin pour fonctionner. C'est exactement ce que vérifie la validation, et un propriétaire accepte plus volontiers quand la liste est courte.

Les neuf droits

DroitCe que lit le propriétaireCe qu'il permetOffre
orders:readVoir les commandesGET /orders, GET /orders/{id} ; événements order.*.toutes les offres
orders:writeAccepter, refuser et faire avancer les commandesEn plus, accepter, refuser, annuler, faire avancer et prendre en charge : POST /orders/{id}/accept, reject, cancel, status et acknowledge.toutes les offres
menu:readVoir la carteGET /menu et les listes de la carte ; événements menu.*.toutes les offres
menu:writeModifier la carte : plats, catégories, options, prix et disponibilitéEn plus, PUT /menu, POST /menu/availability et la création, la modification et la suppression de catégories, de plats, de groupes d'options et d'options.toutes les offres
store:readVoir les horaires, le statut et les tablesGET /store, horaires d'ouverture, jours particuliers, GET /tables, GET /areas ; événements store.*.toutes les offres
store:writeMettre en pause les commandes en ligne, modifier les horaires et les délaisEn plus, la pause et la reprise, PATCH /store, PUT /store/hours et les jours particuliers.toutes les offres
reservations:readVoir les réservationsGET /reservations, les réservations individuelles, les créneaux libres, plus GET /tables et GET /areas pour résoudre table_ids ; événements reservation.*.à partir de Pro
reservations:writeCréer, confirmer et modifier les réservationsEn plus, créer, modifier et changer le statut.à partir de Pro
reports:readVoir le chiffre d'affaires et les ventesGET /reports/sales, GET /reports/products.toutes les offres

Quand un droit manque

S'il manque un droit, l'API répond 403 insufficient_scope, et l'en-tête WWW-Authenticate indique le droit manquant. La connexion n'obtient ce droit que si le propriétaire connecte à nouveau votre application avec ce droit.

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"
  }
}

Droits et événements

Un événement contient des données ; une connexion ne le reçoit donc qu'avec le droit de lecture correspondant (ou le droit d'écriture du même groupe). Cela vaut aussi bien pour les webhooks que pour GET /events.

ÉvénementsDroit requis
order.*orders:read
reservation.*reservations:read
menu.*menu:read
store.*store:read
app.*aucun, seulement la connexion elle-même

Droits et offres

L'API est incluse dans chaque offre et ne coûte rien de plus. Les réservations sont disponibles à partir de l'offre Pro : dans un établissement en offre Starter, les routes de réservation répondent 403 plan_required, même si la connexion dispose du droit. L'écran de consentement le signale, et GET /me indique l'offre sous plan.

Si l'abonnement d'un établissement n'est pas actif, toutes les routes sauf GET /me et DELETE /connection répondent 403 account_inactive.

Modifier les droits

Les droits que votre application peut demander se modifient dans la console. Après la validation, tout droit supplémentaire doit passer un nouvel examen ; d'ici là, c'est la liste validée qui s'applique.

Les connexions existantes conservent leurs droits. Une connexion n'obtient davantage de droits que si le propriétaire connecte à nouveau votre application avec le nouveau scope. Vous recevez alors app.scopes_changed avec previous_scopes.

Une question reste ouverte ? Écrivez à support@flavoso.com en indiquant l'identifiant de X-Request-Id. Il nous permet de retrouver votre requête dans le journal.