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
| Droit | Ce que lit le propriétaire | Ce qu'il permet | Offre |
|---|---|---|---|
orders:read | Voir les commandes | GET /orders, GET /orders/{id} ; événements order.*. | toutes les offres |
orders:write | Accepter, refuser et faire avancer les commandes | En plus, accepter, refuser, annuler, faire avancer et prendre en charge : POST /orders/{id}/accept, reject, cancel, status et acknowledge. | toutes les offres |
menu:read | Voir la carte | GET /menu et les listes de la carte ; événements menu.*. | toutes les offres |
menu:write | Modifier 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:read | Voir les horaires, le statut et les tables | GET /store, horaires d'ouverture, jours particuliers, GET /tables, GET /areas ; événements store.*. | toutes les offres |
store:write | Mettre en pause les commandes en ligne, modifier les horaires et les délais | En plus, la pause et la reprise, PATCH /store, PUT /store/hours et les jours particuliers. | toutes les offres |
reservations:read | Voir les réservations | GET /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:write | Créer, confirmer et modifier les réservations | En plus, créer, modifier et changer le statut. | à partir de Pro |
reports:read | Voir le chiffre d'affaires et les ventes | GET /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énements | Droit 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.