ID Category Description Query
BII2-T10-R001 BII2 cbc:CustomizationID
SI-V11-INV-R200 SI This XML instance is NOT tagged as an SI-UBL invoice; please check the CustomizationID value Long XPath used, check the schematron source
SI-INV-R000 SI This is NOT a UBL 2.x Invoice, validation cannot continue ubl:Invoice
SI-V12-INV-R200 SI This XML instance is NOT tagged as an SI-UBL invoice contains(., 'urn:www.simplerinvoicing.org:si:si-ubl:ver1.2')
SI-V12-INV-R200 SI This XML instance is NOT tagged as an SI-UBL invoice; please check the CustomizationID value Long XPath used, check the schematron source
SI-INV-R000 SI This is NOT a UBL 2.x Invoice, validation cannot continue ubl:Invoice
SI-V12-INV-R001 SI Each invoice MUST be specified as a UBL 2.1 document cbc:UBLVersionID='2.1'
SI-V12-INV-R002 SI Each invoice MUST have an InvoiceTypeCode declaration cbc:InvoiceTypeCode
SI-V11-INV-R453 SI For corrective invoices a billing reference MUST be set cbc:InvoiceTypeCode!='384' or cac:BillingReference
BII2-T10-R001 BII2 cbc:CustomizationID
SI-V12-INV-R003 SI A CompanyID MUST be specified using a PEPPOL Party identifier @schemeID
SI-V12-INV-R004 SI An external reference MUST have its uri specified normalize-space(cbc:URI) != ''
SI-V12-INV-R005 SI A country MUST be identified by a two-letter identification code as specified in ISO3166-1:Alpha2 cbc:IdentificationCode
SI-V12-INV-R006 SI A tax scheme MUST have an identifier specifying it uses the UN/ECE 5153 list cbc:ID/@schemeID='UN/ECE 5153'
SI-V12-INV-R007 SI A legal entity MUST have a company identifier cbc:CompanyID
SI-V12-INV-R008 SI If delivery terms are specified they MUST be expressed as special conditions normalize-space(cbc:SpecialTerms/text()) != ''
SI-V12-INV-R009 SI A primary account number MUST be specified if a card account is used normalize-space(text()) != ''
SI-V12-INV-R010 SI A network id MUST be specified if a card account is used normalize-space(text()) != ''
SI-V12-INV-R011 SI A financial account MUST have an id cbc:ID
SI-V12-INV-R012 SI A financial account id MUST have a value string-length(normalize-space(text())) > 0
SI-V12-INV-R013 SI A financial institution MUST have an id cbc:ID
SI-V12-INV-R014 SI A financial institution id MUST have a value string-length(normalize-space(text())) > 0
SI-V12-INV-R015 SI A tax category MUST have an id cbc:ID
SI-V12-INV-R016 SI The VAT category percentage MUST be provided if the VAT category code is standard. string(cbc:ID) != 'S' or cbc:Percent
SI-V12-INV-R017 SI A mathematic operator MUST be specified as a code specifying whether the calculation rate is a multiplier or divisor translate(text(), 'MULTIPLY', 'multiply') = 'multiply' or translate(text(), 'DIVE', 'dive') = 'divide'
SI-V12-INV-R018 SI An allowance total MUST be specified when allowances are applicable not(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator='false']) or cbc:AllowanceTotalAmount
SI-V12-INV-R019 SI A charge total MUST be specified when charges are applicable not(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator='true']) or cbc:ChargeTotalAmount
SI-V12-INV-R020 SI An item on an invoiceline MUST have a name cbc:Name
SI-V12-INV-R021 SI A country identification code MUST have a list identifier attribute 'ISO3166-1:Alpha2' @listID='3166-1:Alpha2'
SI-V12-INV-R022 SI An additional item property MUST have a name and a value cbc:Value and cbc:Name
SI-V12-INV-R023 SI An invoiceline MUST have a price section cac:Price
SI-V12-INV-R024 SI If payee information is provided then the payee name MUST be specified. cac:PartyName/cbc:Name
SI-V12-INV-R025 SI Transaction currency tax amounts MUST be in the local currency and equal to the tax currency defined on the header level /ubl:Invoice/cbc:TaxCurrencyCode and string(.) = string(/ubl:Invoice/cbc:TaxCurrencyCode)
SI-V12-INV-R026 SI Currency Identifier MUST be stated in the currency as defined on header level string(.) = string(/ubl:Invoice/cbc:DocumentCurrencyCode)
SI-V12-INV-R027 SI If the VAT total amount in an invoice exists then each invoice line item MUST have a VAT category ID. not(/ubl:Invoice/cac:InvoiceLine/cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID != 'VAT'])
SI-V12-INV-R028 SI An allowance percentage MUST NOT be negative. not(cbc:MultiplierFactorNumeric) or number(cbc:MultiplierFactorNumeric) >=0
SI-V12-INV-R029 SI In allowances, both or none of numeric factor and base amount MUST be provided (cbc:MultiplierFactorNumeric and cbc:BaseAmount) or (not(cbc:MultiplierFactorNumeric) and not(cbc:BaseAmount))
SI-V12-CODE-R002 SI A tax scheme identifier MUST be from the UN/ECE 5153 list Long XPath used, check the schematron source
SI-V12-CODE-R003 SI Country codes in an invoice MUST be coded using ISO code list 3166-1 Long XPath used, check the schematron source
SI-V12-CODE-R004 SI Standard item identifiers SHOULD be GTIN. ( ( not(contains(normalize-space(.),' ')) and contains( ' GTIN ',concat(' ',normalize-space(.),' ') ) ) )
BII2-T10-R025 BII2 Each document level allowance or charge details MUST have an allowance and charge reason text (cbc:AllowanceChargeReason)
BII2-T10-R043 BII2 Document level allowances and charges details MUST have allowance and charge VAT category if the invoice has a VAT total amount ((/ubl:Invoice/cac:TaxTotal/*/*/*/cbc:ID = 'VAT') and (cac:TaxCategory/cbc:ID)) or not(/ubl:Invoice/cac:TaxTotal)
BII2-T10-R001 BII2 An invoice MUST have a customization identifier (cbc:CustomizationID)
BII2-T10-R002 BII2 An invoice MUST have a business profile identifier (cbc:ProfileID)
BII2-T10-R003 BII2 An invoice MUST have an invoice identifier (cbc:ID)
BII2-T10-R004 BII2 An invoice MUST have an invoice issue date (cbc:IssueDate)
BII2-T10-R005 BII2 An invoice MUST specify the currency code for the document (cbc:DocumentCurrencyCode)
BII2-T10-R006 BII2 An invoice MUST have a seller name and/or a seller identifier (cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name) or (cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID)
BII2-T10-R008 BII2 An invoice MUST have a buyer name and/or a buyer identifier (cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name) or (cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID)
BII2-T10-R010 BII2 An invoice MUST have the sum of line amounts (cac:LegalMonetaryTotal/cbc:LineExtensionAmount)
BII2-T10-R011 BII2 An invoice MUST have the invoice total without VAT (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount)
BII2-T10-R012 BII2 An invoice MUST have the invoice total with VAT (value of purchase) (cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount)
BII2-T10-R013 BII2 An invoice MUST have the amount due for payment (cac:LegalMonetaryTotal/cbc:PayableAmount)
BII2-T10-R014 BII2 An invoice MUST have at least one invoice line (cac:InvoiceLine)
BII2-T10-R015 BII2 An invoice MUST specify the VAT total amount, if there are VAT line amounts (cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID = 'VAT']/cbc:TaxAmount) or not(cac:InvoiceLine/cac:TaxTotal)
BII2-T10-R026 BII2 An invoice MUST contain VAT category details unless VAT total amount is omitted. (//cac:TaxScheme/cbc:ID = 'VAT') or not(/ubl:Invoice/cac:TaxTotal/cbc:TaxAmount)
BII2-T10-R044 BII2 A seller VAT identifier MUST be provided if the invoice has a VAT total amount (cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or not(cac:TaxTotal/*/*/*/cbc:ID = 'VAT')
BII2-T10-R047 BII2 A buyer VAT identifier MUST be present if the VAT category code is reverse VAT (cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or not(cac:TaxTotal/*/*/cbc:ID = 'AE')
BII2-T10-R048 BII2 An invoice with a VAT category code of reverse charge MUST NOT contain other VAT categories. count(child::cac:TaxTotal/*/*/cbc:ID) = count(child::cac:TaxTotal/*/*/cbc:ID[. = 'AE']) or count(child::cac:TaxTotal/*/*/cbc:ID[. = 'AE']) = 0
BII2-T10-R049 BII2 The invoice total without VAT MUST be equal to the VAT category taxable amount if the VAT category code is reverse charge (xs:decimal(cac:TaxTotal/cac:TaxSubtotal[cac:TaxCategory/cbc:ID = 'AE']/cbc:TaxableAmount) = xs:decimal(cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount)) or not(cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cbc:ID = 'AE'])
BII2-T10-R050 BII2 The VAT category tax amount MUST be zero if the VAT category code is reverse charge (since there is only one VAT category allowed it follows that the invoice tax total for reverse charge invoices is zero) (xs:decimal(cac:TaxTotal/cac:TaxSubtotal[cac:TaxCategory/cbc:ID = 'AE']/cbc:TaxAmount) = 0) or not(cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cbc:ID = 'AE'])
BII2-T10-R058 BII2 Invoice total without VAT MUST be equal to the sum of VAT category taxable amounts Long XPath used, check the schematron source
BII2-T10-R017 BII2 Each invoice line MUST have an invoice line identifier (cbc:ID)
BII2-T10-R018 BII2 Each invoice line MUST have an invoiced quantity (cbc:InvoicedQuantity)
BII2-T10-R019 BII2 Each invoice line MUST have a quantity unit of measure (cbc:InvoicedQuantity/@unitCode)
BII2-T10-R020 BII2 Each invoice line MUST have an invoice line net amount cbc:LineExtensionAmount
BII2-T10-R021 BII2 Each invoice line MUST have an invoice line item name and/or the invoice line item identifier (cac:Item/cbc:Name) or (cac:Item/cac:StandardItemIdentification/cbc:ID) or (cac:Item/cac:SellersItemIdentification/cbc:ID)
BII2-T10-R032 BII2 A scheme identifier for the invoice line item registered identifier MUST be provided if invoice line item registered identifiers are used to identify a product.(e.g. GTIN) (cac:Item/cac:StandardItemIdentification/cbc:ID/@schemeID) or not(cac:Item/cac:StandardItemIdentification)
BII2-T10-R033 BII2 A scheme identifier for a invoice line item commodity classification MUST be provided if invoice line item commodity classification are used to classify an invoice line item (e.g. CPV or UNSPSC) (//cac:CommodityClassification/cbc:ItemClassificationCode/@listID) or not(//cac:CommodityClassification)
BII2-T10-R023 BII2 Each invoice period information MUST have an invoice period start date (cbc:StartDate)
BII2-T10-R024 BII2 Each invoice period information MUST have an invoice period end date (cbc:EndDate)
BII2-T10-R031 BII2 An invoice period end date MUST be later or equal to an invoice period start date (cbc:StartDate and cbc:EndDate) and (number(translate(cbc:StartDate,'-','')) <= number(translate(cbc:EndDate,'-','')))
BII2-T10-R039 BII2 An account identifier MUST be present if payment means type is funds transfer ((normalize-space(cbc:PaymentMeansCode) = '31') and (cac:PayeeFinancialAccount/cbc:ID)) or (string(cbc:PaymentMeansCode) != '31')
BII2-T10-R040 BII2 A sellers financial institution identifier MUST be provided if the scheme of the account identifier is IBAN and the payment means is international bank transfer Long XPath used, check the schematron source
BII2-T10-R041 BII2 A payment means MUST specify the payment means type (cbc:PaymentMeansCode)
BII2-T10-R042 BII2 A sellers financial institution identifier scheme MUST be BIC if the scheme of the account identifier is IBAN and the payment means type is international account transfer (cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:FinancialInstitution/cbc:ID/@schemeID='BIC') and (cac:PayeeFinancialAccount/cbc:ID/@schemeID = 'IBAN') or not(cac:PayeeFinancialAccount/cbc:ID/@schemeID = 'IBAN')
BII2-T10-R051 BII2 Sum of line amounts MUST equal the invoice line net amounts (xs:decimal(cbc:LineExtensionAmount)) = (round(xs:decimal(sum(//cac:InvoiceLine/cbc:LineExtensionAmount)) * 10 * 10) div 100)
BII2-T10-R052 BII2 An invoice total without VAT MUST equal the sum of line amounts plus the sum of charges on document level minus the sum of allowances on document level Long XPath used, check the schematron source
BII2-T10-R053 BII2 An invoice total with VAT MUST equal the invoice total without VAT plus the VAT total amount and the rounding of invoice total Long XPath used, check the schematron source
BII2-T10-R054 BII2 The sum of allowances at document level MUST be equal to the sum of document level allowance amounts (xs:decimal(cbc:AllowanceTotalAmount)) = (round(xs:decimal(sum(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator="false"]/cbc:Amount)) * 10 * 10) div 100) or not(cbc:AllowanceTotalAmount)
BII2-T10-R055 BII2 The sum of charges at document level MUST be equal to the sum of document level charge amounts (xs:decimal(cbc:ChargeTotalAmount)) = (round(xs:decimal(sum(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator="true"]/cbc:Amount)) * 10 * 10) div 100) or not(cbc:ChargeTotalAmount)
BII2-T10-R056 BII2 Amount due for payment MUST be equal to the invoice total amount with VAT minus the paid amounts ((cbc:PrepaidAmount) and ((xs:decimal(cbc:PayableAmount)) = (round((xs:decimal(cbc:TaxInclusiveAmount) - xs:decimal(cbc:PrepaidAmount)) * 10 * 10) div 100))) or (xs:decimal(cbc:PayableAmount) = xs:decimal(cbc:TaxInclusiveAmount))
BII2-T10-R027 BII2 Each VAT category details MUST have a VAT category taxable amount (cbc:TaxableAmount)
BII2-T10-R028 BII2 Each VAT category details MUST have a VAT category tax amount (cbc:TaxAmount)
BII2-T10-R029 BII2 Every VAT category details MUST be defined through a VAT category code (cac:TaxCategory/cbc:ID)
BII2-T10-R030 BII2 The VAT category percentage MUST be provided if the VAT category code is standard. (cac:TaxCategory/cbc:Percent) or not(normalize-space(cac:TaxCategory/cbc:ID) = 'S')
CL-T10-R001 CL An Invoice MUST be coded with the InvoiceTypeCode code list UNCL D1001 BII2 subset ( ( not(contains(normalize-space(.),' ')) and contains( ' 380 393 384 ',concat(' ',normalize-space(.),' ') ) ) )
CL-T10-R002 CL DocumentCurrencyCode MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
CL-T10-R003 CL currencyID MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
CL-T10-R004 CL Country codes in an invoice MUST be coded using ISO code list 3166-1 Long XPath used, check the schematron source
CL-T10-R006 CL Payment means in an invoice MUST be coded using UNCL 4461 BII2 subset Long XPath used, check the schematron source
CL-T10-R007 CL Invoice tax categories MUST be coded using UNCL 5305 code list BII2 subset ( ( not(contains(normalize-space(.),' ')) and contains( ' AE E S Z AA H ',concat(' ',normalize-space(.),' ') ) ) )
CL-T10-R008 CL For Mime code in attribute use MIMEMediaType. Long XPath used, check the schematron source
EUGEN-T10-R012 EUGEN An allowance percentage MUST NOT be negative. not(cbc:MultiplierFactorNumeric) or number(cbc:MultiplierFactorNumeric) >=0
EUGEN-T10-R029 EUGEN An allowance charge reason code MUST have a list identifier attribute 'UNCL4465'. @listID = 'UNCL4465'
EUGEN-T10-R027 EUGEN A country identification code MUST have a list identifier attribute 'ISO3166-1:Alpha2'. @listID = 'ISO3166-1:Alpha2'
EUGEN-T10-R034 EUGEN An delivery location identifier MUST have a scheme identifier attribute. @schemeID
EUGEN-T10-R033 EUGEN A document type code MUST have a list identifier attribute 'UNCL1001'. @listID = 'UNCL1001'
EUGEN-T10-R023 EUGEN An endpoint identifier MUST have a scheme identifier attribute. @schemeID
EUGEN-T10-R031 EUGEN A financial account identifier MUST have a scheme identifier attribute. @schemeID
EUGEN-T10-R044 EUGEN If the tax currency code is different from the document currency code, the tax exchange rate MUST be provided not(//cbc:TaxCurrencyCode) or (//cac:TaxExchangeRate)
EUGEN-T10-R025 EUGEN An invoice type code MUST have a list identifier attribute 'UNCL1001'. @listID = 'UNCL1001'
EUGEN-T10-R024 EUGEN A party identifier MUST have a scheme identifier attribute. @schemeID
EUGEN-T10-R028 EUGEN A payment means code MUST have a list identifier attribute 'UNCL4461'. @listID = 'UNCL4461'
EUGEN-T10-R008 EUGEN For each tax subcategory the category ID and the applicable tax percentage MUST be provided. (parent::cac:AllowanceCharge) or (cbc:ID and cbc:Percent) or (cbc:ID = 'AE')
EUGEN-T10-R032 EUGEN A tax category identifier MUST have a scheme identifier attribute 'UNCL5305'. @schemeID = 'UNCL5305'
EUGEN-T10-R045 EUGEN Tax exchange rate MUST specify the calculation rate and the operator code. (cbc:CalculationRate) and (cbc:MathematicOperatorCode)
EUGEN-T10-R043 EUGEN The total tax amount MUST equal the sum of tax amounts per category. (round(xs:decimal(child::cbc:TaxAmount) * 10 * 10) div 100= round(xs:decimal(sum(cac:TaxSubtotal/cbc:TaxAmount) * 10 * 10)) div 100)
EUGEN-T10-R042 EUGEN The tax amount per category MUST be the taxable amount multiplied by the category percentage. Long XPath used, check the schematron source
EUGEN-T10-R046 EUGEN If the tax currency code is different from the document currency code, each tax subtotal has to include the tax amount in both currencies not(/ubl:Invoice/cbc:TaxCurrencyCode) or (cbc:TaxAmount and cbc:TransactionCurrencyTaxAmount)
OP-T10-R001 OP Contract document type code MUST be coded using UNCL 1001 list BII2 subset. Long XPath used, check the schematron source
OP-T10-R002 OP An Endpoint Identifier Scheme MUST be from the list of PEPPOL Party Identifiers described in the "PEPPOL Policy for using Identifiers". Long XPath used, check the schematron source
OP-T10-R003 OP A Party Identifier Scheme MUST be from the list of PEPPOL Party Identifiers described in the "PEPPOL Policy for using Identifiers". Long XPath used, check the schematron source
OP-T10-R004 OP A payee account identifier scheme MUST be from the Account ID PEPPOL code list ( ( not(contains(normalize-space(.),' ')) and contains( ' IBAN LOCAL ',concat(' ',normalize-space(.),' ') ) ) )
OP-T10-R006 OP Unit code MUST be coded according to the UN/ECE Recommendation 20 Long XPath used, check the schematron source
OP-T10-R008 OP A Party Company Identifier Scheme MUST be from the list of PEPPOL Party Identifiers described in the "PEPPOL Policy for using Identifiers". Long XPath used, check the schematron source
OP-T10-R009 OP TaxCurrencyCode MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
OP-T10-R010 OP SourceCurrencyCode MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
OP-T10-R011 OP TargetCurrencyCode MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
BII2-T10-R025 BII2 Each document level allowance or charge details MUST have an allowance and charge reason text cbc:AllowanceChargeReason or cbc:AllowanceChargeReasonCode
BII2-T10-R043 BII2 Document level allowances and charges details MUST have allowance and charge VAT category if the invoice has a VAT total amount ((/ubl:Invoice/cac:TaxTotal/*/*/*/cbc:ID = 'VAT') and (//cac:TaxCategory/cbc:ID)) or not(/ubl:Invoice/cac:TaxTotal)
BII2-T10-R001 BII2 An invoice MUST have a customization identifier (cbc:CustomizationID)
BII2-T10-R002 BII2 An invoice MUST have a business profile identifier (cbc:ProfileID)
BII2-T10-R003 BII2 An invoice MUST have an invoice identifier (cbc:ID)
BII2-T10-R004 BII2 An invoice MUST have an invoice issue date (cbc:IssueDate)
BII2-T10-R005 BII2 An invoice MUST specify the currency code for the document (cbc:DocumentCurrencyCode)
BII2-T10-R006 BII2 An invoice MUST have a seller name and/or a seller identifier (cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name) or (cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID)
BII2-T10-R008 BII2 An invoice MUST have a buyer name and/or a buyer identifier (cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name) or (cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID)
BII2-T10-R010 BII2 An invoice MUST have the sum of line amounts (cac:LegalMonetaryTotal/cbc:LineExtensionAmount)
BII2-T10-R011 BII2 An invoice MUST have the invoice total without VAT (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount)
BII2-T10-R012 BII2 An invoice MUST have the invoice total with VAT (value of purchase) (cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount)
BII2-T10-R013 BII2 An invoice MUST have the amount due for payment (cac:LegalMonetaryTotal/cbc:PayableAmount)
BII2-T10-R014 BII2 An invoice MUST have at least one invoice line (cac:InvoiceLine)
BII2-T10-R015 BII2 An invoice MUST specify the VAT total amount, if there are VAT line amounts (cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID = 'VAT']/cbc:TaxAmount) or not(cac:InvoiceLine/cac:TaxTotal)
BII2-T10-R026 BII2 An invoice MUST contain VAT category details unless VAT total amount is omitted. (//cac:TaxScheme/cbc:ID = 'VAT') or not(/ubl:Invoice/cac:TaxTotal/cbc:TaxAmount)
BII2-T10-R044 BII2 A seller VAT identifier MUST be provided if the invoice has a VAT total amount (cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or not(cac:TaxTotal/*/*/*/cbc:ID = 'VAT')
BII2-T10-R047 BII2 A buyer VAT identifier MUST be present if the VAT category code is reverse VAT (cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or not(cac:TaxTotal/*/*/cbc:ID = 'AE')
BII2-T10-R049 BII2 The invoice total without VAT MUST be equal to the VAT category taxable amount if the VAT category code is reverse charge (cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cbc:ID = 'AE']/cbc:TaxableAmount = (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount)) or not(cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cbc:ID = 'AE']/cbc:TaxableAmount)
BII2-T10-R050 BII2 The VAT category tax amount MUST be zero if the VAT category code is reverse charge (since there is only one VAT category allowed it follows that the invoice tax total for reverse charge invoices is zero) (cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cbc:ID = 'AE']/cbc:TaxAmount = 0) or not(cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cbc:ID = 'AE']/cbc:TaxAmount)
BII2-T10-R048 BII2 An invoice with a VAT category code of reverse charge MUST NOT contain other VAT categories. count(child::cac:TaxTotal/*/*/cbc:ID) = count(child::cac:TaxTotal/*/*/cbc:ID[. = 'AE']) or count(child::cac:TaxTotal/*/*/cbc:ID[. = 'AE']) = 0
BII2-T10-R017 BII2 Each invoice line MUST have an invoice line identifier (cbc:ID)
BII2-T10-R018 BII2 Each invoice line MUST have an invoiced quantity (cbc:InvoicedQuantity)
BII2-T10-R019 BII2 Each invoice line MUST have a quantity unit of measure (cbc:InvoicedQuantity/@unitCode)
BII2-T10-R020 BII2 Each invoice line MUST have an invoice line net amount cbc:LineExtensionAmount
BII2-T10-R021 BII2 Each invoice line MUST have an invoice line item name and/or the invoice line item identifier (cac:Item/cbc:Name) or (cac:Item/cac:StandardItemIdentification/cbc:ID) or (cac:Item/cac:SellersItemIdentification/cbc:ID)
BII2-T10-R032 BII2 A scheme identifier for the invoice line item registered identifier MUST be provided if invoice line item registered identifiers are used to identify a product.(e.g. GTIN) (cac:StandardItemIdentification/cbc:ID/@schemeID) or not(cac:StandardItemIdentification)
BII2-T10-R033 BII2 A scheme identifier for a invoice line item commodity classification MUST be provided if invoice line item commodity classification are used to classify an invoice line item (e.g. CPV or UNSPSC) cbc:ItemClassificationCode/@listID
BII2-T10-R023 BII2 Each invoice period information MUST have an invoice period start date (cbc:StartDate)
BII2-T10-R024 BII2 Each invoice period information MUST have an invoice period end date (cbc:EndDate)
BII2-T10-R031 BII2 An invoice period end date MUST be later or equal to an invoice period start date (cbc:StartDate and cbc:EndDate) and (number(translate(cbc:StartDate,'-','')) <= number(translate(cbc:EndDate,'-','')))
BII2-T10-R039 BII2 An account identifier MUST be present if payment means type is funds transfer ((cbc:PaymentMeansCode = '31') and (cac:PayeeFinancialAccount/cbc:ID)) or (string(cbc:PaymentMeansCode) != '31')
BII2-T10-R040 BII2 A sellers financial institution identifier MUST be provided if the scheme of the account identifier is IBAN and the payment means is international bank transfer Long XPath used, check the schematron source
BII2-T10-R041 BII2 A payment means MUST specify the payment means type (cbc:PaymentMeansCode)
BII2-T10-R042 BII2 A sellers financial institution identifier scheme MUST be BIC if the scheme of the account identifier is IBAN and the payment means type is international account transfer (cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cac:FinancialInstitution/cbc:ID/@schemeID='BIC') and (cac:PayeeFinancialAccount/cbc:ID/@schemeID = 'IBAN') or not(cac:PayeeFinancialAccount/cbc:ID/@schemeID = 'IBAN')
BII2-T10-R051 BII2 Sum of line amounts MUST equal the invoice line net amounts number(cbc:LineExtensionAmount) = number(round(sum(//cac:InvoiceLine/cbc:LineExtensionAmount) * 10 * 10) div 100)
BII2-T10-R052 BII2 An invoice total without VAT MUST equal the sum of line amounts plus the sum of charges on document level minus the sum of allowances on document level Long XPath used, check the schematron source
BII2-T10-R053 BII2 An invoice total with VAT MUST equal the invoice total without VAT plus the VAT total amount and the rounding of invoice total Long XPath used, check the schematron source
BII2-T10-R054 BII2 The sum of allowances at document level MUST be equal to the sum of document level allowance amounts cbc:AllowanceTotalAmount = (round(sum(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator="false"]/cbc:Amount) * 10 * 10) div 100) or not(cbc:AllowanceTotalAmount)
BII2-T10-R055 BII2 The sum of charges at document level MUST be equal to the sum of document level charge amounts cbc:ChargeTotalAmount = (round(sum(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator="true"]/cbc:Amount) * 10 * 10) div 100) or not(cbc:ChargeTotalAmount)
BII2-T10-R056 BII2 Amount due for payment MUST be equal to the invoice total amount with VAT minus the paid amounts Long XPath used, check the schematron source
BII2-T10-R058 BII2 Invoice total without VAT MUST be equal to the sum of VAT category taxable amounts Long XPath used, check the schematron source
BII2-T10-R027 BII2 Each VAT category details MUST have a VAT category taxable amount (cbc:TaxableAmount)
BII2-T10-R028 BII2 Each VAT category details MUST have a VAT category tax amount (cbc:TaxAmount)
BII2-T10-R029 BII2 Every VAT category details MUST be defined through a VAT category code (cac:TaxCategory/cbc:ID)
BII2-T10-R030 BII2 The VAT category percentage MUST be provided if the VAT category code is standard. (cac:TaxCategory/cbc:Percent) or not(cac:TaxCategory/cbc:ID = 'S')
CL-T10-R001 CL An Invoice MUST be coded with the InvoiceTypeCode code list UNCL D1001 BII2 subset ( ( not(contains(normalize-space(.),' ')) and contains( ' 380 393 384 ',concat(' ',normalize-space(.),' ') ) ) )
CL-T10-R002 CL DocumentCurrencyCode MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
CL-T10-R003 CL currencyID MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
CL-T10-R004 CL Country codes in an invoice MUST be coded using ISO code list 3166-1 Long XPath used, check the schematron source
CL-T10-R008 CL For Mime code in attribute use MIMEMediaType. Long XPath used, check the schematron source
EUGEN-T10-R012 EUGEN An allowance percentage MUST NOT be negative. not(cbc:MultiplierFactorNumeric) or number(cbc:MultiplierFactorNumeric) >=0
EUGEN-T10-R029 EUGEN An allowance charge reason code MUST have a list identifier attribute 'UNCL4465'. @listID = 'UNCL4465'
EUGEN-T10-R027 EUGEN A country identification code MUST have a list identifier attribute 'ISO3166-1:Alpha2'. @listID = 'ISO3166-1:Alpha2'
EUGEN-T10-R034 EUGEN An delivery location identifier MUST have a scheme identifier attribute. @schemeID
EUGEN-T10-R033 EUGEN A document type code MUST have a list identifier attribute 'UNCL1001'. @listID = 'UNCL1001'
EUGEN-T10-R023 EUGEN An endpoint identifier MUST have a scheme identifier attribute. @schemeID
EUGEN-T10-R031 EUGEN A financial account identifier MUST have a scheme identifier attribute. @schemeID
EUGEN-T10-R044 EUGEN If the tax currency code is different from the document currency code, the tax exchange rate MUST be provided not(/ubl:Invoice/cbc:TaxCurrencyCode) or (string(/ubl:Invoice/cbc:TaxCurrencyCode) = string(/ubl:Invoice/cbc:DocumentCurrencyCode)) or (/ubl:Invoice/cac:TaxExchangeRate)
EUGEN-T10-R025 EUGEN An invoice type code MUST have a list identifier attribute 'UNCL1001'. @listID = 'UNCL1001'
EUGEN-T10-R024 EUGEN A party identifier MUST have a scheme identifier attribute. @schemeID
EUGEN-T10-R028 EUGEN A payment means code MUST have a list identifier attribute 'UNCL4461'. @listID = 'UNCL4461'
EUGEN-T10-R008 EUGEN For each tax subcategory the category ID and the applicable tax percentage MUST be provided. (parent::cac:AllowanceCharge) or (cbc:ID and cbc:Percent) or (cbc:ID = 'AE')
EUGEN-T10-R032 EUGEN A tax category identifier MUST have a scheme identifier attribute 'UNCL5305'. @schemeID = 'UNCL5305'
EUGEN-T10-R045 EUGEN Tax exchange rate MUST specify the calculation rate and the operator code. (cbc:CalculationRate) and (cbc:MathematicOperatorCode)
EUGEN-T10-R043 EUGEN The total tax amount MUST equal the sum of tax amounts per category. (round(xs:decimal(child::cbc:TaxAmount) * 10 * 10) div 100= round(xs:decimal(sum(cac:TaxSubtotal/cbc:TaxAmount) * 10 * 10)) div 100)
EUGEN-T10-R042 EUGEN The tax amount per category MUST be the taxable amount multiplied by the category percentage. Long XPath used, check the schematron source
EUGEN-T10-R046 EUGEN If the tax currency code is different from the document currency code, each tax subtotal has to include the tax amount in both currencies not(/ubl:Invoice/cbc:TaxCurrencyCode) or (string(/ubl:Invoice/cbc:TaxCurrencyCode) = string(/ubl:Invoice/cbc:DocumentCurrencyCode)) or (cbc:TaxAmount and cbc:TransactionCurrencyTaxAmount)
OP-T10-R001 OP Contract document type code MUST be coded using UNCL 1001 list BII2 subset. Long XPath used, check the schematron source
OP-T10-R002 OP An Endpoint Identifier Scheme MUST be from the list of PEPPOL Party Identifiers described in the "PEPPOL Policy for using Identifiers". Long XPath used, check the schematron source
OP-T10-R003 OP A Party Identifier Scheme MUST be from the list of PEPPOL Party Identifiers described in the "PEPPOL Policy for using Identifiers". Long XPath used, check the schematron source
OP-T10-R004 OP A payee account identifier scheme MUST be from the Account ID PEPPOL code list ( ( not(contains(normalize-space(.),' ')) and contains( ' IBAN LOCAL ',concat(' ',normalize-space(.),' ') ) ) )
OP-T10-R006 OP Unit code MUST be coded according to the UN/ECE Recommendation 20 Long XPath used, check the schematron source
OP-T10-R008 OP A Party Company Identifier Scheme MUST be from the list of PEPPOL Party Identifiers described in the "PEPPOL Policy for using Identifiers". Long XPath used, check the schematron source
OP-T10-R009 OP TaxCurrencyCode MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
OP-T10-R010 OP SourceCurrencyCode MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
OP-T10-R011 OP TargetCurrencyCode MUST be coded using ISO code list 4217 Long XPath used, check the schematron source
SI-V11-INV-R200 SI This XML instance is NOT tagged as an SI-UBL 1.1 invoice contains(., 'urn:www.simplerinvoicing.org:si:si-ubl:ver1.1')
SI-V11-INV-R001 SI Each invoice MUST be specified as a UBL 2.1 document cbc:UBLVersionID='2.1'
SI-V11-INV-R002 SI Each invoice MUST have an InvoiceTypeCode declaration cbc:InvoiceTypeCode
SI-V11-INV-R453 SI For corrective invoices a billing reference MUST be set cbc:InvoiceTypeCode!='384' or cac:BillingReference
SI-V11-INV-R003 SI A CompanyID MUST be specified using a PEPPOL Party identifier @schemeID
SI-V11-INV-R004 SI An external reference MUST have its uri specified normalize-space(cbc:URI) != ''
SI-V11-INV-R005 SI A country MUST be identified by a two-letter identification code as specified in ISO3166-1:Alpha2 cbc:IdentificationCode
SI-V11-INV-R006 SI A tax scheme MUST have an identifier specifying it uses the UN/ECE 5153 list cbc:ID/@schemeID='UN/ECE 5153'
SI-V11-INV-R007 SI A legal entity MUST have a company identifier cbc:CompanyID
SI-V11-INV-R008 SI If delivery terms are specified they MUST be expressed as special conditions normalize-space(cbc:SpecialTerms/text()) != ''
SI-V11-INV-R009 SI A primary account number MUST be specified if a card account is used normalize-space(text()) != ''
SI-V11-INV-R010 SI A network id MUST be specified if a card account is used normalize-space(text()) != ''
SI-V11-INV-R011 SI A financial account MUST have an id cbc:ID
SI-V11-INV-R012 SI A financial account id MUST have a value string-length(normalize-space(text())) > 0
SI-V11-INV-R013 SI A financial institution MUST have an id cbc:ID
SI-V11-INV-R014 SI A financial institution id MUST have a value string-length(normalize-space(text())) > 0
SI-V11-INV-R015 SI A tax category MUST have an id cbc:ID
SI-V11-INV-R016 SI The VAT category percentage MUST be provided if the VAT category code is standard. string(cbc:ID) != 'S' or cbc:Percent
SI-V11-INV-R017 SI A mathematic operator MUST be specified as a code specifying whether the calculation rate is a multiplier or divisor translate(text(), 'MULTIPLY', 'multiply') = 'multiply' or translate(text(), 'DIVE', 'dive') = 'divide'
SI-V11-INV-R018 SI An allowance total MUST be specified when allowances are applicable not(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator='false']) or cbc:AllowanceTotalAmount
SI-V11-INV-R019 SI A charge total MUST be specified when charges are applicable not(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator='true']) or cbc:ChargeTotalAmount
SI-V11-INV-R020 SI An item on an invoiceline MUST have a name cbc:Name
SI-V11-INV-R021 SI A country identification code MUST have a list identifier attribute 'ISO3166-1:Alpha2' @listID='3166-1:Alpha2'
SI-V11-INV-R022 SI An additional item property MUST have a name and a value cbc:Value and cbc:Name
SI-V11-INV-R023 SI An invoiceline MUST have a price section cac:Price
SI-V11-INV-R024 SI If payee information is provided then the payee name MUST be specified. cac:PartyName/cbc:Name
SI-V11-INV-R025 SI Transaction currency tax amounts MUST be in the local currency and equal to the tax currency defined on the header level /ubl:Invoice/cbc:TaxCurrencyCode and string(.) = string(/ubl:Invoice/cbc:TaxCurrencyCode)
SI-V11-INV-R026 SI Currency Identifier MUST be stated in the currency as defined on header level string(.) = string(/ubl:Invoice/cbc:DocumentCurrencyCode)
SI-V11-INV-R027 SI If the VAT total amount in an invoice exists then each invoice line item MUST have a VAT category ID. not(/ubl:Invoice/cac:InvoiceLine/cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID != 'VAT'])
SI-V11-INV-R028 SI An allowance percentage MUST NOT be negative. not(cbc:MultiplierFactorNumeric) or number(cbc:MultiplierFactorNumeric) >=0
SI-V11-INV-R029 SI In allowances, both or none of numeric factor and base amount SHOULD be provided (cbc:MultiplierFactorNumeric and cbc:BaseAmount) or (not(cbc:MultiplierFactorNumeric) and not(cbc:BaseAmount))
SI-V11-CODE-R002 SI A tax scheme identifier MUST be from the UN/ECE 5153 list Long XPath used, check the schematron source
SI-V11-CODE-R003 SI Country codes in an invoice MUST be coded using ISO code list 3166-1 Long XPath used, check the schematron source
SI-V11-CODE-R004 SI Standard item identifiers SHOULD be GTIN. ( ( not(contains(normalize-space(.),' ')) and contains( ' GTIN ',concat(' ',normalize-space(.),' ') ) ) )
SI-UBL-INV-R436 SI IF VAT = "AE" (reverse charge) THEN it MUST contain Supplier VAT id and Customer VAT //cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID and (//cac:TaxCategory/cbc:ID) = 'AE' or not((//cac:TaxCategory/cbc:ID) = 'AE')
SI-UBL-INV-R437 SI IF VAT = "AE" (reverse charge) THEN VAT MAY NOT contain other VAT categories. (((//cac:TaxCategory/cbc:ID) = 'AE') and not((//cac:TaxCategory/cbc:ID) != 'AE' )) or not((//cac:TaxCategory/cbc:ID) = 'AE') or not(//cac:TaxCategory)
SI-UBL-INV-R438 SI IF VAT = "AE" (reverse charge) THEN The taxable amount MUST equal the invoice total without VAT amount. (//cbc:TaxExclusiveAmount = //cac:TaxTotal/cac:TaxSubtotal[cac:TaxCategory/cbc:ID='AE']/cbc:TaxableAmount) and (//cac:TaxCategory/cbc:ID) = 'AE' or not((//cac:TaxCategory/cbc:ID) = 'AE')
SI-UBL-INV-R439 SI IF VAT = "AE" (reverse charge) THEN VAT tax amount MUST be zero. //cac:TaxTotal/cbc:TaxAmount = 0 and (//cac:TaxCategory/cbc:ID) = 'AE' or not((//cac:TaxCategory/cbc:ID) = 'AE')
SI-UBL-INV-R429 SI If the VAT total amount in an invoice exists it MUST contain the suppliers VAT number. ((cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID = 'VAT']/cbc:TaxAmount) and (cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID) or not((cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID = 'VAT'])))
SI-UBL-INV-R445 SI Currency Identifier MUST be in stated in the currency stated on header level. not(//@currencyID != //cbc:DocumentCurrencyCode)
SI-UBL-INV-R428 SI If the VAT total amount in an invoice exists then an Allowances Charges amount on document level MUST have Tax category for VAT. Long XPath used, check the schematron source
SI-UBL-INV-R434 SI An allowance percentage MUST NOT be negative. not(cbc:MultiplierFactorNumeric) or number(cbc:MultiplierFactorNumeric) >=0
SI-UBL-INV-R443 SI An allowance or charge amount MUST NOT be negative. number(cbc:Amount)>=0
SI-UBL-INV-R430 SI For each tax subcategory the category ID and the applicable tax percentage MUST be provided. (parent::cac:AllowanceCharge) or (cbc:ID and cbc:Percent) or (cbc:ID = 'AE')
SI-UBL-INV-R432 SI If payee information is provided then the payee name MUST be specified. cac:PartyName/cbc:Name
SI-UBL-INV-R433 SI If the VAT total amount in an invoice exists then each invoice line item MUST have a VAT category ID. (//cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID = 'VAT']/cbc:TaxAmount and cbc:ID) or not((//cac:TaxTotal[cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID = 'VAT']))
SI-UBL-INV-R440 SI Total payable amount in an invoice MUST NOT be negative number(cbc:PayableAmount) >= 0
SI-UBL-INV-R441 SI If the invoice refers to a period, the period MUST have a start date. (cbc:StartDate)
SI-UBL-INV-R442 SI If the invoice refers to a period, the period MUST have an end date. (cbc:EndDate)
SI-UBL-INV-R451 SI Party Identifiers MUST use the PEPPOL PartyID list Long XPath used, check the schematron source
SI-UBL-INV-R452 SI Endpoint Identifiers MUST use the PEPPOL PartyID list. Long XPath used, check the schematron source
BIIRULE-T10-R011 BIIRULE Invoice total line extension amount MUST equal the sum of the line totals number(cbc:LineExtensionAmount) = number(round(sum(//cac:InvoiceLine/cbc:LineExtensionAmount) * 10 * 10) div 100)
BIIRULE-T10-R012 BIIRULE Invoice tax exclusive amount MUST equal the sum of lines plus allowances and charges on header level. Long XPath used, check the schematron source
BIIRULE-T10-R013 BIIRULE Invoice tax inclusive amount MUST equal the tax exclusive amount plus all tax total amounts and the rounding amount. Long XPath used, check the schematron source
BIIRULE-T10-R014 BIIRULE Tax inclusive amount in an invoice MUST NOT be negative number(cbc:TaxInclusiveAmount) >= 0
BIIRULE-T10-R015 BIIRULE Total allowance MUST be equal to the sum of allowances at document level (cbc:AllowanceTotalAmount) and cbc:AllowanceTotalAmount = (round(sum(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator="false"]/cbc:Amount) * 10 * 10) div 100) or not(cbc:AllowanceTotalAmount)
BIIRULE-T10-R016 BIIRULE Total charges MUST be equal to the sum of document level charges. (cbc:ChargeTotalAmount) and cbc:ChargeTotalAmount = (round(sum(/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator="true"]/cbc:Amount) * 10 * 10) div 100) or not(cbc:ChargeTotalAmount)
BIIRULE-T10-R017 BIIRULE Amount due is the tax inclusive amount minus what has been prepaid. (cbc:PrepaidAmount) and (number(cbc:PayableAmount) = number(cbc:TaxInclusiveAmount - cbc:PrepaidAmount)) or cbc:PayableAmount = cbc:TaxInclusiveAmount
BIIRULE-T10-R009 BIIRULE An invoice MUST have a tax total refering to a single tax scheme count(cac:TaxSubtotal/*/*/cbc:ID) = count(cac:TaxSubtotal/*/*/cbc:ID[. = 'VAT']) or count(cac:TaxSubtotal/*/*/cbc:ID[. = 'VAT']) = 0
BIIRULE-T10-R010 BIIRULE Each tax total MUST equal the sum of the tax subcategory amounts. number(cbc:TaxAmount) = number(round(sum(cac:TaxSubtotal/cbc:TaxAmount) * 10 * 10) div 100)
BIIRULE-T10-R046 BIIRULE An invoice MUST specify the taxable amount per VAT subtotal. boolean(self::node()[cac:TaxCategory/cac:TaxScheme/cbc:ID = 'VAT']/cbc:TaxableAmount) or (cac:TaxCategory/cac:TaxScheme/cbc:ID != 'VAT')
BIIRULE-T10-R047 BIIRULE An invoice MUST specify the tax amount per VAT subtotal. boolean(self::node()[cac:TaxCategory/cac:TaxScheme/cbc:ID = 'VAT']/cbc:TaxAmount) or (cac:TaxCategory/cac:TaxScheme/cbc:ID != 'VAT')
BIIRULE-T10-R049 BIIRULE Every tax scheme MUST be defined through an identifier. cbc:ID
BIIRULE-T10-R048 BIIRULE Every tax category MUST be defined through an identifier. cbc:ID
BIIRULE-T10-R044 BIIRULE When specifying payment means, the invoice MUST specify the payment means code not(cac:PaymentMeans) or (cac:PaymentMeans/cbc:PaymentMeansCode)
BIIRULE-T10-R041 BIIRULE Company identifier MUST be specified when describing a company legal entity. (cbc:CompanyID)
BIIRULE-T10-R022 BIIRULE Prices of items MUST NOT be negative. number(.) >=0
BIIRULE-T10-R001 BIIRULE An invoice period end date MUST be later or equal to an invoice period start date (cbc:StartDate and cbc:EndDate) and (number(translate(cbc:StartDate,'-','')) <= number(translate(cbc:EndDate,'-','')))
BIIRULE-T10-R018 BIIRULE Invoice line amount MUST be equal to the price amount multiplied by the quantity plus charges minus allowances at line level Long XPath used, check the schematron source
BIIRULE-T10-R025 BIIRULE Each invoice line MUST contain the product/service name (cac:Item/cbc:Name)
BIIRULE-T10-R032 BIIRULE Invoice lines MUST have a line identifier. cbc:ID
BIIRULE-T10-R050 BIIRULE Invoice lines MUST have a line total amount. cbc:LineExtensionAmount
BIIRULE-T10-R023 BIIRULE An invoice MUST have the date of issue. (cbc:IssueDate)
BIIRULE-T10-R024 BIIRULE An invoice MUST have an invoice number. (cbc:ID)
BIIRULE-T10-R026 BIIRULE An invoice MUST contain the full name of the supplier. (cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name)
BIIRULE-T10-R027 BIIRULE An invoice MUST contain the full name of the customer. (cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name)
BIIRULE-T10-R028 BIIRULE If the VAT total amount in an invoice exists then the sum of taxable amount in sub categories MUST equal the sum of invoice tax exclusive amount. Long XPath used, check the schematron source
BIIRULE-T10-R029 BIIRULE An invoice MUST have a syntax identifier. (cbc:UBLVersionID)
BIIRULE-T10-R030 BIIRULE An invoice MUST have a customization identifier. (cbc:CustomizationID)
BIIRULE-T10-R031 BIIRULE An invoice MUST have a profile identifier. (cbc:ProfileID)
BIIRULE-T10-R033 BIIRULE An invoice MUST specify at least one line item. (cac:InvoiceLine)
BIIRULE-T10-R034 BIIRULE An invoice MUST have a currency code for the document. (cbc:DocumentCurrencyCode)
BIIRULE-T10-R035 BIIRULE Any reference to an order MUST specify the order identifier. (cac:OrderReference/cbc:ID) or not(cac:OrderReference)
BIIRULE-T10-R036 BIIRULE Any reference to a contract MUST specify the contract identifier. (cac:ContractDocumentReference/cbc:ID) or not(cac:ContractDocumentReference)
BIIRULE-T10-R038 BIIRULE An invoice MUST specify the total payable amount. (cac:LegalMonetaryTotal/cbc:PayableAmount)
BIIRULE-T10-R039 BIIRULE An invoice MUST specify the total amount with taxes included. (cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount)
BIIRULE-T10-R042 BIIRULE An invoice MUST specify the total amount without taxes. (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount)
BIIRULE-T10-R043 BIIRULE An invoice MUST specify the sum of the line amounts. (cac:LegalMonetaryTotal/cbc:LineExtensionAmount)
BIIRULE-T10-R040 BIIRULE Country in an address MUST be specified using the country code. (cbc:IdentificationCode)
BIIRULE-T10-R037 BIIRULE Any reference to a document MUST specify the document identifier. cbc:ID