Cómo adaptar OpenCart 4 a VeriFactu, paso a paso
Adaptar OpenCart 4 a VeriFactu no consiste en instalar una extensión y olvidarse: consiste en tomar tres decisiones antes de tocar nada y en entender una particularidad de OpenCart que ninguna otra plataforma tiene, la de las devoluciones. Esta guía recorre el proceso completo en una tienda OpenCart 4 —versiones 4.0 y 4.1—, desde los requisitos previos hasta qué pasa el día que tu servidor pierde la conexión.
Los plazos, para situarte: VeriFactu será obligatorio desde el 01/01/2027 para los contribuyentes del Impuesto sobre Sociedades y desde el 01/07/2027 para el resto de obligados. La fuente oficial es la Agencia Tributaria.
Si aún no tienes claro el marco general —qué registro genera cada evento o qué límites tiene la factura simplificada—, empieza por la guía de VeriFactu para tiendas online y vuelve aquí. Y si tu tienda es OpenCart 3, el módulo también la cubre, con su propio paquete: tienes el detalle en la ficha de VeriFactu para OpenCart.
Qué necesitas antes de empezar
Tres cosas, y ninguna es especialmente exigente.
Una tienda OpenCart 4.0 o 4.1 con acceso al panel de administración. La instalación se hace con el instalador de extensiones de OpenCart, así que no necesitas tocar el servidor por FTP ni ejecutar comandos. La interfaz del módulo está disponible en español y en inglés.
Tus datos fiscales completos y correctos. Nombre o razón social, NIF y domicilio del emisor tal y como constan ante la Agencia Tributaria. 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 esa parte se resuelve antes de emitir. Se revisa contigo en el alta, junto con la serie y la fecha desde la que empiezas a facturar.
Qué tienes que decidir antes de instalar nada
Tres decisiones. Tomarlas antes evita rehacer trabajo, 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 físico, tu gestoría, un ERP—, tu tienda OpenCart necesita una serie propia y distinta. 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, WEB para otro canal online y OPE para tu OpenCart.
Qué estados de pedido facturan, cancelan y abonan. En OpenCart los estados de pedido son tuyos: puedes renombrarlos y crear los que quieras. Por eso la clasificación se hace en el panel de Factulit, estado a estado: cuál genera factura, cuál cancela y cuál abona. En OpenCart esta decisión pesa más que en otras plataformas, porque —como verás más abajo— el estado de devolución es también la vía por la que se factura una devolución.
Factura completa o simplificada. Si vendes 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 fuera de España, ese es el caso que hay que mirar con tu asesoría.
Cómo se instala el módulo, paso a paso
Cuatro pasos, todos desde el panel de administración de tu tienda.
- Descarga el módulo desde tu panel de Factulit. Cada variante tiene su propio paquete: el de OpenCart 4 y el de OpenCart 3 se descargan desde la ficha de tu conexión según tu plataforma.
- Instálalo con el instalador de extensiones. En el panel de administración de OpenCart, sube el paquete desde el instalador de extensiones y actívalo. No sustituye a nada de tu tienda ni cambia tu proceso de compra: se limita a sincronizar.
- Pega tu clave de API y prueba la conexión. En la configuración del módulo guardas la clave que te facilitamos al dar de alta la conexión y lanzas la prueba de conexión desde el propio panel de administración. Es una comprobación que no modifica nada en tu tienda ni en tu cuenta: si la clave es incorrecta, lo ves ahí mismo. La pantalla muestra la clave enmascarada y no la vuelve a imprimir.
- Programa la tarea de sincronización. OpenCart no trae un cron propio, así que el módulo expone una URL protegida con token para que la llame la tarea programada de tu servidor. Cada ejecución sincroniza estados, clientes y pedidos, en ese orden.
Queda un paso que no ocurre en OpenCart, 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 y los descuentos repartidos. OpenCart guarda el cupón como un importe global del pedido, sin desglose por línea ni por tipo de IVA. El módulo lo reparte entre las líneas de forma proporcional, con absorción de los redondeos, para que las bases y las cuotas de la factura cuadren siempre. Los importes viajan en la moneda del pedido y el recargo de equivalencia se comunica desglosado del IVA cuando el tax class del producto lo incluye.
Clientes, incluidas las ventas de invitado. Los clientes registrados se sincronizan con su ficha; los pedidos de invitado viajan con los datos del comprador embebidos en el propio pedido, así que ninguna venta se queda fuera por no tener cuenta. OpenCart no tiene un campo nativo para el NIF: el módulo lo busca en los campos personalizados de cuenta o de dirección de tu tienda y lo valida con el mismo algoritmo que usa el servidor. Validamos lo que tu tienda ya recoge; no añadimos campos a tu checkout.
El catálogo de estados de pedido, en crudo. Se envía tal cual, con sus nombres, 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 módulo no marca estados como finales, no decide si una venta es factura, anulación o abono, y no calcula claves fiscales de línea.
Cómo se factura una devolución en OpenCart
Aquí está la particularidad de OpenCart, y conviene contarla sin adornos: OpenCart no tiene abonos nativos. No existe el equivalente al reembolso de WooCommerce ni al credit memo de Magento; el sistema de devoluciones de OpenCart es logístico y no lleva importes fiscales fiables. El módulo, en coherencia, no envía reembolsos, porque no existen en la plataforma.
¿Cómo se factura entonces una devolución? Clasificando el estado. Cuando gestionas una devolución, cambias el pedido a tu estado de devolución —por ejemplo, «Refunded»— y ese cambio de estado viaja a Factulit como cualquier otro hecho. Como en el panel ese estado está clasificado como abono, el servidor genera la factura rectificativa que corresponde: una R1 si la factura original era completa, una R5 si era simplificada, en modo diferencias. Esa clasificación te la dejamos configurada al activar el servicio.
El límite honesto de este flujo: el estado es del pedido completo, así que la vía natural es rectificar la operación, no una línea suelta. Si las devoluciones parciales son frecuentes en tu tienda, cuéntanoslo en el alta y revisamos tu caso concreto; preferimos decírtelo antes que descubrirlo tú después.
Qué pasa si tu tienda pierde la conexión
Nada se pierde en silencio. El módulo guarda cada envío en una tabla local de tu propia base de datos, con su estado, sus intentos y su último error. Si un envío falla —tu servidor sin red, un pico de carga, la API que no responde—, 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 administración del módulo ves cuántos registros están en ese estado y puedes devolverlos a la cola, una vez resuelto el problema de fondo. Cada envío lleva además una huella de su contenido, así que un reintento nunca duplica lo ya entregado.
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.
Preguntas frecuentes
Dudas habituales al conectar OpenCart. Hay más en las preguntas frecuentes sobre VeriFactu.
ContactarConecta tu tienda OpenCart
Cuéntanos qué versión de OpenCart usas —4.0, 4.1 o 3.0— 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 módulo VeriFactu para OpenCart. Si vendes también en otra plataforma, míralo en todas las plataformas. Y si tu duda es de precios, en planes y límites.
Última actualización: 14/08/2026. Esta guía es informativa y no constituye asesoramiento fiscal ni jurídico. La normativa aplicable es el Real Decreto 1007/2023, la Orden HAC/1177/2024 y, para los requisitos de las facturas, el Real Decreto 1619/2012. Para tu caso concreto, consulta con un profesional o con la Agencia Tributaria.
¿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.