API de FlavosoPrimeros pasosConceptos

Conceptos

Apps, negocios, conexiones, tokens, permisos, prueba y real: los términos que aparecen en toda esta documentación.

El modelo

Flavoso es un sistema de pedidos para restaurantes. Cada negocio tiene su propia página de pedidos, carta, cocina y panel. Tu app trabaja en nombre de un negocio una vez que su propietario ha dado su consentimiento.

App

client_id, permisos, un webhook

Conexión A

El consentimiento de un propietario, con permisos y tokens

Negocio A

un restaurante con carta, pedidos, horarios

Conexión B

El consentimiento de un propietario, con permisos y tokens

Negocio B

un restaurante con carta, pedidos, horarios

Una app tiene muchas conexiones, como máximo una activa por negocio. Un token pertenece a una sola conexión y, por tanto, a un solo negocio.

App

Una app es tu software tal como lo conoce Flavoso: creada en la consola, con un client ID (flv_app_…), un tipo de cliente, URI de redirección, los permisos que puede solicitar y un webhook. Una app puede estar conectada con cualquier número de negocios; una cuenta tiene como máximo 10 apps.

Cada app tiene un estado: en desarrollo, en revisión, aprobada, rechazada o bloqueada. Hasta la aprobación solo se conecta con tu negocio de prueba y con negocios de los que tú mismo eres propietario.

Negocio

Un negocio es un restaurante en Flavoso. En la API se llama tenant y tiene id, name, slug (la parte de la dirección de su página de pedidos), timezone, currency y country. GET /me lo devuelve.

Un negocio tiene un plan (Starter, Pro, Premium). La API forma parte de todos los planes; las reservas están disponibles a partir de Pro.

Conexión

Una conexión es el consentimiento de un propietario: esta app puede trabajar con este negocio, con estos permisos. Su identificador se llama connection_id en la respuesta del endpoint de token y en cada evento, e id en GET /me, porque GET /me devuelve la propia conexión. Ahí está también su created_at.

Por app y negocio hay como máximo una conexión activa. Si el propietario vuelve a conectar la app, a partir de ese momento se aplican los permisos nuevos. Una conexión termina cuando el propietario la desconecta, cuando tu app llama a DELETE /connection o cuando Flavoso la cierra; en ese caso llega app.disconnected.

Tokens

  • Token de acceso (flv_at_…): va en cada solicitud y es válido durante una hora.
  • Token de actualización (flv_rt_…): sirve para obtener nuevos tokens de acceso, es válido durante 180 días desde su último uso y se sustituye por uno nuevo en cada uso.

Cada token pertenece a una sola conexión y, por tanto, a un solo negocio. Una app con cien negocios gestiona cien pares de tokens, que conviene guardar asociados al connection_id o al tenant.id.

Permisos

Nueve permisos controlan lo que puede hacer una conexión, por ejemplo orders:write o menu:read. El permiso de escritura incluye el de lectura. El propietario los ve en lenguaje claro al conectar. Encontrarás todos los detalles en Permisos.

Prueba y real

No hay claves de prueba separadas ni una segunda dirección. La diferencia está en el negocio: un negocio de prueba nunca puede convertirse en un negocio real, y todo lo que viene de él lleva livemode: false, en GET /me y en cada evento. La misma app, las mismas rutas, los mismos formatos de token.

Objetos e identificadores

Cada objeto lleva su object (order, product, reservation, event …) y un id. Los identificadores son UUID, salvo en los eventos (evt_…) y las solicitudes (req_…). Un identificador nunca cambia, aunque el negocio cambie el nombre o el precio.

Tus propios identificadores, como el número de artículo de tu caja, van aparte en external_id. Consulta Solicitudes.

Dos direcciones

  • Tu app consulta: REST en https://api.flavoso.com/v1, JSON en ambos sentidos.
  • Flavoso avisa: cada cambio como evento, entregado por webhook o recogido con GET /events.

Un cambio es el mismo dondequiera que ocurra: en el panel, en la pantalla de cocina, en la app móvil, en la impresora de tickets o a través de la API. Un evento lo notifica exactamente una vez.

¿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.