Shopify · Shopify Plus

VeriFactu en Shopify. Del pedido pagado a la factura registrada, sin pasar por Excel.

Shopify emite facturas a su manera, pero no las que exige el RD 1007/2023: ni huella encadenada, ni QR, ni registro en AEAT. Cofactu no tiene app en la App Store aún; tiene un webhook que factura lo que Shopify le mande, y Shopify Flow o Make lo mandan en cuatro pasos.

Flujo del pedido a AEAT

  1. 01 Pedido pagado en tu tienda

    Shopify 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.

Con código · el hook nativo

Shopify Flow: Order paid → Send HTTP request

Flow viene incluido en todos los planes de Shopify. El disparador «Order paid» y la acción «Send HTTP request» bastan; no hace falta desplegar nada en un servidor propio.

json
// Acción «Send HTTP request» de Shopify Flow
// Method: POST
// URL: https://api.cofactu.com/api/webhooks/ecommerce-orders
// Headers: Authorization: Bearer vf_live_…  ·  Content-Type: application/json
// Body (Liquid):
{
  "platform": "shopify",
  "externalOrderId": "{{ order.name }}",
  "client": {% if order.billingAddress.company or order.customer %}{
    "nombre": "{{ order.billingAddress.company | default: order.customer.displayName }}",
    "email": "{{ order.email }}",
    "direccion": "{{ order.billingAddress.address1 }}",
    "codigoPostal": "{{ order.billingAddress.zip }}",
    "ciudad": "{{ order.billingAddress.city }}",
    "pais": "{{ order.billingAddress.countryCodeV2 }}"
  }{% else %}null{% endif %},
  "lines": [
    {% for line in order.lineItems %}
    {
      "descripcion": "{{ line.title }}",
      "cantidad": {{ line.quantity }},
      "precioUnitario": {{ line.originalUnitPriceSet.shopMoney.amount }},
      "tipoIva": {{ line.taxLines.first.ratePercentage | default: 21 }}
    }{% unless forloop.last %},{% endunless %}
    {% endfor %}
  ]
}

Sin código

Alternativa: Make o Zapier

  1. 1

    Crea una API key en Cofactu (Configuración → API keys).

  2. 2

    En Make, módulo «Shopify → Watch Orders» filtrando financial_status = paid; en Zapier, «Shopify → New Paid Order».

  3. 3

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

  4. 4

    Mapea order.name a externalOrderId y las line_items a lines. Los precios de Shopify van con IVA incluido si así configuraste los impuestos: pásalos sin IVA (precio / 1,21) o Cofactu facturará de más.

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 y se ve cada pedido con su estado en AEAT.

json
{
  "platform": "shopify",
  "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

Shopify y VeriFactu, en corto

¿Las facturas que genera Shopify cumplen VeriFactu?

No. Shopify emite recibos y facturas sin huella encadenada, sin QR de verificación y sin registro en AEAT, que son los tres requisitos del RD 1007/2023 desde 2027. La tienda puede seguir siendo Shopify; la factura la tiene que emitir un sistema VeriFactu.

¿Hay app de Cofactu en la Shopify App Store?

Todavía no. Shopify Flow —incluido en todos los planes— hace la llamada al webhook sin instalar nada, y Make o Zapier también. La app nativa está en el roadmap y dependerá de la demanda real.

¿Qué pasa con el NIF? Shopify no lo pide en el checkout.

Puedes añadir un campo de NIF con Shopify Checkout Extensibility o pedirlo en el campo «Empresa» de la dirección. Si no llega, manda client: null y se emite factura simplificada F2, válida para ventas a consumidor final.

¿Y las devoluciones y reembolsos?

Un reembolso en Shopify no anula la factura ya registrada: VeriFactu exige una rectificativa. Se emite desde Cofactu sobre la factura original (una llamada a la API o dos clics en la app), enlazada por su número.

¿Se factura con IVA de destino si vendo a otros países de la UE?

Cada línea lleva su tipoIva, así que el tipo que aplique tu configuración de impuestos en Shopify es el que llega a la factura. 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.

Tu tienda sigue siendo Shopify. La factura, VeriFactu.

Cuenta gratis, API key en un minuto y un pedido de prueba para ver la primera factura encadenada.

¿Listo para facturar sin sustos?

Empieza gratis o mira los planes. Tu primera factura VeriFactu en menos de 10 minutos.

Sin tarjetaCancela en 1 clicExporta cuando quieras