VeriFactu on Shopify.
From paid order to registered invoice, without going through Excel.

Shopify · Shopify Plus

Shopify issues invoices its own way, but not the ones Royal Decree 1007/2023 requires: no chained hash, no QR code, no registration with the AEAT (the Spanish Tax Agency). Cofactu has no app in the App Store; it has a webhook that invoices whatever Shopify sends, and Shopify Flow or Make send it in four steps.

No App Store app · webhook live. Today there is no Cofactu app to install from the Shopify App Store, and no date for one. Orders are invoiced with Shopify Flow or Make against the universal webhook, and the direct catalogue connection pushes your products from Cofactu to the store.

See how it connects ↓

No App Store app · webhook live

What can you connect today
between Shopify and Cofactu?

Today there is no Cofactu app to install from the Shopify App Store, and no date for one. Orders are invoiced with Shopify Flow or Make against the universal webhook, and the direct catalogue connection pushes your products from Cofactu to the store.

Status of the Shopify integration, checked against the Cofactu code
RouteTodayWhat it does
Cofactu plugin, module or app on the Shopify App StoreNot availableIt does not exist and has no date. There is nothing from Cofactu to install in the store.
Universal webhookAvailableInvoices every order you send and files it with the AEAT using your certificate. It needs an API key: from the SME plan or during the 30-day trial.
Direct catalogue connectionAvailableFrom the SME plan, Cofactu pushes your products to Shopify with an Admin API token. It only goes in that direction: Shopify orders are invoiced through the universal webhook, with Flow or Make.
Make or ZapierAvailableWith their HTTP module against the webhook. Cofactu has no app of its own in Make or Zapier.

Checked on 26 October 2026 · What is not available has no date

Order-to-AEAT flow

From a paid order in Shopify
to a registered invoice.

  1. 01

    Order paid in your store

    Shopify fires its payment event, as it already does today.

  2. 02

    One POST to the Cofactu webhook

    From the native hook or from Make. Normalised JSON, API key in the header.

  3. 03

    Chained invoice

    Cofactu numbers it, computes the chained SHA-256 fingerprint and generates the PDF with a QR code.

  4. 04

    Registered with the AEAT

    With your certificate, the record goes to the AEAT (the Spanish Tax Agency) in the background and the response CSV is stored.

Scroll
With code · the native hook

Shopify Flow: Order paid → Send HTTP request

Flow is included in all Shopify plans. The “Order paid” trigger and the “Send HTTP request” action are enough; there is nothing to deploy on a server of your own.

json
// Shopify Flow "Send HTTP request" action
// 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 %}
  ]
}
No code · direct connection

Direct connection: your Cofactu catalogue in Shopify

Step 101

In Shopify, create a custom app for your store with write access to products and copy its Admin API token.

Step 202

In Cofactu, go to Catalogue → Public catalogue → Ecommerce integrations → “Connect Shopify”: name, .myshopify.com domain and the token.

Step 303

“Sync products” creates or updates in Shopify each product of your Cofactu catalogue. Stock is not synced from here.

No code

Alternative: Make or Zapier

  1. Step 1

    Create an API key in Cofactu (Settings → API keys) with permission to create invoices. The API is included from the SME plan and during the 30-day trial.

  2. Step 2

    In Make, use the “Shopify → Watch Orders” module filtering financial_status = paid; in Zapier, “Shopify → New Paid Order”.

  3. Step 3

    HTTP module: POST to https://api.cofactu.com/api/webhooks/ecommerce-orders with the header Authorization: Bearer vf_live_….

  4. Step 4

    Map order.name to externalOrderId and the line_items to lines. Shopify prices include VAT if that is how you set up taxes: send them without VAT (price / 1.21) or Cofactu will invoice too much.

The JSON Cofactu expects

One format for every store

POST https://api.cofactu.com/api/webhooks/ecommerce-orders with Authorization: Bearer vf_live_…. Prices exclude VAT and each line carries its tipoIva (VAT rate); client: null issues a simplified F2 invoice; externalOrderId makes the call idempotent. From Settings → Integrations → Ecommerce you can send a test order, which stays as a draft; real orders show up in Invoices with their AEAT status.

Settings → Integrations → Ecommerce ↗
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
}
Frequently asked questions

Shopify and VeriFactu, in short

Do the invoices Shopify generates comply with VeriFactu?

No. Shopify issues receipts and invoices with no chained hash, no verification QR code and no registration with the AEAT, which are the three requirements of Royal Decree 1007/2023 from 2027. The shop can stay on Shopify; the invoice has to be issued by a VeriFactu system.

Is there a Cofactu app in the Shopify App Store?

No. Shopify Flow, included in all plans, makes the webhook call without installing anything, and so do Make and Zapier. A Cofactu app for the App Store is not available and has no date.

What about the NIF (Spanish tax ID)? Shopify does not ask for it at checkout.

You can add a NIF field with Shopify Checkout Extensibility or ask for it in the “Company” field of the address. If it does not arrive, send client: null and a simplified F2 invoice is issued, valid for sales to end consumers.

What about returns and refunds?

A refund in Shopify does not cancel the invoice already registered: VeriFactu requires a corrective invoice (rectificativa). It is issued from Cofactu on the original invoice, linked by its number.

Is destination-country VAT applied if I sell to other EU countries?

Each line carries its own tipoIva, so the rate your Shopify tax settings apply is the one that reaches the invoice. The JSON is the same for all four stores: platform, externalOrderId, client (or null for a simplified F2 invoice) and lines with a price excluding VAT and a tipoIva (VAT rate) per line.

Other platforms

Other platforms

  1. 01 Magento VeriFactu on Magento
  2. 02 WooCommerce VeriFactu on WooCommerce
  3. 03 PrestaShop VeriFactu on PrestaShop
  4. 04 Ecommerce Full ecommerce comparison
  5. 05 VeriFactu VeriFactu guide
Start with a test order

Your store stays on Shopify.
The invoice, VeriFactu.

30 days with all of Cofactu, API included and no card, and a test order to see the first chained invoice. After that, the API starts at the SME plan.

See pricing ↗

(Start today)

Invoice with VeriFactu, file with the AEAT and keep your books in the same account. Start free: no card, nothing to install.

Your first invoice

  • Unlimited VeriFactu invoices with QR
  • No card needed
  • Full export of your data