VeriFactu en hostelería: tickets con QR desde el TPV sin frenar el servicio
· Equipo Factuneo
Qué cambia en el ticket de un bar o un restaurante con VeriFactu, qué exige la AEAT a un TPV y cómo integrarlo con una API: IVA al 10 % y al 21 % en el mismo ticket, factura completa cuando la piden, devoluciones y cientos de tickets al día.
La hostelería es el caso difícil de VeriFactu
Una gestoría emite unas decenas de facturas al mes. Un restaurante puede emitir cientos de tickets en un día, casi todos en las mismas tres horas, desde varias cajas a la vez y con el comedor lleno esperando la cuenta. Ahí es donde un sistema de facturación demuestra si está preparado o no.
Con VeriFactu (RD 1007/2023 y Orden HAC/1177/2024), cada uno de esos tickets tiene que generar en el momento su registro de facturación: una huella SHA-256 encadenada con la anterior, enviada a la AEAT, y un código QR impreso en el propio ticket para que el cliente pueda cotejarlo en la sede de la AEAT.
Si fabricas o mantienes software de TPV para hostelería, esto es lo que tu programa tiene que resolver. Y si tienes un bar o un restaurante, es lo que tienes que pedirle a tu proveedor de TPV.
Qué lleva un ticket de hostelería
El ticket de un bar es una factura simplificada. Según el Manual de actividades económicas de la AEAT, en hostelería y restauración se puede emitir factura simplificada hasta 3.000 €, IVA incluido, y debe llevar, entre otros datos:
- número y, en su caso, serie, y fecha de expedición;
- NIF e identificación de quien la expide;
- identificación de lo que se sirve o se vende;
- el tipo impositivo y, si hay varios tipos, la base de cada uno por separado;
- la contraprestación total.
Lo de los varios tipos no es un caso raro: los servicios de hostelería y restaurante van al 10 %, pero una botella de vino que se vende para llevar va al 21 %. Un mismo ticket puede llevar las dos cosas, y el registro que se envía a la AEAT debe desglosarlas.
Con VeriFactu, además, el ticket lleva el QR tributario con la mención «VERI*FACTU», con el tamaño y la posición que fija la especificación de la AEAT.
Lo que pasa en una mesa, paso a paso
| En la sala | En el sistema |
|---|---|
| El cliente pide la cuenta | Ticket simplificado (F2) con su QR |
| El cliente pide factura a nombre de su empresa | Factura completa (F3) que sustituye al ticket |
| Se cobró un café que no se sirvió | Rectificativa del ticket (R5) por la diferencia |
| Hay que rehacer la cuenta entera | Rectificativa (R5) por sustitución, con los importes correctos |
| El camarero cobró una mesa que no era | Anulación del registro: no hubo venta |
Cada fila es un registro distinto con sus reglas en la AEAT. Un TPV que solo sabe imprimir tickets se queda corto el primer día que alguien pide factura.
Por qué una API encaja con un TPV de hostelería
En Factuneo cada ticket es una llamada REST: el TPV envía las líneas y el desglose de IVA, y la respuesta trae al momento la huella y el texto del QR para imprimir. Lo hemos preparado pensando en cómo trabaja un restaurante:
- El servicio no espera a la AEAT. Respondemos con el QR al instante y enviamos el registro a la AEAT por detrás, con reintentos. Si la sede de la AEAT se cae un sábado por la noche, el ticket sale igual y el envío se completa cuando vuelve.
- Un doble clic no duplica tickets. Con la cabecera
Idempotency-Key(por ejemplo, el id de la cuenta de la mesa), repetir la petición devuelve el mismo ticket en lugar de emitir otro. - Varios tipos de IVA en el mismo ticket. Comprobamos que las líneas cuadran con el desglose tipo a tipo antes de registrar nada.
- Del ticket a la factura en una llamada. La F3 con los datos del cliente y el ticket sustituido; y el PDF de la factura completa, con el QR, listo para enviar.
- Devoluciones y errores con su registro correcto: rectificativas R5 por diferencias o por sustitución, y anulación cuando no hubo venta.
- Varios locales, una sola cuenta. Cada sociedad es un emisor (su NIF), y cada caja puede llevar su serie (T1, T2…).
- Los días fuertes no te dejan sin tickets. El plan incluye 500 facturas por NIF y mes. Un restaurante las supera, y con un plan de pago no cortamos nunca la emisión: pasar de 500 cuesta 1,80 € fijos por NIF y mes, o puedes contratar facturas ilimitadas.
- Avisos en tu sistema. Si la AEAT acepta o rechaza un registro, te llega un webhook (
invoice.accepted,invoice.rejected), sin tener que consultar nada.
Y el entorno de pruebas es gratis e ilimitado: los tickets van a la preproducción de la AEAT, que responde igual que la real.
Dos cosas que conviene saber antes
Cada ticket necesita conexión. La AEAT exige que el registro se genere a la vez que el ticket y que el ticket entregado lleve ya su QR. Una TPV conectada en tiempo real a un servicio que genera el registro y le devuelve el QR es un modelo que las aclaraciones de la AEAT a desarrolladores admiten. Lo que no admiten es emitir el ticket sin su registro y «volcarlo» a final del día.
El TPV también es parte del sistema. Según esas mismas aclaraciones, cada componente relevante del sistema de facturación —también el que imprime el ticket con el QR— debe tener su declaración responsable. Si fabricas el TPV, la tuya cubre tu parte; la nuestra cubre el registro, la huella, el QR y el envío a la AEAT.
Empieza por un ticket
En la guía técnica tienes las peticiones completas de una mesa real —ticket con dos tipos de IVA, factura que lo sustituye y las dos rectificativas—, verificadas contra la preproducción de la AEAT: Integrar VeriFactu en un TPV de hostelería.
Si tienes un TPV y quieres probarlo, crea una cuenta: sin tarjeta, y la clave de test no tiene tope. Y si prefieres hablarlo antes, escríbenos y te respondemos nosotros, en español.