# BR-04 Code de type de facture requis

Une facture doit comporter un code de type de facture (BT-3) identifiant le type fonctionnel du document, par exemple facture commerciale ou avoir.

## Description du problème

> **ERREUR**: Règle métier de la norme EN 16931 (CEN)

## Contexte et importance

Il s’agit d’une règle de base de la norme EN 16931. Le code de type indique au destinataire s’il doit traiter le document comme une facture, une facture rectificative ou un avoir ; des règles nationales comme BR-DE-17 restreignent encore les codes acceptés. Ni le schéma UBL ni le schéma CII n’imposent l’élément : un export qui l’omet passe le contrôle de schéma et n’échoue que sur BR-04.

## Solution

Ajoutez cbc:InvoiceTypeCode avec un code UNTDID 1001 autorisé, par exemple 380 pour une facture commerciale ou 384 pour une facture rectificative. En UBL, un avoir (381) s’émet dans un document CreditNote avec cbc:CreditNoteTypeCode ; BR-CL-01 refuse 381 dans cbc:InvoiceTypeCode. En CII, le code figure dans rsm:ExchangedDocument/ram:TypeCode.

- [Valider le XML](/fr/xrechnung-validator?source=resource&rule=BR-04)
- [Convertir la facture](/fr/pdf-to-xrechnung?source=resource&rule=BR-04)

## Exemples valides

- BT-3 = 380 — facture commerciale
- BT-3 = 381 — avoir (en UBL, cbc:CreditNoteTypeCode dans un document CreditNote)

## Exemples invalides

- L’élément cbc:InvoiceTypeCode est absent de l’en-tête de la facture

## Exemples de code

### XML valide
```
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
```

### XML invalide
```
<cbc:IssueDate>2024-05-01</cbc:IssueDate>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
```

## Champs concernés

- [BT-3 Code type de facture](/resources/xrechnung/bt-3-invoice-type-code)

## Règles associées

- [BR-02](/resources/kosit-validator-errors/br-02-invoice-number-required)
- [BR-03](/resources/kosit-validator-errors/br-03-invoice-issue-date-required)

## Outils de validation

- [Validateur KoSIT officiel](https://github.com/itplr-kosit/validator): Exécutez le validateur officiel du KoSIT avec la configuration XRechnung pour contrôler les règles EN 16931 et XRechnung.
- [Convertir un PDF en XRechnung](/pdf-to-xrechnung): Repérez les erreurs de validation pendant la conversion et vérifiez chaque correction.

## Ressources associées

- [Spécification officielle](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Suite de tests](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Toutes les erreurs de validation](/resources/kosit-validator-errors): Vue d’ensemble des règles de validation EN 16931, XRechnung et Peppol expliquées ici.
