Factur-X / ZUGFeRD profile detection

A Factur-X or ZUGFeRD invoice is a PDF with a machine-readable UN/CEFACT CII invoice embedded inside it. FactureCheck extracts that embedded XML and validates it exactly like a standalone CII file — same schematron rules, same findings — then reports which of the five Factur-X profiles the document declares.

The five profiles

The profile is read from the embedded CII document's guideline identifier (GuidelineSpecifiedDocumentContextParameter/ID) and returned as metadata.facturx_profile in the validation response:

  • Minimum — a handful of core fields only, no line items.
  • Basic WL — Basic without line-item detail.
  • Basic — full line items, simplified content.
  • EN16931 — the full EN 16931 semantic data model.
  • Extended — EN16931 plus additional trading-partner fields.

An identifier that does not match any of the five is reported as unknown rather than guessed.

PDF/A-3 and attachment checks

Five rule codes in the taxonomy cover the PDF container itself, not just the embedded XML:

  • FCX-01 — PDF/A-3 conformance is declared in the XMP metadata.
  • FCX-02 — the embedded file's /AFRelationship entry is present.
  • FCX-03 — the attachment is named factur-x.xml (not a legacy ZUGFeRD name).
  • FCX-04 — the XMP conformance level matches the profile declared inside the CII XML.
  • FCX-05 — the guideline identifier matches one of the five known profiles.

Try it

curl -X POST https://facturecheck.eu/api/v1/validate \
  -H "Content-Type: application/pdf" \
  --data-binary @invoice.pdf

The response is the same JSON shape as an XML upload, with metadata.facturx_profile set. Repair (see what gets fixed) works on the extracted XML the same way it does for a plain CII upload; it does not rewrite the PDF container itself.

Validate your invoice free