# BR-FR-MV-03_BT-128_AFL

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

> Pour une ligne GROUP sans parent, une valeur d'objet facturé (BT-128) avec identifiant de schéma (BT-128-1) = AFL doit être présente (numéroe de sous-facture) : Ligne : …

- Level: error
- Rule sets: French e-invoicing rules (UBL) 1.4.0.04
- Context: `(ubl:Invoice/cac:InvoiceLine|cn:CreditNote/cac:CreditNoteLine)/cac:BillingReference[(cac:InvoiceDocumentReference/cbc:ID = $invoiceID) and (cac:InvoiceDocumentReference/cbc:DocumentStatusCode = 'GROUP') and not(cac:BillingReferenceLine/cbc:ID)]`
- Test: `not(custom:isSpecialContract(/ubl:Invoice|/cn:CreditNote)) or (normalize-space(../cac:DocumentReference[cbc:DocumentTypeCode = '130']/cbc:ID[@schemeID = 'AFL']) != '')`

> BR-FR-MV-03/BT-128 : Pour une ligne GROUP sans parent, une valeur d'objet facturé (ram:IssuerAssignedID) avec identifiant de schéma (ram:ReferenceTypeCode) = AFL doit être présente. Valeur actuelle : " … ".

- Level: error
- Rule sets: French e-invoicing rules (CII) 1.4.0.04
- Context: `rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode = 'GROUP' and not(ram:AssociatedDocumentLineDocument/ram:ParentLineID)]/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument[ram:ReferenceTypeCode = 'AFL']`
- Test: `not(custom:isSpecialContract(/rsm:CrossIndustryInvoice)) or ((./ram:TypeCode = '130') and (normalize-space(./ram:IssuerAssignedID) != ''))`

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