Peppol BIS Billing 3.0
The Peppol rules on top of EN 16931: Peppol constraints (PEPPOL-EN16931-*, PEPPOL-COMMON-*) and national rules for Denmark, Germany, Greece, Iceland, Italy, the Netherlands, Norway and Sweden.
- Publisher
- OpenPeppol
- Version
- 3.0.20
- Syntax
- UBL
- Rules
- 159 rules (135 fatal, 24 warning)
- Runs on every UBL file that is not an XRechnung. National rules fire only for suppliers in that country.
Schemas
This rule set runs on:
- Peppol BIS Billing 3.0 Invoice
OASIS UBL 2.1 · EN 16931 (UBL) + Peppol BIS Billing 3.0
- Peppol BIS Billing 3.0 Credit Note
OASIS UBL 2.1 · EN 16931 (UBL) + Peppol BIS Billing 3.0
Rules
Rule ID, the flag in the schematron and the message. Rules with a fix guide link to it. A … in a message is a value from the invoice.
DE-R-* 30 rules
- DE-R-001fatal
An invoice shall contain information on "PAYMENT INSTRUCTIONS" (BG-16).
- DE-R-002fatal
The group "SELLER CONTACT" (BG-6) shall be provided.
- DE-R-003fatal
The element "Seller city" (BT-37) shall be provided.
- DE-R-004fatal
The element "Seller post code" (BT-38) shall be provided.
- DE-R-005fatal
The element "Seller contact point" (BT-41) shall be provided.
- DE-R-006fatal
The element "Seller contact telephone number" (BT-42) shall be provided.
- DE-R-007fatal
The element "Seller contact email address" (BT-43) shall be provided.
- DE-R-008fatal
The element "Buyer city" (BT-52) shall be provided.
- DE-R-009fatal
The element "Buyer post code" (BT-53) shall be provided.
- DE-R-010fatal
The element "Deliver to city" (BT-77) shall be provided if the group "DELIVER TO ADDRESS" (BG-15) is delivered.
- DE-R-011fatal
The element "Deliver to post code" (BT-78) shall be provided if the group "DELIVER TO ADDRESS" (BG-15) is delivered.
- DE-R-014fatal
The element "VAT category rate" (BT-119) shall be provided.
- DE-R-015fatal
The element "Buyer reference" (BT-10) shall be provided.
- DE-R-016fatal
If one of the VAT codes S, Z, E, AE, K, G, L, or M is used, an invoice shall contain at least one of the following elements: "Seller VAT identifier" (BT-31) or "Seller tax registration identifier" (BT-32) or "SELLER TAX REPRESENTATIVE PARTY" (BG-11).
- DE-R-017warning
The element "Invoice type code" (BT-3) should only contain the following values from code list UNTDID 1001: 326 (Partial invoice), 380 (Commercial invoice), 384 (Corrected invoice), 389 (Self-billed invoice), 381 (Credit note), 875 (Partial construction invoice), 876 (Partial final construction invoice), 877 (Final construction invoice).
- DE-R-018fatal
Information on cash discounts for prompt payment (Skonto) shall be provided within the element "Payment terms" BT-20 in the following way: First segment "SKONTO", second segment amount of days ("TAGE=N"), third segment percentage ("PROZENT=N"). Percentage must be separated by dot with two decimal places. In case the base value of the invoiced amount is not provided in BT-115 but as a partial amount, the base value shall be provided as fourth segment "BASISBETRAG=N" as semantic data type amount. Each entry shall start with a #, the segments must be separated by # and a row shall end with a #. A complete statement on cash discount for prompt payment shall end with a XML-conformant line break. All statements on cash discount for prompt payment shall be given in capital letters. Additional whitespaces (blanks, tabulators or line breaks) are not allowed. Other characters or texts than defined above are not allowed.
- DE-R-019warning
The element "Payment account identifier" (BT-84) should contain a valid IBAN if code 58 SEPA is provided in "Payment means type code" (BT-81).
- DE-R-020warning
The element "Debited account identifier" (BT-91) should contain a valid IBAN if code 59 SEPA is provided in "Payment means type code" (BT-81).
- DE-R-022fatal
Attached documents provided with an invoice in "ADDITIONAL SUPPORTING DOCUMENTS" (BG-24) shall have a unique filename (non case-sensitive) within the element ″Attached document″ (BT-125).
- DE-R-023-1fatal
If "Payment means type code" (BT-81) contains a code for credit transfer (30, 58), "CREDIT TRANSFER" (BG-17) shall be provided.
- DE-R-023-2fatal
If "Payment means type code" (BT-81) contains a code for credit transfer (30, 58), BG-18 and BG-19 shall not be provided.
- DE-R-024-1fatal
If "Payment means type code" (BT-81) contains a code for payment card (48, 54, 55), "PAYMENT CARD INFORMATION" (BG-18) shall be provided.
- DE-R-024-2fatal
If "Payment means type code" (BT-81) contains a code for payment card (48, 54, 55), BG-17 and BG-19 shall not be provided.
- DE-R-025-1fatal
If "Payment means type code" (BT-81) contains a code for direct debit (59), "DIRECT DEBIT" (BG-19) shall be provided.
- DE-R-025-2fatal
If "Payment means type code" (BT-81) contains a code for direct debit (59), BG-17 and BG-18 shall not be provided.
- DE-R-026warning
If "Invoice type code" (BT-3) contains the code 384 (Corrected invoice), "PRECEDING INVOICE REFERENCE" (BG-3) should be provided at least once.
- DE-R-027warning
"Seller contact telephone number" (BT-42) should contain a valid telephone number. A valid telephone should consist of 3 digits minimum.
- DE-R-028warning
"Seller contact email address" (BT-43) should contain exactly one @-sign, which should not be framed by a whitespace or a dot but by at least two characters on each side. A dot should not be the first or last character.
- DE-R-030fatal
If the group "DIRECT DEBIT" (BG-19) is delivered, the element "Bank assigned creditor identifier" (BT-90) shall be provided.
- DE-R-031fatal
If the group "DIRECT DEBIT" (BG-19) is delivered, the element "Debited account identifier" (BT-91) shall be provided.
DK-R-* 14 rules
- DK-R-002fatal
Danish suppliers MUST provide legal entity (CVR-number)
- DK-R-003warning
If ItemClassification is provided from Danish suppliers, UNSPSC version 19.05.01 or 26.08.01 should be used.
- DK-R-004fatal
When specifying non-VAT Taxes for Danish customers, Danish suppliers MUST use the AllowanceChargeReasonCode="ZZZ" and MUST be specified in AllowanceChargeReason; Either as the 4-digit Tax category or must include a #, but the # is not allowed as first and last character
- DK-R-005fatal
For Danish suppliers the following Payment means codes are allowed: 1, 10, 31, 42, 48, 49, 50, 58, 59, 93 and 97
- DK-R-006fatal
For Danish suppliers bank account and registration account is mandatory if payment means is 31 or 42
- DK-R-007fatal
For Danish suppliers PaymentMandate/ID and PayerFinancialAccount/ID are mandatory when payment means is 49
- DK-R-008fatal
For Danish Suppliers PaymentID is mandatory and MUST start with 01#, 04# or 15# (kortartkode), and PayeeFinancialAccount/ID (Giro kontonummer) is mandatory and must be 7 or 8 numerical characters long, when payment means equals 50 (Giro)
- DK-R-009fatal
For Danish Suppliers if the PaymentID is prefixed with 04# or 15# the 16 digits instruction Id must be added to the PaymentID eg. "04#1234567890123456" when Payment means equals 50 (Giro)
- DK-R-010fatal
For Danish Suppliers using PaymentMeansCode 93, PaymentID is mandatory. The first three characters of the PaymentID MUST be 71#, 73# or 75# (kortartskode), and PayeeFinancialAccount/ID MUST be exactly 8 characters long.
- DK-R-011fatal
For Danish Suppliers if the PaymentID is prefixed with 71# or 75# the 15-16 digits instruction Id must be added to the PaymentID eg. "71#1234567890123456" when payment Method equals 93 (FIK)
- DK-R-013fatal
For Danish Suppliers it is mandatory to use schemeID when PartyIdentification/ID is used for AccountingCustomerParty or AccountingSupplierParty
- DK-R-014fatal
For Danish Suppliers it is mandatory to specify schemeID as "0184" (DK CVR-number) when PartyLegalEntity/CompanyID is used for AccountingSupplierParty
- DK-R-016fatal
For Danish Suppliers, a Credit note cannot have a negative total (PayableAmount)
- DK-R-017warning
For Danish Customers it is mandatory to specify schemeID as "0184" (DK CVR-number) when PartyLegalEntity/CompanyID is used for AccountingCustomerParty
GR-R-* 17 rules
- GR-R-001-1fatal
When the Supplier is Greek, the Invoice Id should consist of 6 segments
- GR-R-001-2fatal
When the Supplier is Greek, the Invoice Id first segment must be a valid TIN Number and match either the Supplier's or the Tax Representative's Tin Number
- GR-R-001-3fatal
When the Supplier is Greek, the Invoice Id second segment must be a valid Date that matches the invoice Issue Date
- GR-R-001-4fatal
When Supplier is Greek, the Invoice Id third segment must be a positive integer
- GR-R-001-5fatal
When Supplier is Greek, the Invoice Id in the fourth segment must be a valid greek document type
- GR-R-001-6fatal
When Supplier is Greek, the Invoice Id fifth segment must not be empty
- GR-R-001-7fatal
When Supplier is Greek, the Invoice Id sixth segment must not be empty
- GR-R-002fatal
Greek Suppliers must provide their full name as they are registered in the Greek Business Registry (G.E.MH.) as a legal entity or in the Tax Registry as a natural person
- GR-R-003fatal
For the Greek Suppliers, the VAT must start with 'EL' and must be a valid TIN number
- GR-R-004-1fatal
When Supplier is Greek, there must be one MARK Number
- GR-R-004-2fatal
When Supplier is Greek, the MARK Number must be a positive integer
- GR-R-005fatal
Greek Suppliers must provide the full name of the buyer
- GR-R-006fatal
Greek Suppliers must provide the VAT number of the buyer, if the buyer is Greek
- GR-R-008-2fatal
When Supplier is Greek, there should be no more than one invoice url
- GR-R-008-3fatal
When Supplier is Greek and the INVOICE URL Document reference exists, the External Reference URI should be present
- GR-R-009fatal
Greek suppliers that send an invoice through the PEPPOL network must use a correct TIN number as an electronic address according to PEPPOL Electronic Address Identifier scheme (schemeID 9933).
- GR-R-010fatal
Greek Suppliers that send an invoice through the PEPPOL network to a greek buyer must use a correct TIN number as an electronic address according to PEPPOL Electronic Address Identifier scheme (SchemeID 9933)
GR-S-* 2 rules
- GR-S-008-1warning
When Supplier is Greek, there should be one invoice url
- GR-S-011warning
Greek suppliers must provide their Seller Tax Registration Number, prefixed by the country code
IS-R-* 10 rules
- IS-R-001warning
If seller is icelandic then invoice type should be 380 or 381 — Ef seljandi er íslenskur þá ætti gerð reiknings (BT-3) að vera sölureikningur (380) eða kreditreikningur (381).
- IS-R-002fatal
If seller is icelandic then it shall contain sellers legal id — Ef seljandi er íslenskur þá skal reikningur innihalda íslenska kennitölu seljanda (BT-30).
- IS-R-003fatal
If seller is icelandic then it shall contain his address with street name and zip code — Ef seljandi er íslenskur þá skal heimilisfang seljanda innihalda götuheiti og póstnúmer (BT-35 og BT-38).
- IS-R-004fatal
If seller and buyer are icelandic then the invoice shall contain the buyers icelandic legal identifier — Ef seljandi og kaupandi eru íslenskir þá skal reikningurinn innihalda íslenska kennitölu kaupanda (BT-47).
- IS-R-005fatal
If seller and buyer are icelandic then the invoice shall contain the buyers address with street name and zip code — Ef seljandi og kaupandi eru íslenskir þá skal heimilisfang kaupanda innihalda götuheiti og póstnúmer (BT-50 og BT-53)
- IS-R-006fatal
If seller is icelandic and payment means code is 9 then a 12 digit account id must exist — Ef seljandi er íslenskur og greiðslumáti (BT-81) er krafa (kóti 9) þá skal koma fram 12 stafa númer (bankanúmer, höfuðbók 66 og reikningsnúmer) (BT-84)
- IS-R-007fatal
If seller is icelandic and payment means code is 42 then a 12 digit account id must exist — Ef seljandi er íslenskur og greiðslumáti (BT-81) er millifærsla (kóti 42) þá skal koma fram 12 stafa reikningnúmer (BT-84)
- IS-R-008fatal
If seller is icelandic and invoice contains supporting description EINDAGI then the id form must be YYYY-MM-DD — Ef seljandi er íslenskur þá skal eindagi (BT-122, DocumentDescription = EINDAGI) vera á forminu YYYY-MM-DD.
- IS-R-009fatal
If seller is icelandic and invoice contains supporting description EINDAGI invoice must have due date — Ef seljandi er íslenskur þá skal reikningur sem inniheldur eindaga (BT-122, DocumentDescription = EINDAGI) einnig hafa gjalddaga (BT-9).
- IS-R-010fatal
If seller is icelandic and invoice contains supporting description EINDAGI the id date must be same or later than due date — Ef seljandi er íslenskur þá skal eindagi (BT-122, DocumentDescription = EINDAGI) skal vera sami eða síðar en gjalddagi (BT-9) ef eindagi er til staðar.
IT-R-* 4 rules
- IT-R-001fatal
BT-32 (Seller tax registration identifier) - For Italian suppliers BT-32 minimum length 11 and maximum length shall be 16. Per i fornitori italiani il BT-32 deve avere una lunghezza tra 11 e 16 caratteri
- IT-R-002fatal
BT-35 (Seller address line 1) - Italian suppliers MUST provide the postal address line 1 - I fornitori italiani devono indicare l'indirizzo postale.
- IT-R-003fatal
BT-37 (Seller city) - Italian suppliers MUST provide the postal address city - I fornitori italiani devono indicare la città di residenza.
- IT-R-004fatal
">[IT-R-004] BT-38 (Seller post code) - Italian suppliers MUST provide the postal address post code - I fornitori italiani devono indicare il CAP di residenza.
NL-R-* 9 rules
- NL-R-001fatal
For suppliers in the Netherlands, if the document is a creditnote, the document MUST contain an invoice reference (
cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID) - NL-R-002fatal
For suppliers in the Netherlands the supplier's address (
cac:AccountingSupplierParty/cac:Party/cac:PostalAddress) MUST contain street name (cbc:StreetName), city (cbc:CityName) and post code (cbc:PostalZone) - NL-R-003fatal
For suppliers in the Netherlands, the legal entity identifier MUST be either a KVK or OIN number (schemeID 0106 or 0190)
- NL-R-004fatal
For suppliers in the Netherlands, if the customer is in the Netherlands, the customer address (
cac:AccountingCustomerParty/cac:Party/cac:PostalAddress) MUST contain the street name (cbc:StreetName), the city (cbc:CityName) and post code (cbc:PostalZone) - NL-R-005fatal
For suppliers in the Netherlands, if the customer is in the Netherlands, the customer's legal entity identifier MUST be either a KVK or OIN number (schemeID 0106 or 0190)
- NL-R-006fatal
For suppliers in the Netherlands, if the fiscal representative is in the Netherlands, the representative's address (
cac:TaxRepresentativeParty/cac:PostalAddress) MUST contain street name (cbc:StreetName), city (cbc:CityName) and post code (cbc:PostalZone) - NL-R-007fatal
For suppliers in the Netherlands, the supplier MUST provide a means of payment (
cac:PaymentMeans) if the payment is from customer to supplier - NL-R-008fatal
For suppliers in the Netherlands, if the customer is in the Netherlands, the payment means code (
cac:PaymentMeans/cbc:PaymentMeansCode) MUST be one of 30, 48, 49, 57, 58 or 59 - NL-R-009fatal
For suppliers in the Netherlands, if an order line reference (
cac:OrderLineReference/cbc:LineID) is used, there must be an order reference on the document level (cac:OrderReference/cbc:ID)
NO-R-* 2 rules
- NO-R-001fatal
For Norwegian suppliers, a VAT number MUST be the country code prefix NO followed by a valid Norwegian organization number (nine numbers) followed by the letters MVA.
- NO-R-002warning
For Norwegian suppliers, most invoice issuers are required to append "Foretaksregisteret" to their invoice. "Dersom selger er aksjeselskap, allmennaksjeselskap eller filial av utenlandsk selskap skal også ordet «Foretaksregisteret» fremgå av salgsdokumentet, jf. foretaksregisterloven § 10-2."
PEPPOL-COMMON-R* 12 rules
- PEPPOL-COMMON-R040fatal
GLN must have a valid format according to GS1 rules.
- PEPPOL-COMMON-R041fatal
Norwegian organization number MUST be stated in the correct format.
- PEPPOL-COMMON-R042fatal
Danish organization number (CVR) MUST be stated in the correct format.
- PEPPOL-COMMON-R043fatal
Belgian enterprise number MUST be stated in the correct format.
- PEPPOL-COMMON-R044warning
IPA Code (Codice Univoco Unità Organizzativa) must be stated in the correct format
- PEPPOL-COMMON-R045warning
Tax Code (Codice Fiscale) must be stated in the correct format
- PEPPOL-COMMON-R046warning
Tax Code (Codice Fiscale) must be stated in the correct format
- PEPPOL-COMMON-R047warning
Italian VAT Code (Partita Iva) must be stated in the correct format
- PEPPOL-COMMON-R049fatal
Swedish organization number MUST be stated in the correct format.
- PEPPOL-COMMON-R050fatal
Australian Business Number (ABN) MUST be stated in the correct format.
- PEPPOL-COMMON-R052warning
Danish chamber of commerce number (P) MUST be stated in the correct format.
- PEPPOL-COMMON-R053warning
Danish ERSTORG number (SE) MUST be stated in the correct format.
PEPPOL-EN16931-CL* 6 rules
- PEPPOL-EN16931-CL001fatal
Mime code must be according to subset of IANA code list.
- PEPPOL-EN16931-CL002fatal
Reason code MUST be according to subset of UNCL 5189 D.16B.
- PEPPOL-EN16931-CL003fatal
Reason code MUST be according to UNCL 7161 D.16B.
- PEPPOL-EN16931-CL006fatal
Invoice period description code must be according to UNCL 2005 D.16B.
- PEPPOL-EN16931-CL007fatal
Currency code must be according to ISO 4217:2005
- PEPPOL-EN16931-CL008fatal
Electronic address identifier scheme must be from the codelist "Electronic Address Identifier Scheme"
PEPPOL-EN16931-F* 1 rules
- PEPPOL-EN16931-F001fatal
A date MUST be formatted YYYY-MM-DD.
PEPPOL-EN16931-P* 11 rules
- PEPPOL-EN16931-P0100fatal
Invoice type code MUST be set according to the profile.
- PEPPOL-EN16931-P0101fatal
Credit note type code MUST be set according to the profile.
- PEPPOL-EN16931-P0104fatal
Tax Category G MUST be used when exemption reason code is VATEX-EU-G
- PEPPOL-EN16931-P0105fatal
Tax Category O MUST be used when exemption reason code is VATEX-EU-O
- PEPPOL-EN16931-P0106fatal
Tax Category K MUST be used when exemption reason code is VATEX-EU-IC
- PEPPOL-EN16931-P0107fatal
Tax Category AE MUST be used when exemption reason code is VATEX-EU-AE
- PEPPOL-EN16931-P0108fatal
Tax Category E MUST be used when exemption reason code is VATEX-EU-D
- PEPPOL-EN16931-P0109fatal
Tax Category E MUST be used when exemption reason code is VATEX-EU-F
- PEPPOL-EN16931-P0110fatal
Tax Category E MUST be used when exemption reason code is VATEX-EU-I
- PEPPOL-EN16931-P0111fatal
Tax Category E MUST be used when exemption reason code is VATEX-EU-J
- PEPPOL-EN16931-P0112fatal
Invoice type code 326 or 384 are only allowed when both buyer and seller are German organizations
PEPPOL-EN16931-R* 28 rules
- PEPPOL-EN16931-R001fatal
Business process MUST be provided.
- PEPPOL-EN16931-R002fatal
No more than one note is allowed on document level, unless both the buyer and seller are German organizations.
- PEPPOL-EN16931-R003fatal
A buyer reference or purchase order reference MUST be provided.
- PEPPOL-EN16931-R004fatal
Specification identifier MUST have the value '
urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0'. - PEPPOL-EN16931-R005fatal
VAT accounting currency code MUST be different from invoice currency code when provided.
- PEPPOL-EN16931-R007fatal
Business process MUST be in the format '
urn:fdc:peppol.eu:2017:poacc:billing:NN:1.0' where NN indicates the process number. - PEPPOL-EN16931-R008fatal
Document MUST not contain empty elements.
- PEPPOL-EN16931-R010fatal
Buyer electronic address MUST be provided
- PEPPOL-EN16931-R020fatal
Seller electronic address MUST be provided
- PEPPOL-EN16931-R040fatal
Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists
- PEPPOL-EN16931-R041fatal
Allowance/charge base amount MUST be provided when allowance/charge percentage is provided.
- PEPPOL-EN16931-R042fatal
Allowance/charge percentage MUST be provided when allowance/charge base amount is provided.
- PEPPOL-EN16931-R043fatal
Allowance/charge ChargeIndicator value MUST equal 'true' or 'false'
- PEPPOL-EN16931-R044fatal
Charge on price level is NOT allowed. Only value 'false' allowed.
- PEPPOL-EN16931-R046fatal
Item net price MUST equal (Gross price - Allowance amount) when gross price is provided.
- PEPPOL-EN16931-R051fatal
All currencyID attributes must have the same value as the invoice currency code (BT-5), except for the invoice total VAT amount in accounting currency (BT-111).
- PEPPOL-EN16931-R053fatal
Only one tax total with tax subtotals MUST be provided.
- PEPPOL-EN16931-R054fatal
Only one tax total without tax subtotals MUST be provided when tax currency code is provided.
- PEPPOL-EN16931-R055fatal
Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign
- PEPPOL-EN16931-R061fatal
Mandate reference MUST be provided for direct debit.
- PEPPOL-EN16931-R080fatal
Only one project reference is allowed on document level
- PEPPOL-EN16931-R100fatal
Only one invoiced object is allowed pr line
- PEPPOL-EN16931-R101fatal
Element Document reference can only be used for Invoice line object
- PEPPOL-EN16931-R110fatal
Start date of line period MUST be within invoice period.
- PEPPOL-EN16931-R111fatal
End date of line period MUST be within invoice period.
- PEPPOL-EN16931-R120fatal
Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount
- PEPPOL-EN16931-R121fatal
Base quantity MUST be a positive number above zero.
- PEPPOL-EN16931-R130fatal
Unit code of price base quantity MUST be same as invoiced quantity.
SE-R-* 13 rules
- SE-R-001fatal
For Swedish suppliers, Swedish VAT-numbers must consist of 14 characters.
- SE-R-002fatal
For Swedish suppliers, the Swedish VAT-numbers must have the trailing 12 characters in numeric form
- SE-R-003fatal
Swedish organisation numbers should be numeric.
- SE-R-004fatal
Swedish organisation numbers consist of 10 characters.
- SE-R-005fatal
For Swedish suppliers, when using Seller tax registration identifier, 'Godkänd för F-skatt' must be stated
- SE-R-006fatal
For Swedish suppliers, only standard VAT rate of 6, 12 or 25 are used
- SE-R-007warning
For Swedish suppliers using Plusgiro, the Account ID must be numeric
- SE-R-008warning
For Swedish suppliers using Bankgiro, the Account ID must be numeric
- SE-R-009warning
For Swedish suppliers using Bankgiro, the Account ID must have 7-8 characters
- SE-R-010warning
For Swedish suppliers using Plusgiro, the Account ID must have 2-8 characters
- SE-R-011warning
For Swedish suppliers using Swedish Bankgiro or Plusgiro, the proper way to indicate this is to use Code 30 for PaymentMeans and FinancialInstitutionBranch ID with code SE:BANKGIRO or SE:PLUSGIRO
- SE-R-012warning
For domestic transactions between Swedish trading partners, credit transfer should be indicated by PaymentMeansCode="30"
- SE-R-013fatal
The last digit of a Swedish organization number must be valid according to the Luhn algorithm.
Check a file against Peppol BIS Billing 3.0
The validator detects the schema of your file and runs this rule set when it applies. Free, no signup.