EN 16931 and Peppol rules, explained

Your invoice failed PEPPOL-EN16931-R003 and the validator gave you a rule ID and an XPath. This is what that actually means, why the rule exists, and what to do about it — for the 56 rules real invoices actually hit.

29 of these are fixable with no input from you, 15 need one value you already know, and 12 are business decisions that should never be guessed. The API applies the first two and explains the third.

RuleWhat it meansFixField
BR-01Specification identifier is missingAUTOBT-24
BR-03Invoice issue date is missingMANUALBT-2
BR-04Invoice type code is missingAUTOBT-3
BR-05Invoice currency code is missingAUTOBT-5
BR-06Seller name is missingINPUTBT-27
BR-25Invoice line has no item nameINPUTBT-153
BR-48VAT breakdown has no category rateMANUALBT-119
BR-49Payment instruction has no payment means codeINPUTBT-81
BR-CL-04Invoice currency code is not a valid ISO 4217 codeINPUTBT-5
BR-CL-14Country code is not a valid ISO 3166-1 alpha-2 codeAUTOBT-40
BR-CO-10Sum of line net amounts does not match the totalAUTOBT-106
BR-CO-13Total without VAT does not reconcileAUTOBT-109
BR-CO-14Total VAT amount does not match the VAT breakdownAUTOBT-110
BR-CO-15Total with VAT does not reconcileAUTOBT-112
BR-CO-16Amount due for payment does not reconcileAUTOBT-115
BR-CO-17VAT category tax amount does not match base times rateAUTOBT-117
BR-E-02VAT-exempt line without a seller VAT identifierINPUTBT-31
BR-S-02Standard-rated line without a seller VAT identifierINPUTBT-31
BR-S-03Standard-rated document allowance without a seller VAT identifierINPUTBT-31
BR-S-04Standard-rated document charge without a seller VAT identifierINPUTBT-31
BR-S-09Standard-rated VAT amount does not match base times rateAUTOBT-117
DK-R-002Danish seller must provide a CVR numberINPUTBT-30
DK-R-005Payment means code not allowed for Danish suppliersMANUALBT-81
DK-R-014Danish supplier CompanyID needs schemeID 0184AUTOBT-30
DK-R-017Danish customer CompanyID needs schemeID 0184AUTOBT-47
GR-S-008-1Greek invoice is missing its invoice URLINPUT
GR-S-011Greek seller tax number is missing the country prefixAUTOBT-31
NL-R-003Dutch seller legal identifier must be a KVK or OIN numberINPUTBT-30
NL-R-008Payment means not allowed for a Dutch domestic invoiceMANUALBT-81
NO-R-001Norwegian VAT number is not in NO<orgnr>MVA formAUTOBT-31
NO-R-002Norwegian seller must state "Foretaksregisteret"AUTOBT-27
PEPPOL-COMMON-R040GLN fails the GS1 check digitMANUALBT-29
PEPPOL-COMMON-R044Italian IPA code has the wrong formatMANUALBT-46
PEPPOL-COMMON-R049Swedish organisation number has the wrong formatMANUALBT-30
PEPPOL-EN16931-CL008Electronic address scheme is not in the code listINPUTBT-34
PEPPOL-EN16931-R001Business process identifier is missingAUTOBT-23
PEPPOL-EN16931-R002Document-level note is not allowed in this formAUTOBT-22
PEPPOL-EN16931-R003Buyer reference or order reference is missingINPUTBT-10
PEPPOL-EN16931-R004Specification identifier is not the Peppol valueAUTOBT-24
PEPPOL-EN16931-R005VAT accounting currency equals the invoice currencyMANUALBT-6
PEPPOL-EN16931-R007Business process identifier has the wrong formatAUTOBT-23
PEPPOL-EN16931-R008Document contains empty elementsAUTO
PEPPOL-EN16931-R010Buyer electronic address is missingINPUTBT-49
PEPPOL-EN16931-R020Seller electronic address is missingINPUTBT-34
PEPPOL-EN16931-R040Allowance or charge amount does not match its percentageAUTOBT-93
PEPPOL-EN16931-R043Charge indicator is not a booleanAUTOBG-20
PEPPOL-EN16931-R046Item net price does not match gross price minus discountAUTOBT-146
PEPPOL-EN16931-R051Currency attributes disagree with the invoice currencyAUTOBT-5
PEPPOL-EN16931-R053More than one tax total with subtotalsAUTOBG-23
PEPPOL-EN16931-R054Wrong number of tax totals for the accounting currencyMANUALBT-111
PEPPOL-EN16931-R055VAT totals have opposite signsMANUALBT-111
PEPPOL-EN16931-R101Document reference used outside an invoice lineMANUALBG-24
PEPPOL-EN16931-R120Invoice line net amount does not reconcileAUTOBT-131
PEPPOL-EN16931-R130Price base quantity uses a different unit than the invoiced quantityAUTOBT-130
SE-R-013Swedish organisation number fails the check digitMANUALBT-30
UBL-CR-679Disallowed schemeID attribute on the tax categoryAUTO