EU E-Invoice API
Validate, parse and generate EU e-invoices – XRechnung, ZUGFeRD / Factur-X, Peppol BIS, France, Romania, Croatia, Italy and Polish KSeF FA(3).
Stateless REST API for German XRechnung (UBL and CII), ZUGFeRD 2.x / Factur-X hybrid PDFs (all profiles from MINIMUM to EXTENDED and XRECHNUNG), Peppol BIS Billing 3.0 (UBL) and the Polish KSeF structure FA(3).
- Validation uses the official KoSIT validator with the current XRechnung configuration, the FeRD
ZUGFeRD/Factur-X rules, the OpenPeppol BIS Billing 3.0 rules, the French rules of FNFE-MPE, the Romanian CIUS-RO
rules, the Croatian HR-CIUS rules of the Tax Administration, the official FA(3) XML schema of the Polish
Ministry of Finance (schema check only), the FatturaPA XML schema and veraPDF for PDF/A-3. The rule-set versions in use are listed by
GET /v1/formatsand reported with every result. - France: for invoices of sellers in France (BT-40 = FR) in EN 16931 UBL/CII or Factur-X BASIC WL, EN 16931
and EXTENDED, the French rules BR-FR (FNFE-MPE France_RFE, FATAL variant) run in addition to the document's own
rules; EXTENDED-CTC-FR is validated as a profile of its own (format
fr-ctc). Factur-X MINIMUM and BASIC from a French seller get the warningPROFILE-NOT-FR. XRechnung and Peppol BIS documents are not affected. - Romania: CIUS-RO 1.0.1 (RO e-Factura) is validated with the official rules (validation artefacts 1.0.9) and
generated as UBL (
cius-ro-ubl). Romania publishes these rules for UBL only; CII with the CIUS-RO identifier is checked against EN 16931 and gets the info findingCIUS-RO-CII. - Croatia: the eRačun (HR-CIUS 2025 with the HR extension, Fiscalization 2.0) is validated with the Tax
Administration's XML Schema and rules (HR-BR-*, version of 13 Mar 2026), parsed (issue time and operator in
issueTimeandseller.operator) and generated as UBL (hr-cius-ubl). HR-CIUS exists for UBL only: CII with the Croatian identifier is an error (HR-SYNTAX-NOT-UBL). An invoice between two Croatian parties without the HR identifier gets the warningPROFILE-NOT-HR. Fiscalization and delivery through an information intermediary are not performed (infoHR-NOT-PERFORMED). - Slovakia (domestic B2B e-invoicing from 1 Jan 2027) uses plain Peppol BIS Billing 3.0 with electronic
addresses in scheme 0245 (DIČ). For sellers in Slovakia three advisory warnings of this API are added
(
SK-ENDPOINT-SELLER,SK-ENDPOINT-BUYER,SK-BT8); they are not official rules and never changevalid. - Italy: FatturaPA 1.2.3 (FPR12 for businesses, FPA12 for the public sector; syntax
FATTURAPA) is validated against the official XML Schema and the SDI content controls that can be checked offline (findingsSDI-00xxx, our implementation of Allegato A 1.9.1; registry, duplicate, signature and file-name controls are not performed, see theSDI-NOT-PERFORMEDinfo). FatturaPA is not EN 16931:/v1/parsemaps what the normalized model can carry and reports the rest asPARSE-UNMAPPED; of a batch file it returns the first invoice (PARSE-BATCH)./v1/generate?format=fatturapa-fpr12|fatturapa-fpa12writes an unsigned FatturaPA (ordinary regime RF01) and rejects input FatturaPA cannot carry, such as withholding tax; public-sector invoices (FPA12) must be signed by the issuer before sending (warningFPA12-UNSIGNED). The suggested file name follows the SDI conventionIT<VAT number>_<progressive>.xml. - KSeF FA(3) is not EN 16931:
/v1/parsemaps what the normalized model can carry and reports the rest asPARSE-UNMAPPED;/v1/generate?format=ksef-fa3writes VAT invoices of a Polish seller (typeCode 380 or 389) and rejects input FA(3) cannot carry. - Privacy: documents are processed in memory only. Invoice content is never written to disk or logs.
- Hosting: EU only.
Authentication. Send the API key from your subscription in the developer portal as Authorization: Bearer <key>. Plans, quotas and usage are shown in the portal.
Errors are RFC 9457 application/problem+json objects. detail says what to fix and requestId identifies
the call for support. A document that can be read but is invalid is not an HTTP error: /v1/validate and
/v1/parse answer 200 with valid: false and the findings.
Notation. xpath values use the prefixes rsm, ram, udt, qdt (CII), ubl, cn, cac, cbc,
ext (UBL), fa (KSeF FA(3)), p (the FatturaPA root element; FatturaPA child elements have no namespace and
no prefix) and ds (XML Signature).