BR-DEX-07Dependency changed
The code list lost the entry "9955"; the test expression is unchanged.
BR-DEX-07's test expression is byte-identical in both releases and still references $CEF-EAS-EXT-CODES. The changed dependency is the variable $CEF-EAS-CODES, whose code list lost the entry "9955"; no entries were added. The rule message requiring an endpoint identifier scheme to belong to the CEF EAS code list is unchanged.
fatalcountry
Original rule text: [BR-DEX-07] Any scheme identifier for an Endpoint Identifier in MUST belong to the CEF EAS code list.
Explanation and fix
What this rule requires
For an endpoint identifier (cbc:EndpointID or ram:URIID) that has a schemeID and the invoice declares itself as an XRechnung extension, the schemeID must be exactly one of the codes from the CEF EAS code list accepted by the rule, with no spaces inside the value. The test fails if the schemeID is empty or whitespace-only, contains an internal space, or is not in the allowed code list.
How to fix
Set the schemeID attribute to a valid CEF EAS code from the rule's list, such as "0088" or "0208". Ensure the value is not empty and does not contain spaces. If the current scheme identifier is not in the list, map it to the appropriate CEF EAS code.
BR-DEX-07 rule detailsChanged variable $CEF-EAS-CODES
Before · 2.0.1
' 0002 0007 0009 0037 0060 0088 0096 0097 0106 0130 0135 0142 0147 0151 0170 0183 0184 0188 0190 0191 0192 0193 0194 0195 0196 0198 0199 0200 0201 0202 0203 0204 0205 0208 0209 0210 0211 0212 0213 0215 0216 0217 0218 0219 0220 0221 0225 0230 9901 9910 9913 9914 9915 9918 9919 9920 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9955 9957 9959 AN AQ AS AU EM 'After · 2.0.2
' 0002 0007 0009 0037 0060 0088 0096 0097 0106 0130 0135 0142 0147 0151 0170 0183 0184 0188 0190 0191 0192 0193 0194 0195 0196 0198 0199 0200 0201 0202 0203 0204 0205 0208 0209 0210 0211 0212 0213 0215 0216 0217 0218 0219 0220 0221 0225 0230 9901 9910 9913 9914 9915 9918 9919 9920 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9957 9959 AN AQ AS AU EM 'PEPPOL-EN16931-R055Test expression rewritten
Rule no longer requires a document-currency tax total when a tax currency code is present
The first condition previously passed when "$taxCurrencyCode" was absent; it now also passes when "$taxCurrencyCode" is present but no tax total amount tagged with "$documentCurrencyCode" is present. The remaining two conditions are unchanged: both the tax-currency and document-currency tax total amounts must be negative, or both must be non-negative. This widens the exemption in the first condition.
Before · 2.0.1
not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $taxCurrencyCode] < 0 and ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $documentCurrencyCode] < 0) or (ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $taxCurrencyCode] >= 0 and ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $documentCurrencyCode] >= 0)After · 2.0.2
not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $documentCurrencyCode]) or (ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $taxCurrencyCode] < 0 and ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $documentCurrencyCode] < 0) or (ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $taxCurrencyCode] >= 0 and ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $documentCurrencyCode] >= 0)BR-65Test expression rewritten
Test now targets class code directly, not the full classification path
Before the change, the test checked whether the "listID" attribute on the class code element reached through the designated product classification under the specified trade product was non-empty, or whether that classification element was absent. After the change, it checks the same attribute on a class code element referenced directly, or whether that class code element is absent. The OR structure remains, but the paths in both halves of the condition are shorter and more direct. The rule message continues to require a Scheme identifier for the Item classification identifier.
fatalbusiness
Original rule text: [BR-65]-The Item classification identifier (BT-158) shall have a Scheme identifier.
Explanation and fix
What this rule requires
In UBL, the rule applies to cac:InvoiceLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode and cac:CreditNoteLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode, and requires the @listID attribute to exist. The UBL test only checks exists(@listID), so it requires the attribute to be present, even if empty. In CII, the rule applies to //ram:DesignatedProductClassification and passes if ram:ClassCode is absent, or if ram:ClassCode has a @listID with non-whitespace content. If ram:ClassCode is present but its @listID is missing or empty/whitespace, the rule fails.
How to fix
For UBL, add a listID attribute to the cbc:ItemClassificationCode element and set it to a value identifying the classification scheme; the rule does not define the allowed values, so consult the relevant code list or specification. For CII, if you include ram:ClassCode inside ram:DesignatedProductClassification, set its listID attribute to a non-empty scheme identifier; alternatively, if no classification code is required, the element may be omitted.
BR-65 rule detailsBefore · 2.0.1
normalize-space(ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode/@listID) != '' or not (ram:SpecifiedTradeProduct/ram:DesignatedProductClassification)After · 2.0.2
normalize-space(ram:ClassCode/@listID) != '' or not (ram:ClassCode)BR-CL-05Test expression rewritten
Currency code list replaces "MRO" with "MRU", "STD" with "STN", and "VEF" with "VES", and adds "UYW"
The rule checks the tax currency code against a fixed list of allowed values in both versions. The after list replaces "MRO" with "MRU", replaces "STD" with "STN", and replaces "VEF" with "VES"; it also adds "UYW" to the list. The overall structure of the test is unchanged.
fatalbusiness
Original rule text: [BR-CL-05]-Tax currency code MUST be coded using ISO code list 4217 alpha-3
Explanation and fix
What this rule requires
The rule requires cbc:TaxCurrencyCode (UBL) or ram:TaxCurrencyCode (CII) to hold an ISO 4217 alpha-3 currency code from the list accepted by BR-CL-05. It passes only when the normalized value is exactly one of the 178 listed codes, for example EUR, USD, or GBP. A document fails if the element is empty, contains only whitespace, has an internal space, or uses a code not on that list.
How to fix
Put a valid ISO 4217 alpha-3 currency code in the tax currency field, such as EUR, USD, or GBP. Ensure the value has no internal spaces (surrounding whitespace is ignored by the rule) and is not empty or only whitespace. Check that the code is present in the BR-CL-05 list; if the current code is something else, replace it with the correct three-letter ISO 4217 code.
BR-CL-05 rule detailsBefore · 2.0.1
((not(contains(normalize-space(.), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRO MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SLL SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UZS VEF VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL ', concat(' ', normalize-space(.), ' '))))After · 2.0.2
((not(contains(normalize-space(.), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SLL SOS SRD SSP STN SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UYW UZS VES VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL ', concat(' ', normalize-space(.), ' '))))BR-CL-04Test expression rewritten
Accepted currency code list replaces "MRO", "STD", "VEF" with "MRU", "STN", "VES" and adds "UYW"
The list of accepted three-letter currency codes embedded in the membership test was updated. The previous list contained "MRO", "STD", and "VEF"; the new list replaces these with "MRU", "STN", and "VES" and adds "UYW". The rest of the check is unchanged: the invoice currency code must contain no spaces and must match one of the listed codes. The rule message says the code must use "ISO code list 4217 alpha-3".
fatalbusiness
Original rule text: [BR-CL-04]-Invoice currency code MUST be coded using ISO code list 4217 alpha-3
Explanation and fix
What this rule requires
The rule requires the invoice currency code to be a valid ISO 4217 alpha-3 currency code. It checks that the code contains no spaces and appears in the rule's list of accepted currency codes. A document fails if cbc:DocumentCurrencyCode (UBL) or ram:InvoiceCurrencyCode (CII) is empty, contains whitespace, or is not one of the listed codes.
How to fix
Set the currency code element to a three-letter ISO 4217 code from the list allowed by the rule, for example EUR, USD, or GBP. In UBL use cbc:DocumentCurrencyCode; in CII use ram:InvoiceCurrencyCode. Ensure the value contains no spaces.
BR-CL-04 rule detailsBefore · 2.0.1
((not(contains(normalize-space(.), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRO MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SLL SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UZS VEF VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL ', concat(' ', normalize-space(.), ' '))))After · 2.0.2
((not(contains(normalize-space(.), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SLL SOS SRD SSP STN SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UYW UZS VES VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL ', concat(' ', normalize-space(.), ' '))))BR-CL-03Test expression rewritten
Allowed currency list now uses "MRU", "STN", "VES", "UYW" instead of "MRO", "STD", "VEF"
The rule still requires that the currency identifier contains no space and appears in a space-delimited list of ISO 4217 alpha-3 codes. The list itself changed between the two versions: "MRO" was replaced by "MRU", "STD" by "STN", and "VEF" by "VES", and "UYW" was inserted after "UYU". No other code entries moved or changed.
fatalbusiness
Original rule text: [BR-CL-03]-currencyID MUST be coded using ISO code list 4217 alpha-3
Explanation and fix
What this rule requires
The rule requires that the @currencyID attribute on amount elements (UBL) or on ram:TaxTotalAmount (CII) contains an ISO 4217 alpha-3 currency code from the list accepted by the rule, and that the code contains no spaces. Because the severity is fatal, an invoice that does not satisfy this condition is rejected with message [BR-CL-03]-currencyID MUST be coded using ISO code list 4217 alpha-3.
How to fix
Set the currencyID attribute to a valid three-letter ISO 4217 alpha-3 code that appears in the rule's list, for example EUR or USD. Ensure the value is not empty and contains no spaces. In UBL this applies to amount elements such as cbc:TaxAmount; in CII it applies to ram:TaxTotalAmount[@currencyID]. If the current value is not a valid code, correct it in the source system.
BR-CL-03 rule detailsBefore · 2.0.1
((not(contains(normalize-space(@currencyID), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRO MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SLL SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UZS VEF VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL ', concat(' ', normalize-space(@currencyID), ' '))))After · 2.0.2
((not(contains(normalize-space(@currencyID), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SLL SOS SRD SSP STN SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UYW UZS VES VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL ', concat(' ', normalize-space(@currencyID), ' '))))CII-SR-452New rule
New rule requires at most one "SpecifiedTradePaymentTerms" element.
A new rule has been introduced in the move from published 2.0.1 to 2.0.2. It counts the "SpecifiedTradePaymentTerms" elements and requires the number to be no more than one. The rule message states "Only one SpecifiedTradePaymentTerms should be present".
warningschema
Original rule text: [CII-SR-452] - Only one SpecifiedTradePaymentTerms should be present
Explanation and fix
What this rule requires
This advisory rule checks the CII element ram:SpecifiedTradePaymentTerms inside ram:ApplicableHeaderTradeSettlement. It requires that there be at most one such element; the test is count(ram:SpecifiedTradePaymentTerms) <= 1. If more than one is present, the validator reports this warning; the document is not rejected for it, but the recommendation is to have only one.
How to fix
Ensure that /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement contains no more than one ram:SpecifiedTradePaymentTerms. If the invoice currently contains multiple payment terms, reduce them to a single SpecifiedTradePaymentTerms element, or check which one should be kept if multiple are output by the system.
CII-SR-452 rule detailsAdded · 2.0.2
count(ram:SpecifiedTradePaymentTerms) <= 1CII-SR-458New rule
A new rule limits additional referenced documents with type code "130" to at most one.
The rule set now includes a check that counts additional referenced document elements whose type code equals "130" and requires the count to be at most 1. The rule message identifies "130" as the "IssuerAssignedID" type code. This is a newly added assertion between published 2.0.1 and published 2.0.2. No severity is specified in the evidence.
warningschema
Original rule text: [CII-SR-458] - IssuerAssignedID with TypeCode 130 should exist maximum once
Explanation and fix
What this rule requires
The rule checks that in /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement there is at most one ram:AdditionalReferencedDocument element whose ram:TypeCode equals 130. This is a warning, so a document with more than one such element is still valid, but the validator reports it as advisory.
How to fix
Ensure that under ram:ApplicableHeaderTradeAgreement only one ram:AdditionalReferencedDocument has ram:TypeCode set to 130. Remove any extra ram:AdditionalReferencedDocument elements with that type code, or change their ram:TypeCode if they serve a different purpose.
CII-SR-458 rule detailsAdded · 2.0.2
( count(ram:AdditionalReferencedDocument[ram:TypeCode='130']) <= 1)CII-SR-457New rule
New rule limits additional referenced documents with "TypeCode" "50" to one occurrence
The rule is new in published 2.0.2 relative to 2.0.1. It requires that the number of additional referenced documents whose "TypeCode" is exactly "50" be no more than 1. The rule message says "IssuerAssignedID" with "TypeCode" "50" should exist maximum once.
warningschema
Original rule text: [CII-SR-457] - IssuerAssignedID with TypeCode 50 should exist maximum once
Explanation and fix
What this rule requires
The rule requires that inside ram:ApplicableHeaderTradeAgreement there is no more than one ram:AdditionalReferencedDocument with ram:TypeCode equal to 50. This is a warning, so a document with multiple such elements is not rejected, but it is recommended to have at most one. The test counts these elements and reports if the count exceeds 1.
How to fix
Ensure that ram:ApplicableHeaderTradeAgreement contains at most one ram:AdditionalReferencedDocument with ram:TypeCode=50. If multiple are present, remove the duplicates or combine the data so only one such reference remains. In the generating system, make sure it does not emit more than one additional referenced document of this type.
CII-SR-457 rule detailsAdded · 2.0.2
( count(ram:AdditionalReferencedDocument[ram:TypeCode='50']) <= 1)CII-SR-453New rule
A new rule limits payment terms descriptions to at most one.
A new rule counts the Description elements within SpecifiedTradePaymentTerms and requires the count to be at most one. A document with more than one such Description does not meet the condition. The rule message is "Only one SpecifiedTradePaymentTerms Description should be present." No earlier version of the rule existed.
warningschema
Original rule text: [CII-SR-453] - Only one SpecifiedTradePaymentTerms Description should be present
Explanation and fix
What this rule requires
This rule checks that the total number of ram:Description elements inside all ram:SpecifiedTradePaymentTerms under ram:ApplicableHeaderTradeSettlement is at most 1. Since the severity is warning, a document with more than one such description is not rejected, but the validator reports it as advisory. The test counts descriptions across all payment terms, not per term, so multiple payment terms each with a description would trigger the warning.
How to fix
Reduce the number of ram:Description elements under ram:SpecifiedTradePaymentTerms to zero or one in total. For example, keep only one ram:SpecifiedTradePaymentTerms/ram:Description and remove the others, or consolidate the information into a single description.
CII-SR-453 rule detailsAdded · 2.0.2
count(ram:SpecifiedTradePaymentTerms/ram:Description) <= 1CII-SR-456New rule
New rule limits buyer trade party to one defined trade contact
A new rule was added in published "2.0.2". It requires the buyer trade party to have no more than one defined trade contact. The check counts the buyer trade party's defined trade contacts and requires that count to be at most "1". No equivalent rule existed in published "2.0.1".
fatalschema
Original rule text: [CII-SR-456] - DefinedTradeContact of BuyerTradeParty shall exist maximum once
Explanation and fix
What this rule requires
The rule requires that ram:BuyerTradeParty contains at most one ram:DefinedTradeContact. The test allows zero or one contact; a document fails only if it has two or more DefinedTradeContact elements under the buyer trade party.
How to fix
Remove or merge the extra ram:DefinedTradeContact elements under /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty so that at most one remains.
CII-SR-456 rule detailsAdded · 2.0.2
( count(ram:BuyerTradeParty/ram:DefinedTradeContact) <= 1)CII-SR-454New rule
A new rule requires exactly one applicable trade tax
The published rule set gains a new check on the applicable trade tax. The test counts occurrences of the applicable trade tax and requires the count to equal one. Before this change, the rule set did not include this check. The rule's message states that only one applicable trade tax should be present.
warningschema
Original rule text: [CII-SR-454] - Only one ApplicableTradeTax should be present
Explanation and fix
What this rule requires
The rule requires that each line-level settlement (ram:SpecifiedLineTradeSettlement) contains exactly one tax breakdown (ram:ApplicableTradeTax). Since this is a warning, the validator reports the document but does not reject it when the count is not 1 (i.e. zero or more than one).
How to fix
In the CII invoice, ensure that every ram:SpecifiedLineTradeSettlement has exactly one ram:ApplicableTradeTax child element. If there are multiple ApplicableTradeTax elements, adjust the line so only one tax category is represented; if none is present, add one.
CII-SR-454 rule detailsAdded · 2.0.2
count(ram:ApplicableTradeTax) = 1CII-SR-455New rule
A SellerTradeParty must now contain no more than "1" DefinedTradeContact
A new rule checks that a SellerTradeParty contains at most one DefinedTradeContact. It counts DefinedTradeContact occurrences under the SellerTradeParty and requires the count to be no greater than "1". This check did not exist in published "2.0.1".
fatalschema
Original rule text: [CII-SR-455] - DefinedTradeContact of SellerTradeParty shall exist maximum once
Explanation and fix
What this rule requires
The rule requires that under ram:ApplicableHeaderTradeAgreement, the ram:SellerTradeParty element contains at most one ram:DefinedTradeContact child. A document fails this fatal rule if two or more ram:DefinedTradeContact elements are present. Zero occurrences are allowed.
How to fix
Check the ram:SellerTradeParty element inside ram:ApplicableHeaderTradeAgreement. Remove any extra ram:DefinedTradeContact elements so that only one remains (or none). If multiple contacts seem necessary, consolidate the details into a single ram:DefinedTradeContact element.
CII-SR-455 rule detailsAdded · 2.0.2
( count(ram:SellerTradeParty/ram:DefinedTradeContact) <= 1)BR-TMP-1Rule removed
A rule requiring exactly one applicable trade tax per line trade settlement is removed.
The rule previously required each line trade settlement to have exactly one applicable trade tax. It has been removed between published 2.0.1 and published 2.0.2. Documents are no longer checked for not having exactly one applicable trade tax on a line trade settlement.
warningbusiness
Original rule text (before removal): [BR-TMP-1] BG-30 LINE VAT INFORMATION is allowed exactly once within BG-25 INVOICE LINE. Violation may lead to rejection of the invoice when validation is implemented by CEN.
BR-TMP-1 rule detailsRemoved · 2.0.1
ram:SpecifiedLineTradeSettlement[count(ram:ApplicableTradeTax) = 1]BR-DE-18-aRule removed
Removed payment terms description count check
The previous rule matched payment terms that carried fewer than "2" description entries. The rule has been removed, so documents are no longer validated against that condition.
fatalcountry
Original rule text (before removal): [BR-DE-18-a] BT-20 darf nicht mehrfach vorhanden sein.
BR-DE-18-a rule detailsRemoved · 2.0.1
rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms[count(ram:Description) < 2]