TTN eFatoora — TEIF 1.8.8
Tunisian e-invoice format (Tunisie TradeNet Invoice Format) version 1.8.8
Drag and drop your XML invoice here
or click to browse files
XML format · Max 5 MB
No invoice? Try with a sample ↗
Dictionnaire de validation pour la facture électronique tunisienne TEIF (Tunisie TradeNet Invoice Format) version 1.8.8
Version 1.8.8 · 95 champs · 45 règles · 21 tables
Structure du document
teif-invoice/TEIFteif.versionVersion TEIFteif.controlingAgencyAgence de contrôleheader.senderIdentifierIdentifiant émetteurheader.senderIdentifierTypeType identifiant émetteurheader.receiverIdentifierIdentifiant destinataireheader.receiverIdentifierTypeType identifiant destinatairebgm.documentIdentifierNuméro de documentbgm.documentTypeCodeCode type de documentbgm.documentTypeLabelLibellé type documentdtm.issueDateDate d'émission (I-31, format ddMMyy)dtm.dueDateDate d'échéance (I-32)dtm.periodDatePériode de facturation (I-36)seller.identifierIdentifiant fournisseurseller.identifierTypeType identifiant fournisseurseller.nameNom du fournisseurseller.nameTypeFormat nom fournisseur (Physical/Qualification)seller.addressDescriptionDescription adresse fournisseurseller.streetRue fournisseurseller.cityVille fournisseurseller.postalCodeCode postal fournisseurseller.countryPays fournisseur (ISO 3166-1)buyer.identifierIdentifiant acheteurbuyer.identifierTypeType identifiant acheteurbuyer.nameNom de l'acheteurbuyer.nameTypeFormat nom acheteur (Physical/Qualification)buyer.addressDescriptionDescription adresse acheteurbuyer.streetRue acheteurbuyer.cityVille acheteurbuyer.postalCodeCode postal acheteurbuyer.countryPays acheteur (ISO 3166-1)invoice.currencyDevise factureinvoice.totalInclTaxTotal TTC (I-180)invoice.totalExclTaxTotal HT base taxe (I-182)invoice.totalTaxTotal taxes proportionnelles (I-181)invoice.totalHTAllLinesTotal HT facture toutes lignes (I-176)invoice.companyCapitalCapital de l'entreprise (I-179)invoice.totalExemptMontant total exonéré (I-185)invoice.totalSuspendedVATMontant suspension TVA (I-187)additionalDoc.identifierIdentifiant du document jointadditionalDoc.nameNom du document jointadditionalDoc.dateDate du document jointrefTtn.referenceRéférence TTN (I-88, renseigné par TTN après validation)refTtn.referenceDateDate génération référence TTN (I-37)/TEIF/InvoiceBody/PartnerSection/PartnerDetails/LocpartnerLoc.functionCodeCode fonction localisation partenaire (I5)partnerLoc.valueValeur localisation partenaire/TEIF/InvoiceBody/PartnerSection/PartnerDetails/RffSectionrff.refIdCode qualificatif de référencerff.refValueValeur de la référence partenaire/TEIF/InvoiceBody/PartnerSection/PartnerDetails/CtaSectioncta.contactFunctionCodeCode fonction contactcta.contactIdentifierIdentifiant du contactcta.contactNameNom du contactcta.comMeansTypeType moyen de communicationcta.comAddressAdresse / numéro de communication/TEIF/InvoiceBody/PytSection/PytSectionDetailspyt.termsTypeCodeCode conditions de paiementpyt.termsDescriptionDescription conditions de paiementpytFii.functionCodeCode institution financièrepytFii.accountNumberNuméro de compte bancairepytFii.ownerIdentifierIdentifiant propriétaire du comptepytFii.branchIdentifierCode agence bancairepytFii.institutionNameNom de l'institution financière/TEIF/InvoiceBody/Ftxftx.subjectCodeCode sujet texte libre (I4)ftx.textTexte libre/TEIF/InvoiceBody/LinSection/Linlin.itemIdentifierIdentifiant lignelin.itemCodeCode articlelin.descriptionDescription articlelin.quantityQuantitélin.measurementUnitUnité de mesurelin.unitPricePrix unitaire HT (I-183)lin.lineAmountMontant HT ligne (I-171)lin.taxTypeCodeCode type taxe lignelin.taxRateTaux de taxe ligne (%)lin.dateTextDate lignelinAlc.alcTypeCodeCode type remise/charge ligne (I-151 à I-155)linAlc.alcPercentPourcentage remise/charge lignelinFtx.subjectCodeCode sujet texte libre ligne (I4)linFtx.textTexte libre ligne/TEIF/InvoiceBody/LinSection/Lin/SubLinsublin.itemIdentifierIdentifiant sous-lignesublin.itemCodeCode article sous-lignesublin.descriptionDescription article sous-lignesublin.quantityQuantité sous-lignesublin.measurementUnitUnité de mesure sous-lignesublin.unitPricePrix unitaire HT sous-ligne (I-183)sublin.lineAmountMontant HT sous-ligne (I-171)sublin.taxTypeCodeCode type taxe sous-lignesublin.taxRateTaux de taxe sous-ligne (%)sublin.dateTextDate sous-lignesublin.alcTypeCodeCode type remise/charge sous-lignesublin.alcPercentPourcentage remise/charge sous-ligne/TEIF/InvoiceBody/InvoiceTax/InvoiceTaxDetailstaxDetail.taxTypeCodeCode type taxetaxDetail.taxRateTaux de taxe récapitulatiftaxDetail.taxBaseBase imposable (I-177)taxDetail.taxAmountMontant taxe (I-178)/TEIF/InvoiceBody/InvoiceAlcinvoiceAlc.alcTypeCodeCode type remise/charge facture (I-151 à I-155)invoiceAlc.alcAmountMontant remise/charge facture/TEIF/InvoiceBody/LocSection/LocDetailsloc.functionCodeCode fonction localisation facture (I5)loc.valueValeur localisation factureChamps
95 définis| Identifiant | Label | Type | Requis |
|---|---|---|---|
teif.version | Version TEIF | CODE | — |
teif.controlingAgency | Agence de contrôle | TEXT | — |
header.senderIdentifier | Identifiant émetteur | ID | — |
header.senderIdentifierType | Type identifiant émetteur | CODE | — |
header.receiverIdentifier | Identifiant destinataire | ID | — |
header.receiverIdentifierType | Type identifiant destinataire | CODE | — |
bgm.documentIdentifier | Numéro de document | ID | — |
bgm.documentTypeCode | Code type de document | CODE | — |
bgm.documentTypeLabel | Libellé type document | TEXT | — |
dtm.issueDate | Date d'émission (I-31, format ddMMyy) | DATE_DDMMYY | — |
dtm.dueDate | Date d'échéance (I-32) | DATE_DDMMYY | — |
dtm.periodDate | Période de facturation (I-36) | DATE_DDMMYY | — |
seller.identifier | Identifiant fournisseur | ID | — |
seller.identifierType | Type identifiant fournisseur | CODE | — |
seller.name | Nom du fournisseur | TEXT | — |
seller.nameType | Format nom fournisseur (Physical/Qualification) | CODE | — |
seller.addressDescription | Description adresse fournisseur | TEXT | — |
seller.street | Rue fournisseur | TEXT | — |
seller.city | Ville fournisseur | TEXT | — |
seller.postalCode | Code postal fournisseur | TEXT | — |
seller.country | Pays fournisseur (ISO 3166-1) | CODE | — |
buyer.identifier | Identifiant acheteur | ID | — |
buyer.identifierType | Type identifiant acheteur | CODE | — |
buyer.name | Nom de l'acheteur | TEXT | — |
buyer.nameType | Format nom acheteur (Physical/Qualification) | CODE | — |
buyer.addressDescription | Description adresse acheteur | TEXT | — |
buyer.street | Rue acheteur | TEXT | — |
buyer.city | Ville acheteur | TEXT | — |
buyer.postalCode | Code postal acheteur | TEXT | — |
buyer.country | Pays acheteur (ISO 3166-1) | CODE | — |
partnerLoc.functionCode | Code fonction localisation partenaire (I5) | CODE | — |
partnerLoc.value | Valeur localisation partenaire | TEXT | — |
rff.refId | Code qualificatif de référence | CODE | — |
rff.refValue | Valeur de la référence partenaire | TEXT | — |
cta.contactFunctionCode | Code fonction contact | CODE | — |
cta.contactIdentifier | Identifiant du contact | ID | — |
cta.contactName | Nom du contact | TEXT | — |
cta.comMeansType | Type moyen de communication | CODE | — |
cta.comAddress | Adresse / numéro de communication | TEXT | — |
loc.functionCode | Code fonction localisation facture (I5) | CODE | — |
loc.value | Valeur localisation facture | TEXT | — |
pyt.termsTypeCode | Code conditions de paiement | CODE | — |
pyt.termsDescription | Description conditions de paiement | TEXT | — |
pytFii.functionCode | Code institution financière | CODE | — |
pytFii.accountNumber | Numéro de compte bancaire | ID | — |
pytFii.ownerIdentifier | Identifiant propriétaire du compte | TEXT | — |
pytFii.branchIdentifier | Code agence bancaire | TEXT | — |
pytFii.institutionName | Nom de l'institution financière | TEXT | — |
ftx.subjectCode | Code sujet texte libre (I4) | CODE | — |
ftx.text | Texte libre | TEXT | — |
invoice.currency | Devise facture | CODE | — |
invoice.totalInclTax | Total TTC (I-180) | AMOUNT | — |
invoice.totalExclTax | Total HT base taxe (I-182) | AMOUNT | — |
invoice.totalTax | Total taxes proportionnelles (I-181) | AMOUNT | — |
invoice.totalHTAllLines | Total HT facture toutes lignes (I-176) | AMOUNT | — |
invoice.companyCapital | Capital de l'entreprise (I-179) | AMOUNT | — |
invoice.totalExempt | Montant total exonéré (I-185) | AMOUNT | — |
invoice.totalSuspendedVAT | Montant suspension TVA (I-187) | AMOUNT | — |
lin.itemIdentifier | Identifiant ligne | ID | — |
lin.itemCode | Code article | CODE | — |
lin.description | Description article | TEXT | — |
lin.quantity | Quantité | TEXT | — |
lin.measurementUnit | Unité de mesure | CODE | — |
lin.unitPrice | Prix unitaire HT (I-183) | AMOUNT | — |
lin.lineAmount | Montant HT ligne (I-171) | AMOUNT | — |
lin.taxTypeCode | Code type taxe ligne | CODE | — |
lin.taxRate | Taux de taxe ligne (%) | PERCENTAGE | — |
lin.dateText | Date ligne | DATE_DDMMYY | — |
linAlc.alcTypeCode | Code type remise/charge ligne (I-151 à I-155) | CODE | — |
linAlc.alcPercent | Pourcentage remise/charge ligne | PERCENTAGE | — |
linFtx.subjectCode | Code sujet texte libre ligne (I4) | CODE | — |
linFtx.text | Texte libre ligne | TEXT | — |
sublin.itemIdentifier | Identifiant sous-ligne | ID | — |
sublin.itemCode | Code article sous-ligne | CODE | — |
sublin.description | Description article sous-ligne | TEXT | — |
sublin.quantity | Quantité sous-ligne | TEXT | — |
sublin.measurementUnit | Unité de mesure sous-ligne | CODE | — |
sublin.unitPrice | Prix unitaire HT sous-ligne (I-183) | AMOUNT | — |
sublin.lineAmount | Montant HT sous-ligne (I-171) | AMOUNT | — |
sublin.taxTypeCode | Code type taxe sous-ligne | CODE | — |
sublin.taxRate | Taux de taxe sous-ligne (%) | PERCENTAGE | — |
sublin.dateText | Date sous-ligne | DATE_DDMMYY | — |
sublin.alcTypeCode | Code type remise/charge sous-ligne | CODE | — |
sublin.alcPercent | Pourcentage remise/charge sous-ligne | PERCENTAGE | — |
taxDetail.taxTypeCode | Code type taxe | CODE | — |
taxDetail.taxRate | Taux de taxe récapitulatif | PERCENTAGE | — |
taxDetail.taxBase | Base imposable (I-177) | AMOUNT | — |
taxDetail.taxAmount | Montant taxe (I-178) | AMOUNT | — |
invoiceAlc.alcTypeCode | Code type remise/charge facture (I-151 à I-155) | CODE | — |
invoiceAlc.alcAmount | Montant remise/charge facture | AMOUNT | — |
additionalDoc.identifier | Identifiant du document joint | ID | — |
additionalDoc.name | Nom du document joint | TEXT | — |
additionalDoc.date | Date du document joint | DATE_DDMMYY | — |
refTtn.reference | Référence TTN (I-88, renseigné par TTN après validation) | ID | — |
refTtn.referenceDate | Date génération référence TTN (I-37) | TEXT | — |
Règles de validation
45 règlesTEIF-R001ERRORLa version TEIF doit être une valeur reconnue (1.8.1 à 1.8.8).
Version TEIF ∈ Versions TEIF supportées : {1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6 … (8 valeurs)}
TEIF-R002ERRORL'agence de contrôle doit être 'TTN' ou 'Tunisie TradeNet'.
Agence de contrôle ∈ Agences de contrôle autorisées : {TTN, Tunisie TradeNet}
TEIF-R003ERRORL'identifiant du document (numéro de facture) est obligatoire.
Numéro de document est obligatoire
TEIF-R004ERRORLe code type de document doit être une valeur reconnue : I-11 (Facture), I-12 (Avoir), I-13 (Honoraire), I-14 (Décompte marché public), I-15 (Export), I-16 (Bon de commande).
Code type de document ∈ Codes types de document (I1) : {I-11, I-12, I-13, I-14, I-15, I-16}
TEIF-R005ERRORLa date d'émission (DateText functionCode='I-31') est obligatoire.
Date d'émission (I-31, format ddMMyy) est obligatoire
TEIF-R006ERRORL'identifiant du fournisseur (PartnerDetails functionCode='I-62') est obligatoire.
Identifiant fournisseur est obligatoire
TEIF-R007ERRORLe nom du fournisseur (PartnerName) est obligatoire.
Nom du fournisseur est obligatoire
TEIF-R008ERRORL'identifiant de l'acheteur (PartnerDetails functionCode='I-64') est obligatoire.
Identifiant acheteur est obligatoire
TEIF-R009ERRORLe nom de l'acheteur (PartnerName) est obligatoire.
Nom de l'acheteur est obligatoire
TEIF-R010ERRORLe montant total TTC (Moa amountTypeCode='I-180') est obligatoire.
Total TTC (I-180) est obligatoire
TEIF-R011ERRORL'émetteur (MessageSenderIdentifier) doit être identifié par un matricule fiscal tunisien (type I-01). Guide §5.2.1 p.15.
Type identifiant émetteur = "I-01"
TEIF-R012ERRORLa devise (currencyIdentifier) doit être TND, EUR ou USD. Guide §5.9.2.5 p.66.
Devise facture ∈ Devises autorisées (Guide §5.9.2.5 p.66) : {TND, EUR, USD}
TEIF-R013ERRORLe matricule fiscal (I-01) doit respecter le format : 7 chiffres + clef alphabétique + code TVA (A/B/P/F/N) + catégorie (M/C/P/N/E) + 3 chiffres établissement. Guide §5.2.1.1 p.15-17.
Type identifiant émetteur = "I-01"
Identifiant émetteur correspond au motif : ^[0-9]{7}[A-Z][ABPFN][MCPNE][0-9]{3}$
TEIF-R014ERRORL'unité de mesure (Quantity/@measurementUnit) est obligatoire sur chaque ligne (XSD use='required').
Unité de mesure est obligatoire
TEIF-R015ERRORLe taux de taxe ligne (TaxRate) doit être un nombre entre 0 et 99.9 avec au plus 1 décimale (ex : 0, 7, 13, 19, 19.5).
Taux de taxe ligne (%) correspond au motif : ^[0-9]{1,2}(\.[0-9])?$
TEIF-R016ERRORLe code type de taxe ligne (LinTax/TaxTypeName/@code) doit être une valeur reconnue (I-1602 TVA, I-1601 droit de timbre, I-162 FODEC…).
Code type taxe ligne ∈ Codes types de taxe (I16) : {I-160, I-161, I-162, I-163, I-164, I-165 … (14 valeurs)}
TEIF-R017ERRORLe code type de taxe récapitulatif (InvoiceTax/Tax/TaxTypeName/@code) doit être une valeur reconnue.
Code type taxe ∈ Codes types de taxe (I16) : {I-160, I-161, I-162, I-163, I-164, I-165 … (14 valeurs)}
TEIF-R018ERRORLe code type de document (DocumentType/@code) est obligatoire.
Code type de document est obligatoire
TEIF-CO-01ERRORLe total HT (I-182) doit être égal à la somme des montants HT des lignes (I-171), avec une tolérance de 0.01.
Total HT base taxe (I-182) est présent
Total HT base taxe (I-182) = Σ lin.lineAmount sur lin.lineAmount (±0.01)
TEIF-CO-02ERRORLe total TTC (I-180) doit être égal au total HT (I-182) + total taxes proportionnelles (I-181), avec une tolérance de 0.01. Note : le droit de timbre (I-1601) est EXCLU de I-181 mais INCLUS dans I-180.
Total TTC (I-180) est présent et Total HT base taxe (I-182) est présent et Total taxes proportionnelles (I-181) est présent
Total TTC (I-180) = Total HT base taxe (I-182) + Total taxes proportionnelles (I-181) (±0.01)
TEIF-R019ERRORLe type d'identifiant de l'acheteur doit être I-01 (matricule fiscal), I-02 (CIN), I-03 (carte de séjour) ou I-04 (matricule fiscal étranger).
Type identifiant acheteur ∈ Types d'identifiant partenaire (I0) : {I-01, I-02, I-03, I-04}
TEIF-R020ERRORLe type d'identifiant du fournisseur doit être I-01 (matricule fiscal), I-02 (CIN), I-03 (carte de séjour) ou I-04 (matricule fiscal étranger).
Type identifiant fournisseur ∈ Types d'identifiant partenaire (I0) : {I-01, I-02, I-03, I-04}
TEIF-R021ERRORLe code conditions de paiement (PaymentTearmsTypeCode) doit être une valeur reconnue : I-111 à I-117.
Code conditions de paiement est présent
Code conditions de paiement ∈ Codes conditions de paiement (I11) : {I-111, I-112, I-113, I-114, I-115, I-116 … (7 valeurs)}
TEIF-R022ERRORLe code institution financière (PytFii/@functionCode) doit être I-141 (Poste), I-142 (Banque) ou I-143 (Autre).
Code institution financière est présent
Code institution financière ∈ Codes institutions financières (I14) : {I-141, I-142, I-143}
TEIF-R023ERRORLe code fonction contact (Contact/@functionCode) doit être I-91 (Technique), I-92 (Juridique), I-93 (Commercial) ou I-94 (Autre).
Code fonction contact est présent
Code fonction contact ∈ Codes fonction contact (I9) : {I-91, I-92, I-93, I-94}
TEIF-R024ERRORLe type de moyen de communication (ComMeansType) doit être I-101 (Tél.), I-102 (Fax), I-103 (Email) ou I-104 (Autre).
Type moyen de communication est présent
Type moyen de communication ∈ Codes moyens de communication (I10) : {I-101, I-102, I-103, I-104}
TEIF-R025ERRORLe code qualificatif de référence (Reference/@refID) doit appartenir au référentiel I8 (I-80 à I-89, I-811 à I-818, I-871).
Code qualificatif de référence est présent
Code qualificatif de référence ∈ Codes qualificatifs de référence (I8) : {I-80, I-81, I-811, I-812, I-813, I-814 … (19 valeurs)}
TEIF-R026ERRORLe code sujet du texte libre (Ftx/SubjectCode) doit être une valeur reconnue : I-41 à I-48.
Code sujet texte libre (I4) est présent
Code sujet texte libre (I4) ∈ Codes sujet texte libre (I4) : {I-41, I-42, I-43, I-44, I-45, I-46 … (8 valeurs)}
TEIF-R027ERRORLe droit de timbre (I-1601) est un montant fixe non proportionnel : son TaxRate doit être 0. Le montant réel est en I-178 (Montant Taxe). Il est EXCLU de I-181 (Total Taxe) mais INCLUS dans I-180 (Total TTC). Guide §5.10 + XML officiel.
Code type taxe = "I-1601"
Taux de taxe récapitulatif = "0"
TEIF-R028ERRORLe format du nom fournisseur (PartnerName/@nameType) doit être 'Physical' (personne physique) ou 'Qualification' (personne morale). Valeurs définies dans le XSD NadType (pas dans le référentiel I7 du Guide).
Format nom fournisseur (Physical/Qualification) est présent
Format nom fournisseur (Physical/Qualification) ∈ Codes format nom partenaire (XSD NadType/@nameType) : {Physical, Qualification}
TEIF-R029ERRORLe format du nom acheteur (PartnerName/@nameType) doit être 'Physical' (personne physique) ou 'Qualification' (personne morale). Valeurs définies dans le XSD NadType (pas dans le référentiel I7 du Guide).
Format nom acheteur (Physical/Qualification) est présent
Format nom acheteur (Physical/Qualification) ∈ Codes format nom partenaire (XSD NadType/@nameType) : {Physical, Qualification}
TEIF-R030ERRORLe taux de taxe récapitulatif (InvoiceTaxDetails/TaxRate) doit être un nombre entre 0 et 99.9 avec au plus 1 décimale (ex : 0, 7, 13, 19, 19.5).
Taux de taxe récapitulatif correspond au motif : ^[0-9]{1,2}(\.[0-9])?$
TEIF-R031ERRORLa date d'émission doit être au format ddMMyy (6 chiffres). Exemple : 010125 pour le 1er janvier 2025. Guide §5.9.2.6.
Date d'émission (I-31, format ddMMyy) correspond au motif : ^[0-9]{6}$
TEIF-R033ERRORLe code type de remise/charge ligne (LinAlc/Alc/@allowanceCode) doit être I-151 à I-155.
Code type remise/charge ligne (I-151 à I-155) est présent
Code type remise/charge ligne (I-151 à I-155) ∈ Codes types de remise/charge (I15) : {I-151, I-152, I-153, I-154, I-155}
TEIF-R034ERRORLe code type de remise/charge facture (InvoiceAlc/AllowanceDetails/Alc/@allowanceCode) doit être I-151 à I-155.
Code type remise/charge facture (I-151 à I-155) est présent
Code type remise/charge facture (I-151 à I-155) ∈ Codes types de remise/charge (I15) : {I-151, I-152, I-153, I-154, I-155}
TEIF-R035ERRORLe code fonction localisation facture (LocSection/LocDetails/@functionCode) doit appartenir au référentiel I5 (I-51 à I-59).
Code fonction localisation facture (I5) est présent
Code fonction localisation facture (I5) ∈ Codes fonction localisation (I5) : {I-51, I-52, I-53, I-54, I-55, I-56 … (9 valeurs)}
TEIF-R036ERRORLe code fonction localisation partenaire (PartnerDetails/Loc/@functionCode) doit appartenir au référentiel I5 (I-51 à I-59).
Code fonction localisation partenaire (I5) est présent
Code fonction localisation partenaire (I5) ∈ Codes fonction localisation (I5) : {I-51, I-52, I-53, I-54, I-55, I-56 … (9 valeurs)}
TEIF-R037ERRORLe code sujet du texte libre ligne (LinFtx/FreeTextDetail/@subjectCode) doit être une valeur reconnue : I-41 à I-48.
Code sujet texte libre ligne (I4) est présent
Code sujet texte libre ligne (I4) ∈ Codes sujet texte libre (I4) : {I-41, I-42, I-43, I-44, I-45, I-46 … (8 valeurs)}
TEIF-R042ERRORCohérence montant taxe : pour chaque InvoiceTaxDetails, taxAmount doit être égal à taxBase × taxRate / 100 (±0.01). Le type de taxe est ignoré — la formule s'applique à tous les blocs.
Règle personnalisée : teif-tax-rate-check
TEIF-R043ERRORCohérence montant HT ligne : pour chaque Lin, I-171 doit être égal à I-183 × quantité × (1 − remise%) (±0.01). Si I-183 absent, la ligne est ignorée.
Règle personnalisée : teif-lin-amount-check
TEIF-R038WARNINGDes sous-lignes (SubLin) sont présentes. La cohérence des montants entre la ligne parente et ses sous-lignes n'est pas vérifiée — aucune règle de cohérence n'est définie dans TEIF. La validation SubLin est limitée à 1 niveau d'imbrication (SubLin de SubLin non validé).
Identifiant sous-ligne est interdit
TEIF-R039ERRORL'unité de mesure (Quantity/@measurementUnit) est obligatoire sur chaque sous-ligne (XSD use='required').
Identifiant sous-ligne est présent
Unité de mesure sous-ligne est obligatoire
TEIF-R040ERRORLe taux de taxe sous-ligne (TaxRate) doit être un nombre entre 0 et 99.9 avec au plus 1 décimale (ex : 0, 7, 13, 19, 19.5).
Taux de taxe sous-ligne (%) est présent
Taux de taxe sous-ligne (%) correspond au motif : ^[0-9]{1,2}(\.[0-9])?$
TEIF-R041ERRORLe code type de taxe sous-ligne (LinTax/TaxTypeName/@code) doit être une valeur reconnue (I-1602 TVA, I-1601 droit de timbre, I-162 FODEC…).
Code type taxe sous-ligne est présent
Code type taxe sous-ligne ∈ Codes types de taxe (I16) : {I-160, I-161, I-162, I-163, I-164, I-165 … (14 valeurs)}
TEIF-R044ERRORCohérence croisée lignes / récapitulatif taxe : pour chaque InvoiceTaxDetails(taxTypeCode, taxRate), I-177 doit égaler la somme des I-171 des lignes ayant le même taxTypeCode et le même taxRate (±0.01). Chaque groupe de lignes doit avoir un InvoiceTaxDetails correspondant.
Règle personnalisée : teif-tax-cross-check
Tables de référence
21 listesVersions TEIF supportées
teif-versionsCodes types de document (I1)
document-type-codesTypes d'identifiant partenaire (I0)
identifier-typesCodes langue (I2)
language-codesCodes fonction date (I3)
date-function-codesCodes sujet texte libre (I4)
ftx-subject-codesCodes fonction localisation (I5)
location-function-codesCodes fonction partenaire (I6)
partner-function-codesCodes format nom partenaire (XSD NadType/@nameType)
name-format-codesCodes qualificatifs de référence (I8)
reference-qualifier-codesCodes fonction contact (I9)
contact-function-codesCodes moyens de communication (I10)
communication-means-codesCodes conditions de paiement (I11)
payment-terms-codesCodes modalités de paiement (I12)
payment-condition-codesCodes moyens de paiement (I13)
payment-means-codesCodes institutions financières (I14)
financial-institution-codesCodes types de remise/charge (I15)
allowance-type-codesCodes types de taxe (I16)
tax-type-codesCodes types de montant (I17)
amount-type-codesDevises autorisées (Guide §5.9.2.5 p.66)
currenciesAgences de contrôle autorisées
controlling-agencies