En Stripe, vinculo el registro VeriFactu a la emisión de la factura, no al cobro. Uso invoice.finalized para iniciar el envío a la AEAT y entregar el PDF con QR y la mención correspondiente.
Si estás preparando este flujo con un conector Stripe Verifactu, estos son los puntos que reviso:
- Datos e impuestos: compruebo NIF, numeración e importes; no aplico el 21 % de IVA por defecto.
- Envío y documento: en VERI*FACTU, envío el registro al emitir la factura; la firma electrónica del registro no es obligatoria.
- Cobros y correcciones: un impago no anula lo emitido. <u>No genero otra factura al reintentar el cobro</u>; reviso si corresponde una rectificativa cuando cambia la operación.
- Control y pruebas: evito duplicados con el ID de factura, guardo las respuestas de la AEAT y pruebo los fallos en un entorno fiscal de pruebas.
Antes de ponerlo en marcha, también compruebo el territorio, las exclusiones y los plazos aplicables. Mi regla es sencilla: emisión y cobro se gestionan por separado.

Stripe y VeriFactu: de la factura al registro fiscal
Preparar los datos y el procesamiento de la factura
Antes de emitir la primera factura de activación, valida los datos y prepara el flujo que generará el registro fiscal.
Comprobar los datos fiscales, los impuestos y los identificadores
Comprueba la razón social, el domicilio fiscal y el NIF del emisor, junto con el nombre, el NIF y la dirección del cliente. Valida el NIF español en el censo de la AEAT y, cuando corresponda, el NIF-IVA comunitario en VIES. No trates una factura como simplificada si no cumple los requisitos.
Revisa la serie, la numeración correlativa, el concepto, el periodo y los importes. Comprueba también los identificadores de cliente, suscripción, factura y pago: permiten conciliar cada operación. Puedes usar una serie específica para separar la facturación automática de Stripe.
Verifica los descuentos, los prorrateos, la base imponible, el tipo de IVA, la cuota, el total y la moneda. Las líneas, los descuentos y los impuestos deben cuadrar con el total. No apliques el 21 % por defecto: revisa la localización, la inversión del sujeto pasivo y, si procede, OSS, IGIC o IPSI. Si cobras en otra divisa, emite el registro en euros con el cambio aplicado por Stripe.
Una vez comprobados los datos, prepara la generación del registro a partir de la factura finalizada.
Conectar Stripe al procesamiento de registros de facturación
Configura Stripe para que el conector trabaje con la factura finalizada y el pago asociado. El Stripe Verifactu Connector de Stripe invoicing and tax compliance in Spain recoge esa factura y los datos de cobro, genera y firma el registro, lo remite a la AEAT y devuelve el PDF con QR.
El registro puede generarse aunque el cobro no se haya completado. Antes de configurar el flujo, comprueba el territorio del emisor, ya que TicketBAI tiene requisitos propios.
sbb-itb-b01fb3c
Generar y enviar el registro al emitir la factura
Una vez finalizada la factura, convierte sus datos en el registro fiscal y envíalo sin esperar al cobro.
Generar el registro con los datos definitivos
Usa invoice.finalized como punto de validación. Comprueba los datos definitivos, genera el registro al expedir la factura y guarda la huella SHA-256 del encadenamiento y los identificadores.
La fecha del registro debe coincidir con la de expedición. Los eventos invoice.payment_succeeded e invoice.payment_failed solo actualizan el cobro: no generan un nuevo registro de alta. Usa el ID de la factura para evitar duplicados.
Aplicar las reglas de firma y envío
En VERI*FACTU, no es obligatorio firmar electrónicamente el registro y el envío a la AEAT es inmediato. En no VERI*FACTU, firma y conserva los registros según la norma.
Guarda cada respuesta de la AEAT y distingue entre un rechazo y una interrupción técnica. Si hay un rechazo, revisa el motivo y aplica la subsanación que corresponda. Si falla la conexión, conserva los registros, activa los reintentos y utiliza la marca de incidencia cuando proceda. No borres ni vuelvas a crear la factura.
Enviar la factura al cliente
Entrega la factura al cliente en el momento de la expedición: primero expídela y después entrega el PDF con el QR obligatorio. En modalidad VERI*FACTU, incluye una de estas menciones:
«Factura verificable en la sede electrónica de la AEAT» o «VERI*FACTU» (puedes ver cómo funciona en esta demo de VeriFactu).
Desactiva los correos automáticos de Stripe para evitar duplicados y no mezclar la expedición con el cobro, que se gestiona aparte y no cambia la factura ya emitida.
Gestionar cobros, impagos y correcciones
Actualizar el estado del cobro sin emitir otra factura
Una vez emitida la factura de activación, Stripe solo debe actualizar el estado del cobro: la factura no cambia. Registra cómo se ha saldado y concilia el pago, sin emitir otra factura.
| Evento y situación | Estado de la factura | Posible estado de la suscripción | Comunicación al cliente | Acción del sistema de facturación |
|---|---|---|---|---|
invoice.paid | paid | active | Confirmación de pago; recibo si hubo cobro | Registrar y conciliar el cobro, sin emitir otra factura. |
invoice.payment_failed al activar | Normalmente open | incomplete o incomplete_expired si expira la ventana | Aviso de fallo y notificación de reintento | Registrar el fallo, mantener la factura pendiente de cobro y aplicar los reintentos configurados. |
El estado del cobro no determina si corresponde una corrección fiscal. Para ello, debe haber una modificación real de la operación. Si el pago falla o la operación cambia, revisa si procede corregir la factura, no emitir otra por el cobro.
Separar la caducidad de la suscripción de las correcciones
En los flujos que lo contemplan, incomplete indica que el pago inicial está pendiente. Si vence el plazo sin que se complete el pago, la suscripción pasa a incomplete_expired. Perder el acceso no cambia por sí solo la factura: comprueba si la deuda sigue vigente.
Si la deuda sigue vigente, conserva la factura pendiente de cobro. Si la operación cambia o queda sin efecto, valora qué factura rectificativa corresponde según la normativa TicketBAI y VeriFactu. Una cancelación, un reembolso o un void no equivalen a una anulación fiscal: antes debes revisar cómo afectan a la operación.
La rectificativa corrige la factura; la anulación solo afecta al registro cuando la norma lo permite. Conserva la referencia al documento original y el historial de cambios. No sobrescribas lo emitido por una baja de acceso o un impago.
Conclusión: comprobar el proceso y conservar la trazabilidad
Antes de cerrar el circuito, comprueba tres puntos: dato fiscal, envío y trazabilidad.
Antes de publicar, valida el NIF del receptor en el censo de la AEAT y comprueba que la fecha de emisión coincida con la del registro. En VERI*FACTU, el registro se envía automáticamente al emitir la factura. Si el cobro falla o la suscripción expira, conserva el registro original de la factura de activación y aplica la corrección que corresponda.
Una vez validado el flujo, revisa los eventos y realiza las pruebas previas al lanzamiento.
Comprobar los eventos y la conciliación
- Eventos y duplicados: aplica idempotencia a los webhooks para evitar duplicados.
- Trazabilidad: guarda el ID del evento, la huella, las respuestas de la AEAT y las marcas de tiempo. En Stripe Connect, añade la cuenta y el NIF del emisor legal.
- Envíos y conciliación: reintenta los envíos fallidos y concilia cada día las facturas, los pagos y las respuestas fiscales.
Probar los cobros y los envíos antes del lanzamiento
- Cobros: prueba
charge_automatically,send_invoice, rechazos, reintentos, renovaciones, cancelaciones y facturas de 0,00 €. - Envíos y documentos: simula interrupciones y rechazos de la AEAT. Comprueba que el sistema se recupere sin duplicados, que entregue el PDF con QR y la mención Factura verificable, y que las correcciones que procedan queden vinculadas al original.
- Antes de publicar: confirma el ámbito territorial (como el uso de un conector Stripe TicketBai), las exclusiones aplicables y los plazos vigentes. Mantén Stripe en pruebas conectado solo a un entorno fiscal de pruebas.
FAQs
¿Cómo gestiono una factura de 0,00 € en VeriFactu?
En VeriFactu, los ciclos de facturación o suscripciones de 0,00 € se omiten automáticamente del proceso de facturación. Como no hay una transacción económica real, no se genera ningún registro de facturación ni se envía a la Agencia Tributaria.
Si tu flujo incluye prorrateos independientes o casos particulares con importe cero, estos suelen revisarse o descartarse para mantener la numeración correlativa sin alteraciones.
¿Qué hago si detecto un NIF incorrecto tras emitir la factura?
Si detectas un NIF incorrecto después de emitir una factura, debes emitir una factura rectificativa. No puedes modificar directamente una factura ya emitida y registrada bajo VeriFactu.
Para rectificar los datos del cliente, accede a la ficha de la factura en tu panel. El sistema gestiona la corrección y mantiene tanto la integridad del registro contable como el encadenamiento criptográfico exigido por la Agencia Tributaria.
¿Cuándo debo rectificar una factura impagada?
El impago, por sí solo, no exige rectificar una factura. Si el cobro falla, debes conservar la factura original sin eliminarla ni reescribirla. El importe queda pendiente de cobro.
Solo debes emitir una factura rectificativa cuando se devuelven importes, hay errores en los datos o cambia la base imponible. Esta factura genera un nuevo registro encadenado al anterior para cumplir con VeriFactu.

