An order comes in once.
It goes out invoiced and registered.

VeriFactu for online stores in Spain

Cofactu takes the sale from your checkout, keeps its taxes and creates the VeriFactu record (Spain's tamper-proof invoice record) without your team copying the order again.

See the order's route ↓

WooCommerce · Shopify · PrestaShop · Make/Zapier · universal webhook

Integrations · ecommerce

Checkout → AEAT

01Capabilities summary Real-time VeriFactu Every order your store sends to the webhook becomes an invoice, is chained and goes to the AEAT (the Spanish Tax Agency) in the background, with nobody typing it in. The response CSV is stored on the invoice and the QR code on the PDF leads to the AEAT website.
02Capabilities summary Your accountant does not lift a finger Sales go straight from your checkout to the AEAT. Your accountant only reviews the monthly summary from their panel — no XML to import, no invoices to paste, no reconciliations.
03Capabilities summary Any store that can call a URL WooCommerce (direct connection or hook), Shopify (Flow or Make), PrestaShop, Magento, Squarespace, Wix, BigCommerce and any custom store through the universal webhook. No plugins to install: Cofactu has none in the extension stores.
04Capabilities summary Multi-store and multi-tenant An accounting firm with 10 clients who have online stores? One panel. Several marketplaces of your own? Each with its own FNMT certificate, with no overlap.
Live route

From checkout to the official response.
With no second data entry.

The same sale goes through four states and keeps the link between order, invoice and CSV.

Sales · live · WooCommerce connected (illustrative example)
OrderPlatformAmountInvoiceStatus
#1042WooCommerce€89.90F-2026-00318AEAT · CSV
#1041Shopify€149.00F-2026-00317AEAT · CSV
#1040PrestaShop€34.50F-2026-00316sending…

The AEAT CSV is stored on each invoice, next to its order.

What each step keeps

Four states.
One source.

  1. 01

    A customer buys in your store

    WooCommerce / Shopify / PrestaShop emits the 'order created' event, just as it already does.

  2. 02

    Cofactu receives it in milliseconds

    Through the universal webhook, from the store hook or from Make. Customer, lines and VAT arrive in the JSON: with a NIF, a full invoice; without one, a simplified F2.

  3. 03

    Chained and submitted invoice

    VeriFactu SHA-256 fingerprint and authenticated submission with your FNMT certificate, all in the background.

  4. 04

    Registered with the AEAT, with CSV

    The AEAT response and its CSV are stored on the invoice, and the QR code on the PDF lets your customer verify it on the AEAT website.

Scroll
Coverage by layers

Direct where it already exists.
Open for everything else.

A direct connection with WooCommerce, automation for the rest and a documented webhook for a custom store.

  1. 01 WooCommerce Direct connection, WordPress hook or Make · no WordPress.org plugin. A twenty-line mu-plugin on woocommerce_payment_complete calls the webhook and every paid order ends up invoiced to the AEAT. With no code, the direct catalogue connection receives the orders and prepares the invoice as a draft. There is no Cofactu plugin on WordPress.org.
  2. 02 Shopify Shopify Flow or Make · no App Store app. Shopify Flow (included in Shopify plans) fires “Order paid → Send HTTP request” against the webhook. There is no Cofactu app in the App Store.
  3. 03 PrestaShop actionPaymentConfirmation hook or Make. A minimal module that registers the payment hook and makes the POST. There is no Cofactu module in Addons.
  4. 04 Magento 2 / Adobe Commerce Observer or Make. An observer on sales_order_invoice_pay or a Make scenario with the Magento 2 module. There is no Cofactu module in the Marketplace.
  5. 05 Make / Zapier HTTP module against the webhook. Covers Squarespace, Wix, BigCommerce, Etsy and any platform with a connector: the HTTP module POSTs to the webhook with your API key. Zero code on your side.
  6. 06 Any custom ecommerce Documented HTTP webhook. POST /api/webhooks/ecommerce-orders with a normalised payload, idempotent per order. Your developer implements it in an afternoon.
Documented comparison

Cofactu versus Holded,
Quipu and Billin.

Each criterion with Cofactu's answer next to each competitor's, grouped by category: real-time VeriFactu, platform coverage, accounting firms, volume and price.

Cofactu versus Holded, Quipu and Billin on ecommerce integrations
CriterionCofactuHoldedQuipuBillin
Real-time VeriFactu · Every order = chained invoice + submission to the AEAT on arrivalYes — the webhook creates the invoice and queues it for the AEAT (with your certificate uploaded)Manual / daily batchManual / batchManual
Real-time VeriFactu · Automatic retry if the AEAT is downAsync queue with automatic retriesManual onlyManual onlyManual only
Real-time VeriFactu · Detection + repair of a broken chain (error 4171)Yes — 1 clickNoNoNo
Platform coverage · WooCommerce (~70% of Spanish ecommerce)Direct connection (orders and catalogue) or universal webhook · no plugin on WordPress.orgNative connectorOfficial pluginPlugin
Platform coverage · ShopifyShopify Flow, Make or Zapier against the webhook · no App Store appNative connectorVia ZapierVia Zapier
Platform coverage · PrestaShopVia universal webhook or MakeNative connectorPluginNo
Platform coverage · Make / Zapier (covers Squarespace, Wix, BigCommerce, Etsy…)Make or Zapier HTTP module against the webhook (no app of our own)Zapier only (partial)Zapier onlyZapier only
Platform coverage · Universal HTTP webhook (any custom ecommerce)POST /api/webhooks/ecommerce-orders, normalised payload, documented on this site and in the appPrivate API, not documented for ecommerceGeneric API, not ecommerce-specificGeneric API
Multi-tenant accounting firms · One accounting firm can manage N stores for N clientsYes — one panel, instant switchYes, but €25/month per accounting-firm subaccountLimitedNo
Multi-tenant accounting firms · A different AEAT certificate per client with no re-deployYes — multi-tenant mTLS proxy with LRULimitedUnclearNo
Volume / performance · High daily sales volumeCloudflare Workers + async queue: the order does not wait for the AEATPerformance degrades at high volume (reported)OK up to medium volumesBuilt for the self-employed
Volume / performance · No double data entry for the end customerYes — the order arrives through the webhook and nobody retypes itYes (when the connector is configured properly)YesPartial
Pricing · Cost of the ecommerce integrationIncluded from the SME plan, €39/month (no extra)Connector included, but Inventory/POS/extra modules are "gems" that push the price upPlugin included in the relevant planIncluded

Holded and Quipu sync sales, but VeriFactu invoicing is triggered on demand. In Cofactu the invoice is born in the same webhook call and goes to the AEAT in the background.

Connect your first sale

Your store keeps selling.
Cofactu prepares the proof.

There are no Cofactu plugins in the extension stores: we help you leave Make or the webhook connected.

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