Validez et corrigez vos factures électroniques par API.
Déposez un Factur-X, un CII ou un UBL : Factlint le juge contre l'EN 16931 et le socle national visé, et rend soit un document exploitable, soit la liste exacte de ce qui manque — pour chaque défaut, sa règle, sa localisation XPath, et s'il est corrigeable automatiquement.
Le même fichier, le même ruleset, le même verdict — dans dix ans.
curl -X POST https://api.factlint.com/v1/validate \ -F "file=@facture_2026_048.pdf" \ -F "ruleset=eu-en16931-2026-08" \ -F "pinned=true"
- émission — tous les autres assujettis résidents
Les garanties non négociables de Factlint
Conçu pour les architectes et développeurs exigeants. Une infrastructure de validation statutaire, zéro confiance et reproductible.
Rien n'est conservé
Confidentialité RGPD totaleTraitement 100 % volatile en mémoire vive (RAM). Le payload de vos factures (noms de clients, adresses, montants, coordonnées bancaires IBAN) n'est jamais sauvegardé sur disque ni écrit dans des fichiers de logs.
Verdicts rejouables
Chaque rapport d'évaluation est adossé à un jeu de règles épinglé, horodaté et hashé (SHA-256). Même si la norme évolue, le verdict produit reste identique et vérifiable dans 10 ans.
Aucun montant écrit
Les écarts financiers (TVA, totaux HT/TTC, bases d'imposition) sont calculés et suggérés dans le champ suggested_value. Ils ne sont jamais réécrits automatiquement pour préserver votre responsabilité juridique.
Sans inscription préalable
Accès immédiatL'endpoint de validation POST /v1/validate est ouvert, gratuit et accessible immédiatement sans nécessiter de création de compte ou de clé API pour vos tests d'intégration.
Ce qui entre, ce qui sort
Votre facture entre, un document exploitable en sort
Ou, à défaut, la liste exacte de ce qui manque — avec sa règle, sa localisation et qui doit le fournir. Il n’y a pas de troisième réponse.
La facture est conforme
Elle repart telle quelle. Votre chaîne continue sans intervention.
status: passed
Une donnée manque
Factlint dit laquelle, où, et sous quelle règle. Il ne la fabrique jamais : un numéro de facture inventé est pire qu’un champ vide.
status: needs_input
Le défaut est structurel
Factlint le corrige et rend le diff exact, par XPath. Format de date, séparateur décimal, casse d’un code devise, enveloppe PDF/A-3.
status: fixed
Un montant ne tombe pas juste
Factlint calcule la valeur attendue et la propose — il ne l’écrit jamais. Un montant, un taux de TVA ou un IBAN ne se corrigent pas à la place de l’émetteur.
status: blocked
Il faut pouvoir le prouver
Le pack de preuve scelle le verdict avec l’empreinte du jeu de règles qui l’a rendu. Rejouable à l’identique pendant la durée d’archivage fiscal.
pack de preuve
Le pipeline de conformité
Cinq briques atomiques indépendantes, ou un appel unique POST /v1/process pour tout orchestrer.
Valider
5 niveaux de contrôle automatisés
Corriger
Correction automatique des anomalies
Vérifier les tiers
Contrôle en direct des SIREN / TVA
Convertir
Extraction ou attachement du XML
Sceller
Preuve cryptographique du verdict
Fonctionnement de l’étape Valider
Conteneur PDF/A-3 (veraPDF), pièces jointes et XMP, cohérence de profil, validation XSD, puis Schematron européens (CEN EN 16931) et nationaux.
Besoin de tout exécuter en une seule requête ?
L'endpoint /v1/process enchaîne automatiquement la validation, l'autofix, l'enrichissement BAN/VIES, la conversion et le scellement cryptographique en un unique appel HTTP.
Un verdict daté et rejouable des années plus tard
Un jeu de règles réglementaires évolue constamment (passage de Factur-X 1.08 à 1.09, révision semestrielle CEN, spécifications DGFiP V3.0 à V3.2). Une facture régulière à son émission risque d'être refusée à tort deux ans plus tard par un validateur récent.
Chez Factlint, chaque verdict porte l'identifiant exact, le hash SHA-256 et la date d'effet du ruleset ainsi que de chaque artefact utilisé (Schematron, XSD, veraPDF, Saxon).
Le manifeste eu-en16931-2026-08 est intégralement scellé. Les artefacts (Saxon 12.5, Schematron CEN 1.3.16) sont hashés et conservés exécutables.
Une page par code d'erreur
Chaque erreur retournée par l'API est documentée avec son explication technique, la norme associée et la marche à suivre pour la corriger.
Le montant TTC ne correspond pas au total HT augmenté de la TVA
Le montant total TTC (BT-112) doit être exactement égal au total HT (BT-109) augmenté du montant total de TVA (BT-110).
Le profil déclaré dans le XMP diffère de celui du XML
`fx:ConformanceLevel` dans les métadonnées XMP du PDF doit correspondre à l'URN de profil déclaré dans le XML embarqué.
Le profil colorimétrique de sortie est absent
Un PDF/A-3 doit déclarer un OutputIntent avec un profil ICC — en pratique sRGB pour une facture.
L'identifiant de spécification est absent
La facture doit déclarer l'URN du profil auquel elle se conforme, dans `ram:GuidelineSpecifiedDocumentContextParameter/ram:ID`.
L'Europe bascule pays par pays
10 juridictions suivies, chaque ligne sourcée et datée. Les statuts sont calculés depuis les dates, jamais saisis à la main — c'est ce qui les empêche d'être périmés sans que personne ne s'en aperçoive.
émission — tous les autres assujettis résidents.
émission — entreprises dont le chiffre d'affaires dépasse 800 k€.
émission — micro-entreprises.
réception et e-reporting — non-assujettis à la TVA.
Déposez une facture, voyez ce qui casse
Cinq niveaux de contrôle automatisés, un rapport lisible, et le détail de ce qui a tourné. Sans compte, sans clé d'API, sans limite de volume — et le document n'est jamais conservé.