diff --git a/guide/release-notes/v3.0.18.adoc b/guide/release-notes/v3.0.18.adoc index 9604da2..8a34a5d 100644 --- a/guide/release-notes/v3.0.18.adoc +++ b/guide/release-notes/v3.0.18.adoc @@ -4,6 +4,10 @@ Release date:: November 2024 == Changes to BIS document +== Changes to Compliance BIS document +* Added new compliance on SBDH and BIS3 payload + The value of the SBDH element "Sender/Identifier" MUST be equivalent to the value in the sender party’s "Party/EndpointID" element and its "schemeID" attribute. + The value of the SBDH element "Receiver/Identifier" MUST be equivalent to the value in the receiver’s party "Party/EndpointID" element and its "schemeID" attribute == Changes to code lists and validation artefacts diff --git a/rules/sch/PEPPOL-EN16931-UBL.sch b/rules/sch/PEPPOL-EN16931-UBL.sch index 1615025..f469bcb 100644 --- a/rules/sch/PEPPOL-EN16931-UBL.sch +++ b/rules/sch/PEPPOL-EN16931-UBL.sch @@ -1,24 +1,29 @@ - + Rules for Peppol BIS 3.0 Billing - - - - - - + + + + + + - - + - + + 'XX'" /> + value="(upper-case(normalize-space(/*/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode)) = 'DE')" /> - - + value="(upper-case(normalize-space(/*/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode)) = 'DE')" /> + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 - + + + ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + - - + + " /> - + ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz - + " /> - - - - + + + + " /> - - + + else ( u:addPIVA($arg,xs:integer(0)) mod 10 )" /> - - - - + + + - + )" /> + - - + +" /> - - + - + - - - - + (number($digits[1])*256) " /> + + + + - - - - - - - - - - - - + + + + + + + + + + + - - - - - + )" /> + + + + + - Document MUST not contain empty elements. + Document MUST not contain empty + elements. - Only one project reference is allowed on document level + Only one project reference is allowed on document level - The Uniform Resource Locater should start with http(s):// or ftp(s):// + The Uniform Resource Locater should start with http(s):// or ftp(s):// - Business process MUST be provided. - Business process MUST be in the format 'urn:fdc:peppol.eu:2017:poacc:billing:NN:1.0' where NN indicates the process number. - No more than one note is allowed on document level, unless both the buyer and seller are German organizations. - A buyer reference or purchase order reference MUST be provided. - Specification identifier MUST have the value 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0'. - Only one tax total with tax subtotals MUST be provided. - Only one tax total without tax subtotals MUST be provided when tax currency code is provided. - Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign + Business process MUST be + provided. + Business process + MUST be in the format 'urn:fdc:peppol.eu:2017:poacc:billing:NN:1.0' where NN indicates the + process number. + No more than one note is allowed on document level, unless both the buyer and + seller are German organizations. + A buyer reference or purchase order reference MUST be provided. + Specification identifier MUST have the value + 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0'. + Only + one tax total with tax subtotals MUST be provided. + Only one tax total without tax subtotals MUST be provided when tax currency + code is provided. + Invoice total VAT amount and Invoice total VAT amount in accounting currency + MUST have the same operational sign - VAT accounting currency code MUST be different from invoice currency code when provided. + VAT accounting currency code MUST be different from invoice currency code when + provided. - Buyer electronic address MUST be provided + Buyer electronic address + MUST be provided - Seller electronic address MUST be provided + Seller electronic address + MUST be provided - - Allowance/charge base amount MUST be provided when allowance/charge percentage is provided. - - - Allowance/charge percentage MUST be provided when allowance/charge base amount is provided. - - - + Allowance/charge base amount MUST + be provided when allowance/charge percentage is provided. + + + Allowance/charge percentage MUST + be provided when allowance/charge base amount is provided. + + + Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists - Allowance/charge ChargeIndicator value MUST equal 'true' or 'false' + 0, (xs:decimal(cbc:BaseAmount) * xs:decimal(cbc:MultiplierFactorNumeric)) div 100, 0.02)" + flag="fatal">Allowance/charge amount must equal base amount * percentage/100 if base amount + and percentage exists + Allowance/charge ChargeIndicator value MUST equal 'true' or 'false' - - Mandate reference MUST be provided for direct debit. + Mandate + reference MUST be provided for direct debit. - - 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). + + 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). - - Start date of line period MUST be within invoice period. - - - End date of line period MUST be within invoice period. + + Start + date of line period MUST be within invoice period. + + + End + date of line period MUST be within invoice period. - - + - + - + - + - + - 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 - Base quantity MUST be a positive number above zero. - Only one invoiced object is allowed pr line - Element Document reference can only be used for Invoice line object + 0" /> + 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 + Base quantity MUST be a positive number above zero. + Only + one invoiced object is allowed pr line + Element Document reference can only be used for Invoice line object - Charge on price level is NOT allowed. Only value 'false' allowed. - Item net price MUST equal (Gross price - Allowance amount) when gross price is provided. + Charge on price level is NOT allowed. Only value 'false' allowed. + Item net price MUST equal (Gross price - Allowance amount) when gross price is + provided. - - + - Unit code of price base quantity MUST be same as invoiced quantity. + ../../cbc:CreditedQuantity" /> + Unit code of price base quantity MUST be same as invoiced quantity. - - GLN must have a valid format according to GS1 rules. - - - Norwegian organization number MUST be stated in the correct format. - - - Danish organization number (CVR) MUST be stated in the correct format. - - - Belgian enterprise number MUST be stated in the correct format. - - - IPA Code (Codice Univoco Unità Organizzativa) must be stated in the correct format - - - Tax Code (Codice Fiscale) must be stated in the correct format + + GLN + must have a valid format according to GS1 rules. + + + Norwegian + organization number MUST be stated in the correct format. + + + Danish organization number (CVR) MUST be stated in the correct format. + + + Belgian enterprise number MUST be stated in the correct format. + + + IPA + Code (Codice Univoco Unità Organizzativa) must be stated in the correct format + + + Tax Code + (Codice Fiscale) must be stated in the correct format - Tax Code (Codice Fiscale) must be stated in the correct format + Tax Code + (Codice Fiscale) must be stated in the correct format - - Italian VAT Code (Partita Iva) must be stated in the correct format + + Italian + VAT Code (Partita Iva) must be stated in the correct format - - - Swedish organization number MUST be stated in the correct format. - - - Australian Business Number (ABN) MUST be stated in the correct format. - + + Swedish organization number MUST be stated in the correct format. + + + Australian + Business Number (ABN) MUST be stated in the correct format. + - For Norwegian suppliers, most invoice issuers are required to append "Foretaksregisteret" to their + 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." - 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. + 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. - - + + - - Danish suppliers MUST provide legal entity (CVR-number) - + Danish suppliers MUST provide legal entity (CVR-number) + For Danish Suppliers it is mandatory to specify schemeID as "0184" (DK CVR-number) when PartyLegalEntity/CompanyID is used for AccountingSupplierParty - For Danish Suppliers it is mandatory to specify schemeID as "0184" (DK + CVR-number) when PartyLegalEntity/CompanyID is used for AccountingSupplierParty + For Danish Suppliers, a Credit note cannot have a negative total (PayableAmount) - - - For Danish Suppliers, a Credit note cannot have a negative total + (PayableAmount) + + + For Danish Suppliers it is mandatory to use schemeID when PartyIdentification/ID is used for AccountingCustomerParty or AccountingSupplierParty - - - For Danish suppliers the following Payment means codes are allowed: 1, 10, 31, 42, 48, 49, 50, 58, 59, 93 and 97 - For Danish Suppliers it is mandatory to use schemeID when + PartyIdentification/ID is used for AccountingCustomerParty or AccountingSupplierParty + + + For Danish suppliers the following Payment means codes are allowed: 1, 10, 31, + 42, 48, 49, 50, 58, 59, 93 and 97 + For Danish suppliers bank account and registration account is mandatory if payment means is 31 or 42 - For Danish suppliers bank account and registration account is mandatory if + payment means is 31 or 42 + For Danish suppliers PaymentMandate/ID and PayerFinancialAccount/ID are mandatory when payment means is 49 - For Danish suppliers PaymentMandate/ID and PayerFinancialAccount/ID are + mandatory when payment means is 49 + 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 characters long, when payment means equals 50 (Giro) - 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 + characters long, when payment means equals 50 (Giro) + 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) - 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) + For Danish Suppliers the PaymentID is mandatory and MUST start with 71#, 73# or 75# (kortartkode) and PayeeFinancialAccount/ID (Kreditornummer) is mandatory and must be exactly 8 characters long, when Payment means equals 93 (FIK) - For Danish Suppliers the PaymentID is mandatory and MUST start with 71#, 73# or + 75# (kortartkode) and PayeeFinancialAccount/ID (Kreditornummer) is mandatory and must be + exactly 8 characters long, when Payment means equals 93 (FIK) + 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) + )" + flag="fatal">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) - - + If ItemClassification is provided from Danish suppliers, UNSPSC version 19.0501 should be used. + )" + flag="warning">If ItemClassification is provided from Danish suppliers, UNSPSC version + 19.0501 should be used. - When specifying non-VAT Taxes for Danish customers, Danish suppliers MUST use the AllowanceChargeReasonCode="ZZZ" and the 4-digit Tax category MUST be specified in AllowanceChargeReason + )" + flag="fatal">When specifying non-VAT Taxes for Danish customers, Danish suppliers MUST use + the AllowanceChargeReasonCode="ZZZ" and the 4-digit Tax category MUST be specified in + AllowanceChargeReason - - [IT-R-001] 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-001] 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-002] 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-003] BT-37 (Seller city) - Italian suppliers MUST provide the postal address city - I fornitori italiani devono indicare la città di residenza. - ">[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. + [IT-R-002] 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-003] BT-37 + (Seller city) - Italian suppliers MUST provide the postal address city - I fornitori + italiani devono indicare la città di residenza. + ">[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. - - For Swedish suppliers, Swedish VAT-numbers must consist of 14 characters. - For Swedish suppliers, the Swedish VAT-numbers must have the trailing 12 characters in numeric form - - - Swedish organisation numbers should be numeric. - Swedish organisation numbers consist of 10 characters. - The last digit of a Swedish organization number must be valid according to the Luhn algorithm. - - - For Swedish suppliers, when using Seller tax registration identifier, 'Godkänd för F-skatt' must be stated - - - For Swedish suppliers, only standard VAT rate of 6, 12 or 25 are used - - - For Swedish suppliers using Plusgiro, the Account ID must be numeric - For Swedish suppliers using Plusgiro, the Account ID must have 2-8 characters - - - For Swedish suppliers using Bankgiro, the Account ID must be numeric - For Swedish suppliers using Bankgiro, the Account ID must have 7-8 characters - - - 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 - - - For domestic transactions between Swedish trading partners, credit transfer should be indicated by PaymentMeansCode="30" + + For Swedish suppliers, Swedish VAT-numbers must consist of 14 characters. + For Swedish suppliers, the Swedish VAT-numbers must have the trailing 12 + characters in numeric form + + + Swedish + organisation numbers should be numeric. + Swedish + organisation numbers consist of 10 characters. + The + last digit of a Swedish organization number must be valid according to the Luhn algorithm. + + + For Swedish suppliers, when using Seller tax registration identifier, 'Godkänd + för F-skatt' must be stated + + + For Swedish suppliers, only standard VAT rate of 6, 12 or 25 are used + + + For + Swedish suppliers using Plusgiro, the Account ID must be numeric + For Swedish suppliers using Plusgiro, the Account ID must have 2-8 characters + + + For + Swedish suppliers using Bankgiro, the Account ID must be numeric + For Swedish suppliers using Bankgiro, the Account ID must have 7-8 characters + + + 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 + + + For domestic transactions between Swedish + trading partners, credit transfer should be indicated by PaymentMeansCode="30" - - - + + + - + 'XX'" /> - - - + + + - - - When the Supplier is Greek, the Invoice Id should consist of 6 segments - + + When the Supplier is + Greek, the Invoice Id should consist of 6 segments + 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 - - 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 + + When the Supplier is Greek, the Invoice Id second segment must be a valid Date that matches the invoice Issue Date - When Supplier is Greek, the Invoice Id third segment must be a positive integer - When Supplier is Greek, the Invoice Id in the fourth segment must be a valid greek document type - When Supplier is Greek, the Invoice Id fifth segment must not be empty - When Supplier is Greek, the Invoice Id sixth segment must not be empty + and $tokenizedIdDate[3] = $tokenizedUblIssueDate[1])" + flag="fatal">When the Supplier is Greek, the Invoice Id second segment must be a valid Date + that matches the invoice Issue Date + When Supplier is Greek, the Invoice Id third segment must be a positive integer + When Supplier is Greek, the Invoice Id in the fourth segment must be a valid + greek document type + When Supplier + is Greek, the Invoice Id fifth segment must not be empty + When Supplier + is Greek, the Invoice Id sixth segment must not be empty - 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 + 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 - Greek suppliers must provide their Seller Tax Registration Number, prefixed by the country code + u:TinVerification(substring(cac:PartyTaxScheme[normalize-space(cac:TaxScheme/cbc:ID) = 'VAT']/cbc:CompanyID,3))" + flag="warning">Greek suppliers must provide their Seller Tax Registration Number, prefixed + by the country code - - For the Greek Suppliers, the VAT must start with 'EL' and must be a valid TIN number + + For the Greek Suppliers, the VAT must start with 'EL' and must be a valid TIN + number - + - When Supplier is Greek, there must be one MARK Number - When Supplier is Greek, there should be one invoice url - When Supplier is Greek, there should be no more than one invoice url + When Supplier is Greek, there must be one MARK Number + + When Supplier is Greek, there should be one invoice url + When Supplier is Greek, there should be no more than one invoice url - - When Supplier is Greek, the MARK Number must be a positive integer + + When Supplier is + Greek, the MARK Number must be a positive integer - - When Supplier is Greek and the INVOICE URL Document reference exists, the External Reference URI should be present + + When Supplier is Greek and the INVOICE URL Document reference exists, the + External Reference URI should be present - Greek Suppliers must provide the full name of the buyer + Greek + Suppliers must provide the full name of the buyer - - 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). + + 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). - - + Greek Suppliers must provide the VAT number of the buyer, if the buyer is Greek + u:TinVerification(substring(cac:PartyTaxScheme[normalize-space(cac:TaxScheme/cbc:ID) = 'VAT']/cbc:CompanyID,3))" + flag="fatal">Greek Suppliers must provide the VAT number of the buyer, if the buyer is Greek - 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) + 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) - - - - [IS-R-001]-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-002]-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-003]-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-001]-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-002]-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-003]-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-006]-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-006]-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-007]-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-008]-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-009]-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-010]-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. - - - [IS-R-004]-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-005]-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) + or not(exists(cac:PaymentMeans[cbc:PaymentMeansCode = '42']))" + flag="fatal">[IS-R-007]-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-008]-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-009]-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-010]-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. + + + [IS-R-004]-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-005]-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) - - - + + + - [NL-R-001] 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-001] 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-002] 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-002] + 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-003] For suppliers in the Netherlands, the legal entity identifier MUST be either a KVK or OIN number (schemeID 0106 or 0190) + [NL-R-003] For suppliers in the Netherlands, the legal entity identifier MUST + be either a KVK or OIN number (schemeID 0106 or 0190) - + - [NL-R-004] 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-004] + 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-005] 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-005] 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-006] 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-006] + 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-007] 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-007] 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-008] 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 + normalize-space(cbc:PaymentMeansCode) = '59'" + flag="fatal">[NL-R-008] 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-009] 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) + [NL-R-009] 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) + value="'#(SKONTO)#TAGE=([0-9]+#PROZENT=[0-9]+\.[0-9]{2})(#BASISBETRAG=-?[0-9]+\.[0-9]{2})?#$'" /> - - - An invoice shall contain information on "PAYMENT INSTRUCTIONS" (BG-16). + value="'^[a-zA-Z0-9!#\$%&"*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#\$%&"*+/=?^_`{|}~-]+)*@([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$'" /> + + + An invoice shall contain + information on "PAYMENT INSTRUCTIONS" (BG-16). The element "Buyer reference" (BT-10) shall be provided. + value="('S', 'Z', 'E', 'AE', 'K', 'G', 'L', 'M')" /> + value="cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID[boolean(normalize-space(.))]" /> + value="cac:AllowanceCharge/cac:TaxCategory/cbc:ID[ancestor::cac:AllowanceCharge/cbc:ChargeIndicator = 'false' and following-sibling::cac:TaxScheme/cbc:ID = 'VAT']" /> + value="cac:AllowanceCharge/cac:TaxCategory/cbc:ID[ancestor::cac:AllowanceCharge/cbc:ChargeIndicator = 'false']" /> + value="cac:AllowanceCharge/cac:TaxCategory/cbc:ID[ancestor::cac:AllowanceCharge/cbc:ChargeIndicator = 'true']" /> - - + + 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). + id="DE-R-016">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). - + 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). - 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). + 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. - 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. + 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). - 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). + If "Invoice type code" (BT-3) contains the code 384 (Corrected invoice), "PRECEDING INVOICE REFERENCE" (BG-3) should be provided at least once. - If "Invoice type code" (BT-3) contains the code 384 (Corrected invoice), + "PRECEDING INVOICE REFERENCE" (BG-3) should be provided at least once. + If the group "DIRECT DEBIT" (BG-19) is delivered, the element "Bank assigned creditor identifier" (BT-90) shall be provided. - If the group "DIRECT DEBIT" (BG-19) is delivered, the element "Bank assigned + creditor identifier" (BT-90) shall be provided. + If the group "DIRECT DEBIT" (BG-19) is delivered, the element "Debited account identifier" (BT-91) shall be provided. + id="DE-R-031">If the group "DIRECT DEBIT" (BG-19) is delivered, the element "Debited account + identifier" (BT-91) shall be provided. - - The group "SELLER CONTACT" (BG-6) shall be provided. + + The group "SELLER CONTACT" + (BG-6) shall be provided. - + The element "Seller city" (BT-37) shall be provided. @@ -753,7 +1126,8 @@ Last update: 2024 Novemeber release 3.0.18. flag="fatal" id="DE-R-004">The element "Seller post code" (BT-38) shall be provided. - + The element "Seller contact point" (BT-41) shall be provided. @@ -765,12 +1139,16 @@ Last update: 2024 Novemeber release 3.0.18. id="DE-R-007">The element "Seller contact email address" (BT-43) shall be provided. "Seller contact telephone number" (BT-42) should contain a valid telephone number. A valid telephone should consist of 3 digits minimum. + id="DE-R-027">"Seller contact telephone number" (BT-42) should contain a valid telephone + number. A valid telephone should consist of 3 digits minimum. "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. + id="DE-R-028">"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. - + The element "Buyer city" (BT-52) shall be provided. @@ -778,40 +1156,59 @@ Last update: 2024 Novemeber release 3.0.18. flag="fatal" id="DE-R-009">The element "Buyer post code" (BT-53) shall be provided. - + The element "Deliver to city" (BT-77) shall be provided if the group "DELIVER TO ADDRESS" (BG-15) is delivered. + id="DE-R-010">The element "Deliver to city" (BT-77) shall be provided if the group "DELIVER + TO ADDRESS" (BG-15) is delivered. The element "Deliver to post code" (BT-78) shall be provided if the group "DELIVER TO ADDRESS" (BG-15) is delivered. + id="DE-R-011">The element "Deliver to post code" (BT-78) shall be provided if the group + "DELIVER TO ADDRESS" (BG-15) is delivered. - + - 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). - If "Payment means type code" (BT-81) contains a code for credit transfer (30, 58), "CREDIT TRANSFER" (BG-17) shall be provided. + id="DE-R-019">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). + If "Payment means type + code" (BT-81) contains a code for credit transfer (30, 58), "CREDIT TRANSFER" (BG-17) shall + be provided. If "Payment means type code" (BT-81) contains a code for credit transfer (30, 58), BG-18 and BG-19 shall not be provided. - - - If "Payment means type code" (BT-81) contains a code for payment card (48, 54, 55), "PAYMENT CARD INFORMATION" (BG-18) shall be provided. + id="DE-R-023-2">If "Payment means type code" (BT-81) contains a code for credit transfer + (30, 58), BG-18 and BG-19 shall not be provided. + + + If "Payment means type code" + (BT-81) contains a code for payment card (48, 54, 55), "PAYMENT CARD INFORMATION" (BG-18) + shall be provided. 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. + id="DE-R-024-2">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. - - + 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). - If "Payment means type code" (BT-81) contains a code for direct debit (59), "DIRECT DEBIT" (BG-19) shall be provided. + id="DE-R-020">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). + If "Payment means type code" + (BT-81) contains a code for direct debit (59), "DIRECT DEBIT" (BG-19) shall be provided. If "Payment means type code" (BT-81) contains a code for direct debit (59), BG-17 and BG-18 shall not be provided. + id="DE-R-025-2">If "Payment means type code" (BT-81) contains a code for direct debit (59), + BG-17 and BG-18 shall not be provided. - + The element "VAT category rate" (BT-119) shall be provided. @@ -819,81 +1216,114 @@ Last update: 2024 Novemeber release 3.0.18. - - - - - - - - + + + + + + + + - Mime code must be according to subset of IANA code list. + satisfies @mimeCode = $code" + flag="fatal">Mime code must be according to subset of IANA code list. - Reason code MUST be according to subset of UNCL 5189 D.16B. + satisfies normalize-space(text()) = $code" + flag="fatal">Reason code MUST be according to subset of UNCL 5189 D.16B. - Reason code MUST be according to UNCL 7161 D.16B. + satisfies normalize-space(text()) = $code" + flag="fatal">Reason code MUST be according to UNCL 7161 D.16B. - Invoice period description code must be according to UNCL 2005 D.16B. + satisfies normalize-space(text()) = $code" + flag="fatal">Invoice period description code must be according to UNCL 2005 D.16B. - - + Currency code must be according to ISO 4217:2005 + satisfies @currencyID = $code" + flag="fatal">Currency code must be according to ISO 4217:2005 - Invoice type code MUST be set according to the profile. + satisfies normalize-space(text()) = $code)" + flag="fatal">Invoice type code MUST be set according to the profile. - Credit note type code MUST be set according to the profile. + satisfies normalize-space(text()) = $code)" + flag="fatal">Credit note type code MUST be set according to the profile. - - A date + + A date MUST be formatted YYYY-MM-DD. - Electronic address identifier scheme must be from the codelist "Electronic Address Identifier Scheme" + satisfies @schemeID = $code" flag="fatal">Electronic + address identifier scheme must be from the codelist "Electronic Address Identifier Scheme" - Tax Category G MUST be used when exemption reason code is VATEX-EU-G + Tax Category + G MUST be used when exemption reason code is VATEX-EU-G - Tax Category O MUST be used when exemption reason code is VATEX-EU-O + Tax Category + O MUST be used when exemption reason code is VATEX-EU-O - Tax Category K MUST be used when exemption reason code is VATEX-EU-IC + Tax Category + K MUST be used when exemption reason code is VATEX-EU-IC - Tax Category AE MUST be used when exemption reason code is VATEX-EU-AE + Tax + Category AE MUST be used when exemption reason code is VATEX-EU-AE - Tax Category E MUST be used when exemption reason code is VATEX-EU-D + Tax Category + E MUST be used when exemption reason code is VATEX-EU-D - Tax Category E MUST be used when exemption reason code is VATEX-EU-F + Tax Category + E MUST be used when exemption reason code is VATEX-EU-F - Tax Category E MUST be used when exemption reason code is VATEX-EU-I + Tax Category + E MUST be used when exemption reason code is VATEX-EU-I - Tax Category E MUST be used when exemption reason code is VATEX-EU-J + Tax Category + E MUST be used when exemption reason code is VATEX-EU-J - + \ No newline at end of file