# BR-FR-MV-07_BT-128

Source: https://xmlvalid.com/rules/BR-FR-MV-07_BT-128

> IDligne … , ID parent ligne … , numfact en ligne … , numfact ligne parent : … . Lorsque le cadre de facturation (BT-23) est S8, B8, M8 ou S9, B9, M9, chaque ligne (BG-25) doit contenir un numéro de facture codifié AFL (BT-128). Si la ligne a un identifiant de ligne parent (EXT-FR-FE-162), ce numéro doit être identique à celui de la ligne parent.

- Level: error
- Rule sets: French e-invoicing rules (UBL) 1.4.0.04
- Context: `ubl:Invoice/cac:InvoiceLine|cn:CreditNote/cac:CreditNoteLine`
- Test: `not(custom:isSpecialContract(/ubl:Invoice|/cn:CreditNote)) or ($numfact != '' and (not($parentlineID) or $numfact = $numfactparent))`

> BR-FR-MV-07/BT-128 : IDligne … , ID parent ligne … , numfact en ligne … , numfact ligne parent : … . Lorsque le cadre de facturation (BT-23) est S8, B8, M8 ou S9, B9, M9, chaque ligne (BG-25) doit contenir un numéro de facture codifié AFL (ram:IssuerAssignedID). Si la ligne a un identifiant de ligne parent (ram:ParentLineID), ce numéro doit être identique à celui de la ligne parent.

- Level: error
- Rule sets: French e-invoicing rules (CII) 1.4.0.04
- Context: `rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem`
- Test: `not(custom:isSpecialContract(/rsm:CrossIndustryInvoice)) or ($numfact != '' and (not($parentlineID) or $numfact = $numfactparent))`

Validate a document against these rules: https://xmlvalid.com/validate
