Funcionalidades
Todo lo que tu café y restaurante necesita
Desde la generación de códigos QR hasta el seguimiento de pedidos en tiempo real, contenido con IA hasta menús multilingües – Thmenu es la solución digital completa para tu negocio en crecimiento.
- 01
Un menú QR para cada mesa
Cada mesa tiene su propio código QR, que abre tu menú en el navegador: los clientes no necesitan ni app ni cuenta.
- 02
31 idiomas
El menú se abre en el idioma del móvil del cliente cuando es uno de los 31 idiomas admitidos. Los nombres y las descripciones de los platos se traducen automáticamente en segundo plano, y puedes corregir cualquier traducción.
- 03
Pedidos en mesa
Los clientes piden desde su mesa y el pedido aparece en directo en tu panel, con un aviso sonoro y una notificación push para tu personal.
- 04
Analítica del menú
Consulta cuántas veces se abrió cada plato, se añadió al carrito y se pidió, tus pedidos y tu facturación día a día, y un mapa de calor de tus horas de mayor afluencia.
- 05
Detalles de platos con IA
Escribe el nombre de un plato y la IA te sugiere una descripción, los ingredientes y los alérgenos para que los revises antes de guardar. Después, todo el menú se puede traducir a todos los idiomas que ofreces.
- 06
Tus colores y tu diseño
Elige tus propios colores o una paleta predefinida, y muestra el menú en cuadrícula, en lista o en lista compacta, con el estilo de tarjeta que prefieras.
- 07
Seguridad integrada
Los pedidos se revisan en busca de uso de Tor o VPN, indicios de ubicación falsificada y picos repentinos, y los que presentan riesgo quedan marcados para tu personal. Los pedidos tienen un límite de frecuencia, y un envío repetido no crea un segundo pedido.
- 08
Campañas y códigos promocionales
Muestra banners promocionales en tu menú durante un rango de fechas o en una franja horaria semanal tipo happy hour, y ofrece códigos de descuento con fecha de inicio y de fin.
- 09
En la pantalla de inicio
Los clientes pueden añadir tu menú a su pantalla de inicio en iOS y Android. Un menú abierto en el móvil durante el último día sigue siendo legible sin conexión, y los pedidos hechos sin conexión se envían cuando esta vuelve.
- 10
Velocidad global – Cloudflare CDN
Se sirve desde la red global de Cloudflare, por lo que tu carta carga desde un nodo cercano a tu cliente. La velocidad real depende de su conexión.
- 11
Valoraciones de clientes
Cuando se cierra la cuenta de una mesa, los clientes pueden valorar su visita, y cada valoración aparece en tu panel.
- 12
Llamada al camarero & solicitud de cuenta
Los clientes pueden llamar al camarero o pedir la cuenta desde su mesa, y tu personal ve y cierra cada llamada en el panel.
- 13
Roles del personal
Roles predefinidos para camareros, cajeros, personal de cocina y gerentes, cada uno con sus propios permisos. El personal inicia sesión con un PIN en la pantalla de cocina y en la app de reloj inteligente para el personal, y los cambios importantes quedan registrados.
- 14
Entrada manual de pedidos
Introduce pedidos de mesa, para llevar y por teléfono desde tu panel; después de cada uno se abre un recibo imprimible.
- 15
Soporte de Accesibilidad
Controles de tamaño de fuente y modo de alto contraste integrados en cada menú. Los clientes con discapacidad visual pueden ajustar la pantalla según sus necesidades — sin configuración adicional.
- 16
Sin papel
Cambia un precio o un plato cuando quieras y el menú se actualiza; los códigos QR impresos siguen siendo los mismos, así que no hay nada que reimprimir.
- 17
Pagos, como usted prefiera
Los clientes pagan con tarjeta desde su propio móvil a través de Stripe, con Apple Pay y Google Pay en los dispositivos compatibles, en los países donde Stripe está disponible.
- 18
Quiosco de autoservicio
Convierte una tablet en un menú de autoservicio a pantalla completa en tu mostrador: los clientes consultan el menú y hacen pedidos para llevar, y la pantalla se reinicia entre un cliente y otro.
- 19
Puntos de fidelidad
Los miembros ganan puntos con cada pedido y suben a niveles en los que ganan más rápido, y puedes ver y ajustar el saldo de cada miembro desde tu panel.
- 20
Reservas y lista de espera
Acepta reservas —los clientes que dejan un correo electrónico reciben una confirmación y actualizaciones por correo— y lleva en tu panel una lista de espera para clientes sin reserva.
Lista completa
Catálogo completo de la plataforma223
Cada función, agrupada por área. Cuando una parte tiene su propia página, el enlace explica qué hace, cómo funciona paso a paso y para quién es.
Presencia digital4
Explicado paso a paso
App instalable (PWA)4
- Instalación en la pantalla de inicio (iOS y Android) — El panel de administración y el menú para clientes se instalan como app desde el navegador: sin tienda de apps, sin descargas.
- Funciona sin conexión — Un menú ya abierto sigue funcionando sin conexión.
- Notificaciones push — Los pedidos nuevos, las llamadas al camarero y las solicitudes de cuenta llegan como notificaciones push a la app instalada.
- Modo independiente a pantalla completa — Una vez instalada, funciona sin la interfaz del navegador, como una app nativa.
Comercio27
Pedidos, KDS y cocina23
- Menú QR (menú principal del cliente) — Menú digital de cara al público mediante QR o URL directa con categorías, productos e imágenes
- Carrito de pedido y pago — Carrito de compra para seleccionar productos con modificadores y cantidades antes del pago
- Pedidos del cliente (ciclo de vida de 5 pasos) — Realizar → pendiente → confirmado → preparando → listo → servido con actualizaciones de estado en tiempo real; canónico del lado del servidor
- Modificadores y personalización de pedidos — Grupos de modificadores por producto (tamaño, ingredientes, extras) con deltas de precio por opción almacenados como una instantánea JSON
- Notas de producto (instrucciones especiales) — Notas de texto libre por ítem ("sin cebolla") que aparecen en el recibo del KDS
- ETA / cuenta atrás del pedido — Temporizador de preparación de 25 min visible para el cliente desde 'preparando' hasta 'listo' (target_ready_at), sondeo de 30s, pulso verde al
- Ajuste de propina del pedido (tras el pago) — El cliente añade/modifica la propina tras realizar el pedido, limitada en el servidor por tip_max_percent (50% por defecto)
- Cancelación de pedido (ventana de 90s) — El cliente cancela pedidos pendientes en 90s con comprobación atómica de carrera, reversión de fidelidad acumulada y shadowban
- Reembolsos de pedidos (seguimiento acumulativo) — Reembolsos parciales/totales del administrador rastreados de forma acumulativa en refunded_amount_cents con protección de carrera OCC (409)
- Multidivisa y desglose de impuestos — Total del pedido con JSON de desglose de impuestos por tasa, con impuestos incluidos o excluidos, instantánea de divisa
- Compartir pedido (Web Share API) — El cliente comparte el estado en vivo del pedido a otros teléfonos mediante la hoja de compartir nativa del SO o el portapapeles
- KDS (Sistema de Pantalla de Cocina) — Cola de pedidos SSE/sondeo en tiempo real con transiciones de estado (pendiente → confirmado → preparando → listo → servido)
- Estaciones KDS e inicio de sesión con PIN — Múltiples estaciones KDS por restaurante, cada una con un PIN de 4-6 dígitos y filtrado de categorías por estación
- Flujo de estado de pedidos del KDS (OCC) — Transiciones atómicas de cocina con comprobación de carrera `AND status=<prev>` y etiquetas de botón opcionales por estado
- Lista y detalle de pedidos — Todos los pedidos agrupados por estado; explora ítems/totales/cliente; reembolsos parciales manuales, ajustador de propina
- Entrada de pedidos (POS manual) — El personal crea pedidos: mesa → categoría → producto → cant. → confirmar; POST con clave de idempotencia; gestiona teléfono/efectivo
- Cuentas de barra (seguimiento por sesión) — Cuenta persistente por cliente a lo largo de múltiples pedidos con saldo acumulado y seguimiento por ítem
- Soporte de impresoras térmicas ESC/POS — Constructor de bytes ESC/POS sin procesar (anchos de 32/42/48/56 caracteres) con codificación turca CP857 para recibos
- Puente de impresora térmica (Web Serial/USB/Bluetooth) — Capa de transporte del navegador para comunicación ESC/POS mediante Web Serial, USB y Bluetooth
- Interfaz de configuración y emparejamiento de impresoras — Descubre, empareja y prueba impresoras con selección de modelo/ancho/codificación
- Ticket de comanda de cocina — Impresión de cocina ESC/POS especializada: restaurante, mesa, ítems, cant., notas, modificadores, tiempo transcurrido
- Recibo del cliente / ticket de cuenta — Recibo térmico de cara al cliente: restaurante, mesa, ítems, precio unitario, total, método de pago, marca de tiempo
- Auto-86 al agotarse el stock — El decremento atómico de inventario al realizar el pedido despublica productos con stock ≤ 0 y envía una alerta al propietario
Pagos2
- Stripe Checkout e Intentos de Pago — Sesiones de pago del cliente + intentos de pago para pedidos de agente; SCA/3D-Secure, atribución por metadatos, reembolso
- Stripe Connect — Pagos a restaurantes y reparto de comisiones (el restaurante conserva su parte del subtotal, comisión de plataforma); impulsado por webhook
Kiosco2
- Modo kiosco (autoservicio) — Kiosco a pantalla completa en cualquier tablet: pantalla de «toca para empezar», menú en vivo y carrito, y reinicio tras 60 segundos de inactividad; los pedidos se hacen como pedidos para recoger
- Registro de dispositivos de kiosco — Registra y gestiona dispositivos de kiosco desde la superficie de desarrollador/integraciones
Operaciones del restaurante46
Menú, inventario y precios15
- Editor de menú (productos/categorías/modificadores) — CRUD completo del menú: crear/editar/eliminar ítems, reabastecimiento masivo por CSV, etiquetado de alérgenos, anulación de tasa de impuesto, nutrición con AI
- Categorías de menú (jerárquicas) — Agrupaciones de productos (entrantes/principales/postres/bebidas) con reordenamiento por arrastre y anidamiento padre opcional
- Gestión de productos (CRUD) — Ciclo de vida completo del producto: nombre, descripción, precio, imagen, disponibilidad, tiempo de preparación, alérgenos, ingredientes
- Editor de recetas de producto + COGS — Lista de ingredientes de la receta con COGS por unidad y cálculo del % de margen
- Importación/exportación masiva de productos
- Actualización masiva de precios de productos — Aplica un incremento/reducción porcentual a múltiples productos con vista previa antes de confirmar
- Seguimiento de reabastecimiento de productos — Registra reabastecimientos manuales con cantidad y marca de tiempo para la conciliación de inventario
- Galería de producto (multiimagen) — Sube varias fotos del producto (ángulos, ingredientes, tomas de preparación) con un visor de galería; en el dispositivo
- Información nutricional (AI + manual) — Calorías, macros y alérgenos rellenados por AI o manualmente, con tasas de impuesto por ítem
- Seguimiento de alérgenos + advertencias al cliente — Lista de alérgenos EU-14 en los productos; la entrada de alergias del cliente muestra advertencias en el carrito; registro de incidentes
- Gestión de inventario — Seguimiento de stock por producto con auto-86 a ≤ 0, notificaciones al propietario y estado de disponibilidad
- Libro mayor de movimientos de inventario — Registro detallado de todos los ajustes de stock (conciliación, preparación, desperdicio, deterioro, traslados) con códigos de motivo
- Analítica predictiva de inventario y reabastecimiento — Pronóstico de agotamiento a 14 días con AI (tasa de agotamiento + confianza) que alerta cuando los días hasta el agotamiento son < 3 con
- Refresco nocturno de COGS — Recálculo a las 02:30 UTC del COGS del producto a partir de las recetas, detectando caídas de margen > 10% y mostrando alertas al administrador
- Configuración y tasas de impuestos — Configuración de impuestos multitasa con anulaciones por producto y predeterminado del restaurante, interruptor de impuesto incluido vs añadido
Personal y operaciones14
- Gestión de personal (roles + permisos) — Roles propietario/admin/gerente/cocina/mesero/cajero/KDS con puertas de permiso granulares (view_orders
- Autenticación de personal con PIN — Inicio de sesión con PIN de 4-6 dígitos para personal de KDS/sala con hashing PBKDF2 de 200k iteraciones, sal de 16 bytes por credencial, D1 atómico
- Reloj de fichaje (entrada/salida) — Fichaje de entrada/salida basado en PIN con duración del turno, descansos, cálculo de coste laboral, marcado automático de horas extra y token KDS
- Programación de turnos — Calendario de turnos recurrentes/puntuales con asignación de personal, programación por rango de fechas, zona horaria por restaurante
- Relevos de turno — Notas estructuradas de turno a turno (pedidos abiertos, problemas, incidentes, notas de inventario) con confirmación y
- Botes de propinas / cargo por servicio — Agregación diaria de propinas con reglas de distribución por empleado, partes según rol/turno, anulación manual
- Registros de auditoría del personal — Retención rotatoria de 24 meses de las acciones del personal (inicios de sesión, cambios de PIN/contraseña, cambios de permisos, reembolsos
- Bandeja de entrada (feed unificado de alertas) — Sondeo cada 5 segundos de llamadas de camarero, solicitudes de cuenta, stock bajo, reseñas, reservas, incidentes de alérgenos y turnos
- Llamada de camarero (sistema de timbre) — El botón "Llamar al camarero" del cliente crea un registro waiter_calls y lo envía a los relojes del personal + web de administración;
- Confirmación de llamada de camarero — El personal ve/prioriza/confirma llamadas desde el panel o el smartwatch con seguimiento del tiempo de respuesta
- Solicitud de cuenta (adisyon) — El "Pedir la cuenta" del cliente crea un registro bill_requests con una máquina de estados de cierre; el bloqueo de cuenta impide nuevos
- Confirmación de solicitud de cuenta — El personal confirma la recepción y finalización desde el panel o el smartwatch
- Feed de actividad — Feed en tiempo real de todas las acciones (pedido creado, reembolso, inicio de sesión de personal, edición de menú), con búsqueda y filtrado
- Horario comercial + modo festivo — Horario de apertura por día de la semana (con descansos) que deshabilita los pedidos fuera de horario, más un interruptor de modo festivo
Notificaciones y push10
- Web Push (VAPID, RFC 8291) — Web Push firmado con VAPID ES256 a navegadores de administración y clientes (pedido listo); urgency:high, TTL ~10 min
- Pedido recibido → propietario — Se dispara al hacer POST de un pedido de cliente con éxito ("nuevo pedido de la mesa N, total $X") en nativo + web
- Pedido listo → propietario — Se dispara cuando un pedido pasa a 'listo'; agrupa automáticamente las actualizaciones del mismo pedido
- Pedido listo → cliente (Web Push) — Push VAPID del lado del cliente cuando su pedido está listo; suscripción voluntaria en la página de detalles del pedido
- Pedido cancelado → propietario — Se dispara cuando un cliente cancela dentro de la ventana de 90 segundos
- Llamada de camarero → propietario/personal — El "Llamar al camarero" del cliente dispara un push por mesa al smartwatch + teléfono del personal + web de administración con vocabulario háptico
- Solicitud de cuenta → propietario/personal — El "Pedir la cuenta" del cliente dispara un push por mesa al smartwatch, teléfono y web
- Predicción de agotamiento de inventario → propietario — Alerta de agotamiento en 3 días predicha por AI, una vez al día por restaurante cuando la confianza es ≥ 50%
- Reserva creada → propietario — Push por restaurante al smartwatch/teléfono/web del propietario ante una nueva reserva
- Notificaciones SSE en tiempo real → web de administración — Sondeo de D1 cada 5 segundos que envía conteos de pedidos pendientes, llamadas de camarero, solicitudes de cuenta y pedidos listos a la administración
Automatización5
- Email de resumen diario de operaciones — Email diario voluntario según la zona horaria del restaurante: ingresos, pedidos, propinas, productos top, resumen de comentarios, nuevos
- Email de resumen diario de stock bajo — Email HTML de Resend que lista productos con stock_qty ≤ umbral; 09:00 UTC, protegido por idempotencia
- Alertas de reabastecimiento de ingredientes — Email diario de productos que necesitan reabastecimiento con cantidades basadas en la velocidad de uso y enlaces a proveedores; 09:30 UTC
- Copia de seguridad (semanal) + verificación (diaria) — Instantánea AES-256-GCM de todas las DB de D1 a R2 los domingos a las 02:00 UTC (tablas de PII omitidas), con una verificación diaria a las 05:00 UTC
- Procesamiento de eliminación GDPR/KVKK — Eliminación definitiva diaria a las 14:00 UTC de cuentas que superan el periodo de gracia de 30 días mediante una lista blanca de tablas a borrar con
Administración2
- Ajustes / configuración del restaurante — Metadatos, divisa, zona horaria, ajustes de propinas y marcas operativas
- Bandeja de entrada de notificaciones del administrador — Bandeja de entrada centralizada para pedidos, reembolsos, alertas de personal y mensajes del administrador con estado de leído
Clientes28
Experiencia del cliente / PWA / i18n14
- PWA (instalable, offline-first) — Menú del cliente + panel de administración instalables con soporte offline de Service Worker, mutaciones network-first
- Sincronización en segundo plano (cola sin conexión) — Pedidos/comentarios encolados sin conexión y reproducidos por el Service Worker al reconectar, con un indicador sin conexión y
- Localización (31 idiomas + RTL) — TR/EN/DE/FR/ES/IT/PT/RU/AR/HE/FA/ZH/JA/KO/NL/PL/RO/EL y más, con reflejo RTL para árabe/hebreo
- Conversión de divisas en vivo — Selector de divisas en vivo (EUR/USD/GBP/SAR/AED) — los turistas ven los precios en su moneda local
- Modo oscuro — Detección del tema del sistema + interruptor manual persistido en localStorage
- Accesibilidad (WCAG 2.1 AA) — Etiquetas aria, HTML semántico, navegación por teclado, focus-visible y objetivos táctiles de 44×44
- Editor de tema del menú — Selector de color, elección de fuente, logo/portada e interruptor de diseño (cuadrícula vs lista) aplicados en todo el menú y la web
- Galería / imágenes del restaurante — Sube fotos de galería del interior/platos con leyendas para la cabecera del menú y la página de aterrizaje
- Gestión de enlaces sociales — Enlaces configurables de Instagram/TikTok/Facebook/LinkedIn en el pie del menú con validación safeHref
- Visualización de información Wi-Fi — SSID + contraseña del Wi-Fi para invitados mostrados en el pie del menú
- Comentarios / NPS (tras el pedido) — 5★ + categoría + mensaje de 280 caracteres tras servir, con deduplicación por pedido, codificación de entidades y por IP
- Panel de administración de comentarios — Todos los comentarios con chips de sentimiento, filtrado por rango de fechas y origen, y push de alerta crítica
- Clasificación de sugerencias de platos — Ideas de platos enviadas por clientes en cola para la clasificación del administrador con estado y notas del administrador
- Suscripciones de Web Push del cliente — Notificaciones de pedido listo/cancelado con deep-link de vuelta al detalle del pedido; persistencia de la suscripción con
Reservas / lista de espera10
- Reservas + calendario de reservas — Reserva de fecha/franja horaria por el cliente con tamaño del grupo, nombre/email/teléfono del huésped y notas; calendario de vista diaria para el administrador
- Cola de administración de reservas — Transiciones de estado (pendiente → confirmada → sentada/no-show/completada) con vistas ordenables de próximas/historial
- Cancelación de reserva (cliente) — Cancelar mediante enlace de código de confirmación con comprobación atómica de carrera (status='pending')
- Código de confirmación de reserva — Código único por reserva para referencia, comprobación de estado y cancelación
- Exportación iCalendar de reserva — Exportación .ics para el cliente con los detalles de la reserva para importar al calendario
- Seguimiento de no-shows de reservas — El administrador marca no-show para aplicar políticas
- Límite de tamaño de grupo de reserva — Tamaño máximo de grupo por restaurante aplicado en la reserva (50 por defecto)
- Índice de deduplicación de franja activa — Índice UNIQUE parcial que impone una reserva pendiente/confirmada por (restaurante, mesa, ventana horaria)
- Sesiones de mesa (unión por QR, TTL de 1 hora) — Múltiples clientes escanean el mismo QR de mesa para formar una sesión (session_token, join_code, host_device_id); el anfitrión
- Gestión de lista de espera — Unión a la cola de autoservicio (tamaño del grupo, teléfono, notas) con transiciones de estado del administrador (esperando → notificado →
CRM de clientes4
- Lista de clientes / CRM — Panel que agrega miembros de fidelidad + reservas + comentarios en una lista de contactos con búsqueda y detalle
- Información de contacto del CRM (deduplicación) — Almacenamiento unificado de contacto por email/teléfono deduplicado entre pedidos, reservas, fidelidad y comentarios
- Candidatos a recuperación del CRM — Marca a clientes sin visita en más de 60 días como riesgo de abandono para su reactivación
- Etiquetado del CRM — Etiquetas arbitrarias (VIP/habitual/único) para segmentación
Crecimiento50
Marketing y fidelidad22
- Campañas de email — Envíos masivos de email HTML a listas de suscriptores con seguimiento de estado (borrador/en cola/enviando/enviado/fallido) y entrega
- Plantillas de email — Plantillas HTML de marca reutilizables con nombre de remitente personalizado y dirección de respuesta
- Suscriptores de email — Lista de suscriptores con estado (suscrito/dado de baja/rebotado/con queja), seguimiento de origen y por suscriptor
- Secuencias de email drip — Emails de ciclo de vida de varios pasos basados en disparadores (registro/primer_pedido/cumpleaños/reserva_completada, Día 1/7/30
- Alta y baja del boletín por email — Captura de email en el pago con lista configurada por el administrador y baja con un clic
- Campañas de banner promocional — Banners de menú destacados con colores personalizados, texto de insignia, imágenes, ventanas de fecha y orden de clasificación
- Anuncios (banners dentro del menú) — Banners fijos dentro del menú ("Happy Hour 17-19h") con color/icono/texto personalizado y rangos de fecha programados /
- Códigos promocionales — Códigos creados por el administrador con descuentos porcentuales/fijos, montos mínimos de pedido, límites de uso, canje por cliente
- Aplicación de código promocional por el cliente — Aplicación en el pago con validación del lado del servidor, control de límite de uso, comprobación de gasto mínimo y por IP
- Programa de fidelidad (acumular + canjear) — Puntos por pedido con canje por descuentos/recompensas; protecciones atómicas de comprobación de saldo, inventario de stock de recompensas
- Registro de fidelidad — Creación de cuenta de cliente por email/teléfono con tasas de acumulación según nivel e historial de visitas
- Niveles de fidelidad — Clasificación Bronce/Plata/Oro/Platino según umbrales de gasto/visitas con tasas de acumulación y canje específicas por nivel
- Automatización de niveles de fidelidad — Un cron diario promueve niveles automáticamente según el gasto acumulado de 90 días; aplica bonificaciones y descuentos de fidelidad
- Expiración de puntos de fidelidad — Expiración a 12 meses con barrido diario a las 11:00 UTC que escribe contraasientos, decrementa el saldo y notifica
- Ajuste de fidelidad por el administrador — Delta manual de puntos (positivo/negativo) con notas opcionales del administrador para la traza de auditoría
- Lista de miembros de fidelidad — Vista del administrador de todos los miembros: email/teléfono/nombre, saldo de puntos, puntos/gasto de por vida, conteo de visitas, última visita
- Estadísticas del monedero de fidelidad — Monedero del cliente que muestra puntos de por vida, saldo, nivel, ganado en el periodo e inventario de recompensas canjeables
- AI de marketing (contenido + segmentación) — Generación con AI de publicaciones sociales, plantillas de email y texto promocional más segmentación de clientes/campañas
- Foco automático — Un cron de los lunes promueve automáticamente los ítems con stock bajo a destacados para reducir el desperdicio y liquidar inventario
- Especiales del día — Especiales por tiempo limitado sugeridos por AI o manuales con una insignia "Especial de Hoy" y rotación automática
- Marca de producto destacado — Marca manual para resaltar/promocionar ítems del menú, enfatizados visualmente en el menú del cliente
- Me gusta / lista de deseos de producto — El cliente marca como favoritos sus platos preferidos mediante localStorage con resolución entre restaurantes a través de un perfil de email;
Programa de afiliados28
- Programa de afiliados — Programa de referidos que paga a los socios una parte de la tarifa de plataforma realizada, con pagos, alertas de umbral 1099 y análisis de anomalías.
- Registro de afiliados (Turnstile + límite por IP) — Registro por email/contraseña o Google; Turnstile en la vía de email, máx. 3 cuentas por IP al día mediante un hash de IP con sal diaria.
- Verificación reforzada con OTP por email — Un código por email de 6 dígitos (TTL de 10 min, 5 intentos) protege los cambios en datos de pago, las solicitudes de pago y la eliminación de la cuenta mediante una autorización de un solo uso de 5 min, ligada a alcance.
- Panel de afiliados (tarjetas de KPI) — Saldos ganado, pendiente (retención de 15 días), disponible y pagado, participación en la tarifa de plataforma, embudo de clics por código de referido y diario.
- Historial y desglose de ganancias — Gráfico de líneas de ganancias de 12 meses, lista anonimizada de restaurantes atribuidos, últimas 50 comisiones con su origen y un extracto de pagos en CSV.
- Flujo de solicitud de pago — Solicitud del saldo disponible protegida por OTP; mínimo de $50 por defecto, periodo de espera de 15 días y límite mensual (2 por defecto) aplicados atómicamente.
- Liquidación manual de pagos (Mercury/Wise) — Finanzas aprueba (W-9 obligatorio para socios de EE. UU.), paga a mano vía Mercury (ACH de EE. UU.) o Wise (fuera de EE. UU.) y luego marca el pago como pagado.
- Diario de movimiento de dinero (libro de auditoría) — Libro idempotente de movimientos de saldo de afiliados: liberación, liquidación de pago, recuperación, ajuste manual, pérdida de derechos; control diario de desviaciones.
- KYC de información de pago (cifrado) — Formulario protegido por OTP para país, formulario fiscal, beneficiario y dirección; ID fiscal, IBAN y números ACH cifrados en reposo con pgcrypto.
- Vías de pago (ACH/Wise) — Dos vías manuales: socios de EE. UU. por ACH vía Mercury (routing, cuenta, ID fiscal); el resto, por transferencia Wise a un IBAN.
- Alerta de umbral 1099-NEC — Comprobación diaria a las 13:00 UTC de los pagos abonados a socios de EE. UU. frente al umbral IRS 1099-NEC del año fiscal; una alerta al admin por socio y año.
- Informe 1099-NEC (super-admin) — Vista de super-admin por año fiscal de los pagos abonados a cada afiliado de EE. UU. frente al umbral IRS 1099-NEC.
- Detección de anomalías (basada en reglas) — Marca códigos de referido sin clics, ráfagas de registros, IP compartidas el mismo día, conversiones atípicas con muchos reembolsos, autorreferidos y contracargos.
- Autosuspensión por anomalía (crítica) — Cada 30 min, sujeto a un interruptor de plataforma: suspende a los afiliados con una marca crítica abierta hasta que se resuelva; escalado al propietario a las 48h.
- Cierre por inactividad (12 meses) — Una tarea mensual cierra y anonimiza las cuentas de afiliado sin comisiones en 12 meses y con saldo inferior a $50, omitiendo las que tienen pagos abiertos.
- Webhook de postback S2S (HMAC) — POST HTTPS firmado a la URL del afiliado con cada nueva comisión (X-thMenu-Signature, HMAC-SHA256) con un tiempo de espera de 5 segundos.
- Rotación de secreto de postback (doble firma) — Durante 7 días tras la rotación, los postbacks llevan X-thMenu-Signature (secreto nuevo) y -Previous (anterior); después, un cron diario borra el secreto anterior.
- Reintento de postback + cola de mensajes muertos — Un cron horario reintenta los postbacks fallidos con backoff exponencial; tras 5 intentos fallidos (valor por defecto de la plataforma), la entrega se marca como dead_letter.
- Límite diario de códigos de referido (puerta antispam) — Límite diario por afiliado de nuevos códigos de referido (ajuste de plataforma, 10 por defecto) mediante un UPSERT…WHERE count<cap atómico; las solicitudes que lo superan reciben 429.
- Seguimiento de clics en enlaces de referido — Registra las visitas a través de un enlace ?ref=THM-XXXXXX activo en affiliate_clicks (hashes de IP/UA con sal diaria), conservadas 90 días para estadísticas y controles de fraude.
- Estadísticas de códigos de referido — Clics, número de comisiones y comisión neta ganada tras recuperaciones por código, además de una tasa de clic a comisión en el panel.
- Línea de tiempo del diario — Lista paginada de movimientos de saldo, de más reciente a más antiguo (comisiones liberadas, recuperaciones, pagos), con importes con signo en el panel de afiliados.
- Recuperación por reembolso (prorrateada) — Un reembolso de un pago procesado por Thmenu revierte su comisión de forma prorrateada; las comisiones retenidas se reducen y las liberadas se cargan al saldo.
- Recuperación por contracargo (disputa perdida) — Solo una disputa perdida genera recuperación, prorrateada a la parte disputada del pago, y activa una marca de anomalía crítica.
- Materiales de marketing para afiliados — Enlaces de descarga seleccionados por el super-admin (solo elementos activos); los archivos alojados en R2 pasan por un proxy con límite de tamaño que rechaza claves retiradas.
- Manual de marketing (guía de onboarding) — Datos del programa, la regla obligatoria de divulgar la comisión y una sección del panel para materiales listos a medida que se publiquen
- Retención y liberación de comisiones (15 días) — Cada comisión espera 15 días como pendiente; después, un cron diario la abona, neta de cualquier reembolso, al saldo disponible.
- Autenticación de afiliado (web + contenedores de app) — Inicio de sesión con Google o email/contraseña con campos etiquetados para autocompletar, enlace de restablecimiento por email y registro por email protegido con Turnstile.
Inteligencia40
Suite de AI29
- Generador de descripciones de producto con AI — LLaMA 3.1 8B genera una descripción de menú de 2 frases a partir de nombre/categoría/precio con entrada saneada
- Autocompletado de detalles de producto con AI — Rellena nutrición (kcal/grasa/carbohidratos/proteína/sal), ingredientes y la lista blanca de alérgenos EU-14 con un KV de 7 días
- Generador de menús con AI (masivo) — Estructura completa de menú con una sola indicación (categorías, productos, descripciones, precios sugeridos, alérgenos, porciones)
- Limpieza de menú con AI — Detecta productos duplicados/inactivos, nomenclatura inconsistente, erratas y productos de bajo rendimiento como candidatos a depuración
- Sugerencias de precios con AI — Analiza ventas/ingresos unitarios de 30 días frente a medianas de categoría anonimizadas entre restaurantes; devuelve sugerencias
- Sugerencias de recetas con AI — Sugiere recetas de temporada/temáticas según ingredientes disponibles, gastronomía y tendencias dietéticas con etiquetas de alérgenos
- Generador de especiales del día con AI — Genera especiales diarios/semanales + texto de marketing a partir de ingredientes, estacionalidad y tendencias, con precios sugeridos
- Optimizador de horarios de turnos con AI — Sugiere patrones de turnos del personal según volumen histórico, horas pico, reservas, disponibilidad y coste laboral
- Traducción de menú con AI — Traducción de alimentos/bebidas contextual de nombres + descripciones a 31 idiomas, preservando el marcado HTML
- Generador de respuestas a reseñas con AI — Redacta borradores de respuestas del propietario a las reseñas de clientes con un tono seleccionable, incluido uno de disculpa; el propietario las edita y las envía
- Generador de biografías con AI — Genera una biografía de restaurante de 200 palabras optimizada para SEO a partir de gastronomía, ubicación, especialidades e historia de fundación
- Insights de AI (diarios/semanales/mensuales) — Informes narrativos generados por cron (3-5 párrafos) que comparan ingresos/AOV/productos top/embudos interanuales/semana a semana con 3-5
- Chat de menú con AI (de cara al cliente) — Búsqueda de menú en lenguaje natural ("¿pasta vegetariana?", "¿qué es sin gluten?") que devuelve 3-5 productos coincidentes con
- Recomendaciones de producto con AI — Sugerencias de 3-5 productos según el carrito usando el contexto del menú + contenido del carrito + lista de exclusión, ancladas al principal
- Ventas adicionales inteligentes con AI — 2-4 ítems complementarios (maridajes, complementos, postres, bebidas, entrantes) clasificados por upsell_type a partir del
- Pedido por voz con AI (voz a carrito) — Web Speech API → LLaMA analiza la intención → empareja productos → devuelve ítems del carrito con marcas de ambigüedad; localizado
- Maridaje de vinos/bebidas con AI — Sugerencias de maridaje para los platos pedidos según perfil de sabor, gastronomía y carta de vinos, con nivel de precio y
- Sugerencias de platos con AI (formulario del cliente) — Los clientes envían ideas de platos (nombre, descripción, pista de gastronomía); el administrador las clasifica por estado
- Limpieza de contenido con AI (moderación masiva) — Revisión por lotes de los comentarios de clientes en busca de lenguaje ofensivo/spam con eliminación masiva + marcado
- Análisis de sentimiento (comentarios/reseñas) — Un cron clasifica los comentarios de los clientes como positivos/neutros/negativos/críticos con temas
- MCP: start_order_session — Acuña agent_session_id + customer_confirm_url (TTL de 30 min); comprueba la marca agent_enabled del restaurante
- MCP: place_order — Inserta atómicamente pedido + ítems, valida productos, captura instantánea de divisa, decrementa el stock, auto-86 al llegar a cero;
- MCP: cancel_order — Cancela atómicamente con comprobaciones de propiedad + TTL de sesión, protección de carrera OCC y reversión de fidelidad acumulada
- MCP: get_order_status — Consulta estado + ETA + ítems; caché de 30s; alcance orders:read
- MCP: request_bill — Inserta un bill_request, dispara un push al administrador, puede precargar el total para la interfaz de dividir cuenta
- MCP: waiter_call — Inserta un waiter_call, dispara un push al administrador + smartwatch con vocabulario de vibración; nota opcional
- MCP: get_restaurant_menu — Esquema del menú público (sin alcance) que devuelve categorías + productos + precios + alérgenos
- MCP: check_loyalty — Devuelve saldo de fidelidad + nivel + umbral del siguiente nivel; alcance loyalty:read
- MCP: apply_promo — Reserva/reclama atómicamente un descuento promocional, comprueba el máximo de usos + límite por cliente; alcance orders:write
Analítica y BI11
- Panel de analítica — Tarjetas de KPI en tiempo real (ingresos 24h, conteo de pedidos, AOV, tasa de finalización), tendencia de ingresos de 30 días, mapa de calor por hora
- Analítica de pedidos — Volumen de pedidos, ingresos, AOV, desglose por método de pago, seguimiento de reembolsos, libro mayor de reembolsos acumulados, cancelaciones
- Análisis ABC del menú (Pareto) — Clasifica productos A (~80% superior de ingresos) / B / C a partir del historial de 30 días con cuota de ingresos acumulada, ranking
- Puntuación de salud del menú — Validador de configuración: presencia de imagen, completitud de descripción, cobertura de alérgenos, consistencia de precios, destacados
- Mapa de calor de pedidos — Visualización del volumen de pedidos por hora del día × día de la semana para identificar picos y periodos de baja actividad
- Insights de clientes con AI — Narrativa diaria (métricas día a día/semana a semana, clientes en riesgo, mejor miembro de fidelidad, 3 CTA de acción) + análisis semanal en profundidad
- Objetivos de ingresos / metas de KPI — Metas de ingresos/pedidos/clientes diarias/semanales/mensuales fijadas por el administrador con visualización de progreso y análisis de varianza
- Mapa de calor de horas populares (API pública) — Endpoint público que expone la popularidad del restaurante por hora para la toma de decisiones del cliente
- Z-report (conciliación de fin de día) — Totales de efectivo y tarjeta de fin de turno con detección de varianza, resumen de reembolsos, ítems pendientes, columna de propinas y
- Exportación de informe de impuestos — P&L mensual/trimestral: ingresos, impuestos recaudados, reembolsos, renta neta imponible; CSV descargable para contadores
- Seguimiento de COGS — Coste de los bienes a nivel de producto con cálculo automático de margen e informe P&L mensual; las recetas se enlazan
Seguridad / Infraestructura28
Seguridad y cumplimiento19
- Auth por email/contraseña + enlace mágico — Inicio de sesión del propietario con email/contraseña o enlace mágico sin contraseña
- Supabase Auth — Auth basada en JWT para operadores, afiliados y super-admins con recuperación por enlace mágico, restablecimiento de contraseña y RLS
- Autenticación con token de portador JWT — JWTs firmados con HMAC-SHA256 para el acceso a la API y el middleware del worker de Cloudflare
- Supabase RLS (seguridad a nivel de fila) — Los operadores ven solo sus restaurantes, los afiliados solo sus comisiones/pagos, los clientes solo los suyos
- 2FA TOTP (super-admin) — 2FA RFC 6238 con app autenticadora requerida para el inicio de sesión de super-admin
- Protección CSRF con cookie de doble envío — Los endpoints que cambian estado requieren una cabecera X-CSRF-Token verificada contra una cookie segura
- Política de Seguridad de Contenido (nonce + strict-dynamic) — script-src 'self' 'nonce-…' 'strict-dynamic' para evitar la inyección de scripts en línea
- Límite de tasa (manejador de rutas de Next.js) — Ventanas deslizantes de hash de IP SHA-256 con sal diaria por isolate en 14 endpoints del menú
- Detección de shadowban — Detecta cancelaciones repetidas y patrones de IP sospechosos, bloqueando silenciosamente los pedidos sin error
- Detección de GPS falso — Marca cambios de ubicación imposibles entre marcas de tiempo de pedidos
- Validador de esquema de URL (safeHref) — Lista blanca de http(s)/mailto/tel para evitar XSS almacenado mediante social_links, logo_url, cover_url y enlaces de reseñas
- Endurecimiento de hash de PIN/contraseña — PBKDF2 de 200k iteraciones, sal de 16 bytes por credencial, re-hash transparente del legado en el siguiente inicio de sesión
- Contador de bloqueo de PIN (respaldado por D1) — UPSERT atómico en pin_failures con una ventana rotatoria de 30 min
- Derechos del interesado GDPR (DSR) — Ventana de eliminación de 30 días desde la solicitud, exportación de datos en JSON y gracia de anonimización de pedidos de 90 días; datos personales
- Cumplimiento KVKK (Türkiye) — Eliminación de 30 días equivalente a GDPR, DSR y registros de consentimiento con lógica de cron multijurisdiccional
- Flujo de eliminación de cuenta — Eliminación solicitada por el propietario con periodo de gracia de 30 días y borrado en cascada de PII mediante una lista blanca
- Registro de consentimiento (banner de cookies) — Rastrea la aceptación/rechazo de analítica/email persistido por sesión
- Seguimiento de incidentes de alérgenos y seguridad — El personal registra informes de contacto cruzado de alérgenos/lesión/infracción con fotos/marca de tiempo/ubicación; PII a NULL a los 12m /
- Políticas (privacidad/términos/normas de la casa) — Política de privacidad, términos y normas internas personalizables mostradas en el pie del menú
Integraciones / API9
- Claves de API públicas y API REST — Claves API generadas por el operador para integraciones de terceros, con límite de tasa (60 sol/min) y alcances de lectura/escritura
- Suscripciones de webhook y despachador — Webhooks definidos por el operador para eventos de cliente (pedidos, comentarios, reseñas) con firma HMAC-SHA256
- Autenticación de cliente OAuth (RFC 7009/6749) — Las apps OAuth revocan sus propios tokens; validación de client-credentials (basic auth + cuerpo); rotación de token de refresco
- Dominio personalizado + verificación de CNAME (servir el menú aún no está disponible) — Añade un dominio personalizado (menu.mirestaurante.com) y verifica su registro CNAME; servir el menú desde él aún no está disponible
- Generación de códigos QR + exportación a PDF — Genera códigos QR de menú/mesa/habitación imprimibles como PDF individuales o por lotes con superposición de marca y SRI
- Servicio de email (Resend) — Emails transaccionales del operador y del cliente (resúmenes, alertas, estado de pago, restablecimiento de contraseña, facturación, OTP
- Enlace de reseñas de Google e importación de Maps — El enlace de reseñas de Google del restaurante para derivar las valoraciones y la importación de un enlace de Google Maps que rellena el nombre del negocio y sus coordenadas
- Especificación OpenAPI — Esquema de API REST autogenerado y descubrible en /openapi.json
- llms.txt (archivo de instrucciones para AI) — Resumen de plataforma legible por máquina (producto, funciones, precios, auth) para buscadores LLM/AI
LA EXPERIENCIA DEL CLIENTE
Del escaneo al pago: todo desde el móvil del cliente
Sin app que instalar ni hardware que comprar. El cliente escanea el código y estos seis pasos funcionan solos.
El idioma del cliente, automático
La carta se abre en el idioma del móvil del cliente: 31 idiomas, sin pedirle que elija.
La moneda del país del cliente
Los precios se muestran en la moneda del cliente junto a la local: sin calculadora.
Pedido desde la mesa
El cliente añade al carrito y envía el pedido: llega directo a la pantalla de cocina.
Llamar al camarero
Un botón en la mesa avisa al equipo con el número de mesa: sin levantar la mano ni esperar a que te miren.
Pedir la cuenta
El cliente pide la cuenta desde su móvil y la solicitud llega al equipo con la mesa y el total en curso.
Pagar en la mesa
El cliente paga con tarjeta desde su móvil en el formulario seguro del proveedor. Por defecto se paga primero: el pedido no llega a cocina antes del cobro.
FAQ
Preguntas frecuentes
¿No encontraste lo que buscabas? Nuestro equipo estará encantado de ayudarte.
Pregúntanos¿Mis clientes necesitan descargar una app?
No. Los clientes simplemente escanean el código QR con la cámara de su teléfono. El menú se abre al instante en el navegador – sin descargar app, sin cuenta, sin registro requerido.
¿Cuántos idiomas admite Thmenu?
Thmenu admite 31 idiomas incluyendo árabe (RTL), japonés, chino, coreano y todos los principales idiomas europeos. El idioma del dispositivo del visitante se detecta automáticamente.
¿Thmenu es realmente gratis?
Sí. No hay planes, ni suscripción, ni funciones bloqueadas tras una mejora de pago. El único ingreso de Thmenu es una comisión de plataforma del 1 % sobre los pagos que los clientes te hacen online a través de Thmenu; el efectivo y tu propio datáfono no cuestan nada.
¿Puedo usar mi propio dominio?
Todavía no. En el panel puedes añadir tu dominio y comprobar su DNS, pero el menú aún no se puede servir desde tu propio dominio. Tu menú tiene su propio enlace en menu.thmenu.com, y eso es lo que abren tus códigos QR.
¿Cómo funcionan los pedidos en tiempo real?
Los clientes añaden productos al carrito y hacen el pedido desde la mesa. El pedido aparece al instante en tu panel de administración, donde actualizas los pasos de estado.
¿Están seguros mis datos?
Thmenu funciona sobre la infraestructura de seguridad global de Cloudflare y cifra los datos en tránsito (TLS) y en reposo. Nuestra plataforma está diseñada para cumplir los requisitos de GDPR, KVKK y CCPA/CPRA; consulta nuestras páginas de cumplimiento, privacidad y términos para ver la información completa.
¿Puedo importar mi menú existente?
Sí. El importador con IA acepta tu carta de tres formas: pegar el texto, fotografiar la carta impresa o subir una hoja de cálculo. Propone categorías, productos y precios; nada se aplica hasta que revisas y apruebas la propuesta.
¿Funciona el menú sin internet?
Sí. Thmenu utiliza tecnología Progressive Web App (PWA). El menú en caché en el dispositivo del cliente puede verse sin conexión a internet. Los pedidos requieren conexión.
¿Necesito una cuenta de Stripe?
Solo si quieres que los clientes te paguen online a través de Thmenu. Conectas una cuenta de Stripe desde el panel y los pagos llegan a tu banco a través de Stripe. El menú, los pedidos y las reservas funcionan sin ella.
¿Está disponible Thmenu fuera de Turquía?
Sí. Thmenu funciona en la red global de Cloudflare, así que tu carta se sirve desde un nodo cercano a cada cliente. Admitimos 31 idiomas, incluidos árabe, japonés, coreano, chino y todos los principales idiomas europeos.
¿Qué pasa si mi restaurante ya usa un POS?
Thmenu puede funcionar junto con su POS existente: el POS gestiona los pagos y Thmenu el menú QR y la experiencia de pedido del cliente. Thmenu no se conecta al POS — los dos sistemas funcionan en paralelo.
¿Necesito hardware especial?
No. Thmenu funciona en cualquier navegador: móviles, tablets o portátiles. Para la pantalla de cocina sirve cualquier tablet que ya tengas; no vendemos, recomendamos ni exigimos hardware específico. La impresión es opcional y funciona con impresoras de tickets ESC/POS conectadas por USB, puerto serie o Bluetooth desde Chrome o Edge.
¿Listo para empezar?
Digitaliza tu menú hoy.
Configuración en 2 minutos, no se requiere tarjeta de crédito.