VeriFactu en Magento.
Cada pedido pagado, una factura registrada en AEAT.

Magento 2 · Adobe Commerce

No hay un módulo de Cofactu en el Marketplace de Magento, y no te vamos a decir lo contrario. Lo que hay es un webhook que factura y envía a AEAT cualquier pedido que le mandes, y Magento sabe mandarlo: un observer de veinte líneas o una receta de Make.

Sin módulo nativo · webhook operativo. Hoy no hay módulo de Cofactu para instalar en Magento, ni fecha para tenerlo. Lo que funciona es el webhook universal: un observer propio o un escenario de Make le manda cada pedido pagado.

Ver cómo se conecta ↓

Sin módulo nativo · webhook operativo

¿Qué puedes conectar hoy
entre Magento y Cofactu?

Hoy no hay módulo de Cofactu para instalar en Magento, ni fecha para tenerlo. Lo que funciona es el webhook universal: un observer propio o un escenario de Make le manda cada pedido pagado.

Estado de la integración con Magento, revisado contra el código de Cofactu
CaminoHoyQué hace
Plugin, módulo o app de Cofactu en el Magento MarketplaceNo disponibleNo existe ni tiene fecha. No hay nada de Cofactu que instalar en la tienda.
Webhook universalDisponibleFactura cada pedido que le mandes y lo envía a AEAT con tu certificado. Necesita una API key: desde el plan Pyme o en la prueba de 30 días.
Conexión directa del catálogoNo disponibleSolo existe para WooCommerce y Shopify.
Make o ZapierDisponibleCon su módulo HTTP contra el webhook. Cofactu no tiene app propia en Make ni en Zapier.

Revisado el 26 de octubre de 2026 · Lo que no está disponible no tiene fecha

Flujo del pedido a AEAT

Del pedido pagado en Magento
a la factura registrada.

  1. 01

    Pedido pagado en tu tienda

    Magento dispara su evento de pago, como ya hace hoy.

  2. 02

    Un POST al webhook de Cofactu

    Desde el hook nativo o desde Make. JSON normalizado, API key en la cabecera.

  3. 03

    Factura encadenada

    Cofactu numera, calcula la huella SHA-256 encadenada y genera el PDF con QR.

  4. 04

    Registrada en AEAT

    Con tu certificado, el registro sale a AEAT en segundo plano y guarda el CSV de respuesta.

Scroll
Con código · el hook nativo

Observer sobre sales_order_invoice_pay

Se dispara cuando Magento marca la factura del pedido como pagada. Si cobras contra reembolso, cambia al evento sales_order_save_after filtrando por estado complete.

php
<?php
// app/code/TuEmpresa/Cofactu/Observer/InvoicePay.php
namespace TuEmpresa\Cofactu\Observer;

use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\HTTP\Client\Curl;

class InvoicePay implements ObserverInterface
{
    public function __construct(private Curl $curl) {}

    public function execute(Observer $observer): void
    {
        $order = $observer->getEvent()->getInvoice()->getOrder();
        $lines = [];
        foreach ($order->getAllVisibleItems() as $item) {
            $lines[] = [
                'descripcion'    => $item->getName(),
                'cantidad'       => (float) $item->getQtyOrdered(),
                'precioUnitario' => (float) $item->getPrice(),      // sin IVA
                'tipoIva'        => (float) $item->getTaxPercent(),
            ];
        }
        $this->curl->addHeader('Authorization', 'Bearer ' . getenv('COFACTU_API_KEY'));
        $this->curl->addHeader('Content-Type', 'application/json');
        $this->curl->post('https://api.cofactu.com/api/webhooks/ecommerce-orders', json_encode([
            'platform'        => 'magento',
            'externalOrderId' => $order->getIncrementId(),
            'client'          => $order->getCustomerTaxvat()
                ? ['nif' => $order->getCustomerTaxvat(), 'nombre' => $order->getCustomerName(), 'email' => $order->getCustomerEmail()]
                : null,                                                // F2 simplificada
            'lines'           => $lines,
        ]));
    }
}
Sin código

Sin tocar código: Make o Zapier

  1. Paso 1

    Crea una API key en Cofactu (Configuración → API keys) con permiso para crear facturas. La API va incluida desde el plan Pyme y en la prueba de 30 días.

  2. Paso 2

    En Make, escenario con el módulo «Magento 2 → Watch orders» (o en Zapier «Magento 2 → New Order»).

  3. Paso 3

    Añade un módulo HTTP «Make a request»: POST a https://api.cofactu.com/api/webhooks/ecommerce-orders, cabecera Authorization: Bearer vf_live_….

  4. Paso 4

    Mapea el pedido al JSON de abajo. externalOrderId = número de pedido: si Make reintenta, Cofactu no duplica la factura.

El JSON que espera Cofactu

Un solo formato para todas las tiendas

POST https://api.cofactu.com/api/webhooks/ecommerce-orders con Authorization: Bearer vf_live_…. Precios sin IVA y tipoIva por línea; client: null emite una factura simplificada F2; externalOrderId hace la llamada idempotente. Desde Configuración → Integraciones → Ecommerce se lanza un pedido de prueba, que queda en borrador; los pedidos reales aparecen en Facturas con su estado en AEAT.

Configuración → Integraciones → Ecommerce ↗
json
{
  "platform": "magento",
  "externalOrderId": "2026-000123",
  "client": {
    "nif": "B12345678",
    "nombre": "Tienda Ejemplo SL",
    "email": "compras@ejemplo.com",
    "direccion": "C/ Mayor 1",
    "codigoPostal": "28001",
    "ciudad": "Madrid",
    "pais": "ES"
  },
  "lines": [
    {
      "descripcion": "Zapatillas running 42",
      "cantidad": 1,
      "precioUnitario": 79.34,
      "tipoIva": 21
    },
    {
      "descripcion": "Gastos de envío",
      "cantidad": 1,
      "precioUnitario": 4.13,
      "tipoIva": 21
    }
  ],
  "autoSubmit": true
}
Preguntas frecuentes

Magento y VeriFactu, en corto

¿Existe un módulo VeriFactu para Magento de Cofactu?

No. Existe el webhook universal, que es lo que un módulo llamaría por dentro. Conectarlo es un observer PHP como el de esta página o un escenario de Make. Un módulo empaquetado no está disponible y no tiene fecha.

¿Vale para Magento 2 y Adobe Commerce?

Sí. Ambos exponen los mismos eventos de pedido y factura, y el POST al webhook es HTTP normal. Magento 1 está fuera de soporte desde 2020 y no lo cubrimos.

¿Qué pasa si Magento reenvía el mismo pedido dos veces?

Nada. El webhook es idempotente por platform + externalOrderId: la segunda llamada devuelve la factura ya creada, con su estado en AEAT, sin emitir otra.

¿Y si el cliente no me dio NIF?

Manda client: null y Cofactu emite una factura simplificada (tipo F2), que es lo que VeriFactu prevé para ventas a consumidor final sin identificar. El JSON es el mismo para las cuatro tiendas: platform, externalOrderId, client (o null para una factura simplificada F2) y lines con precio sin IVA y tipoIva por línea.

¿Qué hace falta en Cofactu para que llegue a AEAT?

Tu certificado digital cargado y VeriFactu activado en la organización. Sin certificado, la factura se crea igual y se queda en borrador para que la envíes cuando lo tengas; con autoSubmit: false se queda en borrador a propósito.

Otras plataformas

Otras plataformas

  1. 01 Shopify VeriFactu en Shopify
  2. 02 WooCommerce VeriFactu en WooCommerce
  3. 03 PrestaShop VeriFactu en PrestaShop
  4. 04 Ecommerce Comparativa ecommerce completa
  5. 05 VeriFactu Guía VeriFactu
Empieza por un pedido de prueba

Tu tienda sigue siendo Magento.
La factura, VeriFactu.

30 días con todo Cofactu, API incluida y sin tarjeta, y un pedido de prueba para ver la primera factura encadenada. Después, la API va desde el plan Pyme.

Ver precios ↗

(Empieza hoy)

Empieza en el plan Gratis con facturas ilimitadas y VeriFactu, sin tarjeta. Cuando lo necesites, subes de plan desde la misma cuenta.

Tu primera factura

  • Facturas ilimitadas con VeriFactu y QR
  • Sin tarjeta
  • Exportación completa de tus datos