Una integración fiscal no deja de ser una integración distribuida. La red falla, los servicios entran en mantenimiento y a veces una petición llega a su destino sin que la respuesta consiga volver.

La pregunta práctica es inevitable: si la AEAT no responde, ¿debe una empresa dejar de facturar?

No. La propia AEAT indica que una incidencia de conexión, energía, sistema o Sede electrónica no obliga a interrumpir la facturación. El envío debe reintentarse periódicamente cuando el servicio se restablezca, identificando la incidencia según las especificaciones técnicas.

Emitir la factura y registrar su resultado son pasos distintos

Una factura necesita número, fecha, cliente, líneas, impuestos y totales. En un sistema VERI*FACTU también necesita un registro fiscal encadenado con el anterior.

Esperar a que la AEAT responda antes de confirmar la emisión parece sencillo, pero introduce un problema peor. Si el sistema envía el registro y pierde la respuesta, ya no sabe si debe reutilizar el número, emitir otra factura o esperar. La red habría convertido una operación fiscal en una apuesta.

FiscalRail evita esa ambigüedad. La factura, su número y su registro VERI*FACTU inmutable se crean juntos. La respuesta de emisión contiene la factura y un estado de registro pendiente. La remisión a la AEAT se procesa después.

Una caída remota no puede hacer desaparecer una factura ya emitida ni provocar que el cliente de la API emita otra por error.

Qué se reintenta automáticamente

FiscalRail conserva cada intento de remisión y trata como transitorios los fallos de transporte, los códigos HTTP 408, 429 y 5xx y los fallos SOAP de servidor. Esos casos se reintentan con espera exponencial y variación aleatoria para no castigar un servicio que se está recuperando.

Si una petición pudo llegar a la AEAT pero su resultado quedó indeterminado, el nuevo intento conserva el mismo registro fiscal. Una respuesta de duplicado puede reconciliar el intento anterior sin crear otra factura ni otro registro de alta.

No todo error debe reintentarse a ciegas. Un fallo de certificado, una petición inválida o un rechazo de los datos requiere intervención. Repetir exactamente el mismo dato incorrecto no lo vuelve correcto.

Los estados que debe observar tu integración

La emisión de la factura es síncrona; el resultado de VERI*FACTU es asíncrono. Una integración debería escuchar los eventos terminales:

  • accepted: la AEAT aceptó el registro.
  • accepted_with_errors: lo aceptó, pero devolvió una incidencia que debe revisarse.
  • rejected: rechazó el registro; hay que inspeccionar el error estructurado y el mensaje original.

Los webhooks pueden llegar más de una vez y no están ordenados. Deduplica por el identificador del evento y recupera la factura para conocer su estado actual, en lugar de inferirlo por el orden de llegada.

Un QR tampoco sustituye este seguimiento. Que una factura lleve el QR tributario no demuestra que el registro ya tenga un resultado terminal.

Qué debería hacer tu producto durante una caída

  • Confirma al usuario que la factura está emitida y conserva su identificador y número.
  • Muestra el registro fiscal como pendiente, no como fallido, mientras el resultado sea desconocido.
  • No pidas al usuario que vuelva a emitir la factura.
  • Procesa el resultado final mediante webhook y permite inspeccionar los errores.
  • Distingue una incidencia de transporte de un rechazo de contenido.

También conviene que el soporte pueda seguir la petición original, cada intento de remisión y la respuesta de la AEAT. “Lo estamos reintentando” solo es una garantía útil si existe un rastro auditable detrás.

Pruébalo antes de que ocurra

Las cuentas Test de FiscalRail pueden simular una respuesta transitoria HTTP 503 seguida de una aceptación. Así puedes comprobar el comportamiento de tu interfaz y tus webhooks sin provocar una incidencia real ni contactar con la AEAT.

Consulta la guía del entorno Test para España y la guía de VERI*FACTU.

La referencia oficial está en las preguntas frecuentes de sistemas VERI*FACTU de la AEAT.

Este artículo no constituye asesoramiento fiscal. Consulta a tu asesor para determinar cómo afectan las obligaciones a tu actividad.