Ironfang Finance - Référence des règles
Référence des règles de validation
Retrouvez une erreur EN 16931 ou Peppol BIS Billing par son code de règle : ce qui a échoué, comment le corriger, et un avant-après testé.
Règles expliquées
Champs de base de la factureBR
38 explications
- BR-01Ajouter l'identifiant de spécification dans CustomizationID
La racine du document doit contenir un
cbc:CustomizationIDnon vide. Pour Peppol BIS Billing 3.0, c'est une valeur fixe, pas une donnée lue dans la source. - BR-02Ajouter le numéro de facture dans le cbc:ID du document
Le
cbc:IDplacé directement sous la racine du document doit contenir le numéro de la facture ou de l'avoir. Un élément vide échoue ; un élément absent est arrêté par le XSD. - BR-04Ajouter le code de type de facture
Le document n'a pas de
cbc:InvoiceTypeCode(cbc:CreditNoteTypeCodedans un avoir), ou il est vide. Ajoutez le code qui correspond à la nature du document, par exemple380. - BR-05Ajouter le code de devise de la facture
Le document n'a pas de
cbc:DocumentCurrencyCode, ou il est vide. Indiquez la devise dans laquelle la facture est émise, sous la forme d'un code ISO 4217 à trois lettres. - BR-06Ajouter le nom du vendeur comme RegistrationName du fournisseur
La partie fournisseur doit avoir un
cbc:RegistrationNamenon vide danscac:PartyLegalEntity. Un nom commercial danscac:PartyNamene compte pas. - BR-07Ajouter le nom de l'acheteur comme RegistrationName du client
La partie client doit avoir un
cbc:RegistrationNamenon vide danscac:PartyLegalEntity. Un élément vide échoue, tout comme un élément omis. - BR-08Ajouter l'adresse postale du vendeur
Le
cac:Partydu vendeur doit contenir uncac:PostalAddress. Cette règle vérifie seulement la présence du groupe ; le code pays qu'il contient est contrôlé parBR-09. - BR-10Ajouter l'adresse postale de l'acheteur
Le
cac:Partyde l'acheteur doit avoir un enfantcac:PostalAddress. Seule sa présence est testée ici ; le code pays de l'acheteur qu'il contient relève deBR-11. - BR-11Ajouter le code pays à l'adresse postale de l'acheteur
Un
cac:PostalAddressde l'acheteur doit contenircac:Country/cbc:IdentificationCodeavec une valeur. Un code absent, vide ou ne contenant que des espaces échoue de la même façon. - BR-12Ajouter la somme des montants nets des lignes aux totaux monétaires
cac:LegalMonetaryTotaln'a pas decbc:LineExtensionAmount. Écrivez-y la somme des montants nets des lignes, même lorsque le document n'a qu'une seule ligne. - BR-13Ajouter le total hors TVA aux totaux monétaires
cac:LegalMonetaryTotaln'a pas decbc:TaxExclusiveAmount. Ajoutez le total hors TVA : le total des lignes, moins les remises, plus les frais au niveau du document. - BR-17Nommer le bénéficiaire, ou supprimer un bénéficiaire qui est le vendeur
Un
cac:PayeePartydoit avoircac:PartyName/cbc:Name, et son nom ou son identifiant ne doit pas reprendre ceux du vendeur. Si le vendeur est payé, omettez le bénéficiaire. - BR-18Ajouter le nom du représentant fiscal du vendeur
Un
cac:TaxRepresentativePartydoit porter un nom danscac:PartyName/cbc:Name. Un nom vide échoue, et uncbc:RegistrationNamene compte pas. - BR-21Donner à chaque ligne un identifiant de ligne non vide
Le
cbc:IDau début de chaque ligne de facture ou d'avoir doit contenir du texte. Un identifiant de ligne vide ou blanc échoue ; sa valeur n'est pas contrôlée. - BR-22Ajouter la quantité facturée ou créditée à chaque ligne
Chaque ligne a besoin d'un élément de quantité,
cbc:InvoicedQuantityoucbc:CreditedQuantity. Sans lui, le contrôle du code d'unité et le calcul de la ligne échouent aussi. - BR-23Ajouter l'attribut unitCode à la quantité de la ligne
Le
cbc:InvoicedQuantityoucbc:CreditedQuantityde chaque ligne doit porter un attributunitCodeindiquant son unité de mesure. - BR-25Donner un nom d'article à chaque ligne
Chaque ligne de facture ou d'avoir exige un
cac:Item/cbc:Namenon vide. Il est vérifié ligne par ligne, et une description d'article ne le remplace pas. - BR-26Ajouter le prix net de l'article sur chaque ligne
Chaque ligne exige
cac:Price/cbc:PriceAmount, le prix net unitaire. Une ligne sanscac:Priceéchoue ici, et le calcul de ligne de Peppol échoue avec elle. - BR-27Corriger un prix net d'article négatif en reportant le signe sur la quantité
Le prix net de l'article sur une ligne est inférieur à zéro. Les prix doivent être nuls ou positifs : exprimez une déduction ou une correction par une quantité négative.
- BR-28Rendre le prix brut de l'article nul ou positif
Le prix brut dans
cbc:BaseAmountd'une remise sur le prix d'une ligne ne doit pas être inférieur à zéro. Une déduction ou une correction tire son signe de la quantité. - BR-29Corriger une période de facturation qui se termine avant de commencer
Lorsque la période de facturation au niveau du document donne les deux dates,
cbc:EndDatedoit tomber le même jour quecbc:StartDateou plus tard. - BR-32Ajouter une catégorie de TVA à chaque remise au niveau du document
Une remise au niveau du document exige un
cac:TaxCategoryavec uncbc:IDdans le schéma TVA, afin que la remise soit déduite de la bonne ventilation de la TVA. - BR-45Ajouter la base imposable à chaque ventilation de la TVA
Chaque
cac:TaxSubtotalexige uncbc:TaxableAmount: le montant net sur lequel la TVA de cette ventilation est calculée. - BR-47Ajouter le code de catégorie de TVA à chaque ventilation de la TVA
Chaque
cac:TaxSubtotalexige uncac:TaxCategory/cbc:IDcontenant le code de catégorie de TVA, dans une catégorie de taxe dont le schéma fiscal estVAT. - BR-48Ajouter le taux de TVA à chaque ventilation de la TVA
Chaque ventilation de la TVA exige
cbc:Percentdans sa catégorie de taxe, même lorsque le taux est 0. Seule la catégorieO, non soumise à la TVA, peut l'omettre. - BR-50Ajouter l'identifiant de compte au compte du bénéficiaire
Un virement avec le code
30ou58a uncac:PayeeFinancialAccountmais aucun numéro de compte dans soncbc:ID. Ajoutez l'identifiant de compte réel. - BR-51Remplacer le numéro de carte complet par ses quatre derniers chiffres
Avertissement :
cbc:PrimaryAccountNumberIDdépasse 10 caractères, ce qui indique un numéro de carte complet. Envoyez les quatre derniers chiffres ; la facture reste valide. - BR-52Ajouter un identifiant à chaque référence à un document justificatif
Chaque
cac:AdditionalDocumentReferenceexige uncbc:IDdésignant le document justificatif. Un identifiant vide ou composé uniquement d'espaces échoue. - BR-53Ajouter le total de TVA dans la devise de comptabilisation de la TVA
Lorsque
cbc:TaxCurrencyCodeest indiqué, le document exige un second total de taxe dont lecbc:TaxAmountest exprimé dans cette devise. - BR-54Donner à chaque attribut d'article un nom et une valeur
Chaque
cac:AdditionalItemPropertydoit avoir uncbc:Nameet uncbc:Value. Si l'article n'a pas de valeur pour un attribut, omettez l'attribut. - BR-55Ajouter le numéro de la facture antérieure à la référence de facturation
Chaque
cac:BillingReferencedoit contenircac:InvoiceDocumentReferenceavec uncbc:ID. Omettez la référence de facturation s'il n'y a pas de facture antérieure. - BR-56Ajouter l'identifiant TVA du représentant fiscal du vendeur
Un
cac:TaxRepresentativePartydoit contenir uncac:PartyTaxSchemeavec le schéma fiscalVATet uncbc:CompanyID: le numéro de TVA du représentant lui-même. - BR-57Ajouter le code pays à l'adresse de livraison
Une adresse de livraison dans
cac:DeliveryLocation/cac:Addressdoit contenircac:Country/cbc:IdentificationCode. Seule sa présence est contrôlée ici. - BR-61Ajouter le compte du bénéficiaire à un virement
Le code de moyen de paiement
30ou58annonce un virement, la facture doit donc indiquer le compte à créditer :cac:PayeeFinancialAccount/cbc:ID. - BR-62Ajouter l'attribut schemeID à l'adresse électronique du vendeur
Lorsque la partie vendeur a un cbc:EndpointID, l'élément doit porter un attribut schemeID indiquant le schéma auquel appartient l'adresse.
- BR-63Ajouter l'attribut schemeID à l'adresse électronique de l'acheteur
Un cbc:EndpointID de l'acheteur doit porter un attribut schemeID. La règle contrôle que l'attribut existe, pas ce qu'il contient.
- BR-64Ajouter l'attribut schemeID à l'identifiant standard de l'article
Un identifiant standard d'article dans
cac:StandardItemIdentification/cbc:IDdoit indiquer son schéma dansschemeID:0160pour un GTIN. - BR-65Ajouter l'attribut listID au code de classification de l'article
Un code de classification d'article dans
cac:CommodityClassificationdoit nommer son système de classification danslistID, avec un code UNTDID 7143.
Calculs et conditionsBR-CO
17 explications
- BR-CO-03Envoyer soit la date d'exigibilité de la TVA, soit son code, mais pas les deux
cbc:TaxPointDateet le code de date d'exigibilité de la TVA danscac:InvoicePeriod/cbc:DescriptionCodene doivent pas figurer ensemble. Envoyez l'un des deux, ou aucun. - BR-CO-04Ajouter le code de catégorie de TVA à chaque ligne de facture
Chaque ligne a besoin de
cac:Item/cac:ClassifiedTaxCategory/cbc:IDsous le régime fiscalVAT, qui donne la catégorie de TVA de l'article. - BR-CO-09Ajouter le préfixe de pays à un identifiant à la TVA
Les identifiants à la TVA du vendeur, de l'acheteur et du représentant fiscal doivent commencer par un code pays de deux lettres majuscules, comme GB ou EL.
- BR-CO-10Corriger un total des lignes qui ne correspond pas à la somme des lignes
La somme des montants nets des lignes dans les totaux monétaires doit être égale aux montants nets des lignes additionnés, arrondis à deux décimales.
- BR-CO-11Corriger un total des remises du document qui ne correspond pas à ses remises
Le total des remises dans les totaux monétaires doit être égal à la somme des montants des remises au niveau du document, arrondie à deux décimales.
- BR-CO-12Corriger un total des frais du document qui ne correspond pas à ses frais
Le total des frais dans les totaux monétaires doit être égal à la somme des montants des frais au niveau du document, arrondie à deux décimales.
- BR-CO-13Corriger un total hors TVA qui ne découle pas des autres totaux
Le total hors TVA doit être égal au total des lignes, moins le total des remises du document, plus le total des frais du document, à deux décimales.
- BR-CO-14Corriger un total de la TVA qui ne correspond pas à la ventilation de la TVA
Le total de la TVA d'un bloc de taxes doit être égal à la somme des montants de taxe de ses ventilations de TVA, arrondie à deux décimales.
- BR-CO-15Corriger un total TVA comprise qui n'est pas le total hors TVA plus le total de la TVA
Le total TVA comprise doit être égal au total hors TVA plus le total de la TVA dans la devise du document, arrondi à deux décimales.
- BR-CO-16Corriger un montant à payer qui ne découle pas du total TVA comprise
Le montant à payer doit être égal au total TVA comprise, moins le montant payé d'avance, plus le montant d'arrondi, à deux décimales.
- BR-CO-17Corriger un montant de la ventilation de la TVA qui ne correspond pas à la base imposable multipliée par le taux
Chaque montant de taxe d'une ventilation de la TVA doit concorder avec sa base imposable multipliée par son taux. Le contrôle tolère un écart inférieur à 1.00, le bon montant non.
- BR-CO-18Ajouter au bloc de taxes la ventilation de la TVA manquante
Chaque facture et chaque avoir a besoin d'au moins une ventilation de la TVA : un TaxSubtotal dans un TaxTotal au niveau du document.
- BR-CO-19Donner à la période de facturation une date de début, une date de fin ou les deux
Une période de facturation dans
cac:InvoicePerioda besoin decbc:StartDate, decbc:EndDateou des deux. Une description de la période en toutes lettres ne compte pas. - BR-CO-21Donner à chaque remise au niveau du document un code de motif ou un texte de motif
Une remise ou autre réduction portant sur l'ensemble du document doit indiquer pourquoi elle est accordée, dans
cbc:AllowanceChargeReasonCode,cbc:AllowanceChargeReasonou les deux. - BR-CO-22Indiquer le motif de chacun des frais au niveau du document
Des frais portant sur l'ensemble du document, comme le transport ou l'emballage, doivent porter un code de motif de UNTDID 7161, un texte de motif, ou les deux.
- BR-CO-23Ajouter un motif à chaque remise sur une ligne de facture
Une remise rattachée à une ligne de facture ou d'avoir doit indiquer son motif par un code, un texte ou les deux. La remise sur prix dans
cac:Pricen'est pas concernée. - BR-CO-26Donner au vendeur un identifiant à la TVA, un identifiant d'enregistrement légal ou un identifiant du vendeur
Le vendeur doit porter au moins un identifiant parmi : un identifiant à la TVA, un identifiant du vendeur dans
cac:PartyIdentification, ou un identifiant d'enregistrement légal.
Listes de codesBR-CL, PEPPOL-EN16931-CL
17 explications
- BR-CL-01Utiliser un code de type de document autorisé
cbc:InvoiceTypeCode et cbc:CreditNoteTypeCode doivent contenir un code UNTDID 1001 de la liste propre à ce document, comme 380 ou 381.EN 16931
- BR-CL-03Utiliser un code de devise ISO 4217 dans chaque attribut currencyID
Le
currencyIDd'un montant n'est pas un code ISO 4217 à trois lettres. Utilisez le code de la devise de la facture, commeGBP, en majuscules.EN 16931 - BR-CL-04Utiliser un code alphabétique ISO 4217 pour la devise de la facture
cbc:DocumentCurrencyCodedoit être un code ISO 4217 à trois lettres en vigueur, en majuscules, commeGBP. Les noms, symboles, codes numériques et minuscules échouent.EN 16931 - BR-CL-10Utiliser un code ICD de l'ISO 6523 comme schéma d'un identifiant de partie
Le
schemeIDd'uncac:PartyIdentification/cbc:IDdoit être un code ICD de l'ISO 6523, comme0088pour un GLN.SEPAn'est admis que pour le vendeur et le bénéficiaire.EN 16931 - BR-CL-13Utiliser un code UNTDID 7143 dans le listID de la classification
Le
listIDd'un code de classification d'article doit être un code UNTDID 7143, commeTSTpour UNSPSC ouSTIpour CPV, et non le nom du schéma.EN 16931 - BR-CL-14Utiliser un code pays ISO 3166-1 alpha-2 dans les adresses
Chaque
cac:Country/cbc:IdentificationCodedoit être un code ISO 3166-1 à deux lettres, en majuscules. Le code du Royaume-Uni estGB, et nonUK.EN 16931 - BR-CL-16Utiliser un code de moyen de paiement UNTDID 4461
cbc:PaymentMeansCodedoit être un code UNTDID 4461, comme30pour un virement ou49pour un prélèvement, et non un nom de système bancaire ou de produit.EN 16931 - BR-CL-17Utiliser un code de catégorie de TVA autorisé dans chaque catégorie de taxe
Chaque
cac:TaxCategory/cbc:IDdoit être l'un des codesS,Z,E,AE,K,G,O,L,MouB. Les codes fiscaux internes commeSRsont rejetés.EN 16931 - BR-CL-18Utiliser un code de catégorie de TVA autorisé pour l'article de chaque ligne
La catégorie de la ligne dans
cac:ClassifiedTaxCategory/cbc:IDdoit être un code autorisé commeS,ZouE. Un code interne commeSRest rejeté.EN 16931 - BR-CL-19Utiliser un code de motif de remise de la liste UNTDID 5189
Un code de motif de remise doit être l'un des codes UNTDID 5189 autorisés dans Peppol, comme 95 pour Discount (remise). Un mot comme DISCOUNT n'est pas un code.EN 16931
- BR-CL-20Utiliser un code de motif de frais de la liste UNTDID 7161
Un code de motif de frais doit être un code UNTDID 7161 en majuscules, comme FC pour le fret ou DL pour la livraison. Les simples mots comme FREIGHT sont rejetés.EN 16931
- BR-CL-21Utiliser un code ICD de l'ISO 6523 dans le schemeID de l'identifiant d'article
Le
schemeIDd'un identifiant standard d'article doit être un code de la liste ICD de l'ISO 6523. Pour un GTIN, c'est0160, et non le texteGTIN.EN 16931 - BR-CL-22Utiliser un code VATEX comme code du motif d'exonération de TVA
cbc:TaxExemptionReasonCodedoit contenir un code de la liste VATEX, commeVATEX-EU-132. Les codes inventés sont rejetés ; envoyez un texte de motif si aucun code ne convient.EN 16931 - BR-CL-23Utiliser un code de la Recommandation 20 de l'UN/ECE dans unitCode
Chaque
unitCodesur une quantité de ligne ou une quantité de base du prix doit être un code UN/ECE Rec 20 ou Rec 21, en majuscules. Les abréviations locales commeEACHéchouent.EN 16931 - BR-CL-24Utiliser un code MIME autorisé pour les pièces jointes intégrées
Le
mimeCoded'une pièce jointe intégrée doit être l'une de six valeurs : PDF, PNG, JPEG, CSV, Excel xlsx ou tableur OpenDocument. Tout le reste échoue.EN 16931 - BR-CL-25Utiliser un code EAS comme schemeID d'une adresse électronique
Le schemeID de chaque cbc:EndpointID doit être un code de la liste Electronic Address Scheme (EAS), comme 0088, avec une correspondance exacte.EN 16931
- PEPPOL-EN16931-CL008Utiliser un code de schéma d'adresse électronique Peppol dans EndpointID
Le
schemeIDde chaquecbc:EndpointIDdoit correspondre exactement à un code de la liste Peppol des schémas d'adresse électronique, comme0088pour un GLN.Peppol BIS Billing
Précision décimaleBR-DEC
6 explications
- BR-DEC-01Écrire le montant de la remise au niveau du document avec deux décimales au plus
Le montant d'une remise au niveau du document a plus de deux chiffres après le point décimal. Écrivez-en deux au plus :
1.00passe,1.000échoue. - BR-DEC-12Écrire le total hors TVA avec deux décimales au plus
cbc:TaxExclusiveAmountdans les totaux monétaires a plus de deux chiffres après le point décimal. Écrivez le total hors TVA avec deux décimales au plus. - BR-DEC-18Écrire le montant à payer avec deux décimales au plus
cbc:PayableAmounta plus de deux chiffres après le point décimal. Arrondissez le montant à payer à deux décimales et formatez-le ainsi. - BR-DEC-20Écrire chaque montant de TVA de la ventilation avec deux décimales au plus
Le
cbc:TaxAmountd'uncac:TaxSubtotala plus de deux chiffres après le point décimal. Arrondissez le montant de TVA de la catégorie à deux décimales. - BR-DEC-23Écrire le montant net de ligne avec deux décimales au plus
Un montant net de ligne a plus de deux chiffres après le point décimal. Arrondissez-le à deux décimales ; les zéros finaux comptent, donc 25.000 échoue.
- BR-DEC-24Écrire le montant de la remise de ligne avec deux décimales au plus
Une remise sur une ligne de facture a un
cbc:Amountavec plus de deux chiffres après le point décimal. Arrondissez la remise de ligne à deux décimales.
Catégories de TVABR-S, BR-Z, BR-E, BR-AE, BR-IC, BR-G, BR-O
26 explications
Taux normal (S) (6)
- BR-S-01Ajouter la ventilation de la TVA au taux normal qu'exigent les lignes, remises ou frais
Si une ligne, une remise ou des frais au niveau du document sont au taux normal, la ventilation de la TVA doit aussi avoir une entrée au taux normal, et l'inverse vaut aussi.
- BR-S-02Ajouter l'identifiant TVA du vendeur lorsque des lignes sont au taux normal
Un document comportant une ligne au taux normal doit identifier le vendeur à la TVA, par son propre identifiant fiscal ou par l'identifiant TVA d'un représentant fiscal.
- BR-S-05Donner à une ligne au taux normal un taux de TVA supérieur à zéro
Une ligne en catégorie de TVA
Sdoit avoir un taux supérieur à zéro dans la catégorie de taxe de son article. Un taux de 0, un taux négatif ou l'absence de taux échoue. - BR-S-08Corriger une base imposable au taux normal qui ne correspond pas à ses lignes, frais et remises
Pour chaque taux normal, la base imposable de la ventilation doit correspondre aux montants des lignes au taux normal, plus les frais et moins les remises au niveau du document à ce taux.
- BR-S-09Corriger le montant de TVA d'une ventilation au taux normal
Dans une ventilation de la TVA au taux normal, le montant de taxe doit correspondre à la base imposable multipliée par le taux. Les écarts inférieurs à 1.00 passent le contrôle mais restent faux.
- BR-S-10Retirer le motif d'exonération d'une ventilation de la TVA au taux normal
Une ventilation de la TVA au taux normal ne doit porter ni texte ni code de motif d'exonération. La TVA est facturée en catégorie
S, donc rien n'est exonéré.
Taux zéro (Z) (3)
- BR-Z-01Ajouter exactement une ventilation de la TVA au taux zéro quand le document a un contenu au taux zéro
Un document comportant une ligne, une remise ou des frais au niveau du document au taux zéro a besoin d'exactement une ventilation de la TVA au taux zéro : ni aucune, ni deux.
- BR-Z-05Mettre à 0 le taux de TVA d'une ligne au taux zéro
Une ligne en catégorie de TVA
Zdoit avoir un taux de TVA d'exactement 0. Tout autre taux sur la ligne, ou l'absence d'élément de taux, échoue. - BR-Z-10Retirer le motif d'exonération d'une ventilation de la TVA au taux zéro
Une ventilation de la TVA au taux zéro ne doit porter ni texte ni code de motif d'exonération. La catégorie
Zdit tout ce qui est nécessaire.
Exonéré (E) (4)
- BR-E-01Utiliser une seule ventilation exonérée pour tout le contenu exonéré
Lorsqu'une ligne, une remise ou des frais au niveau du document sont exonérés, la ventilation de la TVA doit avoir exactement une entrée de catégorie
E: ni aucune, ni une par motif. - BR-E-08Rendre la base d'imposition exonérée égale aux lignes, frais et remises exonérés
La base d'imposition de la ventilation exonérée doit égaler exactement les lignes exonérées, plus les frais exonérés, moins les remises exonérées au niveau du document.
- BR-E-09Mettre à zéro le montant de taxe de la ventilation de TVA exonérée
Aucune TVA n'est facturée dans la catégorie exonérée : le montant de taxe d'une ventilation de la TVA de catégorie
Edoit donc être exactement 0. - BR-E-10Ajouter le motif d'exonération à une ventilation de TVA exonérée
Une ventilation de la TVA de la catégorie exonérée doit indiquer en quoi consiste l'exonération, par un texte de motif d'exonération, un code de motif d'exonération, ou les deux.
Autoliquidation (AE) (4)
- BR-AE-02Identifier le vendeur et l'acheteur sur une facture en autoliquidation
Un document comportant une ligne en autoliquidation exige un identifiant fiscal du vendeur et, pour l'acheteur, un identifiant TVA ou un identifiant d'immatriculation légale.
- BR-AE-05Mettre à 0 le taux de TVA d'une ligne en autoliquidation
Une ligne de catégorie de TVA
AEdoit avoir un taux de TVA d'exactement 0, même si l'acheteur déclarera la TVA sur l'opération. - BR-AE-09Mettre à zéro le montant de taxe de la ventilation de TVA en autoliquidation
Le vendeur ne facture pas de TVA en autoliquidation, donc une ventilation de la TVA de catégorie
AEdoit indiquer un montant de taxe d'exactement 0. - BR-AE-10Ajouter le motif d'autoliquidation à la ventilation de la TVA
Une ventilation de la TVA en autoliquidation doit indiquer pourquoi aucune TVA n'est facturée, par un texte de motif d'exonération, un code de motif, ou les deux.
Livraison intracommunautaire (K) (4)
- BR-IC-02Ajouter les identifiants TVA du vendeur et de l'acheteur à une livraison intracommunautaire
Un document avec une ligne de livraison intracommunautaire (catégorie
K) a besoin d'un identifiant TVA du vendeur ou du représentant fiscal et d'un identifiant TVA de l'acheteur. - BR-IC-10Ajouter le motif de livraison intracommunautaire à la ventilation de la TVA
Une ventilation de la TVA de catégorie
Kdoit indiquer le motif de livraison intracommunautaire : le codeVATEX-EU-IC, le texte correspondant, ou les deux. - BR-IC-11Ajouter une date de livraison ou une période de facturation à une livraison intracommunautaire
Lorsque la ventilation de la TVA comprend la catégorie
K, le document a besoin d'une date de livraison effective ou d'une période de facturation au niveau du document. - BR-IC-12Ajouter le pays de livraison à une livraison intracommunautaire
Un document avec une ventilation de TVA
Kdoit indiquer le pays où les marchandises ont été livrées, dans l'adresse de livraison souscac:Delivery/cac:DeliveryLocation.
Exportation hors de l'UE (G) (1)
- BR-G-02Ajouter l'identifiant TVA du vendeur à une facture d'exportation
Un document avec une ligne de catégorie
G, exportation hors UE, a besoin d'un identifiant TVA du vendeur, ou de son représentant fiscal, sous le régimeVAT.
Hors champ de la TVA (O) (4)
- BR-O-02Retirer les identifiants TVA d'un document non soumis à la TVA
Si une ligne est en catégorie
O, non soumise à la TVA, le document ne doit porter aucun identifiant TVA pour le vendeur, l'acheteur ou un représentant fiscal. - BR-O-05Retirer le taux de TVA d'une ligne non soumise à la TVA
Une ligne en catégorie
One doit pas avoir decbc:Percentdans sa catégorie de taxe, pas même0. Omettez entièrement le taux. - BR-O-10Ajouter le motif de non-soumission à la TVA dans la ventilation de la TVA
Une ventilation de la TVA en catégorie
Odoit indiquer que le montant n'est pas soumis à la TVA : le codeVATEX-EU-O, un texte de motif, ou les deux. - BR-O-11Facturer séparément les montants non soumis à la TVA et les autres catégories de TVA
Un document ayant une ventilation de la TVA en catégorie
One peut avoir de ventilation dans aucune autre catégorie. Montants hors champ et montants taxés exigent des documents distincts.
Exigences PeppolPEPPOL-EN16931, PEPPOL-COMMON
29 explications
Règles métier (PEPPOL-EN16931-R) (24)
- PEPPOL-EN16931-R001Ajouter l'identifiant de processus métier manquant
Le document n'a pas de cbc:ProfileID. Ajoutez-le directement sous la racine, après cbc:CustomizationID, avec l'identifiant du processus Peppol Billing.
- PEPPOL-EN16931-R002S'en tenir à une seule note au niveau du document
Peppol autorise un
cbc:Notedirectement sous la racine, sauf si le vendeur et l'acheteur ont tous deux une adresse postale allemande. Fusionnez les textes en une note. - PEPPOL-EN16931-R003Ajouter une référence de l'acheteur ou une référence de bon de commande
Le document n'a ni cbc:BuyerReference ni cac:OrderReference/cbc:ID. Peppol exige au moins l'un des deux pour que l'acheteur puisse acheminer la facture.
- PEPPOL-EN16931-R004Utiliser l'identifiant de spécification Peppol BIS Billing 3.0
cbc:CustomizationID est absent ou n'est pas l'identifiant Peppol BIS Billing 3.0. Envoyez la valeur Peppol, pas EN 16931 seul ni une autre CIUS.
- PEPPOL-EN16931-R005Supprimer une devise de comptabilisation de la TVA qui répète la devise de la facture
cbc:TaxCurrencyCodene sert qu'à une TVA comptabilisée dans une devise autre que celle de la facture. Omettez-le lorsque les deux seraient identiques. - PEPPOL-EN16931-R007Utiliser un identifiant de processus métier approuvé
cbc:ProfileIDdoit nommer un processus métier que les règles Peppol reconnaissent ; pour Billing,urn:fdc:peppol.eu:2017:poacc:billing:01:1.0, pas une version. - PEPPOL-EN16931-R008Supprimer les éléments vides du document
Un élément n'a ni texte ni élément enfant. Peppol n'autorise pas les éléments vides : omettez tout élément facultatif pour lequel vous n'avez pas de valeur.
- PEPPOL-EN16931-R010Ajouter l'adresse électronique de l'acheteur
Peppol exige un cbc:EndpointID dans l'élément Party de l'acheteur. Seule la présence de l'élément est testée ; le schéma et la valeur relèvent d'autres règles.
- PEPPOL-EN16931-R020Ajouter l'adresse électronique du vendeur
Peppol exige un cbc:EndpointID dans l'élément Party du vendeur. La règle vérifie seulement que l'élément est présent, pas son schéma ni sa valeur.
- PEPPOL-EN16931-R040Corriger le montant d'une remise ou de frais qui ne correspond pas à son montant de base et à son pourcentage
Lorsqu'une remise ou des frais indiquent un montant de base et un pourcentage, le montant doit valoir base x pourcentage / 100, à 0.02 près.
- PEPPOL-EN16931-R041Ajouter le montant de base à une remise ou à des frais qui indiquent un pourcentage
Une remise ou des frais qui indiquent un pourcentage doivent aussi indiquer le montant de base auquel le pourcentage a été appliqué.
- PEPPOL-EN16931-R042Ajouter le pourcentage à une remise ou à des frais qui indiquent un montant de base
Une remise ou des frais qui indiquent un montant de base doivent aussi indiquer le pourcentage ; une remise ou des frais d'un montant fixe ne devraient porter ni l'un ni l'autre.
- PEPPOL-EN16931-R043Écrire l'indicateur de frais sous la forme true ou false, et non 1 ou 0
Peppol veut que
cbc:ChargeIndicatordes remises et frais du document et des lignes soit écrit true ou false. Le schéma autorise aussi 1 et 0 ; Peppol, non. - PEPPOL-EN16931-R044Marquer l'ajustement au niveau du prix comme remise, ou sortir une majoration du prix
Seule une remise peut figurer dans
cac:Price/cac:AllowanceCharge, dont lecbc:ChargeIndicatordoit donc êtrefalse. Une majoration va dans le prix net ou des frais de ligne. - PEPPOL-EN16931-R046Corriger un prix net qui n'est pas le prix brut moins la remise sur le prix
Lorsque le prix d'une ligne indique un prix brut, le prix net doit être exactement égal au prix brut moins la remise sur le prix. Aucune tolérance n'est admise.
- PEPPOL-EN16931-R051Utiliser le code de devise de la facture dans le currencyID de chaque montant
Un montant a un
currencyIDautre quecbc:DocumentCurrencyCode. Tous les montants doivent être dans la devise de la facture, sauf le total de TVA en devise de comptabilisation. - PEPPOL-EN16931-R053Placer toute la ventilation de la TVA dans un seul total de taxe
Le document doit avoir exactement un
cac:TaxTotalcontenant des élémentscac:TaxSubtotal. Placez chaque ventilation de la TVA dans ce seul total de taxe. - PEPPOL-EN16931-R054N'envoyer un total de taxe sans ventilation qu'avec une devise de comptabilisation de la TVA
Un
cac:TaxTotalsanscac:TaxSubtotaldoit figurer exactement une fois lorsquecbc:TaxCurrencyCodeest indiqué, et pas du tout lorsqu'il est absent. - PEPPOL-EN16931-R055Donner au total de TVA en devise de comptabilisation le même signe que le total de TVA de la facture
Les totaux de TVA dans la devise de la facture et dans la devise de comptabilisation de la TVA ne doivent pas être de part et d'autre de zéro. Zéro va avec tout signe.
- PEPPOL-EN16931-R061Ajouter la référence du mandat à un prélèvement
Le moyen de paiement
49ou59est un prélèvement et exigecac:PaymentMandate/cbc:ID, la référence du mandat signé par l'acheteur. - PEPPOL-EN16931-R110Faire commencer chaque période de ligne à la date de début de la période de facturation ou après
Si le document a une date de début de période de facturation, aucune période de ligne ne peut commencer plus tôt. Corrigez la date de la ligne ou avancez le début de la période du document.
- PEPPOL-EN16931-R120Corriger un montant net de ligne qui ne découle pas de la quantité, du prix, des frais et des remises
Chaque montant net de ligne doit être égal à quantité x (prix net / quantité de base) + frais de la ligne - remises de la ligne, à 0.02 près.
- PEPPOL-EN16931-R121Utiliser une quantité de base du prix supérieure à zéro, ou la retirer
Si le prix d'une ligne indique une quantité de base, elle doit être supérieure à zéro. Zéro et les valeurs négatives échouent ; omettre l'élément est accepté.
- PEPPOL-EN16931-R130Utiliser l'unité de la quantité de la ligne pour la quantité de base du prix
Lorsque
cac:Price/cbc:BaseQuantitya ununitCode, ce doit être celui de la quantité de la ligne. Convertissez le prix plutôt que de renommer l'unité.
Codes de processus et de type de document (PEPPOL-EN16931-P) (3)
- PEPPOL-EN16931-P0100Utiliser un code de type de facture autorisé par Peppol BIS Billing
Peppol BIS Billing n'accepte qu'une partie des codes de facture UNTDID 1001. Un code comme
325(pro forma) réussit EN 16931 et échoue ici. - PEPPOL-EN16931-P0101Utiliser un code de type d'avoir autorisé par Peppol BIS Billing
Dans un avoir Peppol,
cbc:CreditNoteTypeCodedoit valoir381,396,81,83ou532. Un code de facture comme380est rejeté. - PEPPOL-EN16931-P0106Associer le code d'exonération VATEX-EU-IC à la catégorie K
Le code de motif d'exonération
VATEX-EU-ICest réservé aux livraisons intracommunautaires, catégorieK. Une catégorie de taxe d'un autre code qui le porte est rejetée.
Formats (PEPPOL-EN16931-F) (1)
- PEPPOL-EN16931-F001Écrire les dates au format simple YYYY-MM-DD, sans fuseau horaire
Les dates Peppol doivent compter exactement dix caractères,
YYYY-MM-DD. Un suffixe de fuseau horaire commeZou+01:00passe la XSD mais échoue à cette règle.
Contrôles des identifiants (PEPPOL-COMMON) (1)
- PEPPOL-COMMON-R040Corriger un GLN dont la clé de contrôle est fausse
Un identifiant avec le schéma
0088ne doit contenir que des chiffres et se terminer par la bonne clé de contrôle GS1.7300010000001réussit ;7300010000002échoue.
Exigences propres à un paysNL-R et autres codes pays
3 explications
Pays-Bas (NL) (3)
- NL-R-001Faire référence à la facture corrigée dans un avoir d'un fournisseur néerlandais
Lorsque l'adresse du vendeur est aux Pays-Bas, un avoir doit porter le numéro de la facture qu'il corrige dans
cac:BillingReference. - NL-R-003Utiliser le schéma 0106 (KVK) ou 0190 (OIN) pour l'identifiant légal d'un vendeur néerlandais
Lorsque l'adresse du vendeur est aux Pays-Bas,
cac:PartyLegalEntity/cbc:CompanyIDdoit avoir une valeur et leschemeID0106(KVK) ou0190(OIN). - NL-R-007Ajouter un moyen de paiement lorsqu'un fournisseur néerlandais doit être payé
Un vendeur aux Pays-Bas doit inclure
cac:PaymentMeansdès que l'acheteur a quelque chose à payer : une facture due au-dessus de zéro ou un avoir dû en dessous.
Syntaxe et structure UBLUBL-CR, UBL-SR, UBL-DT
5 explications
Éléments hors du modèle (UBL-CR) (3)
- UBL-CR-006Retirer l'heure d'émission du document
Avertissement :
cbc:IssueTimesort du modèle EN 16931. La facture reste valide ; retirez l'élément et gardez la date d'émission. - UBL-CR-561Retirer le total de taxe des lignes de facture
Un
cac:TaxTotaldans une ligne ne fait pas partie de la norme EN 16931 et déclenche un avertissement. Le document reste valide ; la TVA figure dans la ventilation au niveau du document. - UBL-CR-682Déplacer l'adresse de livraison dans DeliveryLocation
Un avertissement :
cac:Delivery/cac:DeliveryAddresssort du modèle de facture. Écrivez l'adresse de livraison sous la forme decac:Delivery/cac:DeliveryLocation/cac:Address.
Limites de répétition (UBL-SR) (1)
- UBL-SR-53Ajouter le CompanyID à un PartyTaxScheme, ou retirer le régime
Chaque
cac:PartyTaxSchemedoit contenir à la fois uncbc:CompanyIDet uncac:TaxScheme/cbc:ID. Un régime fiscal envoyé sans le numéro d'immatriculation correspondant est rejeté.
Types de données (UBL-DT) (1)
- UBL-DT-01Écrire chaque montant avec au plus deux décimales
Un montant a plus de deux chiffres après le point décimal. Chaque élément de montant est limité à deux, sauf le prix net de l'article et les remises sur le prix.
Diagnostics XMLFW
1 explication
- FW-XML-001Corriger un XML que l'analyseur refuse de lire
Un diagnostic Ironfang, pas une règle officielle : le XML est mal formé, dans un encodage non pris en charge, ou utilise DOCTYPE, des entités ou XInclude. Rien d'autre n'a été exécuté.
Ce que couvre cette référence
Les règles qu'Ironfang Finance exécute pour Peppol BIS Billing 3.0, 2026.5 (May 2026 release, aka BIS Billing 3.0.21), avec les artefacts de validation EN 16931 1.3.16, sur les documents Invoice et CreditNote en UBL 2.1. Elle ne couvre pas CII, les autres CIUS comme XRechnung, les autres types de documents Peppol ni les versions antérieures, où le même identifiant peut avoir un autre sens.
Cette version définit 1 144 règles officielles : 979 issues d'EN 16931 et de sa liaison UBL, et 165 ajoutées par Peppol BIS Billing, dont certaines ne s'appliquent qu'à un seul pays du vendeur. 141 ont une explication ici pour l'instant, ainsi que 1 diagnostic Ironfang pour les entrées que le validateur ne peut pas lire, qui est le nôtre et ne fait partie d'aucune des deux spécifications. Le validateur signale chaque règle dans tous les cas ; une explication est une aide en plus, pas une couverture.
Pour aller plus loin
Deux articles plus longs, en anglais, expliquent d'où viennent ces règles et comment lire un échec : How Peppol invoice validation actually works, des étapes XML aux règles Peppol, et Understanding EN 16931 validation errors, sur les règles métier à l'origine de la plupart des erreurs. Pour vérifier un document par rapport à toutes ces règles, utilisez le validateur Peppol gratuit. Pour un document complet qui passe, avec ses totaux calculés d'après BR-CO-10 à BR-CO-16, consultez l'exemple de facture XML Peppol.
Pas encore expliquées
Le validateur vérifie chaque règle officielle de la version prise en charge, y compris les 1 003 qui n'ont pas encore d'explication Ironfang. Chaque code ci-dessous mène à sa définition officielle (en anglais), pas à une page de ce site.
Afficher les 1 003 règles sans explication, par famille
Champs de base (BR) (20)
Précision décimale (BR-DEC) (15)
Syntaxe UBL : éléments hors du modèle (UBL-CR) (675)
675 règles de liaison syntaxique, de UBL-CR-001 à UBL-CR-681. Elles sont listées dans l'index officiel des règles EN 16931 (en anglais).
Syntaxe UBL : types de données (UBL-DT) (23)
23 règles de liaison syntaxique, de UBL-DT-06 à UBL-DT-28. Elles sont listées dans l'index officiel des règles EN 16931 (en anglais).
Syntaxe UBL : limites de répétition (UBL-SR) (53)
53 règles de liaison syntaxique, de UBL-SR-01 à UBL-SR-56. Elles sont listées dans l'index officiel des règles EN 16931 (en anglais).
Catégories de TVA (BR-S, BR-Z, BR-E, BR-AE ...) (72)
- BR-AE-01
- BR-AE-03
- BR-AE-04
- BR-AE-06
- BR-AE-07
- BR-AE-08
- BR-AF-01
- BR-AF-02
- BR-AF-03
- BR-AF-04
- BR-AF-05
- BR-AF-06
- BR-AF-07
- BR-AF-08
- BR-AF-09
- BR-AF-10
- BR-AG-01
- BR-AG-02
- BR-AG-03
- BR-AG-04
- BR-AG-05
- BR-AG-06
- BR-AG-07
- BR-AG-08
- BR-AG-09
- BR-AG-10
- BR-B-01
- BR-B-02
- BR-E-02
- BR-E-03
- BR-E-04
- BR-E-05
- BR-E-06
- BR-E-07
- BR-G-01
- BR-G-03
- BR-G-04
- BR-G-05
- BR-G-06
- BR-G-07
- BR-G-08
- BR-G-09
- BR-G-10
- BR-IC-01
- BR-IC-03
- BR-IC-04
- BR-IC-05
- BR-IC-06
- BR-IC-07
- BR-IC-08
- BR-IC-09
- BR-O-01
- BR-O-03
- BR-O-04
- BR-O-06
- BR-O-07
- BR-O-08
- BR-O-09
- BR-O-12
- BR-O-13
- BR-O-14
- BR-S-03
- BR-S-04
- BR-S-06
- BR-S-07
- BR-Z-02
- BR-Z-03
- BR-Z-04
- BR-Z-06
- BR-Z-07
- BR-Z-08
- BR-Z-09
Règles propres à un pays (99)
- DE-R-001
- DE-R-002
- DE-R-003
- DE-R-004
- DE-R-005
- DE-R-006
- DE-R-007
- DE-R-008
- DE-R-009
- DE-R-010
- DE-R-011
- DE-R-014
- DE-R-015
- DE-R-016
- DE-R-017
- DE-R-018
- DE-R-019
- DE-R-020
- DE-R-022
- DE-R-023-1
- DE-R-023-2
- DE-R-024-1
- DE-R-024-2
- DE-R-025-1
- DE-R-025-2
- DE-R-026
- DE-R-027
- DE-R-028
- DE-R-030
- DE-R-031
- DE-R-T02
- DK-R-002
- DK-R-003
- DK-R-004
- DK-R-005
- DK-R-006
- DK-R-007
- DK-R-008
- DK-R-009
- DK-R-010
- DK-R-011
- DK-R-013
- DK-R-014
- DK-R-016
- DK-R-017
- GR-R-001-1
- GR-R-001-2
- GR-R-001-3
- GR-R-001-4
- GR-R-001-5
- GR-R-001-6
- GR-R-001-7
- GR-R-002
- GR-R-003
- GR-R-004-1
- GR-R-004-2
- GR-R-005
- GR-R-006
- GR-R-008-2
- GR-R-008-3
- GR-R-009
- GR-R-010
- GR-S-008-1
- GR-S-011
- IS-R-001
- IS-R-002
- IS-R-003
- IS-R-004
- IS-R-005
- IS-R-006
- IS-R-007
- IS-R-008
- IS-R-009
- IS-R-010
- IT-R-001
- IT-R-002
- IT-R-003
- IT-R-004
- NL-R-002
- NL-R-004
- NL-R-005
- NL-R-006
- NL-R-008
- NL-R-009
- NO-R-001
- NO-R-002
- SE-R-001
- SE-R-002
- SE-R-003
- SE-R-004
- SE-R-005
- SE-R-006
- SE-R-007
- SE-R-008
- SE-R-009
- SE-R-010
- SE-R-011
- SE-R-012
- SE-R-013

