API documentation
What eunormia checks
The core of eunormia is a guarantee: only what passes validation is ever delivered. Two checks always run, two more are optional.
veraPDF — PDF/A-3 (always)
veraPDF is the industry-supported reference validator for PDF/A. It machine-checks whether the PDF container meets the archiving standard ISO 19005-3 (PDF/A-3B) — fonts, colour spaces, metadata, structure. An e-invoice with a non-conformant container gets rejected by receiving systems no matter how good the XML is.
EN 16931 — Schematron (always)
The European norm for the semantic content: mandatory fields, tax logic, totals rules. The embedded CII XML is checked against the official Schematron rules. In addition, eunormia recalculates all totals server-side when creating — mismatches produce a 422, never a silent correction.
KoSIT — XRechnung/Germany (optional, kosit)
The official validator of the German coordination body for
IT standards — the same tool the public-sector receiving portals use.
XRechnung is stricter than EN 16931 (additional mandatory fields such as the
Leitweg-ID). A verdict of ACCEPTABLE effectively means: the
authority will accept the invoice. Recommended for anyone invoicing German
public-sector customers.
FR-CTC — France (optional, frCtc)
The French CTC rules (BR-FR) published by FNFE-MPE for the e-invoicing reform (mandatory from 09/2026): additional required statements such as late payment interest and recovery costs. A substantive Factur-X profile check with the official rulesets — final acceptance in France happens via the accredited platforms (PDP).
Which check when?
| Scenario | Recommendation |
|---|---|
| B2B invoice DE/AT (ZUGFeRD) | standard gates are sufficient |
| Invoice to a German authority | profile=XRECHNUNG + kosit=true |
| Invoice to France | frCtc=true |
| Inbound checking (any origin) | /v1/validate, enable checks as needed |