API de FlavosoFundamentosPermisos

Permisos

Nueve permisos controlan lo que puede hacer tu app. El permiso de escritura incluye el de lectura; las reservas están disponibles a partir del plan Pro.

Cómo funcionan los permisos

En la consola indicas qué permisos puede solicitar tu app; durante la autorización, la app los pide con scope, separados por espacios. El propietario los ve en lenguaje claro y acepta todos o ninguno.

El permiso de escritura incluye el de lectura: con orders:write, una app también puede leer pedidos. Los permisos de una conexión figuran en la respuesta del endpoint de token, en scope, y en GET /me, en scopes.

Solicita solo lo que tu app necesita para su finalidad. Eso es justo lo que comprueba la revisión, y un propietario acepta con más facilidad si la lista es corta.

Los nueve permisos

PermisoLo que lee el propietarioQué permitePlan
orders:readVer los pedidosGET /orders, GET /orders/{id}; eventos order.*.todos los planes
orders:writeAceptar, rechazar y hacer avanzar los pedidosAdemás aceptar, rechazar, cancelar, hacer avanzar y hacerse cargo: POST /orders/{id}/accept, reject, cancel, status y acknowledge.todos los planes
menu:readVer la cartaGET /menu y las listas de la carta; eventos menu.*.todos los planes
menu:writeEditar la carta: platos, categorías, opciones, precios y disponibilidadAdemás PUT /menu, POST /menu/availability y crear, cambiar y borrar categorías, platos, grupos de opciones y opciones.todos los planes
store:readVer horarios, estado y mesasGET /store, horarios de apertura, días especiales, GET /tables, GET /areas; eventos store.*.todos los planes
store:writePausar los pedidos online, cambiar horarios y tiempos de preparaciónAdemás pausar y reanudar, PATCH /store, PUT /store/hours y días especiales.todos los planes
reservations:readVer las reservasGET /reservations, reservas individuales, horas libres, además de GET /tables y GET /areas para resolver table_ids; eventos reservation.*.a partir de Pro
reservations:writeCrear, confirmar y cambiar reservasAdemás crear, cambiar y fijar el estado.a partir de Pro
reports:readVer ventas y facturaciónGET /reports/sales, GET /reports/products.todos los planes

Cuando falta un permiso

Si falta un permiso, la API responde con 403 insufficient_scope, y la cabecera WWW-Authenticate indica el permiso que falta. La conexión solo obtiene el permiso si el propietario vuelve a conectar tu app con ese permiso.

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

Permisos y eventos

Un evento muestra datos, así que una conexión solo lo recibe con el permiso de lectura correspondiente (o el de escritura del mismo grupo). Esto se aplica por igual a los webhooks y a GET /events.

EventosPermiso necesario
order.*orders:read
reservation.*reservations:read
menu.*menu:read
store.*store:read
app.*ninguno, solo la propia conexión

Permisos y planes

La API forma parte de todos los planes y no cuesta nada extra. Las reservas están disponibles a partir del plan Pro: en un negocio con el plan Starter, las rutas de reservas responden con 403 plan_required, aunque la conexión tenga el permiso. La pantalla de consentimiento lo advierte, y GET /me indica el plan en plan.

Si la suscripción de un negocio no está activa, todas las rutas salvo GET /me y DELETE /connection responden con 403 account_inactive.

Cambiar los permisos

Los permisos que tu app puede solicitar los cambias en la consola. Tras la aprobación, los permisos adicionales esperan una nueva revisión; hasta entonces se aplica la lista revisada.

Las conexiones existentes conservan sus permisos. Una conexión solo obtiene más permisos si el propietario vuelve a conectar tu app con el nuevo scope. Después llega app.scopes_changed con previous_scopes.

¿Algo no ha quedado claro? Escribe a support@flavoso.com e indica el identificador de X-Request-Id. Así podremos encontrar tu solicitud en el registro.