NouveauVérification PINT AE gratuite pour les Émirats
API développeur · Côté réception

InvoiceIn.

Chaque facture électronique reçue, en un seul JSON.

Un seul endpoint sans état. Envoyez en POST ce qui arrive dans votre boîte de réception — XRechnung, ZUGFeRD, Factur-X, Peppol BIS 3, FatturaPA, KSeF — et récupérez un JSON canonique EN 16931, un rapport de validation qui dit ce que l'émetteur doit corriger, un PDF lisible par un humain, et un export CSV ou DATEV pour la comptabilité. Traitement en mémoire, ~10–50 ms par document.

Traitement en mémoire uniquement. Rien n'est stocké. Aucun point d'accès Peppol requis.

Pourquoi ce produit existe

Depuis le 1er septembre 2026, vos clients reçoivent leurs factures fournisseurs en Factur-X, UBL ou CII via leur PDP (plateforme de dématérialisation partenaire) — et XRechnung en Allemagne, KSeF en Pologne, FatturaPA en Italie — alors que votre code a été écrit pour des PDF. Au lieu de cinq parsers et cinq jeux de règles, vous nous envoyez le fichier et recevez un seul JSON, plus la liste de ce qui ne va pas, formulée de façon qu'un comptable puisse la transmettre au fournisseur. Nous ne conservons jamais le document.

Démo en direct

Déposez une vraie facture que vous avez reçue. Nous la lisons, la validons avec les jeux de règles officiels et affichons les indications de correction — rien n'est conservé.

XML ou PDF hybride, jusqu'à 10 Mo. Ou choisissez-en un avec le bouton.

Langue des indications

Démo : 20 factures par jour, sans clé. Les fichiers sont traités en mémoire puis supprimés.

Ce que vous obtenez

Cinq sorties. Un seul appel.

01 · JSON

JSON canonique EN 16931

Une seule structure pour toutes les syntaxes. Champs nommés d'après le modèle sémantique avec les numéros BT/BG : vendeur, acheteur, lignes, ventilation de TVA, totaux, paiement et IBAN, références, pièces jointes. Les extensions nationales se trouvent sous extensions.

02 · Validation

Rapport avec indications de correction

Jeux de règles officiels plus contrôles arithmétiques croisés. Chaque règle en échec est accompagnée d'une indication en langage clair, en anglais, allemand, français, italien ou polonais — ce que l'émetteur doit modifier et quel champ (numéro BT) est concerné.

03 · Rendu

PDF ou HTML lisible par un humain

Même mise en page A4 pour toutes les syntaxes, libellés en anglais, allemand, français, italien ou polonais. Pour l'approbateur qui veut voir la facture, pas le XML.

04 · Export

CSV et DATEV

CSV à plat par ligne ou par document, et un lot d'écritures DATEV (Buchungsstapel EXTF 700, le format comptable allemand) pour la facture reçue — SKR03 ou SKR04, votre compte fournisseur.

05 · Agents

Serveur MCP

À distance sur /mcp ou en local via stdio. Claude, Cursor, n8n ou votre propre agent lit et valide une facture en un seul appel d'outil.

Formats

Ce qui entre, ce qui est vérifié.

La détection est automatique — envoyez le fichier, nous vous disons ce que c'était. Les PDF hybrides sont ouverts et le XML embarqué est extrait ; le PDF lui-même n'est jamais écrit sur disque.

Formats d'entrée pris en charge et validation appliquée à chacun
FormatSyntaxeConteneurValidation appliquée
XRechnung 3.0UBL 2.1 ou CII D16BXMLXSD · Schematron EN 16931 1.3.17 · XRechnung 3.0.2 · arithmétique
EN 16931UBL 2.1 ou CII D16BXMLXSD · Schematron EN 16931 1.3.17 · arithmétique
Peppol BIS Billing 3UBL 2.1XMLXSD · EN 16931 · règles Peppol BIS 3 · arithmétique
ZUGFeRD 2.x / Factur-X — EN 16931, EXTENDED, XRECHNUNGCII D16BPDF/A-3 hybride ou XML seulXSD · Schematron EN 16931 1.3.17 · arithmétique
ZUGFeRD 2.x / Factur-X — BASIC, BASIC WL, MINIMUMCII D16BPDF/A-3 hybride ou XML seulXSD · règles de profil Factur-X 1.09.2 (FX-SCH) · arithmétique (les règles de base EN 16931 ne s'appliquent pas sous le profil EN 16931)
ZUGFeRD 1.0CII (CrossIndustryDocument 1p0)PDF/A-3 hybride ou XML seulSchéma · arithmétique
FatturaPA 1.2FatturaPAXMLXSD FatturaPA 1.2.2 · arithmétique (fichiers multi-corps renvoyés en lot)
KSeF FA(2) / FA(3)Schéma FAXMLXSD FA(2) / FA(3) · arithmétique
France — CTC-FR (vendeur et acheteur établis en France)UBL 2.1 ou CII D16BXML ou PDF Factur-XXSD · EN 16931 · FNFE CTC-FR 1.4.0.04 (règles BR-FR, Flux 2) · arithmétique
RO e-Factura (CIUS-RO)UBL 2.1XMLXSD · CIUS-RO 1.0.1, qui intègre déjà les règles EN 16931 · arithmétique
Émirats arabes unis — PINT AE (Billing, Self-Billing)UBL 2.1XMLXSD · OpenPeppol PINT AE 1.0.4 (règles PINT communes + règles émiraties) · page de vérification gratuite (EN)

Les versions des règles sont aussi listées en direct sur GET /v1/formats. Il manque un format que vous recevez ? Dites-le-nous.

Pour qui

Conçu pour les équipes qui doivent désormais recevoir ces factures.

Recevoir des factures structurées n'est plus optionnel : Allemagne depuis le 1er janvier 2025, Belgique via Peppol depuis janvier 2026, KSeF en Pologne pour le B2B depuis le 1er avril 2026, France pour toutes les entreprises depuis le 1er septembre 2026. Le côté réception a besoin d'un parser, d'un validateur et d'un moyen de montrer la facture à un humain — c'est tout le produit.

SaaS de comptabilité fournisseurs

Vos clients vous transmettent ce que leurs fournisseurs envoient. Un endpoint transforme six syntaxes en un seul JSON que votre flux de rapprochement et d'approbation comprend déjà — plus une indication à transmettre au fournisseur quand son fichier est incorrect.

Plugins ERP & e-commerce

Dolibarr, InvoicePlane, Sylius, Shopware, Odoo — un plugin capable de lire les Factur-X et XRechnung reçues est une fonctionnalité livrable dans ce sprint, au lieu d'un projet de parser de six mois. Pas de Java, pas de chaîne d'outils Schematron dans votre build.

Agences qui outillent des PME

Vos petits clients en France, en Belgique, en Allemagne, en Italie et en Pologne reçoivent des factures électroniques et vous demandent quoi en faire. Valider, afficher, exporter en CSV ou DATEV — et renvoyer le rejet à l'émetteur avec le champ exact à corriger.

API

Trois lignes jusqu'à votre première lecture.

Envoyez le fichier comme champ multipart file ou comme corps brut XML/PDF. Authentifiez-vous avec Authorization: Bearer <key> ou X-Api-Key. Sans clé, vous disposez du quota démo : 20 factures par IP et par jour.

curl -X POST "https://invoicein-api.peculiar.systems/v1/invoice?include=validation&lang=en" \
  -H "Authorization: Bearer $INVOICEIN_KEY" \
  -F "[email protected]"

Exemple de réponse (abrégé)

{
  "ok": true,
  "source": {
    "format": "xrechnung-ubl",
    "syntax": "UBL",
    "profile": "XRechnung 3.0",
    "container": "xml"
  },
  "invoice": {
    "document": {
      "id": "RE-2026-0421",
      "issue_date": "2026-08-30",
      "type_code": "380",
      "currency": "EUR",
      "buyer_reference": "04011000-12345-03"
    },
    "seller": {
      "name": "Nordlicht Werkstatt GmbH",
      "vat_id": "DE123456789",
      "electronic_address": { "value": "[email protected]", "scheme": "EM" },
      "address": { "line1": "Kanalstraße 12", "city": "Kiel", "postcode": "24103", "country": "DE" }
    },
    "buyer": { "name": "Beispiel Bau AG", "address": { "city": "Hamburg", "country": "DE" } },
    "payment": {
      "means_code": "58",
      "credit_transfers": [{ "iban": "DE02120300000000202051" }]
    },
    "totals": { "line_net": 314.86, "net": 314.86, "tax": 22.04, "gross": 336.09, "due": 336.09 },
    "tax_breakdown": [{ "category": "S", "rate": 7, "taxable": 314.86, "tax": 22.04 }],
    "lines": [
      { "id": "1", "quantity": 3.5, "unit": "HUR", "net_amount": 314.86,
        "price": { "amount": 89.96 }, "tax": { "category": "S", "rate": 7 },
        "item": { "name": "Wartung Lüftungsanlage" } }
    ],
    "extensions": {}
  },
  "validation": {
    "valid": false,
    "errors": 1,
    "warnings": 0,
    "rule_sets": [
      { "id": "EN16931-UBL", "version": "EN 16931 validation artefacts 1.3.17" },
      { "id": "XRechnung-UBL", "version": "XRechnung 3.0.2 Schematron 2.6.0" }
    ],
    "issues": [
      {
        "id": "BR-CO-15",
        "severity": "error",
        "rule_set": "EN16931-UBL",
        "message": "[BR-CO-15]-Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).",
        "hint": "Le total TTC (BT-112) doit être égal au total HT (BT-109) plus le total de TVA (BT-110). 314.86 + 22.04 = 336.90, mais le document indique 336.09 — l'émetteur a arrondi ses totaux indépendamment des lignes.",
        "field": "totals.gross (BT-112)",
        "who": "sender"
      }
    ]
  },
  "timings_ms": { "detect": 1.2, "map": 3.8, "validate": 18.1, "total": 23.4 }
}

Endpoints

POST /v1/invoice
Tout en un seul JSON. ?include=validation,html,pdf,csv,datev&lang=en|de|fr|it|pl
POST /v1/validate
Rapport seul.
POST /v1/parse
JSON canonique seul, sans validation.
POST /v1/render.html
HTML lisible par un humain.
POST /v1/render.pdf
PDF A4 lisible par un humain.
POST /v1/export.csv
CSV à plat. ?level=lines|documents
POST /v1/export.datev
Lot d'écritures DATEV (Buchungsstapel). ?skr=03|04&creditor_account=70000
GET /v1/formats
Formats d'entrée pris en charge et versions des jeux de règles.
GET /v1/rules/{id}
Explique un identifiant de règle en langage clair. ?lang=de
GET /v1/countries
Quel format impose l'obligation de chaque pays, et avec quoi nous le validons.
GET /v1/vat/{number}
Vérifie un numéro de TVA intracommunautaire : format hors ligne, puis VIES en direct, avec un justificatif daté.
GET /v1/peppol/{id}
Un partenaire est-il publié sur Peppol, et que peut-il recevoir.
GET /docs
Référence OpenAPI.
MCP /mcp
Serveur MCP distant ; build stdio local sur demande.

Les erreurs reviennent sous la forme {"ok": false, "error": {"code", "message", "hint"}} avec le statut HTTP correspondant. Les crédits restants sont indiqués dans l'en-tête X-Credits-Remaining.

Tarifs Tarifs bêta

Payez par document. Les crédits achetés n'expirent jamais.

Une facture = un crédit, quelles que soient les sorties demandées dans l'appel ; un fichier contenant plusieurs factures coûte un crédit par facture. Pas de minimum mensuel, pas de licences par utilisateur.

Gratuit
€0
100 factures

Avec votre première clé, valables 30 jours. Sans carte. De quoi câbler l'intégration et la tester sur de vrais fichiers fournisseurs.

Starter
€29
250 factures

Pour un plugin en production avec une poignée de clients.

Growth
€99
1 000 factures

La tranche habituelle pour un outil de comptabilité fournisseurs ou une agence qui gère plusieurs clients.

Scale
€399
5 000 factures

Volumes plus élevés et images on-premise sur facture — contactez-nous.

Prix hors TVA. Paiement sur facture ou par lien de paiement ; le paiement en libre-service arrive. Facture sur demande pour les volumes plus élevés. Le quota démo (20 factures par IP et par jour) ne nécessite aucune clé.

Demander une clé.

Laissez votre e-mail et, si vous le souhaitez, ce que vous recevez. Nous répondons avec une clé et, pour les offres payantes, la facture ou le lien de paiement.

Demande :

Les résultats de validation décrivent ce que les jeux de règles officiels disent d'un fichier. Ils ne constituent ni un conseil juridique ou fiscal ni une garantie de conformité, et aucun contrôle automatisé ne peut certifier qu'un document sera accepté par une administration fiscale, une PDP ou un acheteur.

FAQ

Réponses courtes.

Est-ce une PDP ou un point d'accès Peppol ?
Non. InvoiceIn n'est ni une plateforme de dématérialisation partenaire (PDP) ni un point d'accès Peppol, et ne transmet rien à l'administration fiscale. C'est le côté réception : il traite ce que votre PDP, votre point d'accès, votre messagerie, un téléchargement depuis un portail ou un envoi de vos clients vous livre — fichiers Peppol BIS 3 compris. L'émission et l'acheminement restent chez votre prestataire actuel.
Stockez-vous mes factures ?
Non. Chaque requête est lue, validée et rendue en mémoire, puis supprimée dès l'envoi de la réponse. Aucun document n'est jamais écrit sur disque, et il n'existe ni file d'attente, ni cache, ni journal du contenu des documents. Les journaux de requêtes ne contiennent que l'horodatage, l'endpoint, le statut, la taille et l'identifiant de la clé.
Quelles versions des règles utilisez-vous ?
  • Artefacts de validation EN 16931 1.3.17 (Schematron UBL et CII)
  • XRechnung 3.0.2 — Schematron KoSIT 2.6.0 (UBL et CII)
  • Règles Peppol BIS Billing 3.0, master courant
  • Profil de transition FNFE CTC-FR 1.4.0.04 (règles BR-FR, Flux 2) — appliqué quand le vendeur et l'acheteur sont tous deux établis en France
  • CIUS-RO 1.0.1 (ro16931-ubl-1.0.9) — le verdict et la formulation correspondent à ce que renvoie le SPV de l'ANAF
  • Conventions de marché qu'aucun Schematron ne lit : conditions d'escompte allemandes (Skonto) en texte libre, et le numéro KSeF polonais (?ksef=)
  • XSD UBL 2.1 · XSD CII D16B · XSD FatturaPA 1.2.2 · XSD KSeF FA(2) et FA(3)
  • Contrôles arithmétiques croisés (sommes des lignes, TVA par catégorie, totaux) sur tous les formats

Chaque réponse nomme les versions utilisées : validation.rule_sets dans le corps et l'en-tête X-Invoicein-Rulesets. Les changements sont datés sur /rules/changelog (flux Atom) et GET /v1/rulesets ; tout identifiant de règle peut être expliqué via GET /v1/rules/{id}?lang=fr.

Et Factur-X BASIC et MINIMUM ?
Contrôle avec le Schematron Factur-X 1.09.2 du profil déclaré (MINIMUM, BASIC WL ou BASIC : cardinalités, listes de codes, éléments hors du sous-ensemble), plus schéma et arithmétique. Les règles de base EN 16931 s'appliquent à partir du profil EN 16931 (EN 16931, EXTENDED, XRECHNUNG) ; les profils inférieurs omettent par définition des champs que ces règles exigent, ils sont donc jugés par leurs propres règles. ZUGFeRD 1.0 n'a pas de jeu de règles chez nous : structure et arithmétique seulement, signalé par coverage: schema.
Puis-je l'exécuter on-premise ?
Oui — une image Docker avec les mêmes endpoints et le serveur MCP est disponible sur demande. Utile quand les factures fournisseurs ne doivent pas quitter votre réseau.
RGPD / accord de traitement des données ?
Un accord de traitement des données (DPA) est disponible sur demande. Sous-traitants ultérieurs : l'hébergeur uniquement.