Conformo

Create and check German, French and EU e-invoices in JavaScript. No Java, no server, and the same verdict as the official KoSIT validator.

You pass one invoice as JSON. Conformo writes XRechnung, ZUGFeRD / Factur-X (PDF or XML), UBL or Peppol BIS, and validates the result with the official KoSIT, CEN, Peppol and French rule files, run on your machine. Free and open source (Apache-2.0).

Pick your entry point

Not a developer? The free web app makes an e-invoice in your browser, and the validator checks one you received. No signup for either.

Why you can trust the output

Quickstart

npm install @conformo/toolkit
import { createXml, validate } from '@conformo/toolkit';
const invoice = { number: 'INV-1', issueDate: '2027-01-15', currency: 'EUR', seller: { name: 'Seller GmbH', vatId: 'DE123456789', country: 'DE' }, buyer: { name: 'Buyer GmbH', country: 'DE' }, payment: { meansCode: '58', iban: 'DE89370400440532013000' }, lines: [{ name: 'Work', quantity: 2, unitPriceMinor: 5000, taxCategory: 'S', taxRate: 19 }] };
const { xml } = createXml(invoice, 'cii');            // EN 16931 CII, the XML inside ZUGFeRD and Factur-X
const result = await validate(xml);                   // the official CEN Schematron, run locally
console.log(result.valid, result.ruleSets.map((r) => r.id)); // true [ 'en16931-cii' ]

Money is always integer minor units: 5000 is EUR 50.00. Every code sample on this site is run by the test suite, so if a sample stops working, the build fails.

Pick your way in

Not a developer? Make an invoice in the app or check one you received. Both run in your browser.

Shown, not claimed

86/86KoSIT XRechnung test suite: same verdict as the official KoSIT validator
28/28CEN EN 16931 examples: same verdict as KoSIT
1114/1114official sample files where our rule results equal the publishers' own XSLT

From the conformance report, regenerated by npm run conformance on every CI run.

Country status

CountryB2B issuingFormatsConformo
Belgium Mandatory 2026-01-01 peppol-bis-3.0 Library
France Mandatory 2026-09-01 cii, ubl-2.1, factur-x Library Web app
Germany Planned 2027-01-01 xrechnung, zugferd, peppol-bis-3.0 Library Web app
Italy Mandatory 2019-01-01 fatturapa Not yet
Netherlands No mandate peppol-bis-3.0, ubl-2.1, other Library
Poland Mandatory 2026-02-01 peppol-bis-3.0, ksef-fa Library
Spain Planned facturae Not yet

From packages/compliance-data: every fact has an official source, last verified 2025-08-14. Not legal advice.