BR-22 : Quantité facturée absente
Renseignez InvoicedQuantity à partir de l’opération facturée. Ajoutez le code d’unité approprié et vérifiez le montant net de la ligne.
Champs : BT-129.
La mutation retire entièrement InvoicedQuantity. Le prix et le montant de ligne restent présents, ce qui permet à une condition de calcul de signaler également une incohérence. Dans la branche UBL d’un avoir, la quantité correspondante peut être CreditedQuantity ; CII utilise BilledQuantity dans la livraison de ligne. Une valeur déduite mentalement du prix et du total ne remplace pas la quantité transmise. Vérifiez le champ numérique exporté ainsi que son unité, dont la présence relève d’une autre condition.
Conditions sources et champs
UBL en16931 : le contexte cac:InvoiceLine | cac:CreditNoteLine sélectionne les nœuds contrôlés ; la condition porte sur InvoicedQuantity, CreditedQuantity.
context: cac:InvoiceLine | cac:CreditNoteLine
test: exists(cbc:InvoicedQuantity) or exists(cbc:CreditedQuantity)CII en16931 : le contexte //ram:IncludedSupplyChainTradeLineItem sélectionne les nœuds contrôlés ; la condition porte sur SpecifiedLineTradeDelivery, BilledQuantity.
context: //ram:IncludedSupplyChainTradeLineItem
test: (ram:SpecifiedLineTradeDelivery/ram:BilledQuantity)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-22 |
| BT-129 | cac:InvoiceLine | cac:CreditNoteLine → exists(cbc:InvoicedQuantity) or exists(cbc:CreditedQuantity) | //ram:IncludedSupplyChainTradeLineItem → (ram:SpecifiedLineTradeDelivery/ram:BilledQuantity) | BR-22 |
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]/cbc:InvoicedQuantity : valeur erronée '∅', valeur restaurée '1'. Le document UBL erroné passe XSD et produit BR-22 ; sa correction passe EN 16931 rules 1.3.16. Autres codes déclenchés : 1.
Fragment erroné
<cac:InvoiceLine 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>Zeitschrift [...]</cbc:ID>
<cbc:Note>Die letzte Lieferung im Rahmen des abgerechneten Abonnements erfolgt in 12/2016 Lieferung erfolgt / erfolgte direkt vom Verlag</cbc:Note>
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
<cac:OrderLineReference>
<cbc:LineID>6171175.1</cbc:LineID>
</cac:OrderLineReference>
<cac:Item>
<cbc:Description>Zeitschrift Inland</cbc:Description>
<cbc:Name>Zeitschrift [...]</cbc:Name>
<cac:SellersItemIdentification>
<cbc:ID>246</cbc:ID>
</cac:SellersItemIdentification>
<cac:CommodityClassification>
<cbc:ItemClassificationCode listID="IB">0721-880X</cbc:ItemClassificationCode>
</cac:CommodityClassification>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>21</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
Fragment corrigé
<cac:InvoiceLine 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>Zeitschrift [...]</cbc:ID>
<cbc:Note>Die letzte Lieferung im Rahmen des abgerechneten Abonnements erfolgt in 12/2016 Lieferung erfolgt / erfolgte direkt vom Verlag</cbc:Note>
<cbc:InvoicedQuantity unitCode="XPP">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
<cac:OrderLineReference>
<cbc:LineID>6171175.1</cbc:LineID>
</cac:OrderLineReference>
<cac:Item>
<cbc:Description>Zeitschrift Inland</cbc:Description>
<cbc:Name>Zeitschrift [...]</cbc:Name>
<cac:SellersItemIdentification>
<cbc:ID>246</cbc:ID>
</cac:SellersItemIdentification>
<cac:CommodityClassification>
<cbc:ItemClassificationCode listID="IB">0721-880X</cbc:ItemClassificationCode>
</cac:CommodityClassification>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>21</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
Messages communs dans nos mutations
Dans les 1 338 mutations synthétiques enregistrées, BR-22 apparaît dans 24 essais (ubl/en16931 17, ubl/xrechnung 1, cii/en16931 4, cii/xrechnung 2). Les mêmes essais produisent aussi : BR-23: 24; PEPPOL-EN16931-R008: 1.
Champs et règles associés
Diagnostic et emplacement dans le rapport
[BR-22]-Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129).
/*: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.