WooCommerce Subscriptions · Guía técnica 2026/2027

Suscripciones en WooCommerce y VeriFactu: cómo facturar renovaciones sin duplicados

Una suscripción no genera únicamente un cobro periódico. WooCommerce crea pedidos de renovación, programa acciones, ejecuta pasarelas, gestiona reintentos y permite pagos manuales, renovaciones anticipadas, cambios de plan y reembolsos. La integración fiscal debe reconocer cada escenario antes de expedir una factura o generar un registro de facturación.

Pedido de renovaciónNo equivale automáticamente a una factura definitiva.
Pago y pasarelaWebhooks, reintentos y pagos manuales pueden repetir eventos.
SIF y registroLa emisión debe ser única, trazable e idempotente.
CorreccionesReembolsos y cambios posteriores requieren un flujo fiscal definido.
Arquitectura real

Una suscripción, un pedido de renovación y una factura son objetos distintos

WooCommerce Subscriptions mantiene una suscripción con su calendario, estado, productos y método de pago. Cuando llega una fecha de cobro crea un pedido de renovación relacionado. Ese pedido registra el intento económico, pero todavía puede quedar pendiente, fallar, cobrarse automáticamente, pagarse manualmente o tener un importe cero.

El sistema de facturación debe decidir qué evento de WooCommerce representa realmente la expedición fiscal en la operativa del negocio. No debe emitir únicamente porque se haya creado un pedido de renovación.

Suscripción activaCalendario, cliente y método de pago.
Acción programadaAction Scheduler inicia la renovación.
Pedido de renovaciónRegistra el ciclo y su importe.
Pago / validaciónPasarela, webhook o pago manual.
Evento fiscal definidoRegla validada para la actividad.
Factura únicaSerie, número, impuestos y cliente.
Registro SIFHuella, encadenamiento y estado.
VERI*FACTU / conservaciónSegún la modalidad del producto.

No confundas «pedido creado» con «factura expedida». El momento correcto depende del tipo de operación, del criterio fiscal aplicable y de cómo esté diseñado el servicio recurrente. Webyseo puede configurar el flujo técnico, pero el criterio tributario debe validarlo el cliente con su asesor.

Decisión principal

El disparador de la factura no puede elegirse copiando un estado genérico

En algunas tiendas el evento operativo puede estar vinculado al pago confirmado; en otras, la obligación de facturar puede derivar de la prestación del servicio o de un pago anticipado. Por eso no es correcto establecer como regla universal que toda renovación se factura al crear el pedido, ni que siempre deba esperarse al estado Completado.

01

Servicio y devengo

Hay que identificar qué se vende, cuándo se presta y si el cobro es anticipado o posterior.

02

Pasarela y confirmación

Stripe, PayPal, Redsys u otras pasarelas pueden confirmar el cobro mediante procesos asíncronos.

03

Estado WooCommerce

El estado debe ser una consecuencia de la operativa, no el único fundamento de la emisión fiscal.

Mapa operativo

Qué significa cada estado dentro de una renovación

La siguiente tabla no sustituye el criterio fiscal. Sirve para diseñar una integración que no convierta cada cambio de estado en una factura nueva.

Situación
Qué representa
Tratamiento técnico recomendado
Pendiente / En espera
Existe un pedido de renovación, pero el pago todavía requiere confirmación o acción del cliente.
No emitir por duplicado Mantener una referencia única y esperar el evento fiscal configurado.
Procesando / Completado
El pago o la operativa han avanzado conforme a la configuración de WooCommerce.
Candidato a emisión Solo si coincide con la regla fiscal definida para el negocio.
Fallido
La pasarela no ha podido completar el cobro de la renovación.
Control de reintentos No crear una factura nueva en cada intento.
Pago manual posterior
El cliente paga el mismo pedido fallido o pendiente desde su cuenta.
Mismo pedido Recuperar la referencia anterior y emitir una sola vez.
Reembolsado
Se devuelve total o parcialmente un cobro ya procesado.
Revisar rectificativa El reembolso de WooCommerce no sustituye el documento fiscal.
Suscripción cancelada
Se detienen renovaciones futuras; no implica por sí sola corregir facturas anteriores.
Sin documento automático Solo actuar si existe devolución o corrección económica.
Pagos fallidos

Un reintento no es una nueva venta

WooCommerce Subscriptions puede dejar una suscripción en espera, crear o reutilizar el pedido de renovación y programar reintentos mediante Action Scheduler. El cliente también puede pagar manualmente el pedido fallido y, cuando la pasarela lo permite, actualizar su método para futuras renovaciones.

El riesgo aparece cuando el plugin de facturación escucha varios eventos —creación del pedido, cambio de estado, webhook de la pasarela y reintento programado— y los interpreta como operaciones independientes.

Error

Factura en el primer intento fallido

Se genera un documento definitivo aunque el pago no haya concluido y luego se emite otro cuando el cliente paga.

Error

Una factura por cada callback

La pasarela reenvía un webhook o WooCommerce repite la acción y la integración no comprueba si el pedido ya tiene documento fiscal.

Error

Crear otro pedido para cobrar

Se abandona el pedido de renovación original y se pierde la relación entre suscripción, pago e historial.

Error

Reactivar sin revisar la factura

El cobro se recupera, pero el documento queda ausente, duplicado o vinculado al intento equivocado.

Idempotencia

Cómo impedir que cron, webhook y reintento generen varias facturas

La integración debe ser idempotente: repetir el mismo evento no puede producir un segundo documento. El patrón técnico recomendado es identificar cada emisión por el pedido de renovación y comprobar el resultado antes de crear el documento fiscal.

A

Clave única de emisión

Pedido de renovación + tipo de documento + entidad que factura.

B

Bloqueo atómico

Evitar que dos procesos asignen simultáneamente serie y número al mismo pedido.

C

Referencia persistente

Guardar en WooCommerce el ID del documento, estado de envío y resultado del SIF.

D

Reintento recuperable

Si hay timeout, consultar primero si el documento ya existe antes de volver a emitir.

Un timeout no demuestra que la emisión haya fallado. Puede haberse creado la factura en el SIF y haberse perdido únicamente la respuesta. Repetir a ciegas es una causa frecuente de duplicados.

Otros ciclos de pago

Renovaciones manuales, anticipadas y reactivaciones

No todas las renovaciones llegan por el mismo camino. WooCommerce permite que el cliente pague manualmente un pedido de renovación, renueve antes de la fecha prevista o se vuelva a suscribir después de una cancelación o expiración.

Manual

Pago desde Mi cuenta

Debe utilizarse el mismo pedido pendiente o fallido y comprobar que la factura solo se expide una vez.

Early

Renovación anticipada

Cambia la próxima fecha de pago y puede crear un cobro antes del calendario previsto. Necesita una prueba específica.

Nuevo

Resuscripción

Puede crear una nueva suscripción vinculada a la anterior. No debe reutilizarse indiscriminadamente el historial fiscal anterior.

Upgrades y downgrades

Cambios de plan, cantidades y prorrateos

WooCommerce Subscriptions permite cambiar entre productos de suscripción, subir o bajar de plan y modificar cantidades. Según la configuración, el cambio puede producir un pago inmediato, un crédito temporal, una modificación de la siguiente fecha o un nuevo pedido.

La integración debe validar qué documento corresponde al importe inmediato, cómo se trata el valor no consumido y qué ocurre con el siguiente ciclo. No basta con copiar las líneas de la suscripción anterior.

Los prorrateos son un caso fiscal específico. La fórmula de WooCommerce describe el cálculo comercial, pero la factura y su tratamiento tributario deben validarse según la operación real.

Correcciones

Reembolsar el pago no genera automáticamente la factura rectificativa correcta

WooCommerce puede devolver total o parcialmente el importe de un pedido. Esa acción económica debe coordinarse con el sistema de facturación. Si ya se expidió una factura y procede corregirla, la solución debe generar la rectificativa correspondiente, mantener la serie específica y relacionar la corrección con el documento original.

  • Reembolso total: comprobar importe, impuestos y documento correctivo.
  • Reembolso parcial: identificar líneas, descuentos y base/IVA que se rectifican.
  • Cancelación futura: detener renovaciones no corrige automáticamente periodos ya facturados.
  • Pago recuperado: no rectificar una factura válida si el mismo pedido termina pagándose correctamente.

Consulta también la guía específica sobre facturas rectificativas y VeriFactu en WooCommerce.

Secuencialidad

Muchas renovaciones pueden ejecutarse al mismo tiempo

Action Scheduler procesa tareas en segundo plano y puede ejecutar varias renovaciones cercanas en el tiempo. A esto se suman ventas puntuales, pagos manuales, reintentos y webhooks. El sistema debe garantizar que cada registro reciba una numeración coherente y que la huella del registro se encadene correctamente.

Cola

Procesamiento controlado

La emisión fiscal debe pasar por una cola o mecanismo equivalente, no depender de llamadas simultáneas sin control.

Lock

Asignación exclusiva

Serie y número necesitan un bloqueo transaccional o una API que garantice unicidad.

Log

Trazabilidad técnica

Cada intento debe registrar pedido, acción, respuesta, documento, error y posibilidad de reintento.

Validación antes de producción

Matriz mínima de pruebas para WooCommerce Subscriptions

Probar solo una renovación correcta no es suficiente. La implantación debe cubrir estados alternativos y caminos de recuperación.

EscenarioQué debe comprobarseRiesgo si falla
Alta inicialPedido padre, primera factura, impuestos, cliente y próxima fecha.Duplicar el primer ciclo o separar la suscripción de su factura.
Renovación automática correctaUn pedido, un cobro, una factura y un registro.Factura duplicada o ausencia de documento.
Pago fallidoNo emitir otra factura por el intento; mantener relación con el pedido.Documentar una operación fallida o duplicar al recuperar el pago.
Reintento automáticoMismo pedido/referencia, idempotencia y actualización de estado.Una factura por reintento.
Pago manual del fallidoRecuperar el pedido previo y emitir solo una vez.Nueva factura sin relación con el intento original.
Webhook repetidoLa segunda llamada debe devolver el documento existente.Doble numeración y doble remisión.
Timeout del SIFConsultar antes de reemitir y registrar el estado incierto.Duplicado remoto.
Reembolso parcialRectificativa, impuestos, vínculo y nuevo saldo.Descuadre fiscal y contable.
Renovación anticipadaDocumento, pago y nueva fecha de próximo ciclo.Dos cobros/facturas para el mismo periodo.
Upgrade / downgradeProrrateo, pedido de cambio y siguiente renovación.Importes o periodos incorrectos.
Renovación de importe ceroRegla fiscal definida; no asumir que cero elimina toda obligación.Registros inconsistentes.
StagingPasarelas en prueba, renovaciones controladas y correos no reales.Cobros o emails de producción durante las pruebas.
Checklist técnica

Qué revisar antes de activar el flujo real

Pasarela compatible

Renovaciones automáticas, cambios de método, webhooks y reembolsos probados.

Action Scheduler saludable

Sin acciones fallidas acumuladas, retrasos, bloqueos o colas fuera de control.

HPOS y plugins

Compatibilidad comprobada en la versión real de WooCommerce y del SIF.

Regla de expedición

Documentada y validada para pagos automáticos, manuales y anticipados.

Idempotencia

Una referencia fiscal única por pedido de renovación y tipo de documento.

Logs y recuperación

Posibilidad de diagnosticar timeout, webhook, error remoto y reintento.

Rectificativas

Flujo total y parcial probado desde WooCommerce hasta el sistema fiscal.

Staging controlado

Renovaciones y pasarelas en modo prueba sin afectar suscripciones reales.

Implantación técnica ¿Tu WooCommerce factura renovaciones, reintentos y reembolsos sin duplicados?

Revisamos la arquitectura, definimos los disparadores, configuramos la solución SIF y ejecutamos la matriz de pruebas antes de pasar a producción.

Preguntas frecuentes

Dudas sobre suscripciones y VeriFactu

¿Cada pedido de renovación debe generar una factura?

No debe asumirse de forma automática. El pedido representa el ciclo de renovación, pero la expedición fiscal debe responder a la operación real y al criterio validado para la actividad.

¿Qué ocurre si el pago falla?

WooCommerce puede mantener el pedido pendiente o fallido, programar reintentos o permitir el pago manual. La integración debe evitar emitir varias facturas para el mismo pedido y recuperar el flujo cuando el cobro termina correctamente.

¿Un reintento debe crear otro pedido de renovación?

El comportamiento depende del proceso utilizado, pero fiscalmente la integración debe reconocer que se está intentando cobrar el mismo ciclo y aplicar controles de idempotencia.

¿Cancelar la suscripción exige una factura rectificativa?

No por sí sola. Cancelar evita ciclos futuros. Solo habrá que corregir documentos anteriores cuando exista una devolución, error o modificación que fiscalmente lo requiera.

¿Qué pasa con una renovación anticipada?

Puede crear un pago antes de la fecha prevista y desplazar el siguiente ciclo. Debe probarse para evitar que el sistema facture también la renovación programada original.

¿Los upgrades y downgrades generan otra factura?

Pueden generar pagos inmediatos, créditos o prorrateos. El documento correcto depende del importe y de la operación resultante; no conviene automatizarlo sin revisar la configuración.

¿Puedo probar renovaciones en staging?

Sí, pero con pasarelas en modo prueba y controlando Action Scheduler. WooCommerce Subscriptions desactiva por defecto determinadas renovaciones automáticas en entornos de staging para evitar cobros reales.

¿Webyseo decide cuándo debe emitirse fiscalmente la factura?

Webyseo analiza y configura el flujo técnico. El criterio tributario sobre devengo, pagos anticipados y tratamiento de cada operación debe validarlo el cliente con su asesor fiscal.

Clúster VeriFactu

Recursos relacionados

Fuentes técnicas y normativas

Alcance: este artículo explica arquitectura e implantación técnica. No sustituye el asesoramiento fiscal sobre el momento de expedición, devengo, pagos anticipados o tratamiento de una operación concreta.