# Factur-X / ZUGFeRD EN 16931

Source: https://xmlvalid.com/schemas/factur-x-en16931

> The XML inside a Factur-X or ZUGFeRD PDF, in the profile that matches the European standard EN 16931, checked against the profile schema and the Factur-X EN 16931 rules.

Factur-X (France) and ZUGFeRD (Germany) are one specification: a PDF/A-3 invoice with a CII XML file attached. The EN 16931 profile, called COMFORT in ZUGFeRD, carries exactly the data of the European standard.
Two layers are checked: the profile schema, then the profile's Schematron rules. They contain the EN 16931 business rules (BR-CO-15 and so on) and check codes against the code lists FNFE-MPE and FeRD publish with them.

- Type: XSD + Schematron
- Version: 1.09
- Namespace: `urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100`
- Root element: `CrossIndustryInvoice`
- Publisher: FNFE-MPE and FeRD (Published free of charge by FNFE-MPE and FeRD), source: https://fnfe-mpe.org/factur-x/
- Rules: [Factur-X EN 16931 rules 1.09.2](https://xmlvalid.com/rules/sets/factur-x-en16931)
- Validate against it: https://xmlvalid.com/validate?schema=factur-x-en16931

## Notes

- In the validator you can drop the PDF itself: the XML attached to it is taken out in your browser, and the profile is picked from its specification identifier (BT-24). The API and the command-line client take the PDF too. The attachment and its XMP metadata are checked against what Factur-X asks; full PDF/A-3 conformance (fonts, colour) is not.
- Rules run only when the document matches the schema. Documents over 50 MB are checked against the schema only.
- The schemas, rules and code lists are copied from the akretion/factur-x library, which ships the official files unchanged. The example is a Factur-X sample from the same library.
