Documentation
How Facturette behaves, in detail. For setup, see the getting started guide; for what is usually asked before installing, the frequently asked questions.
What triggers an invoice
| Shopify event | What Facturette produces |
|---|---|
| Order paid | An invoice |
| Refund | A credit note, against the invoice in force for that order |
| Order paid before the app was installed | Nothing automatically — the invoice can be issued by hand from Factures |
An order never yields two invoices: a redelivery from Shopify is recognised and ignored.
An invoice is refused — so not issued, and without consuming a number — in two cases: Réglages is incomplete, or Shopify does not supply the buyer's name. The second is almost always the effect of a missing approval on protected customer data: the API then answers without an error and with empty fields. Facturette refuses rather than inventing a buyer, because no compliance check detects a false name — only a missing one.
Numbering
Two independent series, one per document type, reset each year:
FA-2026-000001 invoices
AV-2026-000001 credit notes
The prefix is set under Réglages. Both series are chronological and unbroken: a number is never skipped, never reused, and a failure during issuance consumes no number. That is a legal requirement, and the reason an issued invoice cannot be modified.
The date the invoice carries (BT-2) is the date it was issued, in universal time (UTC). It is the same calendar as the date printed on the PDF, the column in the list and the CSV export — so a document cannot be filed under a different month depending on where you look at it.
The document produced
A Factur-X file: a conforming PDF/A-3 carrying an embedded CII EN 16931 XML named
factur-x.xml. A human reader opens the PDF; accounting software or a platform reads the XML. It is
one file, not two.
Its conformance is checked continuously against the official schemas, the EN 16931 business rules, the French BR-FR rules and the PDF/A-3B standard, and the text actually printed on the page is checked separately — a mandatory mention can be present in the XML and absent from the paper.
The document is bilingual French/English in every case, with no detection of the buyer's language: the law requires French on an invoice and allows a translation to accompany it.
How a business buyer is recognised
In this order, the first source present wins:
| Source | Where the merchant fills it in |
|---|---|
Customer metafield facturette.siren |
Customer record, field created by the app |
| Customer's VAT number | Customer record → Tax details, Shopify's native field |
Customer metafield facturette.peppol_address |
Customer record, field created by the app |
A French VAT number contains the SIREN, and its check digits are verified before it is believed: a mistyped number is discarded rather than addressing the invoice to a business that does not exist. A non-French VAT number is never used to derive a SIREN — those buyers need the address metafield.
With none of the three, the order is a consumer sale.
B2B filing and B2C e-reporting
These are two different obligations, and one sale never follows both.
- B2B — the invoice is transmitted to your plateforme agréée, which routes it to your customer's. That is article 289 bis of the French tax code, and it requires the paid plan and a connected platform.
- B2C — no document is transmitted. Facturette accumulates the day's turnover per VAT rate and declares it, never naming the buyer.
A refused deposit is never blindly retried. A document the platform refused on a formal defect can be re-filed; a document the recipient refused cannot — it is already with them, and a second send would create a duplicate a tax platform cannot withdraw. The Conformité page therefore only offers the remedy that applies.
Correcting an invoice
An issued invoice is not modified. Two operations, and the app refuses the one that does not apply:
Re-file — the document is correct and simply never went out (free plan at the time of issuance, platform not yet connected, technical failure). Same number, date and content. Possible for as long as the document exists, so 30 days.
Cancel and replace — the document itself is wrong: wrong buyer, wrong address, missing identifier. Facturette corrects the data at source, in Shopify, then issues two documents: a credit note that voids the original and carries the required cancellation mention, and a replacement invoice that corrects it and references it. The before/after is shown to you before anything is issued, and a correction that would change nothing is refused.
A refund always produces a credit note against the invoice in force, not against the one that was voided.
The buyer's link
Facturette sends no e-mail. It puts four metafields on the Shopify order, in the facturette
namespace:
| Key | Contents |
|---|---|
invoice_number |
The invoice number |
customer_invoice_url |
The link to give the buyer |
invoice_pdf_url |
The PDF, for the signed-in merchant only |
invoice_xml_url |
The XML, for the signed-in merchant only |
Only customer_invoice_url can be used in a customer e-mail: the other two require an admin
session, and a buyer clicking them would get nothing. The Envoi au client page supplies the Liquid
snippet that uses the right one.
The link lives 30 days and carries a 256-bit token; it reveals nothing beyond the invoice it designates. Regenerating it from the invoice list immediately invalidates the previous one. If the invoice was cancelled and replaced, an old link serves the document in force, never the one that was voided.
The accounting export
From Factures, over a chosen period: one row per document and per VAT rate, which is the shape of a French VAT journal rather than a table with fixed columns — an unusual rate is never lost.
Conventions: ; separator, comma decimals, ISO 8601 dates, UTF-8 with a BOM so that Excel in French
does not mangle the accents. The file contains no personal data: no buyer name, no address, no
product title.
Data and privacy
The document — the only place your buyer's name and address appear — is erased after 30 days. What survives afterwards names nobody: number, date, order reference, amounts per rate and the document's fingerprint.
Erasure and access requests forwarded by Shopify are honoured, including for work still queued. No data is resold or used to train anything. The detail is in the privacy policy.
Known limits
- Amounts and the VAT rate cannot be changed after payment: Shopify freezes them, and Facturette does not offer to retype them. A VAT correction is precisely the case the tax administration watches, and it does not belong in a form.
- An order paid before the app was installed is not invoiced automatically; it can be invoiced by hand, and then carries the date of the day you do it.
- Nothing checks that an order invoiced by hand is paid. The automatic door is payment; issuing by hand does not replay that check.
- The buyer's link goes through the store's
myshopify.comdomain, even if you have a custom primary domain: your customer sees a redirect. - A credit note issued on a refund publishes no buyer link. It is issued, filed and downloadable, but passing it on is up to you.