What is Comply and where does it apply?
Comply is the fiscal compliance app for Shopify POS that covers the mandatory invoicing regimes in the following countries:
Country | Regime | Connects with the tax administration? |
🇪🇸 Spain | Verifactu | Yes (real-time with the AEAT) |
🇪🇸 Spain | SII | No (Comply generates the file; you or your accountant upload it) |
🇫🇷 France | NF525 | No (certified record storage) |
🇫🇷 Martinique, Guadeloupe, Réunion | NF525 | No (certified record storage) |
ℹ️ Comply works on Shopify POS sales linked to a location based in one of these countries. It does not handle standard Shopify online checkout sales.
Before you start
To test Comply in a development / test environment you need:
A Shopify store dedicated to development / testing (Partner development store or a client's staging store).
At least one active location in one of the supported countries (Spain, France, Martinique, Guadeloupe or Réunion).
Comply installed in the store.
That's all you need to start testing. Configuration steps differ per regime, so the next sections are organised by regime.
🇪🇸 Verifactu (Spain)
How to set it up
Follow the official step-by-step setup guide: 👉 Set up Comply for Verifactu
Is it safe to run tests?
Yes. Registration is performed against the test environment provided by the Spanish tax authority (AEAT), intended exclusively for technical verification of the e-invoicing requirements set out in the Verifactu regulation.
This means that invoices sent from this environment:
Have no legal validity.
Have no fiscal effect.
Do not create any tax obligation before the tax authority.
Because the store is a test store, you don't need to activate the production environment: once onboarding is complete, you're already running against the Verifactu test environment.
⚠️ Important: use real data
Even though the invoices have no fiscal effect, you must enter real data during registration. The reason is that you have to digitally sign the representation authorisation form (modelo de otorgamiento de representación), and the digital signature is only valid against the real data of the business owner.
Reminder. Real company data, but a test environment → zero fiscal impact.
🇪🇸 SII (Spain)
How Comply works with SII
For SII, Comply acts as the "fiscal ledger" of your Shopify POS sales, but it does not send anything directly to the tax authority. Specifically, Comply:
Records each invoice with a sequential number.
Stores all the data (VAT, tax ID, date, taxable base, etc.) in a structured format.
Lets you export a CSV file ready for SII.
You or your accountant then use that file to upload to SII through your accounting software.
Is it safe to run tests?
Absolutely. Since there is no connection between Comply and the tax authority for SII, you can run all the tests you need:
With your real data, or
With dummy data (fake tax ID, business name, amounts, etc.).
Nothing you record in Comply reaches the AEAT until you or your accountant manually upload the exported CSV.
🇫🇷 NF525 (France + overseas territories)
Applies to mainland France and to the French overseas territories of Martinique, Guadeloupe and Réunion.
How Comply works with NF525
For NF525, Comply does not communicate with the French public administration. Its role is to be the certified system for tamper-proof storage and retention of POS sales records, as required by the NF525 standard.
Is it safe to run tests?
Yes. You can run all the tests you need in your test environment using the real business data and performing whatever operations you want. Since Comply only stores and keeps the records (without sending them to any administration), the tests do not affect your business's tax obligations.
Summary table
Regime | Connects with the administration? | Real or dummy data? | Affects taxation? |
Verifactu (ES) | Yes, against the AEAT test environment | Real (required for the digital signature) | No, test invoices have no legal validity |
SII (ES) | No | Real or dummy, either works | No, until you manually upload the CSV |
NF525 (FR + overseas) | No | Real (recommended) | No, only records are stored |
