# VERI*FACTU

Configura la representación ante la AEAT y opera el flujo asíncrono de VERI*FACTU de FiscalRail.

FiscalRail usa la modalidad VERI*FACTU para las cuentas españolas. Cuando emites una factura, FiscalRail crea su registro inmutable y lo añade a la cadena de huellas de la cuenta dentro de la misma transacción. La factura queda emitida; la remisión a la AEAT ocurre de forma asíncrona.

Los registros VERI*FACTU no son facturas electrónicas. Son los registros fiscales normalizados que se generan a partir de las facturas y se remiten a la AEAT. La [introducción oficial](https://sede.agenciatributaria.gob.es/Sede/iva/sistemas-informaticos-facturacion-verifactu/cuestiones-generales.html) explica esta diferencia y las dos modalidades reglamentarias. FiscalRail implementa VERI*FACTU con remisión, no la modalidad alternativa de conservación local.

Consulta la [declaración responsable de FiscalRail versión 1](/es/docs/tax-regimes/spain/responsible-declaration), suscrita por la entidad productora, para identificar el sistema y sus componentes.

## Empieza en Test

Una cuenta Test española ejecuta todo el flujo de FiscalRail sin contactar con la AEAT. Emite una factura y revisa `tax_regime.es.verifactu.registrations` en la respuesta. La primera entrada es un registro de `alta` con estado `pending`. Recupera de nuevo la factura o recibe un webhook para observar el resultado simulado.

El QR fiscal de los PDF Test abre la página de verificación de FiscalRail. No apunta a la AEAT y está claramente marcado como Test. Así puedes probar con seguridad los QR, las correcciones, los rechazos y los webhooks.

## Autoriza a FiscalRail para remitir en Live

Antes de emitir desde una cuenta española Live, el obligado tributario debe autorizar a FiscalRail en el Registro de apoderamientos de la AEAT. FiscalRail admite actualmente un único método: un poder específico para el trámite `IZ860`, **Remisión y consulta de registros de facturación por servicio web**.

Debe otorgarlo el mismo NIF español configurado en la cuenta de FiscalRail al nombre y NIF del representante de FiscalRail que aparecen en **Settings → Tax regime** de la cuenta Live. No se lo otorgues a tu propia integración ni a la cuenta Test.

Para registrarlo:

1. Abre el [Registro de apoderamientos](https://sede.agenciatributaria.gob.es/Sede/colaborar-agencia-tributaria/registro-apoderamientos.html) de la AEAT y elige **Alta de poder mediante identificación electrónica**.
2. Elige un poder para trámites tributarios específicos, introduce el NIF del representante de FiscalRail y selecciona el trámite `IZ860`.
3. Revisa la vigencia, firma y presenta el alta.
4. Descarga el justificante de la AEAT y consérvalo con la documentación del obligado tributario.
5. Copia el **CSV** de 16 caracteres de ese documento de concesión.
6. Vuelve a **Settings → Tax regime** en la cuenta Live de FiscalRail, introduce el CSV y pulsa **Validate grant and verify**.

Las [instrucciones de alta](https://sede.agenciatributaria.gob.es/Sede/ayuda/consultas-informaticas/otros-servicios-ayuda-tecnica/alta-poder-tramites-tributarios.html) de la AEAT describen el flujo electrónico para poderes específicos. La AEAT también indica que un tercero que remita registros VERI*FACTU por cuenta del emisor debe estar autorizado en su registro en sus [preguntas sobre delegación](https://sede.agenciatributaria.gob.es/Sede/iva/sistemas-informaticos-facturacion-verifactu/preguntas-frecuentes/cuestiones-generales-cumplimiento-delegacion.html).

## Qué comprueba FiscalRail

FiscalRail usa el CSV solo para recuperar la concesión firmada por la AEAT. Comprueba que el documento corresponde al CSV, identifica al obligado tributario y al representante de FiscalRail correctos, concede `IZ860` y contiene una referencia de apoderamiento válida. Después descarta el CSV y conserva la referencia de 20 dígitos y las fechas de vigencia.

Ese documento demuestra qué se concedió, pero no que el poder siga activo. Por eso FiscalRail realiza otra consulta de autorización en Live ante la AEAT. El estado del panel pasa por:

| Estado | Significado | Qué hacer |
| --- | --- | --- |
| Not configured | FiscalRail no tiene una concesión validada. | Registra `IZ860` e introduce su CSV. |
| Pending verification | Se ha leído la concesión y la comprobación Live está en cola o no ha sido concluyente. | Espera y usa **Verify again** si no se resuelve. |
| Verified | La AEAT autoriza actualmente a FiscalRail a actuar por el obligado tributario. | La emisión Live está habilitada. |
| Invalid | La concesión o autorización no corresponde. | Comprueba ambos NIF, el trámite y el estado del poder; después registra el correcto. |
| Revoked | Una autorización antes verificada ha dejado de funcionar. | Restablece el poder y pulsa **Verify again**. |

Una caída de la AEAT o un fallo de transporte no demuestra que el poder sea inválido. FiscalRail mantiene la verificación pendiente en esos casos en vez de confundir un fallo temporal con una revocación.

## Emite y sigue una factura Live

Cuando la representación esté verificada, emite mediante la API habitual. La respuesta contiene la factura inmutable y un registro VERI*FACTU `pending`. La emisión no espera a la AEAT: una caída remota no puede hacer desaparecer una factura ya numerada ni convertir la petición API en un reintento ambiguo.

Sigue el registro mediante uno de estos eventos terminales:

| Evento | Significado |
| --- | --- |
| `invoice.verifactu_registration.accepted` | La AEAT aceptó el registro. |
| `invoice.verifactu_registration.accepted_with_errors` | La AEAT lo aceptó, pero devolvió una incidencia que requiere revisión. |
| `invoice.verifactu_registration.rejected` | La AEAT lo rechazó; revisa el error estructurado y el mensaje original. |

Suscríbete mediante [webhooks](/es/docs/webhooks) en vez de consultar cada factura continuamente. La entrega es al menos una vez y no está ordenada: deduplica por ID de evento y recupera la factura para conocer el estado actual. El registro público expone `status`, `submitted_at`, el `csv` de la AEAT cuando exista y un `error` estructurado para los resultados con incidencias.

## Verificación mediante QR

Cada factura española expone `tax_regime.es.qr.content` e `image_url`. En Live, el contenido apunta a la ruta de verificación de la AEAT e incluye el NIF del proveedor, el número, la fecha de expedición y el total. FiscalRail incluye el QR renderizado en el PDF.

El QR no demuestra que el registro ya tenga un resultado terminal. Para eso usa el estado o el evento. El reglamento exige el QR en las facturas producidas por los sistemas afectados y reserva la mención VERI*FACTU para los sistemas que remiten todos los registros; consulta el [Real Decreto 1007/2023](https://www.boe.es/eli/es/rd/2023/12/05/1007).

## Corrige o anula una factura

Nunca edites una factura emitida ni borres su registro fiscal. Usa una enmienda para devoluciones, descuentos y errores de cliente, líneas o impuestos. FiscalRail conserva el original y crea la factura rectificativa y la sustitución que requiera el motivo elegido.

Usa `issued_by_mistake` solo cuando la operación nunca ocurrió. FiscalRail crea entonces un registro de `anulacion` vinculado al `alta` original. La AEAT también exige conservar los registros erróneos en la cadena y contrarrestarlos con un nuevo registro de anulación o corrección; sus [preguntas sobre anulaciones](https://sede.agenciatributaria.gob.es/Sede/iva/sistemas-informaticos-facturacion-verifactu/preguntas-frecuentes/registros-facturacion-anulacion.html) explican el principio.

Consulta [Corregir facturas](/es/docs/correcting-invoices) para el flujo por motivo y la [API de facturas](/en/docs/api/invoices) para la forma completa del registro.
