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 + + + +