Turnos
Motor de filas y turnos para cualquier rubro: mostradores, boxes, mesas, canchas, cajas… Lo usan GuíaViva, DBoxTV y el CRM, y cualquier aplicación con una llave de API.
Cómo funciona
Cada sede (local) tiene filas con letra (A = Caja, B = Retiro…) y puestos con el nombre que el comercio quiera (Box 1, Mesa 4, Cancha 2). La persona saca número por QR, en recepción o desde otra aplicación; el puesto toca Llamar al siguiente y la pantalla anuncia A-023 → Box 2. Todo se actualiza al instante.
| Enlace | Para qué |
|---|---|
/tv/<público> | Pantalla de TV (voz y sonido; ?filas=A,B, ?qr=0) |
/s/<público> | Sacar número desde el teléfono (QR en la entrada) |
/t/<turno> | Seguir el turno: cuántos faltan, aviso con sonido y vibración |
/p/<panel> | Panel del personal: atender, recepción, fila de hoy |
/a/<admin> | Panel del dueño: además configuración, enlaces y métricas |
API para aplicaciones
Cabecera X-Api-Key con la llave de la aplicación. Respuestas en JSON.
| Método y ruta | Qué hace |
|---|---|
POST /api/v1/sedes | Crea una sede: {ref, nombre, tz, etiqueta, filas:[{letra,nombre}], puestos:[{nombre, filas:["A"]}] | cantidad_puestos}. Devuelve los enlaces (tv, sacar, panel, admin). |
GET /api/v1/sedes?ref=… | Busca tus sedes (por tu referencia interna, p. ej. el id del comercio). |
GET /api/v1/sedes/{id} | Sede con filas y puestos. |
POST /api/v1/sedes/{id} | Cambia nombre, etiqueta, zona horaria, opciones, filas, puestos o activa. |
POST /api/v1/sedes/{id}/turnos | Entrega un número: {fila:"A" | fila_id, nombre, telefono, ref, prioridad} → código y enlace de seguimiento. |
POST /api/v1/sedes/{id}/llamar | Llama al siguiente para un puesto: {puesto_id}. |
POST /api/v1/sedes/{id}/{rellamar|atender|terminar|ausente|cancelar|volver_a_fila|derivar} | Acciones sobre un turno: {turno_id, fila_id?}. |
GET /api/v1/sedes/{id}/estado | Foto en vivo: filas, puestos, espera, últimos llamados. |
GET /api/v1/sedes/{id}/metricas?desde&hasta | Entregados, atendidos, ausentes, esperas y atención promedio, por fila, puesto, hora y día. |
GET /api/pub/{público}/stream | Tiempo real (Server-Sent Events): evento cambio en cada novedad. |
curl -X POST https://turnos.craneosoluciones.net/api/v1/sedes \
-H "X-Api-Key: tk_…" -H "Content-Type: application/json" \
-d '{"ref":"comercio-123","nombre":"Farmacia Centro","etiqueta":"Caja",
"filas":[{"letra":"A","nombre":"Venta"},{"letra":"R","nombre":"Retiro de recetas"}],
"cantidad_puestos":3}'