Error code catalogue
Every code returned in the errors[] object points to a page setting out the rule that was checked and how to resolve it.
The attachment relationship is incorrect
`AFRelationship` must be `Data` for the MINIMUM and BASIC WL profiles, and `Alternative` for the full profiles.
The specification identifier is missing
The invoice must declare the URN of the profile it conforms to, in `ram:GuidelineSpecifiedDocumentContextParameter/ram:ID`.
The invoice number is missing
Every invoice must carry a unique identifier (BT-1).
The VAT point date is declared twice
The value added tax point date (BT-7) and the code that designates it (BT-8) are mutually exclusive: the invoice carries one or the other, never both.
An invoice line has no VAT category
Every invoice line (BG-25) must carry an invoiced item VAT category code (BT-151): it is what attaches the line to a line of the VAT breakdown.
The allowance reason and its code do not designate the same thing
When a document level allowance (BG-20) carries both a reason in plain text (BT-97) and a reason code (BT-98), the two must indicate the same type of allowance.
The charge reason and its code do not designate the same thing
When a document level charge (BG-21) carries both a reason in plain text (BT-104) and a reason code (BT-105), the two must indicate the same type of charge.
On a line, the allowance reason and its code diverge
When an invoice line allowance (BG-27) carries both a reason in plain text (BT-139) and a reason code (BT-140), the two must indicate the same reason.
On a line, the charge reason and its code diverge
When an invoice line charge (BG-28) carries both a reason in plain text (BT-144) and a reason code (BT-145), the two must indicate the same reason.
A VAT identifier has no country prefix
The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) must start with the ISO 3166-1 alpha-2 code of the issuing country; Greece may use `EL`.
The sum of the lines does not match the declared total
The sum of invoice line net amounts (BT-106) must equal the sum of each invoice line net amount (BT-131).
The total of allowances does not match the allowances declared
The sum of allowances on document level (BT-107) must equal the sum of each document level allowance amount (BT-92).
The total of charges does not match the charges declared
The sum of charges on document level (BT-108) must equal the sum of each document level charge amount (BT-99).
The net total does not follow from the lines, allowances and charges
The invoice total amount without VAT (BT-109) must equal the sum of invoice line net amounts (BT-131), minus the sum of allowances on document level (BT-107), plus the sum of charges on document level (BT-108).
The total VAT amount does not match the breakdown
The invoice total VAT amount (BT-110) must equal the sum of the VAT category tax amounts (BT-117).
The amount due including VAT does not match the net total plus VAT
The total amount including VAT (BT-112) must be exactly the net total (BT-109) plus the total VAT amount (BT-110).
The amount due does not follow from the gross total, prepayments and rounding
The amount due for payment (BT-115) must equal the invoice total amount with VAT (BT-112), minus the paid amount (BT-113), plus the rounding amount (BT-114).
A category's VAT amount does not match its base and rate
For each breakdown line, the VAT category tax amount (BT-117) must equal the taxable amount (BT-116) multiplied by the rate (BT-119) divided by one hundred, rounded to two decimals.
The invoice carries no VAT breakdown
An invoice must contain at least one VAT breakdown group (BG-23), even when it carries no tax at all.
The invoicing period has neither a start nor an end date
As soon as the invoicing period (BG-14) is present, it must carry its start date (BT-73), its end date (BT-74), or both.
A line period has neither a start nor an end date
As soon as an invoice line period (BG-26) is present, it must carry its start date (BT-134), its end date (BT-135), or both.
An allowance states no reason
Each document level allowance (BG-20) must carry a reason in plain text (BT-97), a reason code (BT-98), or both.
A charge states no reason
Each document level charge (BG-21) must carry a reason in plain text (BT-104), a reason code (BT-105), or both.
A line allowance states no reason
Each invoice line allowance (BG-27) must carry a reason in plain text (BT-139), a reason code (BT-140), or both.
A line charge states no reason
Each invoice line charge (BG-28) must carry a reason in plain text (BT-144), a reason code (BT-145), or both.
The seller cannot be identified by any number
The invoice must carry at least one of the seller's three identifiers: the seller identifier (BT-29), the seller legal registration identifier (BT-30) or the seller VAT identifier (BT-31).
The payment instructions are missing
An XRechnung invoice must carry the `PAYMENT INSTRUCTIONS` group (BG-16), so at minimum the payment means type code (BT-81).
The deliver-to city is missing
The `Deliver to city` element (BT-77) must be provided as soon as the `DELIVER TO ADDRESS` group (BG-15) is present.
The deliver-to post code is missing
The `Deliver to post code` element (BT-78) must be provided as soon as the `DELIVER TO ADDRESS` group (BG-15) is present.
The VAT category rate is missing
The `VAT category rate` element (BT-119) must be provided in every VAT breakdown.
The buyer reference is missing
The `Buyer reference` element (BT-10) must be provided. In the German public sector this is the recipient's *Leitweg-ID*.
No seller tax identifier is provided
As soon as a VAT category S, Z, E, AE, K, G, L or M is used, at least one of `Seller VAT identifier` (BT-31), `Seller tax registration identifier` (BT-32) or the `SELLER TAX REPRESENTATIVE PARTY` group (BG-11) must be provided.
The invoice type code is not in the expected list
`Invoice type code` (BT-3) should be 326, 380, 381, 384, 389, 875, 876 or 877 from the UNTDID 1001 code list.
The early-payment discount terms do not follow the expected shape
The early-payment discount (*Skonto*) lines placed in `Payment terms` (BT-20) must follow the shape `#SKONTO#TAGE=n#PROZENT=n.nn#`, one line per condition, each starting with `#`.
The credit account identifier is not a valid IBAN for a SEPA transfer
When `Payment means type code` (BT-81) is 58 (SEPA credit transfer), `Payment account identifier` (BT-84) must be a correct IBAN — both its shape and its check digits.
The seller contact is missing
The `SELLER CONTACT` group (BG-6) must be provided.
The debited account identifier is not a valid IBAN for a SEPA direct debit
When `Payment means type code` (BT-81) is 59 (SEPA direct debit), `Debited account identifier` (BT-91) must be a correct IBAN.
The specification identifier is not the XRechnung one
`Specification identifier` (BT-24) should carry the URN of the XRechnung standard: the CIUS, its extension, or the CVD profile.
Two attachments carry the same file name
The `filename` attribute of every embedded attachment must be unique within the document.
A credit transfer is announced without credit transfer details
When `Payment means type code` (BT-81) announces a credit transfer (30 or 58), the `CREDIT TRANSFER` group (BG-17) must be provided.
A credit transfer is announced alongside another payment means
When `Payment means type code` (BT-81) announces a credit transfer (30 or 58), the `PAYMENT CARD INFORMATION` (BG-18) and `DIRECT DEBIT` (BG-19) groups must not be provided.
A card payment is announced without card information
When `Payment means type code` (BT-81) announces a card (48, 54 or 55), the `PAYMENT CARD INFORMATION` group (BG-18) must be provided, exactly once.
A card payment is announced alongside another payment means
When `Payment means type code` (BT-81) announces a card (48, 54 or 55), the `CREDIT TRANSFER` (BG-17) and `DIRECT DEBIT` (BG-19) groups must not be provided.
A direct debit is announced without a mandate
When `Payment means type code` (BT-81) announces a direct debit (59), the `DIRECT DEBIT` group (BG-19) must be provided, exactly once.
A direct debit is announced alongside another payment means
When `Payment means type code` (BT-81) announces a direct debit (59), the `CREDIT TRANSFER` (BG-17) and `PAYMENT CARD INFORMATION` (BG-18) groups must not be provided.
A corrected invoice does not reference the preceding invoice
When `Invoice type code` (BT-3) is 384 (corrected invoice), the `PRECEDING INVOICE REFERENCE` group (BG-3) should be present at least once.
The seller contact telephone number does not contain enough digits
`Seller contact telephone number` (BT-42) should contain at least three digits.
The seller contact email address is malformed
`Seller contact email address` (BT-43) should contain exactly one “at” sign, flanked by at least two characters on each side, and a dotted domain with no leading or trailing dot.
The seller city is missing
The `Seller city` element (BT-37) must be provided.
The bank assigned creditor identifier is missing
When the `DIRECT DEBIT` group (BG-19) is present, the `Bank assigned creditor identifier` (BT-90) must be provided.
The debited account identifier is missing
When the `DIRECT DEBIT` group (BG-19) is present, the `Debited account identifier` (BT-91) must be provided.
The seller post code is missing
The `Seller post code` element (BT-38) must be provided.
The seller contact point is missing
The `Seller contact point` element (BT-41) must be provided: either a person's name or a department name.
The seller contact telephone number is missing
The `Seller contact telephone number` element (BT-42) must be provided.
The seller contact email address is missing
The `Seller contact email address` element (BT-43) must be provided.
The buyer city is missing
The `Buyer city` element (BT-52) must be provided.
The buyer post code is missing
The `Buyer post code` element (BT-53) must be provided.
The invoice identifier exceeds 35 characters
The invoice number (BT-1), a referenced invoice number (BT-25) and a referenced invoice number on a line are limited to 35 characters in the French base.
The invoice identifier contains characters that are not allowed
The invoice number (BT-1) and referenced invoice numbers only allow letters, digits and the symbols + - _ / — no spaces, not at the start, not at the end, not doubled.
A date carries a year outside 2000–2099 or an unexpected format
Every date on the invoice — issue (BT-2), tax point (BT-7), due (BT-9), referenced invoice (BT-26), delivery (BT-72), invoicing period (BT-73, BT-74) and their line-level equivalents — must carry a year between 2000 and 2099; the issue date in YYYYMMDD format.
The document type code is not in the French list
The document type (BT-3) must be one of the sixteen codes retained by the reform: 380, 381, 384, 386, 389, 393, 396, 261, 262, 471, 472, 473, 500, 501, 502, 503. The other codes of the UNTDID 1001 list are refused.
The mandatory legal mentions are missing from the notes
A French invoice carries three mentions in its notes (BG-1), each recognised by its subject code (BT-21): the flat-rate recovery fee (PMT), late-payment penalties (PMD) and the discount terms or their absence (AAB).
A note subject code appears more than once
The subject codes PMT (recovery fee), PMD (late-payment penalties), AAB (discount) and TXD (tax mention) may each appear only once in the invoice notes (BT-21).
The invoicing framework is missing or outside the allowed list
The process identifier (BT-23) must carry one of the twenty French invoicing frameworks: B1, S1, M1, B2, S2, M2, S3, B4, S4, M4, S5, S6, B7, S7, B8, S8, M8, B9, S9 or M9.
The SIRET does not start with the SIREN or does not have 14 digits
When a party carries both a SIRET (identifier in scheme 0009) and a SIREN (scheme 0002), the SIRET must have 14 digits and start with the 9 digits of the SIREN — seller, buyer, payee, deliver-to and extension parties.
The seller's SIREN is missing or malformed
The seller's legal identifier must be a SIREN of exactly nine digits.
The buyer's SIREN is missing on a B2B invoice
When a BAR note declares the transaction as B2B, the buyer's legal identifier (BT-47, scheme 0002) is mandatory and must be a SIREN of exactly nine digits.
The buyer's electronic address is missing
BT-49 carries the buyer's electronic address, which routes the invoice to their platform.
The seller's electronic address is missing
BT-34 carries the seller's electronic address, the counterpart of BT-49.
The VAT category code is not admitted in France
The admitted VAT categories are S, E, AE, K, G, O and Z — at document level (BT-118), on lines (BT-151) and on allowances or charges (BT-95, BT-102). Codes L and M, specific to the Canary Islands, Ceuta and Melilla, are not relevant in France.
The VAT rate carries a symbol or a value outside the list
The VAT rate — at document level (BT-119), on lines (BT-152) and on allowances or charges (BT-96, BT-103) — is written as a percentage, without symbol, and must be one of the rates in force in France.
The qualification code of an attachment is not admitted
The description of an additional document (BT-123) serves as a qualification code in the French flow and must belong to the base's closed list — for instance LISIBLE for the human-readable rendering of the invoice.
Several attachments are marked LISIBLE
An invoice may carry only one additional document (BG-24) whose description (BT-123) is LISIBLE: it is the human-readable rendering of the invoice, and there is only one.
The BAR note carries a value outside the list
A note whose subject code (BT-21) is BAR declares the transaction's processing scope; its content (BT-22) must be B2B, B2BINT, B2C, OUTOFSCOPE or ARCHIVEONLY — and B2CINT in UBL.
The buyer's electronic address does not carry its SIREN on a B2B flow
On a transaction declared B2B that is not a self-billed invoice, the buyer's electronic address (BT-49) must start with its SIREN (BT-47) and carry scheme 0225.
The seller's electronic address does not carry its SIREN on a self-billed invoice
On a transaction declared B2B whose document type is a self-billed invoice (389, 501, 500, 471, 473, 261, 502), the seller's electronic address (BT-34) must start with its SIREN (BT-30) and carry scheme 0225.
An electronic address contains characters that are not allowed
An electronic address in scheme 0225 — seller (BT-34), buyer (BT-49) or extension parties — only allows letters, digits and the symbols - _ . ; no space, no accent, no at-sign.
A private identifier contains characters that are not allowed
A party identifier in scheme 0224 — the private identifier of the seller (BT-29) or the buyer (BT-46) — only allows letters, digits and the symbols - _ . ; no spaces.
An electronic address exceeds 125 characters
An electronic address in scheme 0225 — seller (BT-34), buyer (BT-49) or extension parties — is limited to 125 characters.
A private identifier exceeds 100 characters
A party identifier in scheme 0224 — the private identifier of the seller (BT-29) or the buyer (BT-46) — is limited to 100 characters.
An item attribute has neither a name nor a code
Every item attribute (BG-32) must carry a name (BT-160) or an attribute code (EXT-FR-FE-159), not empty. An attribute with neither is meaningless.
An item attribute carries both a value and a quantity, or neither
An item attribute (BG-32) carries either a text value (BT-161) or a quantity with its unit of measure (EXT-FR-FE-160 and EXT-FR-FE-161) — one of the two, never both, never neither.
The AFL or AVV object identifiers are duplicated or empty
Among the document's invoiced object identifiers (BT-18), the AFL and AVV schemes may each appear only once, and the identifier they carry cannot be empty.
A line's AFL or AVV object identifiers are duplicated or empty
Among a line's invoiced object identifiers (BT-128), the AFL and AVV schemes may each appear only once, and the identifier they carry cannot be empty.
Several BAR notes declare different processing scopes
When several notes carry the BAR subject code (BT-21), they must all carry the same value: an invoice has a single processing scope — B2B, B2BINT, B2C, OUTOFSCOPE or ARCHIVEONLY.
A party identifier in scheme 0002 does not have nine digits
Every party identifier carried with scheme 0002 — legal identifier or plain identifier, seller, buyer or any other party — must be a SIREN of exactly nine digits; in CII, scheme 0231 follows the same rule.
The VAT category taxable base is inconsistent with the invoice lines
For each VAT rate, the taxable base declared in the breakdown must equal the sum of the net amounts of the lines carrying that rate.
The external document location is not an absolute URL
`External document location` (BT-124) must be an absolute URL carrying a valid scheme.
The item price base quantity differs between gross and net price
When `Item price base quantity` (BT-149) appears on both the gross price and the net price, the two values must be identical — unit of measure included.
The currency code is not in upper case
ISO 4217 currency codes are written in upper case.
The date does not use the expected format
Dates in CII syntax are expected in format 102 (`20260801`), not in extended ISO form.
The decimal separator is a comma
Amounts must use the dot as their decimal separator.
The container is not a valid PDF/A-3
A Factur-X invoice is an XML file embedded in a PDF/A-3 container. When the container fails PDF/A validation, the document is not compliant — even when the XML it carries is correct.
A font is not embedded in the PDF
Every font must be embedded, including the fourteen standard PDF fonts.
The output colour profile is missing
A PDF/A-3 must declare an OutputIntent with an ICC profile — in practice sRGB for an invoice.
The business process is not provided
`Business process type` (BT-23) must be provided. The XRechnung package takes this rule from the Peppol CIUS, which it embeds.
The VAT accounting currency equals the invoice currency
`VAT accounting currency code` (BT-6), when present, must differ from `Invoice currency code` (BT-5).
The buyer electronic address is missing
`Buyer electronic address` (BT-49) must be provided, together with its identification scheme.
The seller electronic address is missing
`Seller electronic address` (BT-34) must be provided, together with its identification scheme.
An allowance or charge amount does not match its base amount and percentage
When an allowance or charge carries both a base amount and a percentage, its amount must equal base × percentage ÷ 100.
An allowance or charge percentage has no base amount
The base amount must be provided as soon as an allowance or charge percentage is.
An allowance or charge base amount has no percentage
The percentage must be provided as soon as an allowance or charge base amount is.
The allowance or charge indicator is neither “true” nor “false”
`ChargeIndicator` must be exactly `true` or `false`. This code is returned on UBL documents; in CII the same checks carry the codes `PEPPOL-EN16931-R043-1` and `PEPPOL-EN16931-R043-2`.
The document-level allowance or charge indicator is neither “true” nor “false”
In CII syntax, `ram:ChargeIndicator/udt:Indicator` must be exactly `true` or `false` on document-level and line-level allowances and charges.
The applied price allowance indicator is neither “true” nor “false”
In CII syntax, `ram:ChargeIndicator/udt:Indicator` must be exactly `true` or `false` on allowances applied to the price (`AppliedTradeAllowanceCharge`).
A charge is applied at price level
At price level only an allowance is admitted: `ChargeIndicator` must be `false` there.
The item net price does not match the gross price minus the allowance
When a gross price is provided, `Item net price` (BT-146) must equal the gross price minus the amount of the allowance applied to the price.
More than one tax total is provided in the invoice currency
There can be only one total VAT amount (BT-110) in the invoice currency.
The tax total in the accounting currency is missing or duplicated
When `VAT accounting currency code` (BT-6) is present there must be exactly one total VAT amount (BT-111) in that currency; when it is absent, none.
The two VAT totals do not have the same operational sign
The total VAT amount (BT-110) and its counterpart in the accounting currency (BT-111) must carry the same operational sign.
The mandate reference is missing for a direct debit
`Mandate reference identifier` (BT-89) must be provided when the payment means is a direct debit (49 or 59).
A line-level referenced document is not an invoice line object identifier
On an invoice line, `Additional referenced document` is admitted only with type code 130 — the invoice line object identifier (BT-128).
A line period starts before the invoicing period
`Invoice line period start date` (BT-134) must fall within the invoicing period declared in the header (BT-73).
A line period ends after the invoicing period
`Invoice line period end date` (BT-135) must fall within the invoicing period declared in the header (BT-74).
An invoice line net amount does not match its own calculation
`Invoice line net amount` (BT-131) must equal quantity × (net price ÷ base quantity), plus the line's charges and minus its allowances.
The item price base quantity is not strictly positive
`Item price base quantity` (BT-149) must be a number strictly greater than zero.
The unit of the price base quantity differs from the invoiced quantity's
`Item price base quantity unit of measure` (BT-150) must be the same unit as the invoiced quantity's (BT-130).
The MINIMUM profile does not meet the requirements of the French reform
The MINIMUM profile does not carry enough structured data for French electronic invoicing.
The item attribute code is not in the extended UNTDID 6313 list
In the extended profile, an item attribute code (EXT-FR-FE-159) must come from the UNTDID 6313 list completed by the Factur-X extension.
The subtype of an invoice line is not in the list
In the extended profile, a line's subtype (EXT-FR-FE-163) must come from the line status code list — DETAIL for an invoiced line, GROUP for a line that groups sub-lines, among others.
A line attached to a parent line does not state its subtype
In the extended profile, a line referencing a parent line (EXT-FR-FE-162) must declare its subtype (EXT-FR-FE-163).
The net amount of a GROUP line is not the sum of its sub-lines
In the extended profile, when a GROUP line carries a net amount (BT-131), it must equal the sum of the net amounts of the immediately lower-level lines of subtype DETAIL or GROUP.
The parent line identifier designates no line of the invoice
In the extended profile, every parent line identifier (EXT-FR-FE-162) must match the identifier (BT-126) of another line of the same invoice.
A subordinate GROUP line has no net amount while its parent carries one
In the extended profile, when a GROUP line carries a net amount (BT-131), all GROUP lines of the lower levels must carry one as well.
A DETAIL line has no invoiced quantity
In the extended profile, a line of subtype DETAIL — or without a subtype — must carry an invoiced quantity (BT-129).
A DETAIL line has no quantity unit of measure
In the extended profile, a line of subtype DETAIL — or without a subtype — must carry the unit code of its invoiced quantity (BT-130).
A DETAIL line has no net amount
In the extended profile, a line of subtype DETAIL — or without a subtype — must carry a line net amount (BT-131).
A DETAIL line has no item net price
In the extended profile, a line of subtype DETAIL — or without a subtype — must carry the item net price (BT-146).
An item attribute is incomplete in the extended profile
In the extended profile, every item attribute (BG-32) must carry a name (BT-160) or a code (EXT-FR-FE-159), and a value (BT-161) or a quantity with its unit (EXT-FR-FE-160, EXT-FR-FE-161) — but not both.
The schemeID attribute is missing on an identifier
Typed identifiers must carry their scheme: `VA` on a VAT identifier, `0088` on a GLN.
The profile declared in the XMP differs from the one in the XML
`fx:ConformanceLevel` in the PDF's XMP metadata must match the profile URN declared in the embedded XML.