Also called MINIMUM, BASIC WL, EN 16931 profile, EXTENDED, conformance level
A Factur-X profile says how much of the invoice made it into the structured XML, ranging from MINIMUM, which carries little more than the parties and the totals, to EXTENDED. The EN 16931 profile is the full European standard and the one the mandates are written around.
MINIMUM carries the parties and the totals and no line items, which is not enough to serve as a legal invoice in most cases. BASIC WL adds document level detail but still no lines. BASIC adds the lines. EN 16931 is the full standard. EXTENDED goes beyond it for cases the standard does not cover.
More detail is not automatically better. A profile is a promise about what a receiver can rely on finding, so emitting EN 16931 from data that only supports BASIC produces a document making a promise it cannot keep.
The profile is declared inside the XML at BT-24, and it is also stamped into the PDF metadata as the XMP conformance level. Nothing in the toolchain forces those to agree.
It is entirely possible to build a file whose XML is full EN 16931 while its metadata claims MINIMUM. It opens perfectly and contradicts itself, and our validator reports it as FX-XMP-PROFILE-MATCH.
This is why our own generator reads the profile back off BT-24 after building the XML rather than trusting the request. A caller may choose which profile to target. Nobody, including us, gets to declare what the result is.
Read out of BT-24 and compared against the XMP metadata, so a file that disagrees with itself is reported rather than passed.