DEV Community

Olivier EBRAHIM
Olivier EBRAHIM

Posted on

Factur-X 2026 Implementation Cheatsheet for SMB Construction

Factur-X 2026 Implementation Cheatsheet for SMB Construction

Factur-X (officially ZUGFeRD 2.2 in France) became mandatory for all B2B invoices in France on January 1, 2026. If you're a small-to-medium construction firm, you're now required to generate e-invoices in this hybrid XML + PDF format. This cheatsheet breaks down what you actually need to do—without the jargon.


What is Factur-X Really? (The TL;DR)

Factur-X is a standard invoice format that embeds machine-readable XML inside a regular PDF file. Your customer's accounting system can automatically read the invoice—no manual entry, no copy-paste errors.

Key fact: You still send a PDF. Your client sees a normal invoice. But underneath, the government can intercept and validate the transaction for tax compliance.

Three compliance levels (choose ONE):

  1. Minimum (EN 16931) — ISO 20022 XML, very basic. Covers 95% of SMB needs.
  2. Extended — Same as Minimum, but with extra fields (construction-specific specs, site details).
  3. Full — All optional fields. Overkill for most construction teams.

Recommendation: Use Minimum with Extended fields if your clients ask for material lists.


Who Must Comply (Spoiler: Probably You)

Mandatory if:

  • You're a B2B service provider in France (including construction/BTP)
  • You invoice other businesses (not consumers)
  • Your annual revenue > €85,000 (threshold is low for BTP)

Exemptions:

  • Micro-enterprises with < €85k turnover (you can opt-in voluntarily)
  • Public sector (they have different rules)
  • Export invoices to non-EU countries (stay PDF-only for those)

Penalties for non-compliance: €15–50 per invoice. Not catastrophic, but adds up fast on 200 invoices/year.


Technical Must-Haves (The Implementation Checklist)

1. Invoice Data Schema (What Must Be Included)

You need to collect and encode:

  • Invoice metadata: Issue date, due date, invoice number (unique + sequential)
  • Party IDs: Your SIREN/VAT, customer SIREN/VAT, bank details
  • Line items: Description, quantity, unit price, VAT rate (20% standard in France)
  • Totals: Subtotal, VAT amount, total due, payment terms

Tool tip: If you use Anodos, the app auto-generates Factur-X XML from your quote data. One less thing to hand-code.

2. VAT Compliance (Your Tax Authority Watches)

  • All line items must declare VAT rate explicitly (20%, 10%, 5.5%, 2.1%, or exempt)
  • Reverse-charge rules apply if your customer is outside France but inside EU → you still collect VAT, but invoice shows 0%
  • Intra-community supplies → VAT moved to customer's country. Mark as exempt on your invoice.

Common mistake: Forgetting to declare VAT category in the XML. Your e-invoice will fail validation.

3. File Naming Convention

Factur-X files must follow this pattern:

SIREN_InvoiceNumber_IssueDate_ReceiverID.xml
Enter fullscreen mode Exit fullscreen mode

Example: 12345678_2026001_20260115_87654321.xml

→ If you use pre-built software, it handles this automatically.

4. PDF Embedding (The XML Goes Inside)

The XML metadata must be embedded as an attachment in the PDF file, using the XMP metadata spec:

  • Attachment name: factur-x.xml
  • MIME type: application/vnd.un:ubl+xml
  • PDF must stay human-readable (no scrambling)

Library suggestion (if coding yourself): Use Apache PDFBox or iText 7 (both handle XMP embedding). Most modern invoice SaaS already do this.


Common Gotchas (Avoid These)

Gotcha What Happens Fix
Missing customer VAT ID e-invoice rejected Always collect customer SIREN + check it's real (SIRENE API is free)
Round-trip rounding errors Math doesn't add up, validator fails Use banker's rounding (round to nearest even) on each line, then total
Date format wrong (DD/MM vs YYYY-MM-DD) Parser chokes Always use ISO 8601: YYYY-MM-DD in XML
Payment instructions unclear Customer's software can't route payment Explicit IBAN + BIC + payment term (e.g., "Net 30")
Duplicate invoice numbers Government system flags as fraud Use auto-increment; never reuse an invoice number

How to Test Your Invoices (Before Going Live)

The French tax authority provides a free validator:

Also use Verifone's Factur-X Validator (third-party, very reliable):

Pro tip: Test with 5–10 dummy invoices before rolling out to your entire customer base.


Next Steps: Pick Your Tool

You have 3 options:

  1. Hand-code (Not recommended for SMB)

    • Use a library (PDFBox, iText, or Framasoft's libre-invoice)
    • Requires a developer, ongoing maintenance
  2. Use off-the-shelf SaaS (Recommended)

    • Anodos — French BTP-focused, voice-to-quote + Factur-X built-in, from €49/month
    • Wave, Zoho Books — generic SaaS with Factur-X add-ons
    • Local BTP software (Gesy, Keobat, etc.) — many now have compliance modules
  3. Hybrid: Accounting software with Factur-X plugin

    • QuickBooks France, Sage 100, Ciel Compta
    • Often cheaper than dedicated SaaS if you already use them

Recap: Your Action List for 2026

  • [ ] Audit your invoicing system — does it support Factur-X? If no, start migration now.
  • [ ] Collect customer SIREN/VAT (if not already stored)
  • [ ] Test 10 invoices on Chorus-Pro or Validata
  • [ ] Brief your team: "All invoices from Jan 1 are now XML-inside-PDF"
  • [ ] Set up a compliance calendar — monthly audit (are we still generating valid Factur-X?)

References & Tools


Olivier Ebrahim

Founder, Anodos — Real-time construction site management + voice-powered quote generation + Factur-X 2026 compliance built-in.

Top comments (0)