Validation rule reference
Look up an EN 16931 or Peppol BIS Billing error by its rule code: what failed, how to fix it, and a tested before and after.
Explained rules
Core invoice fieldsBR
44 explanations
- BR-01Add the specification identifier in CustomizationID
The document root needs a non-empty
cbc:CustomizationID. For Peppol BIS Billing 3.0 it is a fixed value, not something read from source data. - BR-02Add the invoice number in the document-level cbc:ID
The
cbc:IDdirectly under the document root must contain the invoice or credit note number. An empty element fails; a missing one is stopped by the XSD. - BR-04Add the invoice type code
The document has no
cbc:InvoiceTypeCode(cbc:CreditNoteTypeCodein a credit note), or it is blank. Add the code for what the document is, such as380. - BR-05Add the invoice currency code
The document has no
cbc:DocumentCurrencyCode, or it is blank. State the currency the invoice is issued in as a three-letter ISO 4217 code. - BR-06Add the seller name as the supplier RegistrationName
The supplier party needs a non-empty
cbc:RegistrationNameinsidecac:PartyLegalEntity. A trading name incac:PartyNamedoes not count. - BR-07Add the buyer name as the customer RegistrationName
The customer party needs a non-empty
cbc:RegistrationNameinsidecac:PartyLegalEntity. An empty element fails, and so does leaving it out. - BR-08Add the seller postal address
The seller
cac:Partymust contain acac:PostalAddress. This rule checks only that the group is there; the country code inside it is checked byBR-09. - BR-09Give the seller postal address a country code
The seller
cac:PostalAddressneedscac:Country/cbc:IdentificationCodeholding an ISO 3166-1 code such asGB. A missing or blank code fails. - BR-10Add the buyer postal address
The buyer
cac:Partyneeds acac:PostalAddresschild. Only its presence is tested here; the buyer country code inside it is the subject ofBR-11. - BR-11Add the country code to the buyer postal address
A buyer
cac:PostalAddressmust containcac:Country/cbc:IdentificationCodewith a value. A missing, empty or blank code fails alike. - BR-12Add the sum of line net amounts to the monetary totals
cac:LegalMonetaryTotalhas nocbc:LineExtensionAmount. Write the sum of the line net amounts there, even when the document has a single line. - BR-13Add the total without VAT to the monetary totals
cac:LegalMonetaryTotalhas nocbc:TaxExclusiveAmount. Add the total without VAT: the line total minus document allowances plus document charges. - BR-14Add the total amount with VAT to the monetary totals
cac:LegalMonetaryTotalhas nocbc:TaxInclusiveAmount. Add the total with VAT: the total without VAT plus the VAT total, the base of the amount due. - BR-17Name the payee, or remove a payee that is the seller
A
cac:PayeePartyneedscac:PartyName/cbc:Name, and its name or identifier must not repeat the seller's. If the seller is paid, leave the payee out. - BR-18Add the name of the seller tax representative
A
cac:TaxRepresentativePartymust carry a name incac:PartyName/cbc:Name. A blank name fails, and acbc:RegistrationNamedoes not count. - BR-19Add a postal address to the seller tax representative
A
cac:TaxRepresentativePartymust contain acac:PostalAddress. Leave the group out if there is no representative, and send it complete if there is. - BR-20Add the country code to the tax representative address
The tax representative
cac:PostalAddressneedscac:Country/cbc:IdentificationCodewith a value such asGB. Street, city and postcode are not enough. - BR-21Give every line a non-empty line identifier
The
cbc:IDat the start of each invoice or credit note line must hold some text. An empty or blank line identifier fails; its value is not checked. - BR-22Add the invoiced or credited quantity to every line
Each line needs a quantity element,
cbc:InvoicedQuantityorcbc:CreditedQuantity. Without it the unit code check and the line calculation fail too. - BR-23Add the unitCode attribute to the line quantity
The
cbc:InvoicedQuantityorcbc:CreditedQuantityon each line must carry aunitCodeattribute naming its unit of measure. - BR-25Give every line an item name
Each invoice or credit note line needs a non-empty
cac:Item/cbc:Name. It is checked per line, and an item description does not stand in for it. - BR-26Add the item net price to every line
Each line needs
cac:Price/cbc:PriceAmount, the net price per unit. A line with nocac:Pricefails here, and the Peppol line calculation fails with it. - BR-27Fix a negative item net price by moving the sign to the quantity
The item net price on a line is below zero. Prices must be zero or positive: express a credit or correction with a negative quantity.
- BR-28Make the item gross price zero or positive
The gross price in
cbc:BaseAmountof a line price discount must not be below zero. A credit or correction takes its sign from the quantity. - BR-29Fix an invoicing period that ends before it starts
When the document-level invoicing period gives both dates,
cbc:EndDatemust fall on the same day ascbc:StartDateor later. - BR-30Put the line period end date on or after its start date
Inside a line
cac:InvoicePeriodthat has both dates,cbc:EndDatemust not be earlier thancbc:StartDate. A line period of a single day passes. - BR-32Add a VAT category to each document-level allowance
A document-level allowance needs a
cac:TaxCategorywith acbc:IDunder the VAT scheme, so the discount is taken off the right VAT breakdown. - BR-37Give each document-level charge a VAT category code
A root-level
cac:AllowanceChargewithcbc:ChargeIndicatoroftrueneeds acbc:IDin acac:TaxCategoryunder the VAT scheme, or it is taxed nowhere. - BR-45Add the taxable amount to each VAT breakdown
Every
cac:TaxSubtotalneeds acbc:TaxableAmount: the net amount on which the VAT in that breakdown is calculated. - BR-47Add the VAT category code to each VAT breakdown
Every
cac:TaxSubtotalneeds acac:TaxCategory/cbc:IDholding the VAT category code, in a tax category whose tax scheme isVAT. - BR-48Add the VAT rate to each VAT breakdown
Every VAT breakdown needs
cbc:Percentin its tax category, even when the rate is 0. Only categoryO, not subject to VAT, may leave it out. - BR-50Add the account identifier to the payee financial account
A credit transfer with code
30or58has acac:PayeeFinancialAccountbut no account number in itscbc:ID. Add the real account identifier. - BR-51Replace the full card number with its last four digits
Warning:
cbc:PrimaryAccountNumberIDis longer than 10 characters, which points to a full card number. Send the last four digits; the invoice stays valid. - BR-52Add an identifier to each supporting document reference
Every
cac:AdditionalDocumentReferenceneeds acbc:IDnaming the supporting document. An identifier that is empty or only whitespace fails. - BR-53Add the VAT total in the VAT accounting currency
When
cbc:TaxCurrencyCodeis given, the document needs a second tax total whosecbc:TaxAmountis stated in that currency. - BR-54Give every item attribute both a name and a value
Each
cac:AdditionalItemPropertymust have acbc:Nameand acbc:Value. If the item has no value for an attribute, leave the attribute out. - BR-55Add the preceding invoice number to the billing reference
Each
cac:BillingReferencemust holdcac:InvoiceDocumentReferencewith acbc:ID. Leave the billing reference out if there is no preceding invoice. - BR-56Add the VAT identifier of the seller tax representative
A
cac:TaxRepresentativePartyneeds acac:PartyTaxSchemewith tax schemeVATand acbc:CompanyID: the VAT number of the representative itself. - BR-57Add the country code to the deliver-to address
A deliver-to address in
cac:DeliveryLocation/cac:Addressmust includecac:Country/cbc:IdentificationCode. Only its presence is tested here. - BR-61Add the payee account to a credit transfer
Payment means code
30or58announces a credit transfer, so the invoice must say which account to pay:cac:PayeeFinancialAccount/cbc:ID. - BR-62Add the schemeID attribute to the seller electronic address
When the seller Party has a cbc:EndpointID, the element must carry a schemeID attribute saying which scheme the address belongs to.
- BR-63Add the schemeID attribute to the buyer electronic address
A buyer cbc:EndpointID must carry a schemeID attribute. The rule tests that the attribute exists, not what it contains.
- BR-64Add the schemeID attribute to the item standard identifier
An item standard identifier in
cac:StandardItemIdentification/cbc:IDmust say which scheme it belongs to, inschemeID:0160for a GTIN. - BR-65Add the listID attribute to the item classification code
An item classification code in
cac:CommodityClassificationmust name its classification system inlistID, using a UNTDID 7143 code.
Calculations and conditionsBR-CO
19 explanations
- BR-CO-03Send either the VAT point date or the VAT point date code, not both
cbc:TaxPointDateand the VAT point date code incac:InvoicePeriod/cbc:DescriptionCodemust not appear together. Send one of them, or neither. - BR-CO-04Add the VAT category code to every invoice line
Each line needs
cac:Item/cac:ClassifiedTaxCategory/cbc:IDunder theVATtax scheme, giving the VAT category of the item. - BR-CO-09Add the country prefix to a VAT identifier
Seller, buyer and tax representative VAT identifiers must begin with a two-letter country code in upper case, such as GB or EL.
- BR-CO-10Fix a line total that does not match the sum of the lines
The sum of line net amounts in the monetary totals must equal the line net amounts added together, rounded to two decimals.
- BR-CO-11Fix a document allowance total that does not match its allowances
The allowance total in the monetary totals must equal the sum of the document-level allowance amounts, rounded to two decimals.
- BR-CO-12Fix a document charge total that does not match its charges
The charge total in the monetary totals must equal the sum of the document-level charge amounts, rounded to two decimals.
- BR-CO-13Fix a total without VAT that does not follow from the other totals
The total without VAT must equal the line total minus the document allowance total plus the document charge total, to two decimals.
- BR-CO-14Fix a VAT total that does not match the VAT breakdown
The VAT total of a tax total must equal the sum of the tax amounts in its VAT breakdowns, rounded to two decimals.
- BR-CO-15Fix a total with VAT that is not the total without VAT plus the VAT total
The total with VAT must equal the total without VAT plus the VAT total in the document currency, rounded to two decimals.
- BR-CO-16Fix an amount due that does not follow from the total with VAT
The amount due must equal the total with VAT minus the prepaid amount plus the rounding amount, to two decimals.
- BR-CO-17Fix a VAT breakdown amount that does not match taxable amount times rate
Each VAT breakdown tax amount must agree with its taxable amount times its rate. The check tolerates a difference below 1.00; the correct figure does not.
- BR-CO-18Add the missing VAT breakdown to the tax total
Every invoice and credit note needs at least one VAT breakdown: a TaxSubtotal inside a document-level TaxTotal.
- BR-CO-19Give the invoicing period a start date, an end date or both
An invoicing period in
cac:InvoicePeriodneedscbc:StartDate,cbc:EndDateor both. A description of the period in words does not count. - BR-CO-20Put a date in every line period, or leave the period out
A
cac:InvoicePeriodon an invoice or credit note line must holdcbc:StartDate,cbc:EndDateor both. Unlike the document period, a code alone fails. - BR-CO-21Give each document-level allowance a reason code or reason text
A discount or other allowance on the whole document must say why it is given, in
cbc:AllowanceChargeReasonCode,cbc:AllowanceChargeReasonor both. - BR-CO-22State the reason for each document-level charge
A charge on the whole document, such as freight or packing, must carry a reason code from UNTDID 7161, a reason text, or both.
- BR-CO-23Add a reason to each allowance on an invoice line
An allowance attached to an invoice or credit note line must name its reason with a code, text or both. The price discount inside
cac:Priceis not covered. - BR-CO-24Give each line charge a reason code or reason text
A charge on an invoice or credit note line needs
cbc:AllowanceChargeReasonCode,cbc:AllowanceChargeReasonor both.BR-44reports the same gap. - BR-CO-26Give the seller a VAT, legal registration or seller identifier
The seller must carry at least one of a VAT identifier, a seller identifier in
cac:PartyIdentification, or a legal registration identifier.
Code listsBR-CL, PEPPOL-EN16931-CL
29 explanations
- BR-CL-01Use a permitted document type code
cbc:InvoiceTypeCode and cbc:CreditNoteTypeCode must hold a UNTDID 1001 code from the list for that document, such as 380 or 381.EN 16931
- BR-CL-03Use an ISO 4217 currency code in every currencyID attribute
The
currencyIDof an amount is not a three-letter ISO 4217 code. Use the code of the invoice currency, such asGBP, in upper case.EN 16931 - BR-CL-04Use an ISO 4217 alphabetic code for the invoice currency
cbc:DocumentCurrencyCodemust be a current three-letter ISO 4217 code in upper case, such asGBP. Names, symbols, numeric codes and lower case fail.EN 16931 - BR-CL-05Use an ISO 4217 code for the VAT accounting currency
cbc:TaxCurrencyCodemust be a code on the pinned ISO 4217 alphabetic list, such asEUR. The withdrawnHRK, numeric codes and lower case are rejected.EN 16931 - BR-CL-06Use code 3, 35 or 432 as the VAT point date code
The VAT point date code in
cac:InvoicePeriod/cbc:DescriptionCodemust be3,35or432. Other UNTDID 2005 codes, such as131, are rejected.EN 16931 - BR-CL-07Use a UNTDID 1153 code as the scheme of an invoiced object identifier
The
schemeIDof an object identifier (document type130) must be a UNTDID 1153 code, such asABZfor a vehicle licence number.EN 16931 - BR-CL-08Put an upper-case UNTDID 4451 subject code between the hashes of an invoice note
Three characters between the first two
#of an invoice note are read as a subject code and must be on the UNTDID 4451 list, in upper case, as in#AAI#.EN 16931 - BR-CL-10Use an ISO 6523 ICD code as the scheme of a party identifier
The
schemeIDon acac:PartyIdentification/cbc:IDmust be an ISO 6523 ICD code, such as0088for a GLN.SEPAis allowed for seller and payee only.EN 16931 - BR-CL-11Use an ISO 6523 ICD code as the scheme of a legal registration identifier
The
schemeIDoncac:PartyLegalEntity/cbc:CompanyIDmust be an ISO 6523 ICD code, such as0106for the Dutch KVK register, not a register name.EN 16931 - BR-CL-13Use a UNTDID 7143 code in the classification listID
The
listIDon an item classification code must be a UNTDID 7143 code, such asTSTfor UNSPSC orSTIfor CPV, not the name of the scheme.EN 16931 - BR-CL-14Use an ISO 3166-1 alpha-2 country code in addresses
Every
cac:Country/cbc:IdentificationCodemust be a two-letter ISO 3166-1 code in upper case. The code for the United Kingdom isGB, notUK.EN 16931 - BR-CL-15Use an ISO 3166-1 country code for the item country of origin
The country of origin of an item must be a two-letter ISO 3166-1 code in upper case, such as
DE.EUis not a country code and fails.EN 16931 - BR-CL-16Use a UNTDID 4461 payment means code
cbc:PaymentMeansCodemust be a UNTDID 4461 code, such as30for credit transfer or49for direct debit, not a bank scheme or product name.EN 16931 - BR-CL-17Use a permitted VAT category code in each tax category
Every
cac:TaxCategory/cbc:IDmust be one ofS,Z,E,AE,K,G,O,L,MorB. Internal tax codes such asSRare rejected.EN 16931 - BR-CL-18Use a permitted VAT category code on each line item
The line category in
cac:ClassifiedTaxCategory/cbc:IDmust be a permitted code such asS,ZorE. An internal code likeSRis rejected.EN 16931 - BR-CL-19Use an allowance reason code from the UNTDID 5189 list
An allowance reason code must be one of the UNTDID 5189 codes permitted in Peppol, such as 95 for Discount. A word such as DISCOUNT is not a code.EN 16931
- BR-CL-20Use a charge reason code from the UNTDID 7161 list
A charge reason code must be an upper-case UNTDID 7161 code, such as FC for freight or DL for delivery. Plain words such as FREIGHT are rejected.EN 16931
- BR-CL-21Use an ISO 6523 ICD code in the item identifier schemeID
The
schemeIDon an item standard identifier must be a code from the ISO 6523 ICD list. For a GTIN that is0160, not the textGTIN.EN 16931 - BR-CL-22Use a VATEX code for the VAT exemption reason code
cbc:TaxExemptionReasonCodemust hold a code from the VATEX list, such asVATEX-EU-132. Made-up codes are rejected; send reason text if no code fits.EN 16931 - BR-CL-23Use a UN/ECE Recommendation 20 code in unitCode
Every
unitCodeon a line quantity or price base quantity must be a UN/ECE Rec 20 or Rec 21 code, in upper case. Local abbreviations such asEACHfail.EN 16931 - BR-CL-24Use a permitted MIME code for embedded attachments
The
mimeCodeof an embedded attachment must be one of six values: PDF, PNG, JPEG, CSV, Excel xlsx or OpenDocument spreadsheet. Anything else fails.EN 16931 - BR-CL-25Use an EAS code as the schemeID of an electronic address
The schemeID on every cbc:EndpointID must be a code from the Electronic Address Scheme (EAS) list, such as 0088, matched exactly.EN 16931
- BR-CL-26Use an ISO 6523 ICD code as the scheme of the deliver-to location identifier
The
schemeIDoncac:DeliveryLocation/cbc:IDmust be an ISO 6523 ICD code. A delivery point identified by its GLN takes0088, notGLN.EN 16931 - PEPPOL-EN16931-CL001Declare an embedded attachment with one of the six Peppol MIME codes
Peppol accepts six MIME codes on an embedded attachment, the same six as
BR-CL-24. A variant such asapplication/x-pdffails both rules.Peppol BIS Billing - PEPPOL-EN16931-CL002Use one of the 19 Peppol UNTDID 5189 codes as the allowance reason code
On an allowance marked
false,cbc:AllowanceChargeReasonCodemust be one of the 19 UNTDID 5189 codes Peppol lists, such as95. A padded095fails.Peppol BIS Billing - PEPPOL-EN16931-CL003Use a code from the Peppol UNTDID 7161 list as the charge reason code
On a charge marked
true,cbc:AllowanceChargeReasonCodemust be a UNTDID 7161 code, such asDLfor delivery.DELis not one of them.Peppol BIS Billing - PEPPOL-EN16931-CL006Use 3, 35 or 432 as the VAT point date code of the invoicing period
The code in
cac:InvoicePeriod/cbc:DescriptionCodemust be3,35or432. A code from another list, such as the CII invoice date code5, is rejected.Peppol BIS Billing - PEPPOL-EN16931-CL007Write every amount currencyID exactly as a code on the Peppol currency list
Peppol compares each amount
currencyIDwith its ISO 4217 list character for character. A code with a trailing space fails here, though EN 16931 passes it.Peppol BIS Billing - PEPPOL-EN16931-CL008Use a Peppol electronic address scheme code in EndpointID
The
schemeIDon eachcbc:EndpointIDmust exactly match a code on the Peppol list of electronic address schemes, such as0088for a GLN.Peppol BIS Billing
Decimal precisionBR-DEC
19 explanations
- BR-DEC-01Write the document allowance amount with no more than two decimals
A document-level allowance amount has more than two digits after the decimal point. Write it with two at most:
1.00passes,1.000fails. - BR-DEC-02Write the document allowance base amount with no more than two decimals
The
cbc:BaseAmountof a document-level allowance has more than two digits after the decimal point. Write the base of the percentage discount with two. - BR-DEC-05Write the document charge amount with no more than two decimals
A document-level charge has a
cbc:Amountwith more than two digits after the decimal point. Write the charge, such as a freight fee, to two decimals. - BR-DEC-06Write the document charge base amount with no more than two decimals
The
cbc:BaseAmountof a document-level charge has more than two digits after the decimal point. Write the amount the charge percentage applies to with two. - BR-DEC-09Write the sum of line net amounts with no more than two decimals
cbc:LineExtensionAmountincac:LegalMonetaryTotalhas more than two digits after the decimal point. Write the sum of the line net amounts to two decimals. - BR-DEC-10Write the sum of document allowances with no more than two decimals
cbc:AllowanceTotalAmounthas more than two digits after the decimal point. Write the sum of allowances on document level to two decimals, zero included. - BR-DEC-11Write the sum of document charges with no more than two decimals
cbc:ChargeTotalAmounthas more than two digits after the decimal point. Write the sum of charges on document level with two decimals at most. - BR-DEC-12Write the total without VAT with no more than two decimals
cbc:TaxExclusiveAmountin the monetary totals has more than two digits after the decimal point. Write the total without VAT to two decimals at most. - BR-DEC-14Write the total with VAT with no more than two decimals
cbc:TaxInclusiveAmounthas more than two digits after the decimal point. Write the invoice total amount with VAT to two decimals at most. - BR-DEC-16Write the paid amount with no more than two decimals
cbc:PrepaidAmounthas more than two digits after the decimal point. Write the amount already paid, such as a deposit, with two decimals at most. - BR-DEC-17Write the rounding amount with no more than two decimals
cbc:PayableRoundingAmounthas more than two digits after the decimal point. Write the rounding amount, positive or negative, to two decimals at most. - BR-DEC-18Write the amount due with no more than two decimals
cbc:PayableAmounthas more than two digits after the decimal point. Round the amount due for payment to two decimals and format it that way. - BR-DEC-19Write each VAT breakdown taxable amount with no more than two decimals
A VAT breakdown gives its
cbc:TaxableAmountwith more than two digits after the decimal point. Write the base each VAT category is taxed on to two decimals. - BR-DEC-20Write each VAT breakdown tax amount with no more than two decimals
The
cbc:TaxAmountof acac:TaxSubtotalhas more than two digits after the decimal point. Round the VAT category tax amount to two decimals. - BR-DEC-23Write the line net amount with no more than two decimals
A line net amount has more than two digits after the decimal point. Round it to two decimals; trailing zeros count, so 25.000 fails.
- BR-DEC-24Write the line allowance amount with no more than two decimals
An allowance on an invoice line has a
cbc:Amountwith more than two digits after the decimal point. Round the line allowance to two decimals. - BR-DEC-25Write the base amount of a line allowance with no more than two decimals
A line allowance has a
cbc:BaseAmountwith more than two digits after the decimal point. Write the base the percentage was applied to with two at most. - BR-DEC-27Write the line charge amount with no more than two decimals
A charge on an invoice line has a
cbc:Amountwith more than two digits after the decimal point. Round the line charge to two decimals before writing it. - BR-DEC-28Write the base amount of a line charge with no more than two decimals
A percentage charge on an invoice line has a
cbc:BaseAmountwith more than two digits after the decimal point. Write the charge base with two at most.
VAT categoriesBR-S, BR-Z, BR-E, BR-AE, BR-IC, BR-G, BR-O
76 explanations
Standard rated (S) (10)
- BR-S-01Add the Standard rated VAT breakdown that the lines, allowances or charges require
If any line, document allowance or document charge is Standard rated, the VAT breakdown needs a Standard rated entry too, and the reverse also holds.
- BR-S-02Add the seller VAT identifier when lines are Standard rated
A document with a Standard rated line must identify the seller for VAT, through the seller's own tax identifier or a tax representative's VAT identifier.
- BR-S-03Add a seller VAT identifier when a document allowance is Standard rated
A document-level allowance in VAT category
Srequires the seller to be identified for VAT, by its own tax identifier or a tax representative VAT identifier. - BR-S-04Add a seller VAT identifier when a document charge is Standard rated
A document-level charge in VAT category
S, such as freight, requires a seller tax identifier or a tax representative VAT identifier. - BR-S-05Give a Standard rated line a VAT rate above zero
A line in VAT category
Sneeds a rate greater than zero in its item tax category. A rate of 0, a negative rate or no rate at all fails. - BR-S-06Give a Standard rated document allowance a VAT rate above zero
A document-level allowance in VAT category
Smust state the rate of the supplies it reduces incbc:Percent, and that rate must be above zero. - BR-S-07State a VAT rate above zero on a Standard rated document charge
A document-level charge in VAT category
Sneeds a positive rate incbc:Percent. Leaving the rate out fails, and so does a rate of 0. - BR-S-08Fix a Standard rated taxable amount that does not match its lines, charges and allowances
For each Standard rate, the breakdown taxable amount must match the Standard rated line amounts plus document charges minus document allowances at that rate.
- BR-S-09Fix the VAT amount of a Standard rated breakdown
In a Standard rated VAT breakdown the tax amount must agree with taxable amount times rate. Differences below 1.00 get through the check but are still wrong.
- BR-S-10Remove the exemption reason from a Standard rated VAT breakdown
A Standard rated VAT breakdown must not carry exemption reason text or an exemption reason code. VAT is charged in category
S, so nothing is exempt.
Zero rated (Z) (10)
- BR-Z-01Add exactly one Zero rated VAT breakdown when the document has Zero rated content
A document with a Zero rated line, document allowance or document charge needs exactly one Zero rated VAT breakdown: not none, and not two.
- BR-Z-02Add the seller VAT identifier when lines are Zero rated
Zero rating still needs an identified seller: a document with a Zero rated line must carry a seller tax identifier or a tax representative VAT identifier.
- BR-Z-03Add a seller VAT identifier when a document allowance is Zero rated
A document-level allowance in VAT category
Zneeds a seller tax identifier in the seller party or a tax representative VAT identifier. - BR-Z-04Add a seller VAT identifier when a document charge is Zero rated
A document-level charge in VAT category
Z, such as delivery, calls for a seller tax identifier or a tax representative with a VAT number. - BR-Z-05Set the VAT rate of a Zero rated line to 0
A line in VAT category
Zmust have a VAT rate of exactly 0. Any other rate on the line, or no rate element at all, fails. - BR-Z-06Set the VAT rate of a Zero rated document allowance to 0
A document-level allowance in VAT category
Zmust carry a rate of exactly 0. A positive rate, such as the standard 20, or a missing rate fails. - BR-Z-07Give a Zero rated document charge a VAT rate of 0
A document-level charge in VAT category
Zmust state a rate of 0 incbc:Percent. Leaving the rate out fails, as does any other value. - BR-Z-08Make the Zero rated taxable amount equal the Zero rated lines, charges and allowances
The Zero rated breakdown taxable amount must be exactly the Zero rated line net amounts plus Zero rated document charges minus Zero rated document allowances.
- BR-Z-09Set the tax amount of the Zero rated VAT breakdown to 0.00
Zero rated supplies are taxed at 0, so the tax amount in a VAT breakdown with category
Zmust be exactly zero. Even 0.01 fails. - BR-Z-10Remove the exemption reason from a Zero rated VAT breakdown
A Zero rated VAT breakdown must carry neither exemption reason text nor an exemption reason code. The category
Zsays all that is needed.
Exempt (E) (10)
- BR-E-01Use exactly one exempt VAT breakdown for all exempt content
When a line, document allowance or document charge is exempt, the VAT breakdown needs exactly one entry in category
E: not none, and not one per reason. - BR-E-02Add a seller tax identifier to an invoice with exempt lines
A document with a line in the exempt category
Emust carry a seller tax identifier, or the VAT identifier of a seller tax representative. - BR-E-03Identify the seller for tax when a document-level allowance is exempt
An exempt document-level allowance obliges the document to carry a seller tax identifier or a tax representative VAT identifier.
- BR-E-04Put the seller tax identifier in PartyTaxScheme when a document-level charge is exempt
A document-level charge in category
Eneeds the seller tax identifier in the seller PartyTaxScheme, or a tax representative VAT identifier. - BR-E-05Set the VAT rate of an exempt line to 0
A line whose item VAT category is
Emust state a VAT rate of exactly 0. A reduced or Standard rate on it fails, and so does a missing rate. - BR-E-06Set the VAT rate of an exempt document-level allowance to 0
A document-level allowance in category
Emust carry a VAT rate of exactly 0. An exempt discount at the Standard rate of 20 fails. - BR-E-07Set the VAT rate of an exempt document-level charge to 0
A document-level charge in category
E, such as a fee that follows an exempt service, must carry a VAT rate of exactly 0. - BR-E-08Make the exempt taxable amount equal the exempt lines, charges and allowances
The exempt VAT breakdown taxable amount must equal exempt line net amounts plus exempt document charges minus exempt document allowances, exactly.
- BR-E-09Set the tax amount of the exempt VAT breakdown to zero
No VAT is charged in the exempt category, so the tax amount of a VAT breakdown with category
Emust be exactly 0. - BR-E-10Add the exemption reason to an exempt VAT breakdown
A VAT breakdown in the exempt category must say what the exemption is, through exemption reason text, an exemption reason code, or both.
Reverse charge (AE) (10)
- BR-AE-01Add exactly one reverse-charge VAT breakdown when anything is reverse charged
A document with a reverse-charge line, document allowance or document charge needs one VAT breakdown in category
AE, even beside other categories. - BR-AE-02Identify the seller and the buyer on a reverse-charge invoice
A document with a reverse-charge line needs a seller tax identifier and, for the buyer, a VAT identifier or a legal registration identifier.
- BR-AE-03Identify the seller and the buyer when a document-level allowance is reverse charged
A reverse-charge document-level allowance needs a seller tax identifier and, for the buyer, a VAT identifier or a legal registration identifier.
- BR-AE-04Identify the seller and the buyer when a document-level charge is reverse charged
A reverse-charge document-level charge needs the seller tax identifier as well as a buyer VAT or legal registration identifier in the document.
- BR-AE-05Set the VAT rate of a reverse-charge line to 0
A line in VAT category
AEmust have a VAT rate of exactly 0, even though the buyer will account for VAT on the supply. - BR-AE-06Set the VAT rate of a reverse-charge document allowance to 0
A document-level allowance in VAT category
AEmust carry a rate of exactly 0; a discount on a reverse-charge supply cannot keep the seller's own rate. - BR-AE-07Give a reverse-charge document charge a VAT rate of 0
A document-level charge in VAT category
AEneeds acbc:Percentof exactly 0 in its tax category, and leaving the rate out fails as well. - BR-AE-08Recalculate the reverse-charge taxable amount from the AE lines, charges and allowances
The
AEVAT breakdown taxable amount must be exactly the reverse-charge line net amounts, plusAEdocument charges, minusAEdocument allowances. - BR-AE-09Set the tax amount of the reverse-charge VAT breakdown to zero
The seller charges no VAT under reverse charge, so a VAT breakdown with category
AEmust show a tax amount of exactly 0. - BR-AE-10Add the reverse-charge reason to the VAT breakdown
A reverse-charge VAT breakdown must state why no VAT is charged, as exemption reason text, a reason code, or both.
Intra-community supply (K) (12)
- BR-IC-01Send exactly one intra-community VAT breakdown
A document with any intra-community content (category
K) must have one VAT breakdown in categoryK: not none, and not two. - BR-IC-02Add the seller and buyer VAT identifiers to an intra-community supply
A document with an intra-community supply line (category
K) needs a seller or tax representative VAT identifier and a buyer VAT identifier. - BR-IC-03Add the VAT identifiers that an intra-community document allowance requires
A document-level allowance in category
Kneeds what aKline needs: a seller or tax representative VAT identifier, and a buyer VAT identifier. - BR-IC-04Identify the seller and buyer under the VAT scheme when a document charge is intra-community
A document-level charge in category
Krequires a seller VAT identifier, or a tax representative's, and a buyer VAT identifier, both under theVATscheme. - BR-IC-05Give each intra-community supply line a VAT rate of 0
A line in VAT category
Kmust carry a rate of exactly 0; the rate of the buyer's country, such as 19 for Germany, does not go on the seller's line. - BR-IC-06Change the VAT rate on an intra-community discount to 0
A document-level allowance in category
Kmust state a VAT rate of 0; a discount on an intra-community supply does not carry the seller's domestic 20. - BR-IC-07Correct the VAT rate on an intra-community document charge to 0
A document-level charge in category
K, such as freight on goods sent to another member state, must carry a VAT rate of 0. - BR-IC-08Include intra-community charges and allowances in the K taxable amount
The
KVAT breakdown taxable amount must equal theKline net amounts plusKdocument charges minusKdocument allowances, with no tolerance. - BR-IC-09Take the VAT out of the intra-community supply breakdown
An intra-community supply is invoiced without VAT, so the tax amount of a VAT breakdown in category
Kmust be exactly 0, whatever rate it shows. - BR-IC-10Add the intra-community supply reason to the VAT breakdown
A VAT breakdown in category
Kmust state the intra-community supply reason: the codeVATEX-EU-IC, the matching reason text, or both. - BR-IC-11Add a delivery date or invoicing period to an intra-community supply
When the VAT breakdown includes category
K, the document needs an actual delivery date or an invoicing period at document level. - BR-IC-12Add the deliver-to country to an intra-community supply
A document with a
KVAT breakdown must give the country the goods were delivered to, in the deliver-to address undercac:Delivery/cac:DeliveryLocation.
Export outside the EU (G) (10)
- BR-G-01Send exactly one VAT breakdown for export outside the EU
A document with a line, allowance or charge in category
Gneeds one VAT breakdown inG: none fails, and so does a second copy. - BR-G-02Add the seller VAT identifier to an export invoice
A document with a line in category
G, export outside the EU, needs a seller VAT identifier, or a tax representative one, under theVATscheme. - BR-G-03Add the seller VAT identifier to an export invoice with an allowance in category G
A document-level allowance in category
Gneeds a seller VAT identifier, or a tax representative one, under theVATscheme, as an export line does. - BR-G-04Register the seller under the VAT scheme on an export invoice with a charge in category G
A document-level charge in category
G, such as freight on an export, needs a seller or tax representative VAT identifier under theVATscheme. - BR-G-05Set the VAT rate of an export line to 0
An invoice line in category
G, export outside the EU, must carry a VAT rate of exactly 0 in its item tax category. - BR-G-06Give an export allowance a VAT rate of 0
A document-level allowance in category
Gmust state a VAT rate, and that rate must be 0. An allowance with no rate fails too. - BR-G-07Set the VAT rate of an export charge to 0
A document-level charge in category
G, such as freight billed with an export, must carry a VAT rate of 0 in its tax category. - BR-G-08Make the export taxable amount equal its lines, charges and allowances
The taxable amount of the
Gbreakdown must equal the export line net amounts plusGcharges minusGallowances, with no tolerance. - BR-G-09Set the tax amount of the export VAT breakdown to zero
Goods exported outside the EU are invoiced without VAT, so a VAT breakdown in category
Gmust show a tax amount of exactly 0. - BR-G-10Add the export reason to the VAT breakdown
A VAT breakdown in category
Gmust give the export reason: the codeVATEX-EU-G, the textExport outside the EUor its equivalent, or both.
Not subject to VAT (O) (14)
- BR-O-01Give a document with not subject to VAT content exactly one O breakdown
A line, document allowance or document charge in category
Oneeds one VAT breakdown inO. A document with none, or with two, is rejected. - BR-O-02Remove VAT identifiers from a document that is not subject to VAT
When a line is category
O, not subject to VAT, the document must not carry a VAT identifier for the seller, the buyer or a tax representative. - BR-O-03Remove VAT identifiers when a document level allowance is not subject to VAT
A document-level allowance in category
Orules out VAT identifiers for the seller, the buyer and the tax representative, just as anOline does. - BR-O-04Remove VAT identifiers when a document level charge is not subject to VAT
A document-level charge in category
O, such as delivery on an out-of-scope invoice, means no party on that document may carry a VAT identifier. - BR-O-05Remove the VAT rate from a line that is not subject to VAT
A line in category
Omust not have acbc:Percentin its classified tax category, not even0. Leave the rate out entirely. - BR-O-06Remove the VAT rate from a document level allowance that is not subject to VAT
A discount or other document-level allowance in category
Otakes nocbc:Percentat all, so an allowance rate of0inOis rejected. - BR-O-07Remove the VAT rate from a document level charge that is not subject to VAT
A document-level charge in category
Omust carry nocbc:Percent. A rate on it, such as20left over from a delivery charge template, is rejected. - BR-O-08Recalculate the not subject to VAT taxable amount from the O lines, allowances and charges
The taxable amount of the
Obreakdown must be exactly theOline net amounts, plusOdocument charges, minusOdocument allowances. - BR-O-09Charge no VAT in the not subject to VAT breakdown
Amounts outside the scope of VAT carry no tax, so the
cbc:TaxAmountof a breakdown in categoryOmust be zero, with the totals following suit. - BR-O-10Add the not subject to VAT reason to the VAT breakdown
A VAT breakdown in category
Omust say that the amount is not subject to VAT: the codeVATEX-EU-O, reason text, or both. - BR-O-11Keep amounts not subject to VAT on a separate invoice from other VAT categories
A document with a VAT breakdown in category
Omay not have a breakdown in any other category. Out-of-scope and VAT-rated amounts need separate documents. - BR-O-12Take lines in other VAT categories off a not subject to VAT invoice
Once a document has a VAT breakdown in
O, every line has to be inOtoo. A Zero rated line beside it is rejected even without a breakdown of its own. - BR-O-13Keep document level allowances in category O on a not subject to VAT invoice
When the VAT breakdown is in category
O, each document-level allowance must be inOas well; a discount codedSat 20 on such a document is rejected. - BR-O-14Keep document level charges in category O on a not subject to VAT invoice
On a document with an
OVAT breakdown, every document-level charge must be inOtoo. A delivery charge left inSat 20 there is rejected.
Peppol requirementsPEPPOL-EN16931, PEPPOL-COMMON
41 explanations
Business rules (PEPPOL-EN16931-R) (28)
- PEPPOL-EN16931-R001Add the missing business process identifier
The document has no cbc:ProfileID. Add it directly under the root, after cbc:CustomizationID, with the Peppol Billing process identifier.
- PEPPOL-EN16931-R002Keep to one document-level note
Peppol allows one
cbc:Notedirectly under the root unless seller and buyer both have German postal addresses. Merge the texts into one note. - PEPPOL-EN16931-R003Add a buyer reference or a purchase order reference
The document has neither cbc:BuyerReference nor cac:OrderReference/cbc:ID. Peppol needs at least one so the buyer can route the invoice.
- PEPPOL-EN16931-R004Use the Peppol BIS Billing 3.0 specification identifier
cbc:CustomizationID is missing or is not the Peppol BIS Billing 3.0 identifier. Send the Peppol value, not plain EN 16931 or another CIUS.
- PEPPOL-EN16931-R005Remove a VAT accounting currency that repeats the invoice currency
cbc:TaxCurrencyCodeis only for VAT accounted in a currency other than the invoice currency. Leave it out when the two would be the same. - PEPPOL-EN16931-R007Use an approved business process identifier
cbc:ProfileIDmust name a business process the Peppol rules recognise; for Billing,urn:fdc:peppol.eu:2017:poacc:billing:01:1.0, not a version. - PEPPOL-EN16931-R008Remove empty elements from the document
An element has no text and no child elements. Peppol does not allow empty elements: leave out any optional element you have no value for.
- PEPPOL-EN16931-R010Add the buyer electronic address
Peppol requires a cbc:EndpointID inside the buyer Party. Only the presence of the element is tested; scheme and value are left to other rules.
- PEPPOL-EN16931-R020Add the seller electronic address
Peppol requires a cbc:EndpointID inside the seller Party. The rule checks only that the element is there, not its scheme or value.
- PEPPOL-EN16931-R040Fix an allowance or charge amount that does not match its base amount and percentage
When an allowance or charge states both a base amount and a percentage, its amount must be base times percentage over 100, within 0.02.
- PEPPOL-EN16931-R041Add the base amount to an allowance or charge that states a percentage
An allowance or charge that gives a percentage must also give the base amount the percentage was applied to.
- PEPPOL-EN16931-R042Add the percentage to an allowance or charge that states a base amount
An allowance or charge that gives a base amount must also give the percentage; a fixed-sum allowance or charge should carry neither.
- PEPPOL-EN16931-R043Write the charge indicator as true or false, not 1 or 0
Peppol wants
cbc:ChargeIndicatoron document and line allowances and charges spelled as true or false. The schema also allows 1 and 0; Peppol does not. - PEPPOL-EN16931-R044Mark the price-level adjustment as a discount, or move a surcharge out of the price
Only a discount may sit in
cac:Price/cac:AllowanceCharge, so itscbc:ChargeIndicatormust befalse. A surcharge goes in the net price or a line charge. - PEPPOL-EN16931-R046Fix a net price that is not the gross price minus the price discount
When a line price states a gross price, the net price must equal the gross price minus the price discount exactly. There is no tolerance.
- PEPPOL-EN16931-R051Use the invoice currency code in every amount currencyID
An amount has a
currencyIDother thancbc:DocumentCurrencyCode. All amounts must be in the invoice currency, bar the VAT total in an accounting currency. - PEPPOL-EN16931-R053Put the whole VAT breakdown in a single tax total
The document must have exactly one
cac:TaxTotalcontainingcac:TaxSubtotalelements. Put every VAT breakdown inside that one tax total. - PEPPOL-EN16931-R054Send a tax total without a breakdown only with a VAT accounting currency
A
cac:TaxTotalwith nocac:TaxSubtotalmust appear exactly once whencbc:TaxCurrencyCodeis given, and not at all when it is absent. - PEPPOL-EN16931-R055Give the VAT total in the accounting currency the same sign as the invoice VAT total
The VAT totals in the invoice currency and in the VAT accounting currency must not be on opposite sides of zero. Zero goes with either sign.
- PEPPOL-EN16931-R061Add the mandate reference to a direct debit
Payment means
49or59is a direct debit and needscac:PaymentMandate/cbc:ID, the reference of the mandate the buyer signed. - PEPPOL-EN16931-R080Send only one project reference on a credit note
A Peppol credit note may carry one
cac:AdditionalDocumentReferencewithcbc:DocumentTypeCode50at most: that is how it holds its project reference. - PEPPOL-EN16931-R100Reference only one invoiced object on each line
An invoice or credit note line may hold one
cac:DocumentReferenceat most, the invoiced object identifier. Split a line that covers several objects. - PEPPOL-EN16931-R101Use a line document reference only for the invoiced object, with type code 130
A
cac:DocumentReferenceon an invoice line must be the invoiced object, withcbc:DocumentTypeCode130. Other documents belong at document level. - PEPPOL-EN16931-R110Start each line period on or after the invoicing period start date
When the document has an invoicing period start date, no line period may start earlier. Correct the line date or start the document period earlier.
- PEPPOL-EN16931-R111End each line period on or before the invoicing period end date
When the invoicing period has an end date, no line period may end later. Correct the line end date or extend the document period to cover it.
- PEPPOL-EN16931-R120Fix a line net amount that does not follow from quantity, price, charges and allowances
Each line net amount must equal quantity x (net price / base quantity) + line charges - line allowances, within 0.02.
- PEPPOL-EN16931-R121Use a price base quantity above zero, or leave it out
If a line price states a base quantity, it must be greater than zero. Zero and negative values fail; omitting the element is fine.
- PEPPOL-EN16931-R130Use the line quantity unit on the price base quantity
When
cac:Price/cbc:BaseQuantityhas aunitCode, it must be the code used on the line quantity. Convert the price rather than relabel the unit.
Process and document type codes (PEPPOL-EN16931-P) (11)
- PEPPOL-EN16931-P0100Use an invoice type code that Peppol BIS Billing allows
Peppol BIS Billing accepts only part of the UNTDID 1001 invoice codes. A code such as
325(proforma) passes EN 16931 and fails here. - PEPPOL-EN16931-P0101Use a credit note type code that Peppol BIS Billing allows
In a Peppol credit note,
cbc:CreditNoteTypeCodemust be381,396,81,83or532. An invoice code such as380is rejected. - PEPPOL-EN16931-P0104Use category G on the breakdown that carries the export code VATEX-EU-G
VATEX-EU-Gstates an export outside the EU, and Peppol accepts it only in a tax category with the IDG. The recorded export was coded exempt,E. - PEPPOL-EN16931-P0105Keep the not subject to VAT code VATEX-EU-O for category O breakdowns
VATEX-EU-Osays a supply is outside the scope of VAT and belongs only in tax categoryO. The recorded example put it in a reverse-charge breakdown,AE. - PEPPOL-EN16931-P0106Pair the VATEX-EU-IC exemption code with category K
The exemption reason code
VATEX-EU-ICis reserved for intra-community supplies, categoryK. A tax category with any other code that carries it is rejected. - PEPPOL-EN16931-P0107Use VATEX-EU-AE only on a reverse-charge breakdown in category AE
The reverse-charge code
VATEX-EU-AEmust sit in tax categoryAE. The recorded intra-community supply used it in place ofVATEX-EU-ICin itsKbreakdown. - PEPPOL-EN16931-P0108Put the second-hand means of transport code VATEX-EU-D in an exempt breakdown
VATEX-EU-Dmarks a second-hand means of transport, such as a used car, and is accepted only with categoryE. The recorded used car was codedK. - PEPPOL-EN16931-P0109Code second-hand goods sold under the margin scheme as category E with VATEX-EU-F
VATEX-EU-Fmarks a sale under the margin scheme for second-hand goods and is accepted only in categoryE. The recorded bookcase sale was codedO. - PEPPOL-EN16931-P0110Pair the works of art margin scheme code VATEX-EU-I with category E
Peppol accepts
VATEX-EU-I, the margin scheme code for works of art, only in categoryE. The recorded painting, sold to a US buyer, was codedG. - PEPPOL-EN16931-P0111Keep antiques sold under the margin scheme in category E, not reverse charge
The margin scheme code for collectors items and antiques,
VATEX-EU-J, is valid only in categoryE. The recorded antique clock was codedAE. - PEPPOL-EN16931-P0112Keep invoice type codes 326 and 384 for invoices between two German parties
Peppol accepts
326(partial invoice) and384(corrected invoice) only when the seller and the buyer both have a postal address in Germany.
Formats (PEPPOL-EN16931-F) (1)
- PEPPOL-EN16931-F001Write dates as plain YYYY-MM-DD with no time zone
Peppol dates must be exactly ten characters,
YYYY-MM-DD. A time zone suffix such asZor+01:00passes the XSD but fails this rule.
Identifier checks (PEPPOL-COMMON) (1)
- PEPPOL-COMMON-R040Fix a GLN whose check digit is wrong
An identifier with scheme
0088must be all digits and end in the correct GS1 check digit.7300010000001passes;7300010000002does not.
Country-specific requirementsNL-R and other country codes
3 explanations
Netherlands (NL) (3)
- NL-R-001Reference the corrected invoice on a credit note from a Dutch supplier
When the seller address is in the Netherlands, a credit note must carry the number of the invoice it corrects in
cac:BillingReference. - NL-R-003Use scheme 0106 (KVK) or 0190 (OIN) for a Dutch seller legal identifier
When the seller address is in the Netherlands,
cac:PartyLegalEntity/cbc:CompanyIDneeds a value andschemeID0106(KVK) or0190(OIN). - NL-R-007Add payment means when a Dutch supplier is owed money
A seller in the Netherlands must include
cac:PaymentMeanswhenever the buyer has something to pay: an invoice due above zero or a credit note due below it.
UBL elements outside the modelUBL-CR
675 explanations
Document header (29)
UBL-CR-001Remove UBLExtensions from the document headerUBL-CR-002Declare UBL version 2.1 or leave the version outUBL-CR-003Remove ProfileExecutionID from the document headerUBL-CR-004Remove CopyIndicator from the document headerUBL-CR-005Remove UUID from the document headerUBL-CR-006Remove the issue time from the documentUBL-CR-007Remove PricingCurrencyCode from the document headerUBL-CR-008Remove PaymentCurrencyCode from the document headerUBL-CR-009Remove PaymentAlternativeCurrencyCode from the document headerUBL-CR-010Remove AccountingCostCode from the document headerUBL-CR-011Remove LineCountNumeric from the document headerUBL-CR-077Remove StatementDocumentReference from the document headerUBL-CR-137Remove Signature from the document headerUBL-CR-294Remove BuyerCustomerParty from the document headerUBL-CR-295Remove SellerSupplierParty from the document headerUBL-CR-410Remove DeliveryTerms from the document headerUBL-CR-470Remove PrepaidPayment from the document headerUBL-CR-490Remove TaxExchangeRate from the document headerUBL-CR-491Remove PricingExchangeRate from the document headerUBL-CR-492Remove PaymentExchangeRate from the document headerUBL-CR-493Remove PaymentAlternativeExchangeRate from the document headerUBL-CR-513Remove WithholdingTaxTotal from the document headerUBL-CR-648Remove the schemeID attribute from the specification identifierUBL-CR-649Remove the schemeID attribute from the business process typeUBL-CR-650Remove the schemeID attribute from the invoice numberUBL-CR-656Remove the listID attribute from the invoice type codeUBL-CR-657Remove the listID attribute from the invoice currency codeUBL-CR-658Remove the listID attribute from the VAT accounting currency codeUBL-CR-672Remove the listID attribute from the credit note type code
References and periods (127)
UBL-CR-012Remove StartTime from the invoicing periodUBL-CR-013Remove EndTime from the invoicing periodUBL-CR-014Remove DurationMeasure from the invoicing periodUBL-CR-015Remove Description from the invoicing periodUBL-CR-016Remove CopyIndicator from the purchase order referenceUBL-CR-017Remove UUID from the purchase order referenceUBL-CR-018Remove IssueDate from the purchase order referenceUBL-CR-019Remove IssueTime from the purchase order referenceUBL-CR-020Remove CustomerReference from the purchase order referenceUBL-CR-021Remove OrderTypeCode from the purchase order referenceUBL-CR-022Remove DocumentReference from the purchase order referenceUBL-CR-023Remove CopyIndicator from the preceding invoiceUBL-CR-024Remove UUID from the preceding invoiceUBL-CR-025Remove IssueTime from the preceding invoiceUBL-CR-026Remove DocumentTypeCode from the preceding invoiceUBL-CR-027Remove DocumentType from the preceding invoiceUBL-CR-028Remove XPath from the preceding invoiceUBL-CR-029Remove LanguageID from the preceding invoiceUBL-CR-030Remove LocaleCode from the preceding invoiceUBL-CR-031Remove VersionID from the preceding invoiceUBL-CR-032Remove DocumentStatusCode from the preceding invoiceUBL-CR-033Remove DocumentDescription from the preceding invoiceUBL-CR-034Remove Attachment from the preceding invoiceUBL-CR-035Remove ValidityPeriod from the preceding invoiceUBL-CR-036Remove IssuerParty from the preceding invoiceUBL-CR-037Remove ResultOfVerification from the preceding invoiceUBL-CR-038Remove SelfBilledInvoiceDocumentReference from the preceding invoice referenceUBL-CR-039Remove CreditNoteDocumentReference from the preceding invoice referenceUBL-CR-040Remove SelfBilledCreditNoteDocumentReference from the preceding invoice referenceUBL-CR-041Remove DebitNoteDocumentReference from the preceding invoice referenceUBL-CR-042Remove ReminderDocumentReference from the preceding invoice referenceUBL-CR-043Remove AdditionalDocumentReference from the preceding invoice referenceUBL-CR-044Remove BillingReferenceLine from the preceding invoice referenceUBL-CR-045Remove CopyIndicator from the despatch advice referenceUBL-CR-046Remove UUID from the despatch advice referenceUBL-CR-047Remove IssueDate from the despatch advice referenceUBL-CR-048Remove IssueTime from the despatch advice referenceUBL-CR-049Remove DocumentTypeCode from the despatch advice referenceUBL-CR-050Remove DocumentType from the despatch advice referenceUBL-CR-051Remove XPath from the despatch advice referenceUBL-CR-052Remove LanguageID from the despatch advice referenceUBL-CR-053Remove LocaleCode from the despatch advice referenceUBL-CR-054Remove VersionID from the despatch advice referenceUBL-CR-055Remove DocumentStatusCode from the despatch advice referenceUBL-CR-056Remove DocumentDescription from the despatch advice referenceUBL-CR-057Remove Attachment from the despatch advice referenceUBL-CR-058Remove ValidityPeriod from the despatch advice referenceUBL-CR-059Remove IssuerParty from the despatch advice referenceUBL-CR-060Remove ResultOfVerification from the despatch advice referenceUBL-CR-061Remove CopyIndicator from the receiving advice referenceUBL-CR-062Remove UUID from the receiving advice referenceUBL-CR-063Remove IssueDate from the receiving advice referenceUBL-CR-064Remove IssueTime from the receiving advice referenceUBL-CR-065Remove DocumentTypeCode from the receiving advice referenceUBL-CR-066Remove DocumentType from the receiving advice referenceUBL-CR-067Remove XPath from the receiving advice referenceUBL-CR-068Remove LanguageID from the receiving advice referenceUBL-CR-069Remove LocaleCode from the receiving advice referenceUBL-CR-070Remove VersionID from the receiving advice referenceUBL-CR-071Remove DocumentStatusCode from the receiving advice referenceUBL-CR-072Remove DocumentDescription from the receiving advice referenceUBL-CR-073Remove Attachment from the receiving advice referenceUBL-CR-074Remove ValidityPeriod from the receiving advice referenceUBL-CR-075Remove IssuerParty from the receiving advice referenceUBL-CR-076Remove ResultOfVerification from the receiving advice referenceUBL-CR-078Remove CopyIndicator from the tender or lot referenceUBL-CR-079Remove UUID from the tender or lot referenceUBL-CR-080Remove IssueDate from the tender or lot referenceUBL-CR-081Remove IssueTime from the tender or lot referenceUBL-CR-082Remove DocumentTypeCode from the tender or lot referenceUBL-CR-083Remove DocumentType from the tender or lot referenceUBL-CR-084Remove XPath from the tender or lot referenceUBL-CR-085Remove LanguageID from the tender or lot referenceUBL-CR-086Remove LocaleCode from the tender or lot referenceUBL-CR-087Remove VersionID from the tender or lot referenceUBL-CR-088Remove DocumentStatusCode from the tender or lot referenceUBL-CR-089Remove DocumentDescription from the tender or lot referenceUBL-CR-090Remove Attachment from the tender or lot referenceUBL-CR-091Remove ValidityPeriod from the tender or lot referenceUBL-CR-092Remove IssuerParty from the tender or lot referenceUBL-CR-093Remove ResultOfVerification from the tender or lot referenceUBL-CR-094Remove CopyIndicator from the contract referenceUBL-CR-095Remove UUID from the contract referenceUBL-CR-096Remove IssueDate from the contract referenceUBL-CR-097Remove IssueTime from the contract referenceUBL-CR-098Remove DocumentTypeCode from the contract referenceUBL-CR-099Remove DocumentType from the contract referenceUBL-CR-100Remove XPath from the contract referenceUBL-CR-101Remove LanguageID from the contract referenceUBL-CR-102Remove LocaleCode from the contract referenceUBL-CR-103Remove VersionID from the contract referenceUBL-CR-104Remove DocumentStatusCode from the contract referenceUBL-CR-105Remove DocumentDescription from the contract referenceUBL-CR-106Remove Attachment from the contract referenceUBL-CR-107Remove ValidityPeriod from the contract referenceUBL-CR-108Remove IssuerParty from the contract referenceUBL-CR-109Remove ResultOfVerification from the contract referenceUBL-CR-110Remove CopyIndicator from a supporting document referenceUBL-CR-111Remove UUID from a supporting document referenceUBL-CR-112Remove IssueDate from a supporting document referenceUBL-CR-113Remove IssueTime from a supporting document referenceUBL-CR-114Remove DocumentType from a supporting document referenceUBL-CR-115Remove XPath from a supporting document referenceUBL-CR-116Remove LanguageID from a supporting document referenceUBL-CR-117Remove LocaleCode from a supporting document referenceUBL-CR-118Remove VersionID from a supporting document referenceUBL-CR-119Remove DocumentStatusCode from a supporting document referenceUBL-CR-121Remove DocumentHash from the external document locationUBL-CR-122Remove HashAlgorithmMethod from the external document locationUBL-CR-123Remove ExpiryDate from the external document locationUBL-CR-124Remove ExpiryTime from the external document locationUBL-CR-125Remove MimeCode from the external document locationUBL-CR-126Remove FormatCode from the external document locationUBL-CR-127Remove EncodingCode from the external document locationUBL-CR-128Remove CharacterSetCode from the external document locationUBL-CR-129Remove FileName from the external document locationUBL-CR-130Remove Description from the external document locationUBL-CR-131Remove ValidityPeriod from a supporting document referenceUBL-CR-132Remove IssuerParty from a supporting document referenceUBL-CR-133Remove ResultOfVerification from a supporting document referenceUBL-CR-134Remove UUID from the project referenceUBL-CR-135Remove IssueDate from the project referenceUBL-CR-136Remove WorkPhaseReference from the project referenceUBL-CR-659Remove the listID attribute from the type code of a document referenceUBL-CR-665Remove the schemeID attribute from the identifier of a document reference other than the invoiced objectUBL-CR-666Remove Attachment from the invoiced object referenceUBL-CR-673Remove DocumentDescription from the invoiced object reference
Seller (63)
UBL-CR-138Remove CustomerAssignedAccountID from the seller partyUBL-CR-139Remove AdditionalAccountID from the seller partyUBL-CR-140Remove DataSendingCapability from the seller partyUBL-CR-141Remove MarkCareIndicator from the seller's party detailsUBL-CR-142Remove MarkAttentionIndicator from the seller's party detailsUBL-CR-143Remove WebsiteURI from the seller's party detailsUBL-CR-144Remove LogoReferenceID from the seller's party detailsUBL-CR-145Remove IndustryClassificationCode from the seller's party detailsUBL-CR-146Remove Language from the seller's party detailsUBL-CR-147Remove ID from the seller's postal addressUBL-CR-148Remove AddressTypeCode from the seller's postal addressUBL-CR-149Remove AddressFormatCode from the seller's postal addressUBL-CR-150Remove Postbox from the seller's postal addressUBL-CR-151Remove Floor from the seller's postal addressUBL-CR-152Remove Room from the seller's postal addressUBL-CR-153Remove BlockName from the seller's postal addressUBL-CR-154Remove BuildingName from the seller's postal addressUBL-CR-155Remove BuildingNumber from the seller's postal addressUBL-CR-156Remove InhouseMail from the seller's postal addressUBL-CR-157Remove Department from the seller's postal addressUBL-CR-158Remove MarkAttention from the seller's postal addressUBL-CR-159Remove MarkCare from the seller's postal addressUBL-CR-160Remove PlotIdentification from the seller's postal addressUBL-CR-161Remove CitySubdivisionName from the seller's postal addressUBL-CR-162Remove CountrySubentityCode from the seller's postal addressUBL-CR-163Remove Region from the seller's postal addressUBL-CR-164Remove District from the seller's postal addressUBL-CR-165Remove TimezoneOffset from the seller's postal addressUBL-CR-166Remove Name from the seller's countryUBL-CR-167Remove LocationCoordinate from the seller's postal addressUBL-CR-168Remove PhysicalLocation from the seller's party detailsUBL-CR-169Remove RegistrationName from the seller's VAT registrationUBL-CR-170Remove TaxLevelCode from the seller's VAT registrationUBL-CR-171Remove ExemptionReasonCode from the seller's VAT registrationUBL-CR-172Remove ExemptionReason from the seller's VAT registrationUBL-CR-173Remove RegistrationAddress from the seller's VAT registrationUBL-CR-174Remove Name from the tax scheme of the seller's VAT registrationUBL-CR-175Remove TaxTypeCode from the tax scheme of the seller's VAT registrationUBL-CR-176Remove CurrencyCode from the tax scheme of the seller's VAT registrationUBL-CR-177Remove JurisdictionRegionAddress from the tax scheme of the seller's VAT registrationUBL-CR-178Remove RegistrationDate from the seller's legal registrationUBL-CR-179Remove RegistrationExpirationDate from the seller's legal registrationUBL-CR-180Remove CompanyLegalFormCode from the seller's legal registrationUBL-CR-181Remove SoleProprietorshipIndicator from the seller's legal registrationUBL-CR-182Remove CompanyLiquidationStatusCode from the seller's legal registrationUBL-CR-183Remove CorporateStockAmount from the seller's legal registrationUBL-CR-184Remove FullyPaidSharesIndicator from the seller's legal registrationUBL-CR-185Remove RegistrationAddress from the seller's legal registrationUBL-CR-186Remove CorporateRegistrationScheme from the seller's legal registrationUBL-CR-187Remove HeadOfficeParty from the seller's legal registrationUBL-CR-188Remove ShareholderParty from the seller's legal registrationUBL-CR-189Remove ID from the seller contactUBL-CR-190Remove Telefax from the seller contactUBL-CR-191Remove Note from the seller contactUBL-CR-192Remove OtherCommunication from the seller contactUBL-CR-193Remove Person from the seller's party detailsUBL-CR-194Remove AgentParty from the seller's party detailsUBL-CR-195Remove ServiceProviderParty from the seller's party detailsUBL-CR-196Remove PowerOfAttorney from the seller's party detailsUBL-CR-197Remove FinancialAccount from the seller's party detailsUBL-CR-198Remove DespatchContact from the seller partyUBL-CR-199Remove AccountingContact from the seller partyUBL-CR-200Remove SellerContact from the seller party
Buyer (64)
UBL-CR-201Remove CustomerAssignedAccountID from the buyer partyUBL-CR-202Remove SupplierAssignedAccountID from the buyer partyUBL-CR-203Remove AdditionalAccountID from the buyer partyUBL-CR-204Remove MarkCareIndicator from the buyer's party detailsUBL-CR-205Remove MarkAttentionIndicator from the buyer's party detailsUBL-CR-206Remove WebsiteURI from the buyer's party detailsUBL-CR-207Remove LogoReferenceID from the buyer's party detailsUBL-CR-208Remove IndustryClassificationCode from the buyer's party detailsUBL-CR-209Remove Language from the buyer's party detailsUBL-CR-210Remove ID from the buyer's postal addressUBL-CR-211Remove AddressTypeCode from the buyer's postal addressUBL-CR-212Remove AddressFormatCode from the buyer's postal addressUBL-CR-213Remove Postbox from the buyer's postal addressUBL-CR-214Remove Floor from the buyer's postal addressUBL-CR-215Remove Room from the buyer's postal addressUBL-CR-216Remove BlockName from the buyer's postal addressUBL-CR-217Remove BuildingName from the buyer's postal addressUBL-CR-218Remove BuildingNumber from the buyer's postal addressUBL-CR-219Remove InhouseMail from the buyer's postal addressUBL-CR-220Remove Department from the buyer's postal addressUBL-CR-221Remove MarkAttention from the buyer's postal addressUBL-CR-222Remove MarkCare from the buyer's postal addressUBL-CR-223Remove PlotIdentification from the buyer's postal addressUBL-CR-224Remove CitySubdivisionName from the buyer's postal addressUBL-CR-225Remove CountrySubentityCode from the buyer's postal addressUBL-CR-226Remove Region from the buyer's postal addressUBL-CR-227Remove District from the buyer's postal addressUBL-CR-228Remove TimezoneOffset from the buyer's postal addressUBL-CR-229Remove Name from the buyer's countryUBL-CR-230Remove LocationCoordinate from the buyer's postal addressUBL-CR-231Remove PhysicalLocation from the buyer's party detailsUBL-CR-232Remove RegistrationName from the buyer's VAT registrationUBL-CR-233Remove TaxLevelCode from the buyer's VAT registrationUBL-CR-234Remove ExemptionReasonCode from the buyer's VAT registrationUBL-CR-235Remove ExemptionReason from the buyer's VAT registrationUBL-CR-236Remove RegistrationAddress from the buyer's VAT registrationUBL-CR-237Remove Name from the tax scheme of the buyer's VAT registrationUBL-CR-238Remove TaxTypeCode from the tax scheme of the buyer's VAT registrationUBL-CR-239Remove CurrencyCode from the tax scheme of the buyer's VAT registrationUBL-CR-240Remove JurisdictionRegionAddress from the tax scheme of the buyer's VAT registrationUBL-CR-241Remove RegistrationDate from the buyer's legal registrationUBL-CR-242Remove RegistrationExpirationDate from the buyer's legal registrationUBL-CR-243Remove CompanyLegalFormCode from the buyer's legal registrationUBL-CR-244Remove CompanyLegalForm from the buyer's legal registrationUBL-CR-245Remove SoleProprietorshipIndicator from the buyer's legal registrationUBL-CR-246Remove CompanyLiquidationStatusCode from the buyer's legal registrationUBL-CR-247Remove CorporateStockAmount from the buyer's legal registrationUBL-CR-248Remove FullyPaidSharesIndicator from the buyer's legal registrationUBL-CR-249Remove RegistrationAddress from the buyer's legal registrationUBL-CR-250Remove CorporateRegistrationScheme from the buyer's legal registrationUBL-CR-251Remove HeadOfficeParty from the buyer's legal registrationUBL-CR-252Remove ShareholderParty from the buyer's legal registrationUBL-CR-253Remove ID from the buyer contactUBL-CR-254Remove Telefax from the buyer contactUBL-CR-255Remove Note from the buyer contactUBL-CR-256Remove OtherCommunication from the buyer contactUBL-CR-257Remove Person from the buyer's party detailsUBL-CR-258Remove AgentParty from the buyer's party detailsUBL-CR-259Remove ServiceProviderParty from the buyer's party detailsUBL-CR-260Remove PowerOfAttorney from the buyer's party detailsUBL-CR-261Remove FinancialAccount from the buyer's party detailsUBL-CR-262Remove DeliveryContact from the buyer partyUBL-CR-263Remove AccountingContact from the buyer partyUBL-CR-264Remove BuyerContact from the buyer party
Payee (29)
UBL-CR-265Remove MarkCareIndicator from the payee partyUBL-CR-266Remove MarkAttentionIndicator from the payee partyUBL-CR-267Remove WebsiteURI from the payee partyUBL-CR-268Remove LogoReferenceID from the payee partyUBL-CR-269Remove EndpointID from the payee partyUBL-CR-270Remove IndustryClassificationCode from the payee partyUBL-CR-271Remove Language from the payee partyUBL-CR-272Remove PostalAddress from the payee partyUBL-CR-273Remove PhysicalLocation from the payee partyUBL-CR-274Remove PartyTaxScheme from the payee partyUBL-CR-275Remove RegistrationName from the payee's legal registrationUBL-CR-276Remove RegistrationDate from the payee's legal registrationUBL-CR-277Remove RegistrationExpirationDate from the payee's legal registrationUBL-CR-278Remove CompanyLegalFormCode from the payee's legal registrationUBL-CR-279Remove CompanyLegalForm from the payee's legal registrationUBL-CR-280Remove SoleProprietorshipIndicator from the payee's legal registrationUBL-CR-281Remove CompanyLiquidationStatusCode from the payee's legal registrationUBL-CR-282Remove CorporateStockAmount from the payee's legal registrationUBL-CR-283Remove FullyPaidSharesIndicator from the payee's legal registrationUBL-CR-284Remove RegistrationAddress from the payee's legal registrationUBL-CR-285Remove CorporateRegistrationScheme from the payee's legal registrationUBL-CR-286Remove HeadOfficeParty from the payee's legal registrationUBL-CR-287Remove ShareholderParty from the payee's legal registrationUBL-CR-288Remove Contact from the payee partyUBL-CR-289Remove Person from the payee partyUBL-CR-290Remove AgentParty from the payee partyUBL-CR-291Remove ServiceProviderParty from the payee partyUBL-CR-292Remove PowerOfAttorney from the payee partyUBL-CR-293Remove FinancialAccount from the payee party
Tax representative (46)
UBL-CR-296Remove MarkCareIndicator from the seller's tax representative partyUBL-CR-297Remove MarkAttentionIndicator from the seller's tax representative partyUBL-CR-298Remove WebsiteURI from the seller's tax representative partyUBL-CR-299Remove LogoReferenceID from the seller's tax representative partyUBL-CR-300Remove EndpointID from the seller's tax representative partyUBL-CR-301Remove IndustryClassificationCode from the seller's tax representative partyUBL-CR-302Remove PartyIdentification from the seller's tax representative partyUBL-CR-303Remove Language from the seller's tax representative partyUBL-CR-304Remove ID from the tax representative's postal addressUBL-CR-305Remove AddressTypeCode from the tax representative's postal addressUBL-CR-306Remove AddressFormatCode from the tax representative's postal addressUBL-CR-307Remove Postbox from the tax representative's postal addressUBL-CR-308Remove Floor from the tax representative's postal addressUBL-CR-309Remove Room from the tax representative's postal addressUBL-CR-310Remove BlockName from the tax representative's postal addressUBL-CR-311Remove BuildingName from the tax representative's postal addressUBL-CR-312Remove BuildingNumber from the tax representative's postal addressUBL-CR-313Remove InhouseMail from the tax representative's postal addressUBL-CR-314Remove Department from the tax representative's postal addressUBL-CR-315Remove MarkAttention from the tax representative's postal addressUBL-CR-316Remove MarkCare from the tax representative's postal addressUBL-CR-317Remove PlotIdentification from the tax representative's postal addressUBL-CR-318Remove CitySubdivisionName from the tax representative's postal addressUBL-CR-319Remove CountrySubentityCode from the tax representative's postal addressUBL-CR-320Remove Region from the tax representative's postal addressUBL-CR-321Remove District from the tax representative's postal addressUBL-CR-322Remove TimezoneOffset from the tax representative's postal addressUBL-CR-323Remove Name from the tax representative's countryUBL-CR-324Remove LocationCoordinate from the tax representative's postal addressUBL-CR-325Remove PhysicalLocation from the seller's tax representative partyUBL-CR-326Remove RegistrationName from the tax representative's VAT registrationUBL-CR-327Remove TaxLevelCode from the tax representative's VAT registrationUBL-CR-328Remove ExemptionReasonCode from the tax representative's VAT registrationUBL-CR-329Remove ExemptionReason from the tax representative's VAT registrationUBL-CR-330Remove RegistrationAddress from the tax representative's VAT registrationUBL-CR-331Remove Name from the tax scheme of the tax representative's VAT registrationUBL-CR-332Remove TaxTypeCode from the tax scheme of the tax representative's VAT registrationUBL-CR-333Remove CurrencyCode from the tax scheme of the tax representative's VAT registrationUBL-CR-334Remove JurisdictionRegionAddress from the tax scheme of the tax representative's VAT registrationUBL-CR-335Remove PartyLegalEntity from the seller's tax representative partyUBL-CR-336Remove Contact from the seller's tax representative partyUBL-CR-337Remove Person from the seller's tax representative partyUBL-CR-338Remove AgentParty from the seller's tax representative partyUBL-CR-339Remove ServiceProviderParty from the seller's tax representative partyUBL-CR-340Remove PowerOfAttorney from the seller's tax representative partyUBL-CR-341Remove FinancialAccount from the seller's tax representative party
Delivery (69)
UBL-CR-342Remove ID from the delivery informationUBL-CR-343Remove Quantity from the delivery informationUBL-CR-344Remove MinimumQuantity from the delivery informationUBL-CR-345Remove MaximumQuantity from the delivery informationUBL-CR-346Remove ActualDeliveryTime from the delivery informationUBL-CR-347Remove LatestDeliveryDate from the delivery informationUBL-CR-348Remove LatestDeliveryTime from the delivery informationUBL-CR-349Remove ReleaseID from the delivery informationUBL-CR-350Remove TrackingID from the delivery informationUBL-CR-351Remove Description from the deliver-to locationUBL-CR-352Remove Conditions from the deliver-to locationUBL-CR-353Remove CountrySubentity from the deliver-to locationUBL-CR-354Remove CountrySubentityCode from the deliver-to locationUBL-CR-355Remove LocationTypeCode from the deliver-to locationUBL-CR-356Remove InformationURI from the deliver-to locationUBL-CR-357Remove Name from the deliver-to locationUBL-CR-358Remove ValidityPeriod from the deliver-to locationUBL-CR-359Remove ID from the deliver-to addressUBL-CR-360Remove AddressTypeCode from the deliver-to addressUBL-CR-361Remove AddressFormatCode from the deliver-to addressUBL-CR-362Remove Postbox from the deliver-to addressUBL-CR-363Remove Floor from the deliver-to addressUBL-CR-364Remove Room from the deliver-to addressUBL-CR-365Remove BlockName from the deliver-to addressUBL-CR-366Remove BuildingName from the deliver-to addressUBL-CR-367Remove BuildingNumber from the deliver-to addressUBL-CR-368Remove InhouseMail from the deliver-to addressUBL-CR-369Remove Department from the deliver-to addressUBL-CR-370Remove MarkAttention from the deliver-to addressUBL-CR-371Remove MarkCare from the deliver-to addressUBL-CR-372Remove PlotIdentification from the deliver-to addressUBL-CR-373Remove CitySubdivisionName from the deliver-to addressUBL-CR-374Remove CountrySubentityCode from the deliver-to addressUBL-CR-375Remove Region from the deliver-to addressUBL-CR-376Remove District from the deliver-to addressUBL-CR-377Remove TimezoneOffset from the deliver-to addressUBL-CR-378Remove Name from the deliver-to countryUBL-CR-379Remove LocationCoordinate from the deliver-to addressUBL-CR-380Remove SubsidiaryLocation from the deliver-to locationUBL-CR-381Remove LocationCoordinate from the deliver-to locationUBL-CR-382Remove AlternativeDeliveryLocation from the delivery informationUBL-CR-383Remove RequestedDeliveryPeriod from the delivery informationUBL-CR-384Remove EstimatedDeliveryPeriod from the delivery informationUBL-CR-385Remove CarrierParty from the delivery informationUBL-CR-386Remove MarkCareIndicator from the deliver-to partyUBL-CR-387Remove MarkAttentionIndicator from the deliver-to partyUBL-CR-388Remove WebsiteURI from the deliver-to partyUBL-CR-389Remove LogoReferenceID from the deliver-to partyUBL-CR-390Remove EndpointID from the deliver-to partyUBL-CR-391Remove IndustryClassificationCode from the deliver-to partyUBL-CR-392Remove PartyIdentification from the deliver-to partyUBL-CR-393Remove Language from the deliver-to partyUBL-CR-394Remove PostalAddress from the deliver-to partyUBL-CR-395Remove PhysicalLocation from the deliver-to partyUBL-CR-396Remove PartyTaxScheme from the deliver-to partyUBL-CR-397Remove PartyLegalEntity from the deliver-to partyUBL-CR-398Remove Contact from the deliver-to partyUBL-CR-399Remove Person from the deliver-to partyUBL-CR-400Remove AgentParty from the deliver-to partyUBL-CR-401Remove ServiceProviderParty from the deliver-to partyUBL-CR-402Remove PowerOfAttorney from the deliver-to partyUBL-CR-403Remove FinancialAccount from the deliver-to partyUBL-CR-404Remove NotifyParty from the delivery informationUBL-CR-405Remove Despatch from the delivery informationUBL-CR-406Remove DeliveryTerms from the delivery informationUBL-CR-407Remove MinimumDeliveryUnit from the delivery informationUBL-CR-408Remove MaximumDeliveryUnit from the delivery informationUBL-CR-409Remove Shipment from the delivery informationUBL-CR-682Move the delivery address into DeliveryLocation
Payment (63)
UBL-CR-411Remove ID from the payment instructionsUBL-CR-412Move the due date from the payment instructions to the invoice headerUBL-CR-413Remove PaymentChannelCode from the payment instructionsUBL-CR-414Remove InstructionID from the payment instructionsUBL-CR-415Remove CardTypeCode from the payment card informationUBL-CR-416Remove ValidityStartDate from the payment card informationUBL-CR-417Remove ExpiryDate from the payment card informationUBL-CR-418Remove IssuerID from the payment card informationUBL-CR-419Remove IssueNumberID from the payment card informationUBL-CR-420Remove CV2ID from the payment card informationUBL-CR-421Remove CardChipCode from the payment card informationUBL-CR-422Remove ChipApplicationID from the payment card informationUBL-CR-424Remove AliasName from the credit transfer accountUBL-CR-425Remove AccountTypeCode from the credit transfer accountUBL-CR-426Remove AccountFormatCode from the credit transfer accountUBL-CR-427Remove CurrencyCode from the credit transfer accountUBL-CR-428Remove PaymentNote from the credit transfer accountUBL-CR-429Remove Name from the payment service providerUBL-CR-430Remove Name from the financial institution of the payment service providerUBL-CR-431Remove Address from the financial institution of the payment service providerUBL-CR-432Remove Address from the payment service providerUBL-CR-433Remove Country from the credit transfer accountUBL-CR-434Remove CreditAccount from the payment instructionsUBL-CR-435Remove MandateTypeCode from the direct debit mandateUBL-CR-436Remove MaximumPaymentInstructionsNumeric from the direct debit mandateUBL-CR-437Remove MaximumPaidAmount from the direct debit mandateUBL-CR-438Remove SignatureID from the direct debit mandateUBL-CR-439Remove PayerParty from the direct debit mandateUBL-CR-440Remove Name from the debited accountUBL-CR-441Remove AliasName from the debited accountUBL-CR-442Remove AccountTypeCode from the debited accountUBL-CR-443Remove AccountFormatCode from the debited accountUBL-CR-444Remove CurrencyCode from the debited accountUBL-CR-445Remove PaymentNote from the debited accountUBL-CR-446Remove FinancialInstitutionBranch from the debited accountUBL-CR-447Remove Country from the debited accountUBL-CR-448Remove ValidityPeriod from the direct debit mandateUBL-CR-449Remove PaymentReversalPeriod from the direct debit mandateUBL-CR-450Remove Clause from the direct debit mandateUBL-CR-451Remove TradeFinancing from the payment instructionsUBL-CR-452Remove ID from the payment termsUBL-CR-453Remove PaymentMeansID from the payment termsUBL-CR-454Remove PrepaidPaymentReferenceID from the payment termsUBL-CR-455Remove ReferenceEventCode from the payment termsUBL-CR-456Remove SettlementDiscountPercent from the payment termsUBL-CR-457Remove PenaltySurchargePercent from the payment termsUBL-CR-458Remove PaymentPercent from the payment termsUBL-CR-459Remove Amount from the payment termsUBL-CR-460Remove SettlementDiscountAmount from the payment termsUBL-CR-461Remove PenaltyAmount from the payment termsUBL-CR-462Remove PaymentTermsDetailsURI from the payment termsUBL-CR-463Remove PaymentDueDate from the payment termsUBL-CR-464Remove InstallmentDueDate from the payment termsUBL-CR-465Remove InvoicingPartyReference from the payment termsUBL-CR-466Remove SettlementPeriod from the payment termsUBL-CR-467Remove PenaltyPeriod from the payment termsUBL-CR-468Remove ExchangeRate from the payment termsUBL-CR-469Remove ValidityPeriod from the payment termsUBL-CR-653Remove the schemeID attribute from the remittance informationUBL-CR-654Remove the schemeID attribute from the payment account identifierUBL-CR-655Remove the schemeID attribute from the payment service provider identifierUBL-CR-661Remove the listID attribute from the payment means type codeUBL-CR-681Remove InstructionNote from the payment instructions
Document allowances and charges (19)
UBL-CR-471Remove ID from a document level allowance or chargeUBL-CR-472Remove PrepaidIndicator from a document level allowance or chargeUBL-CR-473Remove SequenceNumeric from a document level allowance or chargeUBL-CR-474Remove AccountingCostCode from a document level allowance or chargeUBL-CR-475Remove AccountingCost from a document level allowance or chargeUBL-CR-476Remove PerUnitAmount from a document level allowance or chargeUBL-CR-477Remove Name from the VAT category of a document level allowance or chargeUBL-CR-478Remove BaseUnitMeasure from the VAT category of a document level allowance or chargeUBL-CR-479Remove PerUnitAmount from the VAT category of a document level allowance or chargeUBL-CR-480Remove TaxExemptionReasonCode from the VAT category of a document level allowance or chargeUBL-CR-481Remove TaxExemptionReason from the VAT category of a document level allowance or chargeUBL-CR-482Remove TierRange from the VAT category of a document level allowance or chargeUBL-CR-483Remove TierRatePercent from the VAT category of a document level allowance or chargeUBL-CR-484Remove Name from the tax scheme of a document level allowance or chargeUBL-CR-485Remove TaxTypeCode from the tax scheme of a document level allowance or chargeUBL-CR-486Remove CurrencyCode from the tax scheme of a document level allowance or chargeUBL-CR-487Remove JurisdictionRegionAddress from the tax scheme of a document level allowance or chargeUBL-CR-488Remove TaxTotal from a document level allowance or chargeUBL-CR-489Remove PaymentMeans from a document level allowance or charge
VAT totals (19)
UBL-CR-494Remove RoundingAmount from the VAT totalUBL-CR-495Remove TaxEvidenceIndicator from the VAT totalUBL-CR-496Remove TaxIncludedIndicator from the VAT totalUBL-CR-497Remove CalculationSequenceNumeric from the VAT breakdownUBL-CR-498Remove TransactionCurrencyTaxAmount from the VAT breakdownUBL-CR-499Remove Percent from the VAT breakdownUBL-CR-500Remove BaseUnitMeasure from the VAT breakdownUBL-CR-501Remove PerUnitAmount from the VAT breakdownUBL-CR-502Remove TierRange from the VAT breakdownUBL-CR-503Remove TierRatePercent from the VAT breakdownUBL-CR-504Remove Name from the VAT category of the VAT breakdownUBL-CR-505Remove BaseUnitMeasure from the VAT category of the VAT breakdownUBL-CR-506Remove PerUnitAmount from the VAT category of the VAT breakdownUBL-CR-507Remove TierRange from the VAT category of the VAT breakdownUBL-CR-508Remove TierRatePercent from the VAT category of the VAT breakdownUBL-CR-509Remove Name from the tax scheme of the VAT breakdownUBL-CR-510Remove TaxTypeCode from the tax scheme of the VAT breakdownUBL-CR-511Remove CurrencyCode from the tax scheme of the VAT breakdownUBL-CR-512Remove JurisdictionRegionAddress from the tax scheme of the VAT breakdown
Document totals (1)
Lines (50)
UBL-CR-515Remove UUID from an invoice lineUBL-CR-516Remove TaxPointDate from an invoice lineUBL-CR-517Remove AccountingCostCode from an invoice lineUBL-CR-518Remove PaymentPurposeCode from an invoice lineUBL-CR-519Remove FreeOfChargeIndicator from an invoice lineUBL-CR-520Remove StartTime from the line periodUBL-CR-521Remove EndTime from the line periodUBL-CR-522Remove DurationMeasure from the line periodUBL-CR-523Remove DescriptionCode from the line periodUBL-CR-524Remove Description from the line periodUBL-CR-525Remove SalesOrderLineID from the referenced purchase order lineUBL-CR-526Remove UUID from the referenced purchase order lineUBL-CR-527Remove LineStatusCode from the referenced purchase order lineUBL-CR-528Remove OrderReference from the referenced purchase order lineUBL-CR-529Remove DespatchLineReference from an invoice lineUBL-CR-530Remove ReceiptLineReference from an invoice lineUBL-CR-531Remove BillingReference from an invoice lineUBL-CR-532Remove CopyIndicator from the line object identifierUBL-CR-533Remove UUID from the line object identifierUBL-CR-534Remove IssueDate from the line object identifierUBL-CR-535Remove IssueTime from the line object identifierUBL-CR-537Remove DocumentType from the line object identifierUBL-CR-538Remove XPath from the line object identifierUBL-CR-539Remove LanguageID from the line object identifierUBL-CR-540Remove LocaleCode from the line object identifierUBL-CR-541Remove VersionID from the line object identifierUBL-CR-542Remove DocumentStatusCode from the line object identifierUBL-CR-543Remove DocumentDescription from the line object identifierUBL-CR-544Remove Attachment from the line object identifierUBL-CR-545Remove ValidityPeriod from the line object identifierUBL-CR-546Remove IssuerParty from the line object identifierUBL-CR-547Remove ResultOfVerification from the line object identifierUBL-CR-548Remove PricingReference from an invoice lineUBL-CR-549Remove OriginatorParty from an invoice lineUBL-CR-550Remove Delivery from an invoice lineUBL-CR-551Remove PaymentTerms from an invoice lineUBL-CR-552Remove ID from a line allowance or chargeUBL-CR-553Remove PrepaidIndicator from a line allowance or chargeUBL-CR-554Remove SequenceNumeric from a line allowance or chargeUBL-CR-555Remove AccountingCostCode from a line allowance or chargeUBL-CR-556Remove AccountingCost from a line allowance or chargeUBL-CR-557Remove PerUnitAmount from a line allowance or chargeUBL-CR-558Remove TaxCategory from a line allowance or chargeUBL-CR-559Remove TaxTotal from a line allowance or chargeUBL-CR-560Remove PaymentMeans from a line allowance or chargeUBL-CR-561Remove the tax total from invoice linesUBL-CR-562Remove WithholdingTaxTotal from an invoice lineUBL-CR-645Remove DeliveryTerms from an invoice lineUBL-CR-646Remove SubInvoiceLine from an invoice lineUBL-CR-647Remove ItemPriceExtension from an invoice line
Items (62)
UBL-CR-563Remove PackQuantity from the item informationUBL-CR-564Remove PackSizeNumeric from the item informationUBL-CR-565Remove CatalogueIndicator from the item informationUBL-CR-566Remove HazardousRiskIndicator from the item informationUBL-CR-567Remove AdditionalInformation from the item informationUBL-CR-568Remove Keyword from the item informationUBL-CR-569Remove BrandName from the item informationUBL-CR-570Remove ModelName from the item informationUBL-CR-571Remove ExtendedID from the buyer's item identifierUBL-CR-572Remove BarcodeSymbologyID from the buyer's item identifierUBL-CR-573Remove PhysicalAttribute from the buyer's item identifierUBL-CR-574Remove MeasurementDimension from the buyer's item identifierUBL-CR-575Remove IssuerParty from the buyer's item identifierUBL-CR-576Remove ExtendedID from the seller's item identifierUBL-CR-577Remove BarcodeSymbologyID from the seller's item identifierUBL-CR-578Remove PhysicalAttribute from the seller's item identifierUBL-CR-579Remove MeasurementDimension from the seller's item identifierUBL-CR-580Remove IssuerParty from the seller's item identifierUBL-CR-581Remove ManufacturersItemIdentification from the item informationUBL-CR-582Remove ExtendedID from the standard item identifierUBL-CR-583Remove BarcodeSymbologyID from the standard item identifierUBL-CR-584Remove PhysicalAttribute from the standard item identifierUBL-CR-585Remove MeasurementDimension from the standard item identifierUBL-CR-586Remove IssuerParty from the standard item identifierUBL-CR-587Remove CatalogueItemIdentification from the item informationUBL-CR-588Remove AdditionalItemIdentification from the item informationUBL-CR-589Remove CatalogueDocumentReference from the item informationUBL-CR-590Remove ItemSpecificationDocumentReference from the item informationUBL-CR-591Remove Name from the item's country of originUBL-CR-592Remove NatureCode from the item classificationUBL-CR-593Remove CargoTypeCode from the item classificationUBL-CR-594Remove CommodityCode from the item classificationUBL-CR-595Remove TransactionConditions from the item informationUBL-CR-596Remove HazardousItem from the item informationUBL-CR-597Remove Name from the line VAT informationUBL-CR-598Remove BaseUnitMeasure from the line VAT informationUBL-CR-599Remove PerUnitAmount from the line VAT informationUBL-CR-600Remove TaxExemptionReasonCode from the line VAT informationUBL-CR-601Remove TaxExemptionReason from the line VAT informationUBL-CR-602Remove TierRange from the line VAT informationUBL-CR-603Remove TierRatePercent from the line VAT informationUBL-CR-604Remove Name from the tax scheme of the line VAT informationUBL-CR-605Remove TaxTypeCode from the tax scheme of the line VAT informationUBL-CR-606Remove CurrencyCode from the tax scheme of the line VAT informationUBL-CR-607Remove JurisdictionRegionAddress from the tax scheme of the line VAT informationUBL-CR-608Remove ID from an item attributeUBL-CR-609Remove NameCode from an item attributeUBL-CR-610Remove TestMethod from an item attributeUBL-CR-611Remove ValueQuantity from an item attributeUBL-CR-612Remove ValueQualifier from an item attributeUBL-CR-613Remove ImportanceCode from an item attributeUBL-CR-614Remove ListValue from an item attributeUBL-CR-615Remove UsabilityPeriod from an item attributeUBL-CR-616Remove ItemPropertyGroup from an item attributeUBL-CR-617Remove RangeDimension from an item attributeUBL-CR-618Remove ItemPropertyRange from an item attributeUBL-CR-619Remove ManufacturerParty from the item informationUBL-CR-620Remove InformationContentProviderParty from the item informationUBL-CR-621Remove OriginAddress from the item informationUBL-CR-622Remove ItemInstance from the item informationUBL-CR-623Remove Certificate from the item informationUBL-CR-624Remove Dimension from the item information
Prices (17)
UBL-CR-625Remove PriceChangeReason from the price detailsUBL-CR-626Remove PriceTypeCode from the price detailsUBL-CR-627Remove PriceType from the price detailsUBL-CR-628Remove OrderableUnitFactorRate from the price detailsUBL-CR-632Remove ID from the price discountUBL-CR-633Remove AllowanceChargeReasonCode from the price discountUBL-CR-634Remove AllowanceChargeReason from the price discountUBL-CR-635Remove MultiplierFactorNumeric from the price discountUBL-CR-636Remove PrepaidIndicator from the price discountUBL-CR-637Remove SequenceNumeric from the price discountUBL-CR-638Remove AccountingCostCode from the price discountUBL-CR-639Remove AccountingCost from the price discountUBL-CR-640Remove PerUnitAmount from the price discountUBL-CR-641Remove TaxCategory from the price discountUBL-CR-642Remove TaxTotal from the price discountUBL-CR-643Remove PaymentMeans from the price discountUBL-CR-644Remove PricingExchangeRate from the price details
Anywhere in the document (17)
UBL-CR-652Remove the schemeID attribute from any VAT or tax registration identifierUBL-CR-660Remove the listID attribute from any country code in an addressUBL-CR-662Remove the listID attribute from any allowance or charge reason codeUBL-CR-663Remove the unitCodeListID attribute wherever it appearsUBL-CR-664Remove FinancialInstitution wherever it appearsUBL-CR-667Remove the schemeID attribute from any buyer's item identifierUBL-CR-668Remove the schemeID attribute from any seller's item identifierUBL-CR-669Remove AllowanceChargeReasonCode from any price discountUBL-CR-670Remove AllowanceChargeReason from any price discountUBL-CR-671Remove MultiplierFactorNumeric from any price discountUBL-CR-674Remove the schemeID attribute from any payment card numberUBL-CR-675Remove the schemeID attribute from any card network identifierUBL-CR-676Remove the schemeID attribute from any mandate referenceUBL-CR-677Remove the schemeID attribute from any debited account identifierUBL-CR-678Remove the schemeID attribute from any VAT category codeUBL-CR-679Remove the schemeID attribute from any line VAT category codeUBL-CR-680Remove PayerFinancialAccount from any payment instructions
UBL syntax and structureUBL-SR, UBL-DT
7 explanations
Repetition limits (UBL-SR) (5)
- UBL-SR-44Use one payment reference for every payment means in the invoice
Two
cbc:PaymentIDvalues differ. An invoice has one remittance reference: repeat the same value in eachcac:PaymentMeans, or give it once. - UBL-SR-45Give the payment due date in no more than one PaymentMeans
More than one
cac:PaymentMeanscarries acbc:PaymentDueDate. A credit note gives its due date in one payment means; an invoice usescbc:DueDate. - UBL-SR-47Use the same payment means code in every PaymentMeans
The
cac:PaymentMeanselements carry more than one distinctcbc:PaymentMeansCode. An invoice has one payment means type: use the same code in each. - UBL-SR-48Give each invoice line exactly one classified tax category
The item of an invoice line has two or more
cac:ClassifiedTaxCategoryelements, or none. Keep exactly one: the VAT category the line is taxed in. - UBL-SR-53Add the CompanyID to a PartyTaxScheme, or remove the scheme
Every
cac:PartyTaxSchememust hold both acbc:CompanyIDand acac:TaxScheme/cbc:ID. A tax scheme sent without the number it registers is rejected.
Data types (UBL-DT) (2)
- UBL-DT-01Write every amount with no more than two decimals
An amount has more than two digits after the decimal point. Every amount element is limited to two, except the item net price and allowances on the price.
- UBL-DT-07Add a filename attribute to every embedded attachment
A
cbc:EmbeddedDocumentBinaryObjecthas nofilenameattribute. Give every attachment a file name, with an extension that matches itsmimeCode.
XML diagnosticsFW
1 explanation
- FW-XML-001Fix XML that the parser refuses to read
An Ironfang diagnostic, not an official rule: the XML is malformed, in an unsupported encoding, or uses DOCTYPE, entities or XInclude. Nothing else ran.
What this reference covers
The rules Ironfang Finance runs for Peppol BIS Billing 3.0, 2026.5 (May 2026 release, aka BIS Billing 3.0.21), with the EN 16931 validation artefacts 1.3.16, on UBL 2.1 Invoice and CreditNote documents. It does not cover CII, other CIUS such as XRechnung, other Peppol document types or earlier releases, where the same identifier can mean something different.
That release defines 1,144 official rules: 979 from EN 16931 and its UBL binding, and 165 added by Peppol BIS Billing, some of which apply only to one seller country. 913 have an explanation here so far, alongside 1 Ironfang diagnostic for input the validator cannot read, which is ours and not part of either specification. The validator reports every rule either way; an explanation is extra help, not coverage.
Background reading
Two longer articles explain where these rules come from and how to read a failure: How Peppol invoice validation actually works, from the XML layers to the Peppol rules, and Understanding EN 16931 validation errors, on the business rules behind most errors. To check a document against all of them, use the free Peppol validator. For a whole document that passes, with its totals worked through against BR-CO-10 to BR-CO-16, see the Peppol XML invoice example.
Not yet explained
The validator checks every official rule in the supported release, including the 231 that have no Ironfang explanation yet. Each code below links to its official definition, not to a page here.
Show the 231 rules without an explanation, by family
UBL syntax: elements outside the model (UBL-CR) (3)
3 syntax-binding rules, from UBL-CR-629 to UBL-CR-651. They are listed in the official EN 16931 rule index.
UBL syntax: data types (UBL-DT) (22)
22 syntax-binding rules, from UBL-DT-06 to UBL-DT-28. They are listed in the official EN 16931 rule index.
UBL syntax: repetition limits (UBL-SR) (49)
49 syntax-binding rules, from UBL-SR-01 to UBL-SR-56. They are listed in the official EN 16931 rule index.
VAT categories (BR-S, BR-Z, BR-E, BR-AE ...) (22)
Country-conditional rules (99)
- DE-R-001
- DE-R-002
- DE-R-003
- DE-R-004
- DE-R-005
- DE-R-006
- DE-R-007
- DE-R-008
- DE-R-009
- DE-R-010
- DE-R-011
- DE-R-014
- DE-R-015
- DE-R-016
- DE-R-017
- DE-R-018
- DE-R-019
- DE-R-020
- DE-R-022
- DE-R-023-1
- DE-R-023-2
- DE-R-024-1
- DE-R-024-2
- DE-R-025-1
- DE-R-025-2
- DE-R-026
- DE-R-027
- DE-R-028
- DE-R-030
- DE-R-031
- DE-R-T02
- DK-R-002
- DK-R-003
- DK-R-004
- DK-R-005
- DK-R-006
- DK-R-007
- DK-R-008
- DK-R-009
- DK-R-010
- DK-R-011
- DK-R-013
- DK-R-014
- DK-R-016
- DK-R-017
- GR-R-001-1
- GR-R-001-2
- GR-R-001-3
- GR-R-001-4
- GR-R-001-5
- GR-R-001-6
- GR-R-001-7
- GR-R-002
- GR-R-003
- GR-R-004-1
- GR-R-004-2
- GR-R-005
- GR-R-006
- GR-R-008-2
- GR-R-008-3
- GR-R-009
- GR-R-010
- GR-S-008-1
- GR-S-011
- IS-R-001
- IS-R-002
- IS-R-003
- IS-R-004
- IS-R-005
- IS-R-006
- IS-R-007
- IS-R-008
- IS-R-009
- IS-R-010
- IT-R-001
- IT-R-002
- IT-R-003
- IT-R-004
- NL-R-002
- NL-R-004
- NL-R-005
- NL-R-006
- NL-R-008
- NL-R-009
- NO-R-001
- NO-R-002
- SE-R-001
- SE-R-002
- SE-R-003
- SE-R-004
- SE-R-005
- SE-R-006
- SE-R-007
- SE-R-008
- SE-R-009
- SE-R-010
- SE-R-011
- SE-R-012
- SE-R-013

