Technique

Erreur BR-Z-05 EN16931 : Zero rated — taux 0 obligatoire par ligne

2 min de lecture Par FacturX API

BR-Z-05 exige taux=0 sur une ligne catégorie Z. BR-Z-01 exige un VAT breakdown Z. Z ≠ E (exonération) ≠ AE (autoliquidation) ≠ G (export hors UE) ≠ K (intra-UE).

En bref

  • BR-Z-05 impose qu’une ligne, remise ou charge en catégorie Z (Zero rated) ait RateApplicablePercent = 0.00.
  • BR-Z-01 est DIFFÉRENT : il exige la présence d’un VAT breakdown Z quand une ligne Z existe.
  • Z ne doit PAS être confondu avec : E (exonération), AE (autoliquidation), G (export hors UE), K (livraison intra-UE).
  • Cas typiques de Z : biens légalement taxés à 0 % (rare en France) — pas les exports hors UE (qui relèvent de G).
  • Réparable automatiquement par /repair.

Ce que l’erreur veut dire

BR-Z-05 (Schematron EN16931, aligné Peppol) impose qu’une ligne, remise ou charge en catégorie Z (Zero rated) ait son RateApplicablePercent positionné à exactement 0.00. BR-Z-01 contrôle une autre règle — la présence d’un VAT breakdown de catégorie Z quand au moins une ligne Z existe. Attention : Z est réservé au cas du « taux 0 légal applicable » (situation rare en France). Les exports hors UE relèvent de G (Export outside the EU), pas de Z.

Quand cette erreur arrive

Apparaît surtout avec : (a) confusion entre Z, E, AE (les 3 ont 0 € de TVA mais des sémantiques juridiques différentes) ; (b) export ERP qui supprime le taux quand il est nul (croyant simplifier) ; (c) facture intra-UE B2B mal classée en Z au lieu de K (livraison intra-UE) ; (d) vente hors UE mal classée en Z au lieu de G.

Exemple XML qui déclenche l’erreur

<ram:ApplicableTradeTax>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:CategoryCode>Z</ram:CategoryCode>
  <!-- ❌ pas de RateApplicablePercent -->
</ram:ApplicableTradeTax>

Exemple XML corrigé

<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>0.00</ram:CalculatedAmount>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:BasisAmount>1000.00</ram:BasisAmount>
  <ram:CategoryCode>Z</ram:CategoryCode>
  <ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>

Correction manuelle

Positionner <ram:RateApplicablePercent>0.00</ram:RateApplicablePercent> explicitement (pas d’omission). Avant tout, vérifier que Z est le BON code : pour autoliquidation utiliser AE, pour exonération utiliser E, pour export hors UE utiliser G, pour livraison intra-UE utiliser K. Z est strictement réservé au taux 0 légal applicable.

Réparable automatiquement par /repair ?

Oui — l’endpoint /repair corrige automatiquement cette erreur dans la majorité des cas.

Et maintenant ?

Réparer mon Factur-X →

curl -X POST https://api.facturxapi.com/api/v1/repair \
  -H "Authorization: Bearer VOTRE_CLE" \
  -F "[email protected]"

Voir aussi

#en16931 #schematron #factur-x #erreurs #validation