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.
An order comes in once.
It goes out invoiced and registered.
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.
WooCommerce · Shopify · PrestaShop · Make/Zapier · universal webhook
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. 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.
| Order | Platform | Amount | Invoice | Status |
|---|---|---|---|---|
| #1042 | WooCommerce | €89.90 | F-2026-00318 | AEAT · CSV |
| #1041 | Shopify | €149.00 | F-2026-00317 | AEAT · CSV |
| #1040 | PrestaShop | €34.50 | F-2026-00316 | sending… |
The AEAT CSV is stored on each invoice, next to its order.
Four states.
One source.
- 01
A customer buys in your store
WooCommerce / Shopify / PrestaShop emits the 'order created' event, just as it already does.
- 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.
- 03
Chained and submitted invoice
VeriFactu SHA-256 fingerprint and authenticated submission with your FNMT certificate, all in the background.
- 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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.
| Criterion | Cofactu | Holded | Quipu | Billin |
|---|---|---|---|---|
| Real-time VeriFactu · Every order = chained invoice + submission to the AEAT on arrival | Yes — the webhook creates the invoice and queues it for the AEAT (with your certificate uploaded) | Manual / daily batch | Manual / batch | Manual |
| Real-time VeriFactu · Automatic retry if the AEAT is down | Async queue with automatic retries | Manual only | Manual only | Manual only |
| Real-time VeriFactu · Detection + repair of a broken chain (error 4171) | Yes — 1 click | No | No | No |
| Platform coverage · WooCommerce (~70% of Spanish ecommerce) | Direct connection (orders and catalogue) or universal webhook · no plugin on WordPress.org | Native connector | Official plugin | Plugin |
| Platform coverage · Shopify | Shopify Flow, Make or Zapier against the webhook · no App Store app | Native connector | Via Zapier | Via Zapier |
| Platform coverage · PrestaShop | Via universal webhook or Make | Native connector | Plugin | No |
| 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 only | Zapier only |
| Platform coverage · Universal HTTP webhook (any custom ecommerce) | POST /api/webhooks/ecommerce-orders, normalised payload, documented on this site and in the app | Private API, not documented for ecommerce | Generic API, not ecommerce-specific | Generic API |
| Multi-tenant accounting firms · One accounting firm can manage N stores for N clients | Yes — one panel, instant switch | Yes, but €25/month per accounting-firm subaccount | Limited | No |
| Multi-tenant accounting firms · A different AEAT certificate per client with no re-deploy | Yes — multi-tenant mTLS proxy with LRU | Limited | Unclear | No |
| Volume / performance · High daily sales volume | Cloudflare Workers + async queue: the order does not wait for the AEAT | Performance degrades at high volume (reported) | OK up to medium volumes | Built for the self-employed |
| Volume / performance · No double data entry for the end customer | Yes — the order arrives through the webhook and nobody retypes it | Yes (when the connector is configured properly) | Yes | Partial |
| Pricing · Cost of the ecommerce integration | Included from the SME plan, €39/month (no extra) | Connector included, but Inventory/POS/extra modules are "gems" that push the price up | Plugin included in the relevant plan | Included |
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.
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.








