DashboardPOS · VentasInventarioCompras · AbastecimientoMenu & RecipesAsistente IAReportes y cierresReports · AnalíticaReservasPlano del localAdministraciónPantalla de clienteClientes y fidelizaciónWorkforce · personal y propinasPedidos onlineDelivery dispatchApp del repartidorOperaciones multi-localFlota de dispositivosAceptación de hardwareAPI móvil

API para apps móviles

Misma base de datos que el POS web. Autenticación por token; cada respuesta respeta los permisos de la organización.

Cómo autenticarse

POST /api/public/v1/auth/login
{ "email": "usuario@empresa.com", "password": "••••••" }

# después, en cada petición:
Authorization: Bearer <access_token>

Todas las rutas (excepto auth) requieren org_id. La paginación usa page y per_page (máx. 100) y devuelve { data, page, per_page, total }. Las ventas se envían con un client_uuid generado en el dispositivo: si se reintenta tras una caída de red, no se duplica.

MétodoEndpointDescripciónParámetros
POST/api/public/v1/auth/loginDevuelve access_token y refresh_token. Body: { email, password }
POST/api/public/v1/auth/refreshRenueva la sesión. Body: { refresh_token }
GET/api/public/v1/mePerfil y organizaciones del usuario con su rol
GET/api/public/v1/catalog/categoriesCategorías de la organizaciónorg_id, page, per_page
GET/api/public/v1/catalog/productsProductos y combinadosorg_id, search, category_id, warehouse, page, per_page
GET/api/public/v1/inventoryStock actual por almacénorg_id, low_stock=true, threshold, warehouse, page, per_page
GET/api/public/v1/tablesMesas y su posición en el planoorg_id, page, per_page
GET/api/public/v1/printersImpresoras configuradas y su formatoorg_id
GET/api/public/v1/salesVentas con sus líneasorg_id, from, to, payment_code, page, per_page
POST/api/public/v1/salesRegistra una venta. Body: { org_id, client_uuid, items[], subtotal, tax, total, payment_code, table_id }. Idempotente por client_uuid
GET/api/public/v1/reservationsReservas por rangoorg_id, from, to, status, page, per_page
POST/api/public/v1/reservationsCrea una reserva. Body: { org_id, table_id, customer_name, people, reserved_at }
GET/api/public/v1/closuresCierres de cajaorg_id, from, to, page, per_page
POST/api/public/v1/closuresRegistra un cierre de caja Z
GET/api/public/v1/reports/summaryFacturación, tickets y top 5 artículosorg_id, period=day|week|fortnight|month|year