BR-CO-04 : Catégorie de TVA absente
Ajoutez la catégorie correspondant au traitement fiscal réel. Vérifiez sa cohérence avec le taux et le récapitulatif de TVA.
Champs : BT-151.
La mutation supprime ID à l’intérieur de ClassifiedTaxCategory tout en conservant le groupe et son pourcentage. Elle se distingue donc de la restriction UBL-SR-48 sur le nombre de groupes de catégorie. Un taux seul n’indique pas si une opération est taxée normalement, exonérée, autoliquidée ou hors champ. Le code de catégorie active d’autres conditions sur les taux, identifiants et récapitulatifs. Rétablissez la catégorie correspondant aux données réelles, puis rapprochez-la du groupe de ventilation qui agrège les montants concernés.
Conditions sources et champs
UBL en16931 : le contexte cac:InvoiceLine | cac:CreditNoteLine sélectionne les nœuds contrôlés ; la condition porte sur Item, ClassifiedTaxCategory, TaxScheme, ID.
context: cac:InvoiceLine | cac:CreditNoteLine
test: (cac:Item/cac:ClassifiedTaxCategory[cac:TaxScheme/(normalize-space(upper-case(cbc:ID))='VAT')]/cbc:ID)CII en16931 : le contexte //ram:IncludedSupplyChainTradeLineItem sélectionne les nœuds contrôlés ; la condition porte sur SpecifiedLineTradeSettlement, ApplicableTradeTax, TypeCode, CategoryCode.
context: //ram:IncludedSupplyChainTradeLineItem
test: (ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode)Les champs sont localisés par contexte source → sélecteur ; les alternatives et conditions de syntaxe restent explicites.
| BT/BG | UBL | CII | Source |
|---|---|---|---|
| BG-25 | Invoice/CreditNote → cac:InvoiceLine | cac:CreditNoteLine | /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ → ram:IncludedSupplyChainTradeLineItem | BR-CO-04 |
| BT-151 | cac:InvoiceLine | cac:CreditNoteLine → (cac:Item/cac:ClassifiedTaxCategory[cac:TaxScheme/(normalize-space(upper-case(cbc:ID))='VAT')]/cbc:ID) | //ram:IncludedSupplyChainTradeLineItem → (ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[upper-case(ram:TypeCode) = 'VAT']/ram:CategoryCode) | BR-CO-04 |
Cette condition vient des artefacts européens EN 16931 ; XRechnung ajoute des contraintes nationales et Factur-X dispose de ses propres règles CII par profil.
Exemple contrôlé
La modification remove porte directement sur /*/cac:InvoiceLine[1]/cac:Item/cac:ClassifiedTaxCategory/cbc:ID : valeur erronée '∅', valeur restaurée 'S'. Le document UBL erroné passe XSD et produit BR-CO-04 ; sa correction passe EN 16931 rules 1.3.16. Autres codes déclenchés : 2.
Fragment erroné
<cac:ClassifiedTaxCategory xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:Percent>21</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
Fragment corrigé
<cac:ClassifiedTaxCategory xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:ID>S</cbc:ID>
<cbc:Percent>21</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
Messages communs dans nos mutations
Dans les 1 338 mutations synthétiques enregistrées, BR-CO-04 apparaît dans 77 essais (ubl/en16931 65, ubl/xrechnung 2, cii/en16931 5, cii/xrechnung 5). Les mêmes essais produisent aussi : BR-S-08: 39; UBL-SR-48: 18; CII-DT-037: 4; CII-SR-454: 2; PEPPOL-EN16931-R008: 1.
Champs et règles associés
Diagnostic et emplacement dans le rapport
[BR-CO-04]-Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151).
/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]/*:InvoiceLine[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2'][1]Le rapport JSON expose ce message dans errors[] ou warnings[] avec ce code et ce chemin ; l’interface l’affiche dans le rapport des règles métier.