Le problème
- →Réforme 2026 obligatoire — dès septembre 2026, toutes les factures B2B en France doivent être en format électronique structuré (Factur-X, UBL, CII). Les éditeurs SaaS qui génèrent des PDF HTML non-conformes seront hors-la-loi.
- →Complexité XML CII sous-estimée — le schéma EN16931 a 54 champs obligatoires, 12 règles Schematron FNFE, et 3 types de factures distincts (380, 386, 381). Un PDF ordinaire ne passe jamais les validateurs Peppol.
- →Coût intégrateur prohibitif — une intégration horstoeko/zugferd from scratch prend 2 à 6 semaines développeur senior, pour un résultat qui diverge à chaque mise à jour de la norme.
Notre solution
- →1 POST /invoices — en passant le buyer, les lignes et le format (facturx/ubl/cii), vous obtenez un PDF/A-3b avec XML CII EN16931 intégré. Le numéro suit automatiquement la séquence FAC-YYYY-NNNN du ledger ISCA.
- →Validation EN16931 automatique — Schematron FNFE passé avant chaque génération. 0 rejet Peppol. Les 12 règles critiques (BR-CO-*, BR-AE-*) sont vérifiées côté API, jamais côté client.
- →B2C, B2B et Peppol — factures B2C sans SIRET (buyer_is_individual), adresse de livraison BG-13, submit automatique vers SuperPDP/Peppol pour les flux B2B réglementés.
6 garanties Factur-X
Factur-X / UBL / CII au choix
Le paramètre output_format sélectionne le format : facturx (PDF/A-3b + XML CII, standard FR/DE), ubl (OASIS, UK/BE/NL), cii (ISO 19005, B2G). Les 3 passent EN16931 et les validators Peppol.
Validation Schematron automatique
Avant chaque génération : 12 règles FNFE, 7 règles CIUS-FR, règles BR-CO-* et BR-AE-* vérifiées côté API. Si l'input est invalide, 422 avec le code de règle exact. Aucun fichier non-conforme ne sort.
B2C sans SIRET (buyer_is_individual)
Pour les factures grand public : buyer_is_individual: true supprime les balises BT-46/47/48 (SIRET/TVA/ID légal) et les mentions L441-10. Conforme EN16931 BR-CO-26. Un seul endpoint, deux modes.
Adresse de livraison BG-13
buyer_shipping_address dans le payload active les balises BG-13 (ship-to party EN16931). Quand absente ou identique à l'adresse de facturation, le générateur n'émet pas BG-13 (conformité Schematron FNFE, 0 warning).
Templates et numérotation séquencée
invoice_template_id personnalise logo, couleurs, pied de page. La numérotation FAC-YYYY-NNNN est gérée par le ledger ISCA avec sequence_number contigu : aucun trou, aucun doublon.
Archivage S3 WORM + hash ISCA
Chaque fichier Factur-X est stocké en S3 Scaleway avec Object Lock COMPLIANCE (11 ans, suppression impossible). Le hash SHA-256 entre dans la chaîne ISCA isolée par (tenant, sub_tenant). Double preuve indépendante.
Questions fréquentes
Prêt pour la réforme 2026 ?
Sandbox gratuit. Pas de carte de crédit. Première facture Factur-X EN16931 en 5 minutes.