diff --git a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java
index ad787203..0cb668a7 100644
--- a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java
+++ b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java
@@ -192,8 +192,10 @@ public class XMLValidator extends Validator {
boolean isExtended = false;
boolean isXRechnung = false;
String currentZFVersionDir = "ZF_240";
+ String currentXPZ12VersionDir ="XP_Z12_012";
int mainSchematronSectionErrorTypeCode = 4;
String xsltFilename = null;
+ boolean runFrenchCiiSchematron = false;
// urn:ferd:CrossIndustryDocument:invoice:1p0:extended,
// urn:ferd:CrossIndustryDocument:invoice:1p0:comfort,
// urn:ferd:CrossIndustryDocument:invoice:1p0:basic,
@@ -213,6 +215,11 @@ public class XMLValidator extends Validator {
} else if (root.getLocalName().equalsIgnoreCase("CrossIndustryInvoice")) { // ZUGFeRD 2.0 or Factur-X
context.setGeneration("2");
+ final String sellerCountry = getXPathString(doc,
+ "//*[local-name() = 'CrossIndustryInvoice']//*[local-name() = 'SupplyChainTradeTransaction']//*[local-name() = 'ApplicableHeaderTradeAgreement']//*[local-name() = 'SellerTradeParty']//*[local-name() = 'PostalTradeAddress']/*[local-name() = 'CountryID']/text()");
+ final String buyerCountry = getXPathString(doc,
+ "//*[local-name() = 'CrossIndustryInvoice']//*[local-name() = 'SupplyChainTradeTransaction']//*[local-name() = 'ApplicableHeaderTradeAgreement']//*[local-name() = 'BuyerTradeParty']//*[local-name() = 'PostalTradeAddress']/*[local-name() = 'CountryID']/text()");
+ runFrenchCiiSchematron = "FR".equalsIgnoreCase(sellerCountry) && "FR".equalsIgnoreCase(buyerCountry);
isMiniumum = contextProfile.contains("minimum");
isBasic = contextProfile.contains("basic");
@@ -370,6 +377,11 @@ public class XMLValidator extends Validator {
// main schematron validation
validateSchematron(zfXML, xsltFilename, mainSchematronSectionErrorTypeCode, ESeverity.error);
+ if (runFrenchCiiSchematron) {
+ String xsltFRFilename = "/xslt/" + currentXPZ12VersionDir + "/20260216_BR-FR-Flux2-Schematron-CII_V1.3.0.xsl";
+ validateSchematron(zfXML, xsltFRFilename, mainSchematronSectionErrorTypeCode, ESeverity.error);
+ }
+
}
if ("CII".equals(context.getFormat()) && ("2".equals(context.getGeneration()))) {
@@ -525,6 +537,16 @@ public class XMLValidator extends Validator {
}
}
+ private String getXPathString(Document doc, String expression) throws IrrecoverableValidationError {
+ try {
+ XPath xpath = XPathFactory.newInstance().newXPath();
+ String value = (String) xpath.compile(expression).evaluate(doc, XPathConstants.STRING);
+ return value == null ? "" : value.trim();
+ } catch (XPathExpressionException e) {
+ throw new IrrecoverableValidationError(e.getMessage());
+ }
+ }
+
public void validateXR(String xml, ESeverity errorImpact) throws IrrecoverableValidationError {
//Guideline ID=urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_1.2 or
diff --git a/validator/src/main/resources/xslt/XP_Z12_012/20260216_BR-FR-Flux2-Schematron-CII_V1.3.0.xsl b/validator/src/main/resources/xslt/XP_Z12_012/20260216_BR-FR-Flux2-Schematron-CII_V1.3.0.xsl
new file mode 100644
index 00000000..15408488
--- /dev/null
+++ b/validator/src/main/resources/xslt/XP_Z12_012/20260216_BR-FR-Flux2-Schematron-CII_V1.3.0.xsl
@@ -0,0 +1,5617 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /
+
+
+
+
+
+ *:
+
+ [namespace-uri()='
+
+ ']
+
+
+
+ [
+
+ ]
+
+
+
+ /
+
+ @
+
+
+ @*[local-name()='
+
+ ' and namespace-uri()='
+
+ ']
+
+
+
+
+
+
+
+ /
+
+
+ [
+
+ ]
+
+
+
+ /@
+
+
+
+
+
+
+ /
+
+
+ [
+
+ ]
+
+
+
+ /@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+
+ U
+
+ U
+
+
+
+ U.
+
+ n
+
+
+
+ U.
+
+ _
+
+ _
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-01_BR-FR-02
+ BR-FR-01 — Validation de la longueur et du format des identifiants de facture
+
+
+
+
+
+
+
+ BR-FR-03
+ BR-FR-03 — Validation de l'année dans les dates (2000–2099)
+
+
+
+
+
+
+
+ BR-FR-04
+ BR-FR-04 — Validation du code type de document
+
+
+
+
+
+
+
+ BR-FR-05
+ BR-FR-05 — Présence obligatoire des mentions légales dans les notes (BG-1)
+
+
+
+
+
+
+
+ BR-FR-06
+ BR-FR-06 — Unicité des codes sujets dans les notes (BG-1)
+
+
+
+
+
+
+
+ BR-FR-08
+ BR-FR-08 — Validation du mode de facturation (BT-23)
+
+
+
+
+
+
+
+ BR-FR-09
+ BR-FR-09 — Cohérence entre SIRET (GlobalID) et SIREN (ID)
+
+
+
+
+
+
+
+ BR-FR-10
+ BR-FR-10 — SIREN du vendeur obligatoire et valide (BT-30)
+
+
+
+
+
+
+
+ BR-FR-11
+ BR-FR-11 — SIREN obligatoire et valide si traitement BAR/B2B (BT-47)
+
+
+
+
+
+
+
+ BR-FR-12
+ BR-FR-12 — Vérification de la présence du BT-49
+
+
+
+
+
+
+
+ BR-FR-13
+ BR-FR-13 — Vérification de la présence du BT-34
+
+
+
+
+
+
+
+ BR-FR-15
+ BR-FR-15 — Vérification des codes de catégorie de TVA (BT-95, BT-102, BT-118, BT-151)
+
+
+
+
+
+
+
+ BR-FR-16
+ BR-FR-16 — Vérification des taux de TVA autorisés (BT-96, BT-103, BT-119, BT-152)
+
+
+
+
+
+
+
+ BR-FR-17
+ BR-FR-17 — Codes autorisés pour qualifier les pièces jointes (BT-123)
+
+
+
+
+
+
+
+ BR-FR-18
+ BR-FR-18 — Un seul document additionnel avec la description 'LISIBLE' (BT-123)
+
+
+
+
+
+
+
+ BR-FR-20
+ BR-FR-20 — Vérification du traitement associé à une note avec code sujet 'BAR' (BT-21)
+
+
+
+
+
+
+
+ BR-FR-21
+ BR-FR-21 — Vérification du BT-49 en cas de traitement BAR/B2B et hors cas autofacture
+
+
+
+
+
+
+
+ BR-FR-22
+ BR-FR-22 — Vérification du BT-34 en cas de traitement BAR/B2B et en autofacture
+
+
+
+
+
+
+
+ BR-FR-23
+ BR-FR-23 — Validation du format des adresses électroniques avec schemeID = 0225 (CII)
+
+
+
+
+
+
+
+ BR-FR-24
+ BR-FR-24 — Validation du format des identifiants privés avec schemeID = 0224 (CII)
+
+
+
+
+
+
+
+ BR-FR-25
+ BR-FR-25 — Longueur maximale des adresses électroniques (CII)
+
+
+
+
+
+
+
+ BR-FR-26
+ BR-FR-26 — Longueur maximale des identifiants privés avec schemeID = 0224
+
+
+
+
+
+
+
+ BR-FR-27
+ BR-FR-27 — Validation du groupe Attribut d’article (BG-32)
+
+
+
+
+
+
+
+ BR-FR-28
+ BR-FR-28 — Validation de la valeur d’attribut d’article (BG-32)
+
+
+
+
+
+
+
+ BR-FR-29
+ BR-FR-29 — Vérification des identifiants d’objets facturés (BT-18)
+
+
+
+
+
+
+
+ BR-FR-30
+ BR-FR-30 — Vérification des identifiants d’objets facturés à la ligne (BT-128)
+
+
+
+
+
+
+
+ BR-FR-31
+ BR-FR-31 — Note avec code sujet BAR : une seule valeur possible dans la liste
+
+
+
+
+
+
+
+ BR-FR-CO-03
+ BR-FR-CO-03 — Présence obligatoire du contrat et de la période de facturation si type de facture = 262 (Avoir Remise Globale)
+
+
+
+
+
+
+
+ BR-FR-CO-04
+ BR-FR-CO-04 — Une seule référence à une facture antérieure obligatoire pour les factures rectificatives (BT-3)
+
+
+
+
+
+
+
+ BR-FR-CO-05
+ BR-FR-CO-05 — Référence obligatoire à une facture antérieure pour les avoirs (BT-3)
+
+
+
+
+
+
+
+ BR-FR-CO-07
+ BR-FR-CO-07 — La date d’échéance (BT-9) doit être postérieure ou égale à la date de facture (BT-2), sauf cas particuliers
+
+
+
+
+
+
+
+ BR-FR-CO-08
+ BR-FR-CO-08 — Incompatibilité entre cadre de facturation (BT-23) et type de facture (BT-3)
+
+
+
+
+
+
+
+ BR-FR-CO-09
+ BR-FR-CO-09 — Contrôle des montants et de la date d’échéance pour les factures déjà payées (BT-23)
+
+
+
+
+
+
+
+ BR-FR-CO-10
+ BR-FR-CO-10 — Vérification de la présence du schéma d’identifiant global (BT-29 et équivalents) et unicité du schemeID
+
+
+
+
+
+
+
+ BR-FR-CO-12
+ BR-FR-CO-12 — Contrôle des devises et du montant de TVA en comptabilité si la facture n’est pas en EUR
+
+
+
+
+
+
+
+ BR-FR-CO-14
+ BR-FR-CO-14 — Vérification de la note TXD pour les vendeurs membres d’un assujetti unique
+
+
+
+
+
+
+
+ BR-FR-CO-15
+ BR-FR-CO-15 — Présence du représentant fiscal si le vendeur est membre d’un assujetti unique (BT-29-1 = 0231)
+
+
+
+
+
+
+
+ BR-FR-DEC-01
+ BR-FR-DEC-01 — Format des montants numériques (max 19 caractères, 2 décimales, séparateur « . »)
+
+
+
+
+
+
+
+ BR-FR-DEC-02
+ BR-FR-DEC-02 — Format des quantités numériques (max 19 caractères, 4 décimales, séparateur « . »)
+
+
+
+
+
+
+
+ BR-FR-DEC-03
+ BR-FR-DEC-03 — Format des montants positifs (max 19 caractères, 6 décimales, séparateur « . »)
+
+
+
+
+
+
+
+ BR-FR-DEC-04
+ BR-FR-DEC-04 — Format des taux de TVA (max 4 caractères, 2 décimales, séparateur « . »)
+
+
+
+
+
+
+
+ BR-FR-MV-01
+ BR-FR-MV-01 — Vérification du sous-type de ligne lorsque le cadre de facturation est S8, B8 ou M8
+
+
+
+
+
+
+
+ BR-FR-MV-02
+ BR-FR-MV-02 — Vérification de la présence d'une ligne GROUP sans parent lorsque le cadre de facturation est S8, B8 ou M8
+
+
+
+
+
+
+
+ BR-FR-MV-03
+ BR-FR-MV-03 — Vérification des données obligatoires pour les lignes GROUP sans parent lorsque le cadre de facturation est S8, B8 ou M8
+
+
+
+
+
+
+
+ BR-FR-MV-05
+ BR-FR-MV-05 — Vérification de la cohérence des totaux HT entre la ligne GROUP et ses lignes enfants
+
+
+
+
+
+
+
+ BR-FR-MV-06
+ BR-FR-MV-06 — Vérification de la cohérence de l'identifiant légal du vendeur entre une ligne et sa ligne parent
+
+
+
+
+
+
+
+ BR-FR-MV-07
+ BR-FR-MV-07 — Vérification de la cohérence du numéro de facture codifié AFL entre une ligne et sa ligne parent
+
+
+
+
+
+
+
+ BR-FR-MV-08
+ BR-FR-MV-08 — Vérification de la raison d'exemption TVA contenant le numéro de sous-facture en ligne entre #
+
+
+
+
+
+
+
+ BR-FR-MV-09
+ BR-FR-MV-09 — Vérification de la cohérence du montant total TVA pour une ligne GROUP avec la somme des ventilations TVA liées
+
+
+
+
+
+
+
+ BR-FR-MV-10
+ BR-FR-MV-10 — Vérification de la cohérence du montant total avec TVA pour une ligne GROUP
+
+
+
+
+
+
+
+ BR-FR-MV-11
+ BR-FR-MV-11 — Vérification de la cohérence entre l'identifiant de facture à la ligne (AFL) et le numéro de facture (BT-1) pour le Vendeur principal
+
+
+
+
+
+
+
+ BR-FR-MV-12
+ BR-FR-MV-12 — Vérification de l'unicité des numéros de facture AFL pour les lignes GROUP sans parent
+
+
+
+
+
+
+
+ BR-FR-MV-13
+ BR-FR-MV-13 — Vérification que le code type de facture (BT-3) n'est pas un type auto-facturé interdit
+
+
+
+
+
+
+
+
+ BR-FR-01 — Validation de la longueur et du format des identifiants de facture
+
+
+
+
+
+
+
+
+ BR-FR-01_BT-1
+ warning
+
+
+
+
+ BR-FR-01/BT-1 : L'identifiant de facture (ram:ID) ne doit pas dépasser 35 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier que l'identifiant respecte cette limite.
+
+
+
+
+
+
+
+
+
+ BR-FR-02_BT-1
+ warning
+
+
+
+
+ BR-FR-02/BT-1 : L'identifiant de facture (ram:ID) contient des caractères non autorisés. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles + - _ / sont autorisés, sans espaces.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-01_BT-25
+ warning
+
+
+
+
+ BR-FR-01/BT-25 : L'identifiant de facture référencée (ram:IssuerAssignedID) ne doit pas dépasser 35 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier que l'identifiant respecte cette limite.
+
+
+
+
+
+
+
+
+
+ BR-FR-02_BT-25
+ warning
+
+
+
+
+ BR-FR-02/BT-25 : L'identifiant de facture référencée (ram:IssuerAssignedID) contient des caractères non autorisés. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles + - _ / sont autorisés, sans espaces.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-01_EXT-FR-FE-136
+ warning
+
+
+
+
+ BR-FR-01/EXT-FR-FE-136 : L'identifiant de facture référencée en ligne (ram:IssuerAssignedID) ne doit pas dépasser 35 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier que l'identifiant respecte cette limite.
+
+
+
+
+
+
+
+
+
+ BR-FR-02_EXT-FR-FE-136
+ warning
+
+
+
+
+ BR-FR-02/EXT-FR-FE-136 : L'identifiant de facture référencée en ligne (ram:IssuerAssignedID) contient des caractères non autorisés. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles + - _ / sont autorisés, sans espaces.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03 — Validation de l'année dans les dates (2000–2099)
+
+
+
+
+
+
+
+
+ BR-FR-03_BT-2
+ warning
+
+
+
+
+ BR-FR-03/BT-2 : La date d’émission (udt:DateTimeString) doit contenir une année comprise entre 2000 et 2099, au format AAAAMMJJ. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier que l’année est correcte et que le format est conforme.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_BT-7
+ warning
+
+
+
+
+ BR-FR-03/BT-7 : La date de fait générateur de la taxe (udt:DateString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_BT-9
+ warning
+
+
+
+
+ BR-FR-03/BT-9 : La date d’échéance (udt:DateTimeString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_BT-26
+ warning
+
+
+
+
+ BR-FR-03/BT-26 : La date d’émission de la facture référencée (qdt:DateTimeString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_BT-72
+ warning
+
+
+
+
+ BR-FR-03/BT-72 : La date de livraison effective (udt:DateTimeString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_BT-73
+ warning
+
+
+
+
+ BR-FR-03/BT-73 : La date de début de période de facturation (udt:DateTimeString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_BT-74
+ warning
+
+
+
+
+ BR-FR-03/BT-74 : La date de fin de période de facturation (udt:DateTimeString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_EXT-FR-FE-138
+ warning
+
+
+
+
+ BR-FR-03/EXT-FR-FE-138 : La date d’émission de la facture référencée en ligne (qdt:DateTimeString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_EXT-FR-FE-158
+ warning
+
+
+
+
+ BR-FR-03/EXT-FR-FE-158 : La date de livraison effective en ligne (udt:DateTimeString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_EXT-FR-FE-134
+ warning
+
+
+
+
+ BR-FR-03/BT-134 : La date de début de période de facturation en ligne (udt:DateTimeString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-03_EXT-FR-FE-135
+ warning
+
+
+
+
+ BR-FR-03/BT-135 : La date de fin de période de facturation en ligne (udt:DateTimeString) doit contenir une année entre 2000 et 2099. Valeur actuelle : "
+
+ ".
+ Veuillez vérifier la validité de la date.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-04 — Validation du code type de document
+
+
+
+
+
+
+
+
+ BR-FR-04_BT-3
+ warning
+
+
+
+
+ BR-FR-04/BT-3 : Le code type de document (ram:TypeCode) n’est pas autorisé. Valeurs acceptées :
+ 380, 389, 393, 501, 386, 500, 384, 471, 472, 473, 261, 262, 381, 396, 502, 503.
+ Valeur actuelle : "
+
+ ".
+ Veuillez utiliser un code conforme à la liste autorisée. Les autres codes définis dans la norme UNTDID 1001 ne doivent pas être utilisés.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-04_EXT-FR-FE-02
+ warning
+
+
+
+
+ BR-FR-04/EXT-FR-FE-02 : Le code type de document référencé (ram:TypeCode) n’est pas autorisé. Valeurs acceptées :
+ 380, 389, 393, 501, 386, 500, 384, 471, 472, 473, 261, 262, 381, 396, 502, 503.
+ Valeur actuelle : "
+
+ ".
+ Veuillez utiliser un code conforme à la liste autorisée.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-04_EXT-FR-FE-137
+ warning
+
+
+
+
+ BR-FR-04/EXT-FR-FE-137 : Le code type de document référencé en ligne (ram:TypeCode) n’est pas autorisé. Valeurs acceptées :
+ 380, 389, 393, 501, 386, 500, 384, 471, 472, 473, 261, 262, 381, 396, 502, 503.
+ Valeur actuelle : "
+
+ ".
+ Veuillez utiliser un code conforme à la liste autorisée.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-05 — Présence obligatoire des mentions légales dans les notes (BG-1)
+
+
+
+
+
+
+
+
+
+ BR-FR-05_BT-22_PMT
+ warning
+
+
+
+
+ BR-FR-05/BT-22 : La mention relative aux frais de recouvrement (code PMT) est absente. Elle est obligatoire dans les notes (BG-1).
+
+
+
+
+
+
+
+
+
+ BR-FR-05_BT-22_PMD
+ warning
+
+
+
+
+ BR-FR-05/BT-22 : La mention relative aux pénalités de retard (code PMD) est absente. Elle est obligatoire dans les notes (BG-1).
+
+
+
+
+
+
+
+
+
+ BR-FR-05_BT-22_AAB
+ warning
+
+
+
+
+ BR-FR-05/BT-22 : La mention relative à l’escompte ou à son absence (code AAB) est absente. Elle est obligatoire dans les notes (BG-1).
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-06 — Unicité des codes sujets dans les notes (BG-1)
+
+
+
+
+
+
+
+
+
+ BR-FR-06_BT-21_PMT
+ warning
+
+
+
+
+ BR-FR-06/BT-21 : Le code sujet PMT (indemnité forfaitaire pour frais de recouvrement) ne doit apparaître qu'une seule fois dans les notes (BG-1).
+
+
+
+
+
+
+
+
+
+ BR-FR-06_BT-21_PMD
+ warning
+
+
+
+
+ BR-FR-06/BT-21 : Le code sujet PMD (pénalités de retard) ne doit apparaître qu'une seule fois dans les notes (BG-1).
+
+
+
+
+
+
+
+
+
+ BR-FR-06_BT-21_AAB
+ warning
+
+
+
+
+ BR-FR-06/BT-21 : Le code sujet AAB (mention d’escompte ou d’absence d’escompte) ne doit apparaître qu'une seule fois dans les notes (BG-1).
+
+
+
+
+
+
+
+
+
+ BR-FR-06_BT-21_TXD
+ warning
+
+
+
+
+ BR-FR-06/BT-21 : Le code sujet TXD (mention de taxe) ne doit apparaître qu'une seule fois dans les notes (BG-1).
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-08 — Validation du mode de facturation (BT-23)
+
+
+
+
+
+
+
+
+ BR-FR-08_BT-23
+ warning
+
+
+
+
+ BR-FR-08/BT-23 : La valeur du mode de facturation (ram:ID) n’est pas autorisée. Valeurs acceptées : B1, S1, M1, B2, S2, M2, B4, S4, M4, S5, S6, B7, S7.
+ Valeur actuelle : "
+
+ ".
+ Veuillez utiliser une valeur conforme à la liste des modes de facturation autorisés.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09 — Cohérence entre SIRET (GlobalID) et SIREN (ID)
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_BT-29
+ warning
+
+
+
+
+ BR-FR-09/BT-29 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_BT-46
+ warning
+
+
+
+
+ BR-FR-09/BT-46 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_BT-60
+ warning
+
+
+
+
+ BR-FR-09/BT-60 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_EXT-FR-FE-06
+ warning
+
+
+
+
+ BR-FR-09/EXT-FR-FE-06 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_EXT-FR-FE-46
+ warning
+
+
+
+
+ BR-FR-09/EXT-FR-FE-46 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_EXT-FR-FE-69
+ warning
+
+
+
+
+ BR-FR-09/EXT-FR-FE-69 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_EXT-FR-FE-92
+ warning
+
+
+
+
+ BR-FR-09/EXT-FR-FE-92 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_EXT-FR-FE-115
+ warning
+
+
+
+
+ BR-FR-09/EXT-FR-FE-115 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_BT-71
+ warning
+
+
+
+
+ BR-FR-09/BT-71 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-09_EXT-FR-FE-146
+ warning
+
+
+
+
+ BR-FR-09/EXT-FR-FE-146 : Le SIRET doit contenir 14 chiffres et commencer par le SIREN. SIRET : "
+
+ ", SIREN : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-10 — SIREN du vendeur obligatoire et valide (BT-30)
+
+
+
+
+
+
+
+
+
+ BR-FR-10_BT-30
+ warning
+
+
+
+
+ BR-FR-10/BT-30 : Le SIREN du vendeur (ram:ID) est obligatoire et doit être composé exactement de 9 chiffres. Valeur actuelle : "
+
+ ".
+ Veuillez renseigner un identifiant SIREN valide.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-11 — SIREN obligatoire et valide si traitement BAR/B2B (BT-47)
+
+
+
+
+
+
+
+
+
+
+ BR-FR-11_BT-47
+ warning
+
+
+
+
+ BR-FR-11/BT-47 : Si une note contient le code sujet BAR avec la valeur 'B2B', alors le SIREN de l’acheteur (BT-47, ram:ID) est obligatoire et doit être composé exactement de 9 chiffres. Valeur actuelle : "
+
+ ".
+ Veuillez renseigner un identifiant SIREN valide.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-12 — Vérification de la présence du BT-49
+
+
+
+
+
+
+
+
+
+ BR-FR-12_BT-49
+ warning
+
+
+
+
+ BR-FR-12/BT-49 : Le BT-49 est obligatoire.
+ Valeur actuelle : BT-49="
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-13 — Vérification de la présence du BT-34
+
+
+
+
+
+
+
+
+
+ BR-FR-13_BT-34
+ warning
+
+
+
+
+ BR-FR-13/BT-34 : Le BT-34 est obligatoire.
+ Valeur actuelle : BT-34="
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-15 — Vérification des codes de catégorie de TVA (BT-95, BT-102, BT-118, BT-151)
+
+
+
+
+
+
+
+
+
+ BR-FR-15_BT-95_BT-102
+ warning
+
+
+
+
+ BR-FR-15/BT-95 ou BT-102 : Code de catégorie de TVA invalide. Valeur actuelle : "
+
+ ". Veuillez utiliser un code valide : S, E, AE, K, G, O, Z.
+
+
+
+
+
+
+
+
+
+ BR-FR-15_BT-95_BT-102_LM
+ warning
+
+
+
+
+ BR-FR-15/BT-95 ou BT-102 : Les codes 'L' et 'M' ne sont pas pertinents en France. Valeur actuelle : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-15_BT-95_BT-118
+ warning
+
+
+
+
+ BR-FR-15/BT-118 : Code de catégorie de TVA invalide. Valeur actuelle : "
+
+ ". Veuillez utiliser un code valide : S, E, AE, K, G, O, Z.
+
+
+
+
+
+
+
+
+
+ BR-FR-15_BT-95_BT-118_LM
+ warning
+
+
+
+
+ BR-FR-15/BT-118 : Les codes 'L' et 'M' ne sont pas pertinents en France. Valeur actuelle : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-15_BT-95_BT-151
+ warning
+
+
+
+
+ BR-FR-15/BT-151 : Code de catégorie de TVA invalide. Valeur actuelle : "
+
+ ". Veuillez utiliser un code valide : S, E, AE, K, G, O, Z.
+
+
+
+
+
+
+
+
+
+ BR-FR-15_BT-95_BT-151_LM
+ warning
+
+
+
+
+ BR-FR-15/BT-151 : Les codes 'L' et 'M' ne sont pas pertinents en France. Valeur actuelle : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-16 — Vérification des taux de TVA autorisés (BT-96, BT-103, BT-119, BT-152)
+
+
+
+
+
+
+
+
+
+ BR-FR-16_BT-96_BT-103
+ warning
+
+
+
+
+ BR-FR-16/BT-96 ou BT-103 : Le taux de TVA (BT-96) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-16_BT-119
+ warning
+
+
+
+
+ BR-FR-16/BT-119 : Le taux de TVA (BT-119) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-16_BT-152
+ warning
+
+
+
+
+ BR-FR-16/BT-152 : Le taux de TVA (BT-152) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-17 — Codes autorisés pour qualifier les pièces jointes (BT-123)
+
+
+
+
+
+
+
+
+
+ BR-FR-17_BT-123
+ warning
+
+
+
+
+ BR-FR-17/BT-123 : Le code de qualification de la pièce jointe "
+
+ " est invalide. Il doit appartenir à la liste des codes autorisés. Veuillez corriger la valeur de BT-123.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-18 — Un seul document additionnel avec la description 'LISIBLE' (BT-123)
+
+
+
+
+
+
+
+
+
+ BR-FR-18_BT-123
+ warning
+
+
+
+
+ BR-FR-18/BT-123 : Il ne peut y avoir **qu’un seul** document additionnel (BG-24) dont la description (BT-123) est "LISIBLE".
+ Nombre de documents trouvés :
+
+ .
+ Veuillez supprimer les doublons ou corriger les descriptions.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-20 — Vérification du traitement associé à une note avec code sujet 'BAR' (BT-21)
+
+
+
+
+
+
+
+
+
+ BR-FR-20_BT-21
+ warning
+
+
+
+
+ BR-FR-20/BT-21 : Lorsqu’une note a pour code sujet « BAR » (BT-21), la valeur associée (BT-22, contenu de la note) doit être l’une des suivantes : B2B, B2BINT, B2C, OUTOFSCOPE, ARCHIVEONLY.
+ Valeur fournie : "
+
+ ". Veuillez corriger la valeur ou retirer le code sujet « BAR ».
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-21 — Vérification du BT-49 en cas de traitement BAR/B2B et hors cas autofacture
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-21_BT-49
+ warning
+
+
+
+
+ BR-FR-21/BT-49 : Si le traitement est BAR/B2B et que le type de document (BT-3) n’est pas en autofacture (389, 501, 500, 471, 473, 261, 502), alors le BT-49 (EndpointID) doit commencer par le SIREN (BT-47) et le BT-49-1 (schemeID) doit être égal à "0225".
+ Valeurs actuelles : EndpointID="
+
+ ", schemeID="
+
+ ", SIREN="
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-22 — Vérification du BT-34 en cas de traitement BAR/B2B et en autofacture
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-22_BT-34
+ warning
+
+
+
+
+ BR-FR-22/BT-34 : Si le traitement est BAR/B2B et que le type de document (BT-3) est en autofacture (389, 501, 500, 471, 473, 261, 502), alors le BT-34 (EndpointID du vendeur) doit commencer par le SIREN (BT-30) et le BT-34-1 (schemeID) doit être égal à "0225".
+ Valeurs actuelles : EndpointID="
+
+ ", schemeID="
+
+ ", SIREN="
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-23 — Validation du format des adresses électroniques avec schemeID = 0225 (CII)
+
+
+
+
+
+
+
+
+ BR-FR-23_BT-34
+ warning
+
+
+
+
+ BR-FR-23/BT-34 : L'adresse électronique (ram:URIID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-23_BT-49
+ warning
+
+
+
+
+ BR-FR-23/BT-49 : L'adresse électronique (ram:URIID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-23_EXT-FR-FE-12
+ warning
+
+
+
+
+ BR-FR-23/EXT-FR-FE-12 : L'adresse électronique (ram:URIID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-23_EXT-FR-FE-29
+ warning
+
+
+
+
+ BR-FR-23/EXT-FR-FE-29 : L'adresse électronique (ram:URIID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-23_EXT-FR-FE-52
+ warning
+
+
+
+
+ BR-FR-23/EXT-FR-FE-52 : L'adresse électronique (ram:URIID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-23_EXT-FR-FE-75
+ warning
+
+
+
+
+ BR-FR-23/EXT-FR-FE-75 : L'adresse électronique (ram:URIID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-23_EXT-FR-FE-98
+ warning
+
+
+
+
+ BR-FR-23/EXT-FR-FE-98 : L'adresse électronique (ram:URIID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-23_EXT-FR-FE-121
+ warning
+
+
+
+
+ BR-FR-23/EXT-FR-FE-121 : L'adresse électronique (ram:URIID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-24 — Validation du format des identifiants privés avec schemeID = 0224 (CII)
+
+
+
+
+
+
+
+
+ BR-FR-24_BT-29
+ warning
+
+
+
+
+ BR-FR-24/BT-29 : L'identifiant privé (ram:GlobalID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-24_BT-46
+ warning
+
+
+
+
+ BR-FR-24/BT-46 : L'identifiant privé (ram:GlobalID) ne respecte pas le format autorisé. Valeur actuelle : "
+
+ ".
+ Seuls les caractères alphanumériques et les symboles "-", "_", "." sont autorisés.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-25 — Longueur maximale des adresses électroniques (CII)
+
+
+
+
+
+
+
+
+ BR-FR-25_BT-34
+ warning
+
+
+
+
+ BR-FR-25/BT-34 : L'adresse électronique (ram:URIID) dépasse 125 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-25_BT-49
+ warning
+
+
+
+
+ BR-FR-25/BT-49 : L'adresse électronique (ram:URIID) dépasse 125 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-25_EXT-FR-FE-12
+ warning
+
+
+
+
+ BR-FR-25/EXT-FR-FE-12 : L'adresse électronique (ram:URIID) dépasse 125 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-25_EXT-FR-FE-29
+ warning
+
+
+
+
+ BR-FR-25/EXT-FR-FE-29 : L'adresse électronique (ram:URIID) dépasse 125 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-25_EXT-FR-FE-52
+ warning
+
+
+
+
+ BR-FR-25/EXT-FR-FE-52 : L'adresse électronique (ram:URIID) dépasse 125 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-25_EXT-FR-FE-75
+ warning
+
+
+
+
+ BR-FR-25/EXT-FR-FE-75 : L'adresse électronique (ram:URIID) dépasse 125 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-25_EXT-FR-FE-98
+ warning
+
+
+
+
+ BR-FR-25/EXT-FR-FE-98 : L'adresse électronique (ram:URIID) dépasse 125 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-25_EXT-FR-FE-121
+ warning
+
+
+
+
+ BR-FR-25/EXT-FR-FE-121 : L'adresse électronique (ram:URIID) dépasse 125 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-26 — Longueur maximale des identifiants privés avec schemeID = 0224
+
+
+
+
+
+
+
+
+ BR-FR-26_BT-29
+ warning
+
+
+
+
+ BR-FR-26/BT-29 : L'identifiant privé (ram:GlobalID) dépasse 100 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-26_BT-46
+ warning
+
+
+
+
+ BR-FR-26/BT-46 : L'identifiant privé (ram:GlobalID) dépasse 100 caractères. Valeur actuelle : "
+
+ ".
+ Veuillez raccourcir cette valeur pour respecter la limite.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-27 — Validation du groupe Attribut d’article (BG-32)
+
+
+
+
+
+
+
+
+ BR-FR-27_BG-32
+ warning
+
+
+
+
+ BR-FR-27/BG-32 : Le groupe Attribut d’article (BG-32) doit contenir soit un nom d’attribut d’article (BT-160 : ram:Description), soit un code d’attribut d’article (EXT-FR-FE-159 : ram:TypeCode).
+ Aucun des deux éléments n’a été trouvé dans le contexte ApplicableProductCharacteristic.
+ Veuillez ajouter au moins l’un des deux éléments pour respecter la structure attendue.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-27_BT-160
+ warning
+
+
+
+
+ BR-FR-27/BT-160 : Le nom d’attribut d’article (ram:Description) ne doit pas être vide.
+ Valeur actuelle : "
+
+ ".
+ Veuillez fournir un nom d’attribut valide ou utiliser un code à la place.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-27_EXT-FR-FE-159
+ warning
+
+
+
+
+ BR-FR-27/EXT-FR-FE-159 : Le code d’attribut d’article (ram:TypeCode) ne doit pas être vide.
+ Valeur actuelle : "
+
+ ".
+ Veuillez fournir un code d’attribut valide ou utiliser un nom à la place.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-28 — Validation de la valeur d’attribut d’article (BG-32)
+
+
+
+
+
+
+
+
+ BR-FR-28_BT-161-1
+ warning
+
+
+
+
+ BR-FR-28/BT-161 : Le groupe Attribut d’article (BG-32) doit contenir soit une valeur d’attribut (BT-161 : ram:Value), soit une valeur d’attribut avec unité de mesure (EXT-FR-FE-160 : ram:ValueMeasure) accompagnée de son unité (EXT-FR-FE-161 : @unitCode), et pas les deux.
+ Veuillez fournir une valeur d’attribut ou une valeur mesurée avec son unité, et pas les deux.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-28_BT-161-2
+ warning
+
+
+
+
+ BR-FR-28/BT-161 : La valeur d’attribut (ram:Value) ne doit pas être vide.
+ Valeur actuelle : "
+
+ ".
+ Veuillez fournir une valeur d’attribut valide ou utiliser une mesure avec unité.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-28_EXT-FR-FE-160
+ warning
+
+
+
+
+ BR-FR-28/EXT-FR-FE-160 : La valeur mesurée (ram:ValueMeasure) ne doit pas être vide.
+ Valeur actuelle : "
+
+ ".
+ Veuillez fournir une valeur mesurée valide accompagnée de son unité.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-28_EXT-FR-FE-161
+ warning
+
+
+
+
+ BR-FR-28/EXT-FR-FE-161 : L’unité de mesure (@unitCode) ne doit pas être vide lorsqu’une valeur mesurée est fournie.
+ Valeur actuelle : "
+
+ ".
+ Veuillez spécifier une unité de mesure conforme.
+
+
+
+
+
+
+
+
+
+
+ BR-FR-29 — Vérification des identifiants d’objets facturés (BT-18)
+
+
+
+
+
+
+
+
+ BR-FR-29_BT-18
+ warning
+
+
+
+
+ BR-FR-29/BT-18 : Parmi les identifiants d’objets facturés (BT-18), les schémas d’identification "AFL" et "AVV" ne doivent être présents qu’une seule fois chacun.
+ Actuellement : AFL =
+
+ occurrence(s), AVV =
+
+ occurrence(s).
+ Veuillez supprimer les doublons pour respecter la règle.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-29_AFL
+ warning
+
+
+
+
+ BR-FR-29/AFL : L’identifiant associé au schéma "AFL" (ram:IssuerAssignedID) ne doit pas être vide.
+ Valeur actuelle : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-29_AVV
+ warning
+
+
+
+
+ BR-FR-29/AVV : L’identifiant associé au schéma "AVV" (ram:IssuerAssignedID) ne doit pas être vide.
+ Valeur actuelle : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-30 — Vérification des identifiants d’objets facturés à la ligne (BT-128)
+
+
+
+
+
+
+
+
+ BR-FR-30_BT-128
+ warning
+
+
+
+
+ BR-FR-30/BT-128 : Parmi les identifiants d’objets facturés à la ligne (BT-128), les schémas d’identification "AFL" et "AVV" ne doivent être présents qu’une seule fois chacun.
+ Actuellement : AFL =
+
+ occurrence(s), AVV =
+
+ occurrence(s).
+ Veuillez supprimer les doublons pour respecter la règle.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-30_AFL
+ warning
+
+
+
+
+ BR-FR-30/AFL : L’identifiant associé au schéma "AFL" (ram:IssuerAssignedID) ne doit pas être vide.
+ Valeur actuelle : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-30_AVV
+ warning
+
+
+
+
+ BR-FR-30/AVV : L’identifiant associé au schéma "AVV" (ram:IssuerAssignedID) ne doit pas être vide.
+ Valeur actuelle : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-31 — Note avec code sujet BAR : une seule valeur possible dans la liste
+
+
+
+
+
+
+
+
+
+
+ BR-FR-30_BT-21
+ warning
+
+
+
+
+ BR-FR-30/BT-21 : Lorsque plusieurs notes ont le code sujet « BAR » (BT-21), Il ne peut y avoir qu'une seule valeur associée (BT-22, contenu de la note) parmi l’une des suivantes : B2B, B2BINT, B2C, OUTOFSCOPE, ARCHIVEONLY.
+ Valeur fournie : "
+
+ " , Nombre de valeurs présentes (pas plus de 1) :
+
+ "/>". Veuillez corriger la valeur ou retirer le code sujet « BAR ».
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-03 — Présence obligatoire du contrat et de la période de facturation si type de facture = 262 (Avoir Remise Globale)
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-03_BT-3
+ warning
+
+
+
+
+ BR-FR-CO-03/BT-3 : Si le code type de la facture (BT-3) est égal à 262 (Avoir Remise Globale), alors :
+ - Le numéro de contrat (BT-12) doit être présent
+ - La période de facturation (BG-14) doit être renseignée (dates de début et de fin).
+ Valeurs actuelles : BT-12="
+
+ ", période="
+
+ à
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-04 — Une seule référence à une facture antérieure obligatoire pour les factures rectificatives (BT-3)
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-04_BT-4
+ warning
+
+
+
+
+ BR-FR-CO-04/BT-3 : Si le type de facture (BT-3) est une facture rectificative (384, 471, 472, 473), alors **une et une seule** référence à une facture antérieure (BT-25) avec sa date (BT-26) doit être présente.
+ Nombre de références valides trouvées :
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-05 — Référence obligatoire à une facture antérieure pour les avoirs (BT-3)
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-05_BT-3
+ warning
+
+
+
+
+ BR-FR-CO-05/BT-3 : Si le type de facture (BT-3) est un avoir (261, 381, 396, 502, 503), alors :
+ - soit au moins une référence à une facture antérieure (BT-25) avec sa date (BT-26) doit être présente au niveau entête,
+ - soit chaque ligne (BG-25) doit contenir une référence à une facture antérieure (EXT-FR-FE-136) avec sa date (EXT-FR-FE-138).
+ Références entête trouvées :
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-07 — La date d’échéance (BT-9) doit être postérieure ou égale à la date de facture (BT-2), sauf cas particuliers
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-07_BT-9
+ warning
+
+
+
+
+ BR-FR-CO-07/BT-9 : La date d’échéance (BT-9), si présente, doit être postérieure ou égale à la date de facture (BT-2),
+ sauf si la facture est de type acompte (386, 500, 503) ou si le cadre de facturation (BT-23) est B2, S2 ou M2.
+ Valeurs actuelles : Date facture = "
+
+ ", Date échéance = "
+
+ ", Type = "
+
+ ", Cadre = "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-08 — Incompatibilité entre cadre de facturation (BT-23) et type de facture (BT-3)
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-08_BT-23
+ warning
+
+
+
+
+ BR-FR-CO-08/BT-23 : Si le cadre de facturation (BT-23) est B4, S4 ou M4 (factures définitives après acompte), alors le type de facture (BT-3) ne peut pas être une facture ou un avoir d’acompte (386, 500, 503).
+ Valeurs actuelles : BT-23="
+
+ ", BT-3="
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-09 — Contrôle des montants et de la date d’échéance pour les factures déjà payées (BT-23)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-09_BT-23-1
+ warning
+
+
+
+
+ BR-FR-CO-09/BT-23 : Si le cadre de facturation (BT-23) est B2, S2 ou M2 (facture déjà payée), alors le montant déjà payé (BT-113) doit être égal au montant total TTC (BT-112).
+ Montant payé :
+
+ , Montant total :
+
+ .
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-09_BT-23-2
+ warning
+
+
+
+
+ BR-FR-CO-09/BT-23 : Si le cadre de facturation (BT-23) est B2, S2 ou M2, alors le net à payer (BT-115) doit être égal à 0.
+ Net à payer :
+
+ .
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-09_BT-23-3
+ warning
+
+
+
+
+ BR-FR-CO-09/BT-23 : Si le cadre de facturation (BT-23) est B2, S2 ou M2, alors la date d’échéance (BT-9) doit être renseignée et correspondre à la date de paiement.
+ Date d’échéance actuelle :
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10 — Vérification de la présence du schéma d’identifiant global (BT-29 et équivalents) et unicité du schemeID
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_BT-29-1
+ warning
+
+
+
+
+ BR-FR-CO-10/BT-29 : Si l’identifiant global du vendeur (BT-29) est renseigné, alors son schéma (BT-29-1) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_BT-29-2
+ warning
+
+
+
+
+ BR-FR-CO-10/BT-29 : Chaque schemeID ne peut apparaître qu’une seule fois dans l'identifiant privé du vendeur (BT-29).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_BT-46-1
+ warning
+
+
+
+
+ BR-FR-CO-10/BT-46 : Si l’identifiant global de l'acheteur (BT-46) est renseigné, alors son schéma (BT-46-1) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_BT-46-2
+ warning
+
+
+
+
+ BR-FR-CO-10/BT-46 : Chaque schemeID ne peut apparaître qu’une seule fois dans l'identifiant privé de l'acheteur (BT-46).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_BT-60-1
+ warning
+
+
+
+
+ BR-FR-CO-10/BT-60 : Si l’identifiant global du bénéficiaire (BT-60) est renseigné, alors son schéma (BT-60-1) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_BT-60-2
+ warning
+
+
+
+
+ BR-FR-CO-10/BT-60 : Chaque schemeID ne peut apparaître qu’une seule fois dans l'identifiant privé du bénéficiaire (BT-60).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-06-1
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-06 : Si l’identifiant global de l'agent d'acheteur (EXT-FR-FE-06) est renseigné, alors son schéma (EXT-FR-FE-07) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-06-2
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-06 : Chaque schemeID ne peut apparaître qu’une seule fois ans l'identifiant privé de l'agent d'acheteur (EXT-FR-FE-06).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-46-1
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-46 : Si l’identifiant global du payeur (EXT-FR-FE-46) est renseigné, alors son schéma (EXT-FR-FE-47) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-46-2
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-46 : Chaque schemeID ne peut apparaître qu’une seule fois ans l'identifiant privé du payeur (EXT-FR-FE-46).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-69-1
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-69 : Si l’identifiant global de l'agent du vendeur (EXT-FR-FE-69) est renseigné, alors son schéma (EXT-FR-FE-70) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-69-2
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-69 : Chaque schemeID ne peut apparaître qu’une seule fois ans l'identifiant privé de l'agent du vendeur (EXT-FR-FE-69).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-92-1
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-92 : Si l’identifiant global du facturé à (EXT-FR-FE-92) est renseigné, alors son schéma (EXT-FR-FE-92-1) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-92-2
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-92 : Chaque schemeID ne peut apparaître qu’une seule fois ans l'identifiant privé du facturé à (EXT-FR-FE-92).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-115-1
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-115 : Si l’identifiant global du facturant (EXT-FR-FE-115) est renseigné, alors son schéma (EXT-FR-FE-116) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-115-2
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-115 : Chaque schemeID ne peut apparaître qu’une seule fois ans l'identifiant privé du facturant (EXT-FR-FE-115).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_BT-71-1
+ warning
+
+
+
+
+ BR-FR-CO-10/BT-71 : Si l’identifiant global du livré à (BT-71) est renseigné, alors son schéma (BT-71-1) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_BT-71-2
+ warning
+
+
+
+
+ BR-FR-CO-10/BT-71 : Chaque schemeID ne peut apparaître qu’une seule fois ans l'identifiant privé du livré à (BT-71).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-146-1
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-146 : Si l’identifiant global du livré à à la ligne (EXT-FR-FE-146 ) est renseigné, alors son schéma (EXT-FR-FE-147) doit également être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-10_EXT-FR-FE-146-2
+ warning
+
+
+
+
+ BR-FR-CO-10/EXT-FR-FE-146 : Chaque schemeID ne peut apparaître qu’une seule fois ans l'identifiant privé du livré à à la ligne (EXT-FR-FE-146 ).
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-12 — Contrôle des devises et du montant de TVA en comptabilité si la facture n’est pas en EUR
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-12_BT-5
+ warning
+
+
+
+
+ BR-FR-CO-12/BT-5 : Si la devise de facture (BT-5) est différente de EUR, alors :
+ - la devise de comptabilité (BT-6) doit être présente et égale à EUR,
+ - le montant de TVA en devise de comptabilité (BT-111) doit être renseigné,
+ - et sa devise (BT-111-1) doit être égale à EUR.
+ Valeurs actuelles : BT-5="
+
+ ", BT-6="
+
+ ", BT-111="
+
+ "/>".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-14 — Vérification de la note TXD pour les vendeurs membres d’un assujetti unique
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-14_BT-29-1
+ warning
+
+
+
+
+ BR-FR-CO-14/BT-29-1 : Si le schéma d’identification du vendeur (BT-29-1) est '0231', cela signifie qu’il est membre d’un assujetti unique.
+ Dans ce cas, une note (BG-1) avec le code sujet 'TXD' (BT-21) et le texte 'MEMBRE_ASSUJETTI_UNIQUE' (BT-22) doit être présente.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-15 — Présence du représentant fiscal si le vendeur est membre d’un assujetti unique (BT-29-1 = 0231)
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-CO-15_BT-29-1
+ warning
+
+
+
+
+ BR-FR-CO-15/BT-29-1 : Si le vendeur est membre d’un assujetti unique (BT-29-1 = 0231), alors le bloc représentant fiscal (BG-11) doit être présent et contenir le numéro de TVA de l’assujetti unique (BT-63).
+ État actuel : représentant fiscal
+
+ , numéro de TVA = "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01 — Format des montants numériques (max 19 caractères, 2 décimales, séparateur « . »)
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-92_BT-99
+ warning
+
+
+
+ BR-FR-DEC-01/BT-92/BT-99 : Le montant « <value-of select="."/> » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-93_BT-100
+ warning
+
+
+
+ BR-FR-DEC-01/BT-93 : Le montant « <value-of select="."/> » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-106
+ warning
+
+
+
+ BR-FR-DEC-01/BT-106 : Le montant « <value-of select="."/> » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-107
+ warning
+
+
+
+ BR-FR-DEC-01/BT-107 : Le montant « <value-of select="."/> » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-108
+ warning
+
+
+
+ BR-FR-DEC-01/BT-108 : Le montant « <value-of select="."/> » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-109
+ warning
+
+
+
+ BR-FR-DEC-01/BT-109 : Le montant « <value-of select="."/> » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-110
+ warning
+
+
+
+ BR-FR-DEC-01/BT-110 : Le montant « <value-of select="."/> » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-111
+ warning
+
+
+
+ BR-FR-DEC-01/BT-111 : Le montant « <value-of select="."/> » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-112
+ warning
+
+
+
+
+ BR-FR-DEC-01/BT-112 : Le montant «
+
+ » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-113
+ warning
+
+
+
+
+ BR-FR-DEC-01/BT-113 : Le montant «
+
+ » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-114
+ warning
+
+
+
+
+ BR-FR-DEC-01/BT-114 : Le montant «
+
+ » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-115
+ warning
+
+
+
+
+ BR-FR-DEC-01/BT-115 : Le montant «
+
+ » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-116
+ warning
+
+
+
+
+ BR-FR-DEC-01/BT-116 : Le montant «
+
+ » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-117
+ warning
+
+
+
+
+ BR-FR-DEC-01/BT-117 : Le montant «
+
+ » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-131
+ warning
+
+
+
+
+ BR-FR-DEC-01/BT-131 : Le montant «
+
+ » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-136_BT-141
+ warning
+
+
+
+
+ BR-FR-DEC-01/BT-136 : Le montant «
+
+ » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-01_BT-137_BT-142
+ warning
+
+
+
+
+ BR-FR-DEC-01/BT-137 : Le montant «
+
+ » est invalide. Il doit comporter au plus 2 décimales, être exprimé avec un point comme séparateur, et ne pas dépasser 19 caractères (hors séparateur). Le signe « - » est autorisé. Veuillez corriger ce montant.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-02 — Format des quantités numériques (max 19 caractères, 4 décimales, séparateur « . »)
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-02_BT-129
+ warning
+
+
+
+
+ BR-FR-DEC-02/BT-129 : La quantité «
+
+ » est invalide. Elle doit :
+ - être un nombre avec au plus 4 décimales (séparateur « . »),
+ - contenir au maximum 19 caractères (hors séparateur),
+ - et peut commencer par un signe « - ».
+ Veuillez corriger cette quantité pour respecter le format requis.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-02_BT-149
+ warning
+
+
+
+
+ BR-FR-DEC-02/BT-149 : La quantité «
+
+ » est invalide. Elle doit :
+ - être un nombre avec au plus 4 décimales (séparateur « . »),
+ - contenir au maximum 19 caractères (hors séparateur),
+ - et peut commencer par un signe « - ».
+ Veuillez corriger cette quantité pour respecter le format requis.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-03 — Format des montants positifs (max 19 caractères, 6 décimales, séparateur « . »)
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-03_BT-146
+ warning
+
+
+
+
+ BR-FR-DEC-03/BT-146 : Le montant «
+
+ » est invalide. Il doit :
+ - être un nombre strictement positif (sans signe « - »),
+ - comporter au plus 6 décimales (séparateur « . »),
+ - contenir au maximum 19 caractères (hors séparateur).
+ Veuillez corriger ce montant pour respecter le format requis.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-03_BT-147
+ warning
+
+
+
+
+ BR-FR-DEC-03/BT-147 : Le montant «
+
+ » est invalide. Il doit :
+ - être un nombre strictement positif (sans signe « - »),
+ - comporter au plus 6 décimales (séparateur « . »),
+ - contenir au maximum 19 caractères (hors séparateur).
+ Veuillez corriger ce montant pour respecter le format requis.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-03_BT-148
+ warning
+
+
+
+
+ BR-FR-DEC-03/BT-148 : Le montant «
+
+ » est invalide. Il doit :
+ - être un nombre strictement positif (sans signe « - »),
+ - comporter au plus 6 décimales (séparateur « . »),
+ - contenir au maximum 19 caractères (hors séparateur).
+ Veuillez corriger ce montant pour respecter le format requis.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-04 — Format des taux de TVA (max 4 caractères, 2 décimales, séparateur « . »)
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-04_BT-96_BT-103
+ warning
+
+
+
+
+ BR-FR-DEC-04/BT-96 ou BT-103 : Le taux de TVA «
+
+ » est invalide. Il doit :
+ - être un nombre strictement positif (sans signe « - »),
+ - comporter au plus 2 décimales (séparateur « . »),
+ - contenir au maximum 4 caractères (hors séparateur).
+ Veuillez corriger ce taux pour respecter le format requis.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-04_BT-119
+ warning
+
+
+
+
+ BR-FR-DEC-04/BT-119 : Le taux de TVA «
+
+ » est invalide. Il doit :
+ - être un nombre strictement positif (sans signe « - »),
+ - comporter au plus 2 décimales (séparateur « . »),
+ - contenir au maximum 4 caractères (hors séparateur).
+ Veuillez corriger ce taux pour respecter le format requis.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-DEC-04_BT-152
+ warning
+
+
+
+
+ BR-FR-DEC-04/BT-152 : Le taux de TVA «
+
+ » est invalide. Il doit :
+ - être un nombre strictement positif (sans signe « - »),
+ - comporter au plus 2 décimales (séparateur « . »),
+ - contenir au maximum 4 caractères (hors séparateur).
+ Veuillez corriger ce taux pour respecter le format requis.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-01 — Vérification du sous-type de ligne lorsque le cadre de facturation est S8, B8 ou M8
+
+
+
+
+
+
+
+
+ BR-FR-MV-01_EXT-FR-FE-163
+ fatal
+
+
+
+
+ BR-FR-MV-01/EXT-FR-FE-163 : Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8, chaque ligne (BG-25) doit contenir un sous-type de ligne (ram:LineStatusReasonCode). Valeur actuelle : "
+
+ ".
+ Veuillez vérifier que le sous-type est renseigné, Veuillez vérifier que le sous-type est renseigné pour toutes les lignes.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-02 — Vérification de la présence d'une ligne GROUP sans parent lorsque le cadre de facturation est S8, B8 ou M8
+
+
+
+
+
+
+
+
+ BR-FR-MV-02_EXT-FR-FE-163
+ fatal
+
+
+
+
+ BR-FR-MV-02/EXT-FR-FE-163 : Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8, la facture doit contenir au moins une ligne (BG-25) avec le sous-type de ligne (ram:LineStatusReasonCode) égal à "GROUP" et sans identifiant de ligne parent (ram:ParentLineID).
+ Veuillez vérifier que cette ligne est présente.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-03 — Vérification des données obligatoires pour les lignes GROUP sans parent lorsque le cadre de facturation est S8, B8 ou M8
+
+
+
+
+
+
+
+
+ BR-FR-MV-03_EXT-FR-FE-164
+ fatal
+
+
+
+ BR-FR-MV-03/EXT-FR-FE-164 :
+ Ligne :
+
+ : Valeur actuelle : "
+
+ ".
+ Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8 et que la ligne est de type GROUP sans parent, le nom du vendeur (ram:Name) doit être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-03_EXT-FR-FE-167
+ fatal
+
+
+
+ BR-FR-MV-03/EXT-FR-FE-167 :
+ Ligne :
+
+ : Valeur actuelle : "
+
+ ".
+ Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8 et que la ligne est de type GROUP sans parent, l'identifiant du vendeur (ram:ID) doit être renseigné.
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-03_EXT-FR-FE-177
+ fatal
+
+
+
+ BR-FR-MV-03/EXT-FR-FE-177 :
+ Ligne :
+
+ : Valeur actuelle : "
+
+ '.
+ Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8 et que la ligne est de type GROUP sans parent, le code pays du vendeur (ram:CountryID) doit être renseigné.
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-03_EXT-FR-FE-181
+ fatal
+
+
+
+ BR-FR-MV-03/EXT-FR-FE-181 :
+ Ligne :
+
+ , Valeur actuelle : "
+
+ ".
+ Pour une ligne GROUP sans parent, le montant total avec TVA (ram:TaxTotalAmount) doit être renseigné en devise de facture.
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-03_EXT-FR-FE-182
+ fatal
+
+
+
+ BR-FR-MV-03/EXT-FR-FE-182 :
+ Ligne :
+
+ , Devise de comptabilité : "
+
+ ", TVA en ligne : "
+
+ ".
+ Pour une ligne GROUP sans parent, le montant total avec TVA (ram:TaxTotalAmount) doit être renseigné en devise de comptabilisation (BT-6) si elle est renseignée.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-03_BT-128_AFL
+ fatal
+
+
+
+
+ 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 : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-03_BT-128_AVV
+ fatal
+
+
+
+
+ BR-FR-MV-03/BT-128 : Pour une ligne GROUP sans parent, une valeur d'objet facturé (BT-128 : ram:IssuerAssignedID) avec identifiant de schéma (BT-128-1 : ram:ReferenceTypeCode) = AVV doit être présente et différente de M8/S8/B8. Valeur actuelle : "
+
+ ".
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-05 — Vérification de la cohérence des totaux HT entre la ligne GROUP et ses lignes enfants
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-05_EXT-FR-FE-BG-12
+ fatal
+
+
+
+
+ BR-FR-MV-05/EXT-FR-FE-BG-12 : Ligne GROUP :
+
+ , Somme Sous lignes :
+
+ , Nbre sous-lignes:
+
+ . Valeur actuelle : "
+
+ ".
+ Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8, le total HT (BT-131 : ram:LineTotalAmount) de la ligne GROUP doit être égal (tolérance ±0,01 * nombre de sous-lignes) à la somme des totaux HT des lignes enfants dont le ParentLineID correspond à l'identifiant de la ligne GROUP (ram:LineID).
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-06 — Vérification de la cohérence de l'identifiant légal du vendeur entre une ligne et sa ligne parent
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-06_EXT-FR-FE-167
+ fatal
+
+
+
+
+ BR-FR-MV-06/EXT-FR-FE-167 : IDligne
+
+ , ID parent ligne
+
+ , legalID :
+
+ , ParentlegalID :
+
+ .
+ Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8, chaque ligne (BG-25) doit contenir un identifiant légal de vendeur (ram:ID). Si la ligne a un identifiant de ligne parent (ram:ParentLineID), cet identifiant doit être identique à celui de la ligne parent.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-07 — Vérification de la cohérence du numéro de facture codifié AFL entre une ligne et sa ligne parent
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-07_BT-128
+ fatal
+
+
+
+
+ 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 ou M8, 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.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-08 — Vérification de la raison d'exemption TVA contenant le numéro de sous-facture en ligne entre #
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-08_BT-128
+ fatal
+
+
+
+
+ BR-FR-MV-08/BT-128 : IDligne
+
+ , Raison exemption :
+
+ / Num fact ligne:
+
+ . Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8, chaque ligne (BG-25) doit contenir une raison d'exemption TVA en texte commençant par le numéro de sous-facture en ligne entre #.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-09 — Vérification de la cohérence du montant total TVA pour une ligne GROUP avec la somme des ventilations TVA liées
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-09_EXT-FR-FE-181
+ fatal
+
+
+
+
+ BR-FR-MV-09/EXT-FR-FE-181 : Id Line Group :
+
+ , Numfact:
+
+ , Total TVA :
+
+ , Somme TVA :
+
+ .
+ Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8, le montant total TVA de la ligne GROUP (EXT-FR-FE-181) doit être égal à la somme des montants de TVA des ventilations TVA (BT-117) dont la raison d'exemption (ram:ExemptionReason) commence par le numéro de facture en ligne (BT-128 avec ReferenceTypeCode = AFL) entre #.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-10 — Vérification de la cohérence du montant total avec TVA pour une ligne GROUP
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-10_EXT-FR-FE-184
+ fatal
+
+
+
+
+ BR-FR-MV-10/EXT-FR-FE-184 : Id Line Group :
+
+ , nb sous-ligne :
+
+ ,
+ TTC :
+
+ ,
+ TVA :
+
+ ,
+ HT :
+
+
+ Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8, si le montant total avec TVA (ram:GrandTotalAmount) est présent pour une ligne GROUP sans parent, alors la différence entre ce montant et la somme du montant HT (ram:LineTotalAmount) et du montant TVA (ram:TaxTotalAmount) doit être inférieure ou égale à 0,01 × le nombre de sous-lignes DETAIL. Valeur actuelle : "
+
+ '.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-11 — Vérification de la cohérence entre l'identifiant de facture à la ligne (AFL) et le numéro de facture (BT-1) pour le Vendeur principal
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-11_BT-128
+ fatal
+
+
+
+
+ BR-FR-MV-11/BT-128 : ID Seller :
+
+ , NB ligne GROUP seller :
+
+
+ Numero de facture (BT-1) :
+
+ , num fact en ligne
+
+ .
+ Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8 et que le vendeur principal (BG-4) dispose d'un groupe de lignes, l'identifiant de facture à la ligne (ram:IssuerAssignedID avec ReferenceTypeCode = AFL) doit être identique au numéro de facture (ram:ID dans ExchangedDocument).
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-12 — Vérification de l'unicité des numéros de facture AFL pour les lignes GROUP sans parent
+
+
+
+
+
+
+
+
+ BR-FR-MV-12_BT-128
+ fatal
+
+
+
+
+ BR-FR-MV-12/BT-128 : Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8, les numéros de facture à la ligne (ram:IssuerAssignedID avec ReferenceTypeCode = AFL) pour les lignes GROUP sans parent doivent être uniques. Veuillez vérifier que chaque numéro est distinct.
+
+
+
+
+
+
+
+
+
+
+
+ BR-FR-MV-13 — Vérification que le code type de facture (BT-3) n'est pas un type auto-facturé interdit
+
+
+
+
+
+
+
+
+ BR-FR-MV-13_BT-3
+ fatal
+
+
+
+
+ BR-FR-MV-13/BT-3 : Lorsque le cadre de facturation (BT-23) est S8, B8 ou M8, le code type de facture (ram:TypeCode) ne doit pas être l'un des types auto-facturés suivants : 389, 261, 501, 500, 502, 471, 473. Valeur actuelle : "
+
+ '.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/validator/src/test/java/org/mustangproject/validator/XMLValidatorTest.java b/validator/src/test/java/org/mustangproject/validator/XMLValidatorTest.java
index 051e2b96..66fce4e3 100644
--- a/validator/src/test/java/org/mustangproject/validator/XMLValidatorTest.java
+++ b/validator/src/test/java/org/mustangproject/validator/XMLValidatorTest.java
@@ -337,6 +337,33 @@ public class XMLValidatorTest extends ResourceCase {
}
+ public void testFrenchSchematronValidation() {
+ final ValidationContext ctx = new ValidationContext(null);
+ final XMLValidator xv = new XMLValidator(ctx);
+
+ File tempFile = getResourceAsFile("validV2FR.xml");
+ try {
+ xv.setFilename(tempFile.getAbsolutePath());
+ xv.validate();
+
+ String s = "" + xv.getXMLResult() + "";
+ assertThat(s).valueByXPath("count(//error)")
+ .asInt()
+ .isEqualTo(0);
+ assertThat(s).valueByXPath("count(//warning)")
+ .asInt()
+ .isEqualTo(12);
+ assertThat(s).valueByXPath("count(//warning[contains(text(),'XP_Z12_012')])")
+ .asInt()
+ .isEqualTo(9);
+ assertThat(s).valueByXPath("/validation/summary/@status")
+ .asString()
+ .isEqualTo("valid");
+ } catch (final IrrecoverableValidationError e) {
+ fail(e.getMessage());
+ }
+ }
+
public void testUBLValidation() {
ValidationContext ctx = new ValidationContext(null);
diff --git a/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java b/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java
index 35a30d9c..4f594721 100644
--- a/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java
+++ b/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java
@@ -261,4 +261,27 @@ public class ZUGFeRDValidatorTest extends ResourceCase {
.isEqualTo("valid");
}
+ public void testXMLFRValidation() {
+ File tempFile = getResourceAsFile("validV2FR.xml");
+ ZUGFeRDValidator zfv = new ZUGFeRDValidator();
+
+ String res = zfv.validate(tempFile.getAbsolutePath());
+
+ assertThat(res).valueByXPath("count(//error)")
+ .asInt()
+ .isEqualTo(0);
+ assertThat(res).valueByXPath("count(//warning)")
+ .asInt()
+ .isEqualTo(12); // 3 empty-element warnings plus 9 French schematron warnings
+ assertThat(res).valueByXPath("count(//notice)")
+ .asInt()
+ .isEqualTo(9); // 9 notices RE XRechnung 3.0
+ assertThat(res).valueByXPath("/validation/summary/@status")
+ .asString()
+ .isEqualTo("valid");// expect to be valid because XR notices are, well, only notices
+ assertThat(res).valueByXPath("/validation/xml/summary/@status")
+ .asString()
+ .isEqualTo("valid");
+
+ }
}
diff --git a/validator/src/test/resources/validV2FR.xml b/validator/src/test/resources/validV2FR.xml
new file mode 100644
index 00000000..6efd4c4b
--- /dev/null
+++ b/validator/src/test/resources/validV2FR.xml
@@ -0,0 +1,186 @@
+
+
+
+
+ urn:cen.eu:en16931:2017
+
+
+
+ FAC-20171118-506
+ 380
+ 20171118
+
+
+
+
+ 1
+
+
+ Prestation graphique
+
+
+
+
+ 160.0000
+ 1.0000
+
+
+ 160.0000
+ 1.0000
+
+
+
+ 1.0000
+
+
+
+ VAT
+ S
+ 7.00
+
+
+ 160.00
+
+
+
+
+
+ 2
+
+
+ Ballon decoratif 500 ml
+
+
+
+
+ 0.7900
+ 1.0000
+
+
+ 0.7900
+ 1.0000
+
+
+
+ 400.0000
+
+
+
+ VAT
+ S
+ 19.00
+
+
+ 316.00
+
+
+
+
+
+ 3
+
+
+ Helium par litre
+
+
+
+
+ 0.1000
+ 1.0000
+
+
+ 0.1000
+ 1.0000
+
+
+
+ 200.0000
+
+
+
+ VAT
+ S
+ 19.00
+
+
+ 20.00
+
+
+
+
+
+ Atelier du Ballon SARL
+
+ 75001
+ 1 rue du Louvre
+ Paris
+ FR
+
+
+ 552081317
+
+
+ FR44552081317
+
+
+
+ Maison de Evenements SAS
+
+ 69002
+ 18 rue de Brest
+ Lyon
+ FR
+
+
+ FR19787878784
+
+
+
+
+
+ 20171117
+
+
+
+ FAC-20171118-506
+ EUR
+
+ 42
+ Virement bancaire
+
+ FR76 3000 6000 0112 3456 7890 189
+
+
+ AGRIFRPPXXX
+
+
+
+ 11.20
+ VAT
+ 160.00
+ S
+ 7.00
+
+
+ 63.84
+ VAT
+ 336.00
+ S
+ 19.00
+
+
+ Paiement sans escompte avant le 09.12.2017
+ 20171209
+
+
+ 496.00
+ 0.00
+ 0.00
+ 496.00
+ 75.04
+ 571.04
+ 571.04
+
+
+
+