# Factur-X / ZUGFeRD EN 16931

> Factur-X / ZUGFeRD EN 16931: a full EN 16931 invoice in UN/CEFACT CII. Its specification identifier is the plain EN 16931 one, urn:cen.eu:en16931:2017, so the profile is known from the PDF: inside a Factur-X / ZUGFeRD PDF the XML gets this profile's rules, on its own the CEN EN 16931 rules (EN 16931 CII).

- Publisher: [FNFE-MPE and FeRD](https://fnfe-mpe.org/factur-x/)
- Version: Factur-X 1.09.2 / ZUGFeRD 2.5.2
- Specification: [Factur-X (fnfe-mpe.org); ZUGFeRD (ferd-net.de)](https://fnfe-mpe.org/factur-x/)
- Syntax: UN/CEFACT CII, Factur-X profile XSD
- Root element: CrossIndustryInvoice
- Specification identifier (BT-24): `urn:cen.eu:en16931:2017`
- Detected when: The XML of a Factur-X / ZUGFeRD 2.x PDF (by its XMP) whose guideline ID (BT-24, ram:GuidelineSpecifiedDocumentContextParameter/ram:ID) is urn:cen.eu:en16931:2017, the identifier of the EN 16931 profile in Factur-X and ZUGFeRD 2.x, or any CII file with urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:en16931. Standalone CII XML with the plain urn:cen.eu:en16931:2017 is checked as EN 16931 CII (CEN rules).

## Checks

1. XSD: Factur-X 1.09.2 EN 16931 XSD (FACTUR-X_EN16931.xsd)
2. [Factur-X / ZUGFeRD EN 16931 rules](https://peppolvalidator.com/rules/sets/factur-x-en16931): 433 rules (429 fatal, 4 warning)

- You can upload the Factur-X or ZUGFeRD PDF as it is. Its PDF checks (embedded XML, XMP metadata, PDF/A-3 (basic check); rules PDF-01 to PDF-21) run first, then the embedded XML gets the checks above.
- The sample XML has the plain urn:cen.eu:en16931:2017, so on its own it gets the CEN EN 16931 rules (EN 16931 CII). Upload it inside its PDF (/samples/factur-x-en16931.pdf) for this profile's rules.

## Sample file

https://peppolvalidator.com/samples/factur-x-en16931.xml passes the XSD check and every rule set above.

## Validate

Validate a Factur-X / ZUGFeRD invoice: https://peppolvalidator.com/factur-x-validator#validate (the schema is detected from the file), or POST the XML to https://peppolvalidator.com/api/v1/validate.
