Cómo adaptar tu tienda WooCommerce a VeriFactu
Adaptar WooCommerce a VeriFactu no consiste en instalar un plugin y olvidarse: consiste en decidir tres cosas antes de tocar nada y dejar que después ocurra solo. Esta guía recorre el proceso completo, desde los requisitos previos hasta qué pasa el día que tu servidor se queda sin conexión.
Si aún no tienes claro el marco general —qué registro genera cada evento, qué límites tiene la factura simplificada o desde cuándo estás obligado—, empieza por la guía de VeriFactu para tiendas online y vuelve aquí.
Qué necesitas antes de empezar
Tres cosas, y ninguna es especialmente exigente.
Una instalación de WordPress con WooCommerce activo y acceso de administrador. Necesitas poder subir e instalar un plugin y poder guardar opciones en el escritorio. También conviene que el cron de WordPress funcione, porque la sincronización periódica se apoya en él.
Tus datos fiscales completos y correctos. Nombre o razón social, NIF y domicilio del emisor tal y como constan ante la Agencia Tributaria. Suena obvio, pero es la causa más frecuente de rechazos evitables en las primeras facturas.
El certificado electrónico o el apoderamiento correspondiente. Los registros se remiten a la Agencia Tributaria en nombre del obligado tributario, así que hace falta resolver esa parte antes de empezar a emitir. Es uno de los puntos que se revisan contigo en el alta, junto con la serie y la fecha desde la que empiezas a facturar.
No publicamos una versión mínima de WordPress, de WooCommerce ni de PHP porque no tendría respaldo real: si tu tienda corre sobre una versión antigua o sobre un checkout personalizado, dínoslo al pedir el alta y lo revisamos con tu caso delante.
Qué tienes que decidir antes de instalar nada
Tres decisiones. Tomarlas antes evita rehacer trabajo después, porque afectan a la numeración y la numeración no se reescribe.
La serie de facturación. Si ya facturas con otro programa —un TPV en tienda física, tu gestoría, un ERP—, tu tienda online necesita una serie propia y distinta. No es una recomendación estética: si dos sistemas emiten la misma combinación de serie y número bajo el mismo NIF, la Agencia Tributaria lo rechaza como duplicado. Reparte las series de una vez, por ejemplo TPV para la tienda física y WEB para la online, y acuerda quién crea las series nuevas en el futuro.
Qué estado de pedido genera factura. Esta es la decisión que más gente pasa por alto. En WooCommerce puedes facturar al pasar a «procesando», al pasar a «completado» o en un estado propio que te hayas creado. No hay una respuesta universal: depende de cuándo consideras que la operación está cerrada. Lo importante es que lo decidas tú y que también decidas qué estados cancelan y cuáles generan abono.
Factura completa o simplificada. Si tu tienda vende a consumidores finales, es tentador emitirlo todo como simplificada, y por importe casi siempre cabe. El artículo 4.1 del Real Decreto 1619/2012 fija el límite general en 400 euros, pero el 4.2.a) lo sube a 3.000 para las ventas al por menor a consumidor final, que es donde encaja una tienda B2C. Lo que suele dejar fuera a la simplificada no es el importe: es que el comprador sea empresa, autónomo, persona jurídica no empresaria o Administración, o que la venta salga de España. Si vendes a otros países de la UE, ese es el caso que hay que mirar con tu asesoría.
Cómo se instala el plugin, paso a paso
Son cinco pasos y ninguno requiere tocar código.
- Descarga el plugin desde tu panel de Factulit. El plugin de WooCommerce se descarga desde el panel, en la ficha de tu conexión. Es un archivo ZIP.
- Instálalo en WordPress como cualquier otro plugin. En el escritorio de WordPress, ve a Plugins, añade uno nuevo, sube el ZIP y actívalo. No sustituye a tu sistema de facturación de WooCommerce ni cambia tus plantillas de pedido: se limita a sincronizar.
- Pega tu clave de API. En la pantalla de configuración verás un campo para la clave de API que te facilitamos al dar de alta la conexión. La clave viaja siempre en la cabecera de la petición, nunca en la URL.
- Comprueba la conexión. El plugin valida las credenciales con una comprobación que no modifica nada en tu tienda ni en tu cuenta. Si la clave es incorrecta, te lo dice ahí mismo, antes de que empieces a emitir.
- Lanza la primera sincronización. Con «Sincronizar ahora» se envía el catálogo de estados de tu tienda y los pedidos pendientes. A partir de ese momento, el cron mantiene la sincronización al día por su cuenta.
Queda un paso que no ocurre en WordPress, sino en el panel de Factulit: clasificar los estados. Hasta que no digas qué estado factura, cuál cancela y cuál abona, no se emite nada. Es deliberado: preferimos que una tienda recién conectada no facture a que facture con el criterio equivocado.
Qué se sincroniza exactamente
Tres cosas viajan de tu tienda a Factulit, y ninguna incluye decisiones fiscales.
Pedidos, con desglose por línea. Fecha, referencia, moneda, idioma, totales e impuestos, y cada línea con su base, su tipo y su cuota. Viajan también los cupones con su reparto, los gastos de envío, el recargo de equivalencia cuando la tienda lo identifica —separado del IVA, no mezclado con él— y los reembolsos con su detalle.
Clientes, con validación local del identificador fiscal. El plugin comprueba el NIF, NIE o CIF que tu tienda ya recoge en los datos de facturación, con el mismo algoritmo que usa el servidor, y clasifica la operación como B2B o B2C. Conviene decir con precisión qué significa esto: validamos el identificador que tu tienda recoge; no añadimos un campo nuevo a tu checkout ni cambiamos tu proceso de compra.
El catálogo de estados de pedido, en crudo. Se envía tal cual, sin interpretar. Los estados nuevos o renombrados llegan solos al panel y aparecen sin clasificar hasta que los clasificas tú.
La regla que gobierna todo lo anterior: el módulo envía hechos, la decisión fiscal la toma el servidor. El plugin no marca estados como finales, no decide si una venta es factura, anulación o abono, y no calcula claves fiscales de línea. Esa clasificación se hace en el panel y la decisión final es del núcleo. Es lo que evita que dos tiendas con la misma configuración acaben facturando cosas distintas.
Cómo se factura una devolución
Cuando emites un reembolso en WooCommerce —total o parcial—, el plugin envía el reembolso con su detalle completo: identificador, fecha, motivo, importe, impuestos, gastos de envío devueltos y las líneas concretas que se han devuelto, cada una con su producto, cantidad, base y cuota. Con esa información, Factulit genera la factura rectificativa correspondiente y la comunica a la Agencia Tributaria.
Dos precisiones que importan:
- El detalle por línea no es un lujo. Una devolución enviada como importe suelto obliga a adivinar qué se ha devuelto y con qué tipo de IVA. Con las líneas, la rectificativa cuadra sola.
- El tipo de rectificativa depende de la factura original. Si la original era una factura completa, se emite una R1; si era simplificada, una R5. Y un abono se rectifica por diferencias, no por sustitución: la rectificativa lleva solo la diferencia en negativo, no los valores finales.
El plugin reenvía siempre el estado acumulado de reembolsos del pedido, no solo el último. Es intencionado: así el servidor siempre ve la foto completa de lo devuelto, aunque un envío anterior no llegara.
Qué pasa si tu tienda pierde la conexión
Nada se pierde en silencio. El plugin guarda cada envío en una tabla local de su propia base de datos, con su estado, sus intentos y su último error. Si un envío falla —porque tu servidor se quedó sin red, porque hubo un pico de carga o porque la API no respondió—, queda pendiente y se reintenta más tarde.
Los reintentos se espacian de forma progresiva: cada fallo duplica la espera hasta un máximo de 24 horas entre intentos. Al octavo intento sin éxito, el registro deja de reintentarse automáticamente y queda marcado para revisión manual. Desde la pantalla de administración del plugin ves cuántos registros están en ese estado y puedes devolverlos a la cola con un botón, una vez resuelto el problema de fondo.
Esa progresión existe por una razón: si el problema dura horas, no tiene sentido machacar tu servidor con reintentos cada minuto. Y el corte del octavo intento existe por otra: un envío que lleva días fallando tiene una causa que hay que mirar, no una que se arregle esperando más.
Del lado de la Agencia Tributaria, cuando un registro se reenvía después de una incidencia, el reenvío se marca como tal, como exige la Orden HAC/1177/2024. La facturación no se detiene por una caída.
¿Funciona con HPOS?
Sí. El plugin declara compatibilidad con HPOS —el almacenamiento de pedidos de alto rendimiento de WooCommerce— y está probado en los dos carriles: con HPOS activado y con HPOS desactivado. Ambos tienen que pasar antes de que distribuyamos una versión nueva.
Es un detalle que conviene comprobar en cualquier proveedor, porque una integración que solo se ha probado con el almacenamiento clásico puede dejar de ver pedidos el día que actives HPOS y no darte ninguna señal de ello.
Si tu tienda usa un checkout personalizado o poco habitual, coméntanoslo al pedir el alta: preferimos revisarlo con tu instalación delante antes que darte una respuesta genérica.
Preguntas frecuentes
Dudas habituales al conectar WooCommerce. Hay más en las preguntas frecuentes sobre VeriFactu.
ContactarConecta tu tienda WooCommerce
Cuéntanos qué versión de WooCommerce usas y cuántas facturas emites al mes. Te respondemos con los pasos concretos de tu tienda, el plan que te encaja por volumen y desde cuándo puedes empezar. Sin tarjeta.
Los flujos de alta de factura completa y simplificada, anulación, anulación sin registro previo, subsanación tras rechazo y rectificativa están probados en el entorno de pruebas de la AEAT (Preportal), con última ejecución el 27/07/2026.
¿Buscabas la ficha del conector en lugar de la guía? Está en plugin VeriFactu para WooCommerce. Y si vendes también en otra plataforma, míralo en todas las plataformas.
¿Prefieres que preparemos el alta contigo?
Déjanos tu email y te acompañamos con la conexión, la serie, el certificado y, cuando abra Producción el 1 de enero de 2027, el paso seguro de Modo Pruebas a Producción.