The problem
- →2026 mandatory reform — from September 2026, all B2B invoices in France must be in structured electronic format (Factur-X, UBL, CII). SaaS editors generating non-compliant HTML PDFs will be breaking the law.
- →Underestimated CII XML complexity — the EN16931 schema has 54 mandatory fields, 12 FNFE Schematron rules, and 3 distinct invoice types (380, 386, 381). A regular PDF never passes Peppol validators.
- →Prohibitive integration cost — a horstoeko/zugferd integration from scratch takes 2 to 6 senior developer weeks, for a result that drifts with each standard update.
Our solution
- →1 POST /invoices — passing buyer, lines and format (facturx/ubl/cii), you get a PDF/A-3b with embedded CII XML EN16931. The number automatically follows the ISCA ledger FAC-YYYY-NNNN sequence.
- →Automatic EN16931 validation — FNFE Schematron passed before each generation. 0 Peppol rejection. The 12 critical rules (BR-CO-*, BR-AE-*) are verified API-side, never client-side.
- →B2C, B2B and Peppol — B2C invoices without SIRET (buyer_is_individual), shipping address BG-13, automatic submit to SuperPDP/Peppol for regulated B2B flows.
6 Factur-X guarantees
Factur-X / UBL / CII format choice
The output_format parameter selects the format: facturx (PDF/A-3b + CII XML, FR/DE standard), ubl (OASIS, UK/BE/NL), cii (ISO 19005, B2G). All 3 pass EN16931 and Peppol validators.
Automatic Schematron validation
Before each generation: 12 FNFE rules, 7 CIUS-FR rules, BR-CO-* and BR-AE-* rules verified API-side. If input is invalid, 422 with the exact rule code. No non-compliant file ever exits.
B2C without SIRET (buyer_is_individual)
For consumer invoices: buyer_is_individual: true removes BT-46/47/48 tags (SIRET/VAT/legal ID) and L441-10 notices. Compliant EN16931 BR-CO-26. One endpoint, two modes.
Shipping address BG-13
buyer_shipping_address in the payload activates BG-13 tags (ship-to party EN16931). When absent or identical to billing address, the generator does not emit BG-13 (FNFE Schematron compliance, 0 warning).
Templates and sequential numbering
invoice_template_id customizes logo, colors, footer. FAC-YYYY-NNNN numbering is managed by the ISCA ledger with contiguous sequence_number: no gap, no duplicate.
S3 WORM archiving + ISCA hash
Each Factur-X file is stored on Scaleway S3 with Object Lock COMPLIANCE (11 years, deletion impossible). The SHA-256 hash enters the ISCA chain isolated by (tenant, sub_tenant). Two independent proofs.
Frequently asked questions
Ready for the 2026 reform?
Free sandbox. No credit card. First EN16931 Factur-X invoice in 5 minutes.