VeriFactu en PrestaShop.
El pago confirmado dispara la factura en AEAT.

PrestaShop 1.7 · PrestaShop 8

PrestaShop es la segunda plataforma más usada en España y la que más preguntas genera sobre VeriFactu, porque sus facturas nativas no lo cumplen. Cofactu no tiene módulo en Addons; tiene un webhook, y el hook actionPaymentConfirmation de PrestaShop es el sitio natural para llamarlo.

Sin módulo en Addons · webhook operativo. Hoy no hay módulo de Cofactu para instalar desde PrestaShop Addons, ni fecha para tenerlo. Lo que funciona es el webhook universal, llamado desde un módulo mínimo propio como el de abajo o desde Make.

Ver cómo se conecta ↓

Sin módulo en Addons · webhook operativo

¿Qué puedes conectar hoy
entre PrestaShop y Cofactu?

Hoy no hay módulo de Cofactu para instalar desde PrestaShop Addons, ni fecha para tenerlo. Lo que funciona es el webhook universal, llamado desde un módulo mínimo propio como el de abajo o desde Make.

Estado de la integración con PrestaShop, revisado contra el código de Cofactu
CaminoHoyQué hace
Plugin, módulo o app de Cofactu en PrestaShop AddonsNo 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 PrestaShop
a la factura registrada.

  1. 01

    Pedido pagado en tu tienda

    PrestaShop 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

actionPaymentConfirmation

Se dispara cuando el pedido pasa a un estado de pago aceptado. Un módulo mínimo que registre este hook basta; no hace falta tocar el core ni los overrides.

php
<?php
// modules/cofactuverifactu/cofactuverifactu.php
class CofactuVerifactu extends Module
{
    public function install(): bool
    {
        return parent::install() && $this->registerHook('actionPaymentConfirmation');
    }

    public function hookActionPaymentConfirmation(array $params): void
    {
        $order    = new Order((int) $params['id_order']);
        $customer = new Customer((int) $order->id_customer);
        $address  = new Address((int) $order->id_address_invoice);
        $lines    = [];
        foreach ($order->getProducts() as $p) {
            $lines[] = [
                'descripcion'    => $p['product_name'],
                'cantidad'       => (float) $p['product_quantity'],
                'precioUnitario' => (float) $p['unit_price_tax_excl'],
                'tipoIva'        => (float) $p['tax_rate'],
            ];
        }
        $ch = curl_init('https://api.cofactu.com/api/webhooks/ecommerce-orders');
        curl_setopt_array($ch, [
            CURLOPT_POST           => true,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPHEADER     => [
                'Authorization: Bearer ' . Configuration::get('COFACTU_API_KEY'),
                'Content-Type: application/json',
            ],
            CURLOPT_POSTFIELDS => json_encode([
                'platform'        => 'prestashop',
                'externalOrderId' => $order->reference,
                'client'          => $address->dni ? [
                    'nif'          => $address->dni,
                    'nombre'       => $address->company ?: $customer->firstname . ' ' . $customer->lastname,
                    'email'        => $customer->email,
                    'direccion'    => $address->address1,
                    'codigoPostal' => $address->postcode,
                    'ciudad'       => $address->city,
                    'pais'         => Country::getIsoById((int) $address->id_country),
                ] : null,                                       // F2 simplificada
                'lines' => $lines,
            ]),
        ]);
        curl_exec($ch);
        curl_close($ch);
    }
}
Sin código

Sin tocar PHP: Make

  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, módulo «PrestaShop → Watch Orders» (usa el webservice de PrestaShop; actívalo en Parámetros avanzados → Webservice).

  3. Paso 3

    Módulo HTTP: POST a https://api.cofactu.com/api/webhooks/ecommerce-orders con Authorization: Bearer vf_live_….

  4. Paso 4

    Mapea reference a externalOrderId y las líneas del pedido a lines con unit_price_tax_excl y tax_rate.

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": "prestashop",
  "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

PrestaShop y VeriFactu, en corto

¿Las facturas que genera PrestaShop cumplen VeriFactu?

No. PrestaShop numera y genera un PDF, pero no calcula la huella encadenada, no imprime el QR de verificación ni registra nada en AEAT. Desde 2027 esa factura no es válida como registro de facturación; la tienda puede seguir siendo PrestaShop, la factura la emite un sistema VeriFactu.

¿Hay módulo de Cofactu en PrestaShop Addons?

No, y no tiene fecha. El módulo mínimo de esta página (un hook y un POST) es lo que haría un módulo publicado, y Make lo sustituye sin código.

¿Funciona en PrestaShop 1.6?

El hook actionPaymentConfirmation existe desde 1.5, así que el mismo módulo debería servir. Pero 1.6 lleva sin soporte de seguridad desde 2019, y el ejemplo de esta página está escrito para 1.7 y 8.

¿Qué campo de PrestaShop es el NIF?

El dni de la dirección de facturación, que PrestaShop pide según el país. Si está vacío, manda client: null y Cofactu emite factura simplificada F2.

¿Se duplica la factura si el hook se ejecuta dos veces?

No: el webhook es idempotente por platform + externalOrderId, y la referencia del pedido de PrestaShop es única. 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.

Otras plataformas

Otras plataformas

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

Tu tienda sigue siendo PrestaShop.
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