Le même fichier, le même ruleset, le même verdict — dans dix ans.

Factlint valide une facture électronique et vous rend soit un document exploitable, soit la liste exacte de ce qui manque : pour chaque manque, sa règle, sa localisation, et s'il est corrigeable automatiquement ou non.

Un verdict daté, rejouable des années plus tard

Un jeu de règles de facturation électronique bouge plusieurs fois par an. Factur-X est passé de 1.08 à 1.09 en huit mois, le Schematron CEN sort environ deux versions par an, et les spécifications externes de la DGFiP sont passées de V3.0 à V3.2 en seize mois. Conséquence concrète : une facture régulière au moment de son émission peut être refusée par les règles appliquées deux ans plus tard, sans que rien n'ait changé dans le document.

La plupart des validateurs basculent automatiquement sur les dernières règles. C'est commode au quotidien, et cela rend leurs verdicts irrejouables : le même fichier soumis à deux dates donne deux réponses, sans moyen de reconstituer la première.

Chez Factlint, chaque verdict porte l'identifiant, l'empreinte et la date d'effet du jeu de règles qui l'a produit, ainsi que la version de chaque artefact utilisé. Le bundle complet est conservé exécutable pendant la durée d'archivage fiscal.

Épingler une version

Un pipeline d'intégration continue qui épingle fr-2026-08 ne cassera pas parce qu'un artefact amont a bougé un mardi matin.

Rejouer un verdict contesté

Le mode as_of_issue_date résout le jeu de règles depuis la date d'émission de la facture, et vous dit lequel il a retenu et pourquoi.

Tester avant la date d'effet

Un ruleset anticipé est publié dès la sortie de l'artefact amont : vous testez en octobre ce qui sera exigé en janvier.

Trois issues, jamais une de plus

Chaque anomalie tombe dans l'une de trois catégories, et la frontière entre elles n'est pas technique mais juridique.

IssueCe que fait Factlint
autoL'anomalie est structurelle et la valeur attendue se déduit du document. Elle est corrigée, et la correction est tracée avec son avant, son après et son XPath.
inputLa donnée n'existe nulle part dans le document : vous seul l'avez. Elle est signalée, jamais remplie avec une valeur par défaut.
blockedChamp financier — montant, taux ou base de TVA, IBAN. La valeur attendue est calculée et vous est proposée, mais elle n'est jamais écrite, même sur demande explicite.

Pourquoi ne pas corriger un montant ? Une facture déjà émise ne se corrige pas par une API mais par un avoir et une facture rectificative. Modifier un montant déplacerait vers nous une responsabilité qui est celle de l'émetteur — et le consentement contractuel d'un client ne protège pas contre un tiers qui contesterait l'intégrité du document. Nous calculons et proposons ; nous n'écrivons pas.

Une page par code d'erreur

Chaque code rendu par l'API porte un docs_url qui pointe vers une page expliquant ce que la règle vérifie, pourquoi elle tombe, et ce qu'il faut faire.

Voir les 14 codes documentés →

À qui ça s'adresse

Factlint s'adresse à ceux qui construisent les logiciels qui produisent des factures : éditeurs de logiciels métier, intégrateurs d'ERP, et plateformes en amont de leur transmission. Le signal qui compte n'est pas de vouloir générer un PDF, c'est d'avoir déjà subi un rejet en masse, un contrôle ou un litige.