TTN eFatoora - TEIF 1.8.8
Tunesisches E-Rechnungsformat (Tunisie TradeNet Invoice Format) Version 1.8.8
TEIF 1.8.8 · Signaturen nicht validiert · TTN-Transportworkflow nicht validiert
Ziehen Sie Ihre XML-Datei hierher
oder zum Durchsuchen klicken
Nur XML · max. 1 MB · 20 Transaktionen
Geführte Demo-Beispiele
Verwenden Sie diese nur, um die Diagnoseansicht vorab zu testen. Ihre eigene XML-Datei bleibt der Hauptablauf.
Downloads bevorzugt? gültige XML oder ungültige XML
Dateien werden nur im Arbeitsspeicher verarbeitet — nichts wird gespeichert oder an Dritte übertragen.
Unterstützte Funktionen
- +TEIF 1.8.8 XML validation
- +Required document identifiers
- +Currency lookup checks
- +Invoice total consistency checks
- +Sender and document metadata checks
Aktuelle Einschränkungen
- −TTN transport workflow is not validated
- −Digital signatures are not validated
- −Post-submission TTN references are treated as informational
- −Real-world TTN edge cases require additional samples
Dokumentstruktur
95 Felder · 45 Regeln · 21 Tabellen/TEIFteif.versionTEIF-Versionteif.controlingAgencyKontrollbehördeheader.senderIdentifierAbsenderkennungheader.senderIdentifierTypeAbsenderkennungstypheader.receiverIdentifierEmpfängerkennungheader.receiverIdentifierTypeEmpfängerkennungstypbgm.documentIdentifierDokumentnummerbgm.documentTypeCodeDokumenttypcodebgm.documentTypeLabelDokumenttypbezeichnungdtm.issueDateAusstellungsdatum (I-31, ddMMyy)dtm.dueDateFälligkeitsdatum (I-32)dtm.periodDateAbrechnungszeitraum (I-36)seller.identifierVerkäuferkennungseller.identifierTypeVerkäuferkennungstypseller.nameVerkäufernameseller.nameTypeVerkäufernamenformat (Physical/Qualification)seller.addressDescriptionVerkäuferadressbeschreibungseller.streetVerkäuferstraßeseller.cityVerkäuferstadtseller.postalCodeVerkäufer-Postleitzahlseller.countryVerkäuferland (ISO 3166-1)buyer.identifierKäuferkennungbuyer.identifierTypeKäuferkennungstypbuyer.nameKäufernamebuyer.nameTypeKäufernamenformat (Physical/Qualification)buyer.addressDescriptionKäuferadressbeschreibungbuyer.streetKäuferstraßebuyer.cityKäuferstadtbuyer.postalCodeKäufer-Postleitzahlbuyer.countryKäuferland (ISO 3166-1)invoice.currencyRechnungswährunginvoice.totalInclTaxGesamtbetrag inkl. Steuer (I-180)invoice.totalExclTaxGesamtbetrag exkl. Steuer (I-182)invoice.totalTaxGesamte proportionale Steuern (I-181)invoice.totalHTAllLinesGesamtbetrag exkl. Steuer alle Positionen (I-176)invoice.companyCapitalUnternehmenskapital (I-179)invoice.totalExemptGesamter steuerfreier Betrag (I-185)invoice.totalSuspendedVATMwSt.-Aussetzungsbetrag (I-187)additionalDoc.identifierKennung des angehängten DokumentsadditionalDoc.nameName des angehängten DokumentsadditionalDoc.dateDatum des angehängten DokumentsrefTtn.referenceTTN-Referenz (I-88, von TTN nach Validierung ausgefüllt)refTtn.referenceDateTTN-Referenz-Generierungsdatum (I-37)/TEIF/InvoiceBody/PartnerSection/PartnerDetails/LocpartnerLoc.functionCodePartnerstandortfunktionscode (I5)partnerLoc.valuePartnerstandortwert/TEIF/InvoiceBody/PartnerSection/PartnerDetails/RffSectionrff.refIdReferenzqualifikationscoderff.refValuePartnerreferenzwert/TEIF/InvoiceBody/PartnerSection/PartnerDetails/CtaSectioncta.contactFunctionCodeKontaktfunktionscodecta.contactIdentifierKontaktkennungcta.contactNameKontaktnamecta.comMeansTypeKommunikationsmitteltypcta.comAddressKommunikationsadresse / -nummer/TEIF/InvoiceBody/PytSection/PytSectionDetailspyt.termsTypeCodeZahlungsbedingungscodepyt.termsDescriptionZahlungsbedingungsbeschreibungpytFii.functionCodeFinanzinstitutscodepytFii.accountNumberBankkontonummerpytFii.ownerIdentifierKontoinhaberkennungpytFii.branchIdentifierBankfilialcodepytFii.institutionNameName des Finanzinstituts/TEIF/InvoiceBody/Ftxftx.subjectCodeFreitext-Betreffcode (I4)ftx.textFreitext/TEIF/InvoiceBody/LinSection/Linlin.itemIdentifierPositionskennunglin.itemCodeArtikelcodelin.descriptionArtikelbeschreibunglin.quantityMengelin.measurementUnitMaßeinheitlin.unitPriceEinzelpreis exkl. Steuer (I-183)lin.lineAmountPositionsbetrag exkl. Steuer (I-171)lin.taxTypeCodePositionssteuertyp-Codelin.taxRatePositionssteuersatz (%)lin.dateTextPositionsdatumlinAlc.alcTypeCodePositionsnachlass-/Zuschlagstyp-Code (I-151 bis I-155)linAlc.alcPercentPositionsnachlass-/ZuschlagsprozentsatzlinFtx.subjectCodePositionsfreitext-Betreffcode (I4)linFtx.textPositionsfreitext/TEIF/InvoiceBody/LinSection/Lin/SubLinsublin.itemIdentifierUnterpositionskennungsublin.itemCodeUnterpositionsartikelcodesublin.descriptionUnterpositionsartikelbeschreibungsublin.quantityUnterpositionsmengesublin.measurementUnitUnterpositionsmaßeinheitsublin.unitPriceUnterpositions-Einzelpreis exkl. Steuer (I-183)sublin.lineAmountUnterpositionsbetrag exkl. Steuer (I-171)sublin.taxTypeCodeUnterpositionssteuertyp-Codesublin.taxRateUnterpositionssteuersatz (%)sublin.dateTextUnterpositionsdatumsublin.alcTypeCodeUnterpositionsnachlass-/Zuschlagstyp-Codesublin.alcPercentUnterpositionsnachlass-/Zuschlagsprozentsatz/TEIF/InvoiceBody/InvoiceTax/InvoiceTaxDetailstaxDetail.taxTypeCodeSteuertyp-CodetaxDetail.taxRateZusammenfassender SteuersatztaxDetail.taxBaseSteuerbasis (I-177)taxDetail.taxAmountSteuerbetrag (I-178)/TEIF/InvoiceBody/InvoiceAlcinvoiceAlc.alcTypeCodeRechnungsnachlass-/Zuschlagstyp-Code (I-151 bis I-155)invoiceAlc.alcAmountRechnungsnachlass-/-zuschlagsbetrag/TEIF/InvoiceBody/LocSection/LocDetailsloc.functionCodeRechnungsstandortfunktionscode (I5)loc.valueRechnungsstandortwertFelder
95 definiert| Kennung | Bezeichnung | Typ | Pflichtfeld |
|---|---|---|---|
teif.version | TEIF-Version | CODE | — |
teif.controlingAgency | Kontrollbehörde | TEXT | — |
header.senderIdentifier | Absenderkennung | ID | — |
header.senderIdentifierType | Absenderkennungstyp | CODE | — |
header.receiverIdentifier | Empfängerkennung | ID | — |
header.receiverIdentifierType | Empfängerkennungstyp | CODE | — |
bgm.documentIdentifier | Dokumentnummer | ID | — |
bgm.documentTypeCode | Dokumenttypcode | CODE | — |
bgm.documentTypeLabel | Dokumenttypbezeichnung | TEXT | — |
dtm.issueDate | Ausstellungsdatum (I-31, ddMMyy) | DATE_DDMMYY | — |
dtm.dueDate | Fälligkeitsdatum (I-32) | DATE_DDMMYY | — |
dtm.periodDate | Abrechnungszeitraum (I-36) | DATE_DDMMYY | — |
seller.identifier | Verkäuferkennung | ID | — |
seller.identifierType | Verkäuferkennungstyp | CODE | — |
seller.name | Verkäufername | TEXT | — |
seller.nameType | Verkäufernamenformat (Physical/Qualification) | CODE | — |
seller.addressDescription | Verkäuferadressbeschreibung | TEXT | — |
seller.street | Verkäuferstraße | TEXT | — |
seller.city | Verkäuferstadt | TEXT | — |
seller.postalCode | Verkäufer-Postleitzahl | TEXT | — |
seller.country | Verkäuferland (ISO 3166-1) | CODE | — |
buyer.identifier | Käuferkennung | ID | — |
buyer.identifierType | Käuferkennungstyp | CODE | — |
buyer.name | Käufername | TEXT | — |
buyer.nameType | Käufernamenformat (Physical/Qualification) | CODE | — |
buyer.addressDescription | Käuferadressbeschreibung | TEXT | — |
buyer.street | Käuferstraße | TEXT | — |
buyer.city | Käuferstadt | TEXT | — |
buyer.postalCode | Käufer-Postleitzahl | TEXT | — |
buyer.country | Käuferland (ISO 3166-1) | CODE | — |
partnerLoc.functionCode | Partnerstandortfunktionscode (I5) | CODE | — |
partnerLoc.value | Partnerstandortwert | TEXT | — |
rff.refId | Referenzqualifikationscode | CODE | — |
rff.refValue | Partnerreferenzwert | TEXT | — |
cta.contactFunctionCode | Kontaktfunktionscode | CODE | — |
cta.contactIdentifier | Kontaktkennung | ID | — |
cta.contactName | Kontaktname | TEXT | — |
cta.comMeansType | Kommunikationsmitteltyp | CODE | — |
cta.comAddress | Kommunikationsadresse / -nummer | TEXT | — |
loc.functionCode | Rechnungsstandortfunktionscode (I5) | CODE | — |
loc.value | Rechnungsstandortwert | TEXT | — |
pyt.termsTypeCode | Zahlungsbedingungscode | CODE | — |
pyt.termsDescription | Zahlungsbedingungsbeschreibung | TEXT | — |
pytFii.functionCode | Finanzinstitutscode | CODE | — |
pytFii.accountNumber | Bankkontonummer | ID | — |
pytFii.ownerIdentifier | Kontoinhaberkennung | TEXT | — |
pytFii.branchIdentifier | Bankfilialcode | TEXT | — |
pytFii.institutionName | Name des Finanzinstituts | TEXT | — |
ftx.subjectCode | Freitext-Betreffcode (I4) | CODE | — |
ftx.text | Freitext | TEXT | — |
invoice.currency | Rechnungswährung | CODE | — |
invoice.totalInclTax | Gesamtbetrag inkl. Steuer (I-180) | AMOUNT | — |
invoice.totalExclTax | Gesamtbetrag exkl. Steuer (I-182) | AMOUNT | — |
invoice.totalTax | Gesamte proportionale Steuern (I-181) | AMOUNT | — |
invoice.totalHTAllLines | Gesamtbetrag exkl. Steuer alle Positionen (I-176) | AMOUNT | — |
invoice.companyCapital | Unternehmenskapital (I-179) | AMOUNT | — |
invoice.totalExempt | Gesamter steuerfreier Betrag (I-185) | AMOUNT | — |
invoice.totalSuspendedVAT | MwSt.-Aussetzungsbetrag (I-187) | AMOUNT | — |
lin.itemIdentifier | Positionskennung | ID | — |
lin.itemCode | Artikelcode | CODE | — |
lin.description | Artikelbeschreibung | TEXT | — |
lin.quantity | Menge | TEXT | — |
lin.measurementUnit | Maßeinheit | CODE | — |
lin.unitPrice | Einzelpreis exkl. Steuer (I-183) | AMOUNT | — |
lin.lineAmount | Positionsbetrag exkl. Steuer (I-171) | AMOUNT | — |
lin.taxTypeCode | Positionssteuertyp-Code | CODE | — |
lin.taxRate | Positionssteuersatz (%) | PERCENTAGE | — |
lin.dateText | Positionsdatum | DATE_DDMMYY | — |
linAlc.alcTypeCode | Positionsnachlass-/Zuschlagstyp-Code (I-151 bis I-155) | CODE | — |
linAlc.alcPercent | Positionsnachlass-/Zuschlagsprozentsatz | PERCENTAGE | — |
linFtx.subjectCode | Positionsfreitext-Betreffcode (I4) | CODE | — |
linFtx.text | Positionsfreitext | TEXT | — |
sublin.itemIdentifier | Unterpositionskennung | ID | — |
sublin.itemCode | Unterpositionsartikelcode | CODE | — |
sublin.description | Unterpositionsartikelbeschreibung | TEXT | — |
sublin.quantity | Unterpositionsmenge | TEXT | — |
sublin.measurementUnit | Unterpositionsmaßeinheit | CODE | — |
sublin.unitPrice | Unterpositions-Einzelpreis exkl. Steuer (I-183) | AMOUNT | — |
sublin.lineAmount | Unterpositionsbetrag exkl. Steuer (I-171) | AMOUNT | — |
sublin.taxTypeCode | Unterpositionssteuertyp-Code | CODE | — |
sublin.taxRate | Unterpositionssteuersatz (%) | PERCENTAGE | — |
sublin.dateText | Unterpositionsdatum | DATE_DDMMYY | — |
sublin.alcTypeCode | Unterpositionsnachlass-/Zuschlagstyp-Code | CODE | — |
sublin.alcPercent | Unterpositionsnachlass-/Zuschlagsprozentsatz | PERCENTAGE | — |
taxDetail.taxTypeCode | Steuertyp-Code | CODE | — |
taxDetail.taxRate | Zusammenfassender Steuersatz | PERCENTAGE | — |
taxDetail.taxBase | Steuerbasis (I-177) | AMOUNT | — |
taxDetail.taxAmount | Steuerbetrag (I-178) | AMOUNT | — |
invoiceAlc.alcTypeCode | Rechnungsnachlass-/Zuschlagstyp-Code (I-151 bis I-155) | CODE | — |
invoiceAlc.alcAmount | Rechnungsnachlass-/-zuschlagsbetrag | AMOUNT | — |
additionalDoc.identifier | Kennung des angehängten Dokuments | ID | — |
additionalDoc.name | Name des angehängten Dokuments | TEXT | — |
additionalDoc.date | Datum des angehängten Dokuments | DATE_DDMMYY | — |
refTtn.reference | TTN-Referenz (I-88, von TTN nach Validierung ausgefüllt) | ID | — |
refTtn.referenceDate | TTN-Referenz-Generierungsdatum (I-37) | TEXT | — |
Validierungsregeln
45 RegelnTEIF-R001ERRORDie TEIF-Version muss ein erkannter Wert sein (1.8.1 bis 1.8.8).
TEIF-Version ∈ Unterstützte TEIF-Versionen: {1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6 ... (8 Werte)}
TEIF-R002ERRORDie Kontrollstelle muss 'TTN' oder 'Tunisie TradeNet' sein.
Kontrollbehörde ∈ Zugelassene Kontrollstellen: {TTN, Tunisie TradeNet}
TEIF-R003ERRORDie Dokumentkennung (Rechnungsnummer) ist erforderlich.
Dokumentnummer ist erforderlich
TEIF-R004ERRORDer Dokumenttypcode muss ein erkannter Wert sein: I-11 (Rechnung), I-12 (Gutschrift), I-13 (Gebührennote), I-14 (Abrechnung öffentlicher Auftrag), I-15 (Export), I-16 (Bestellung).
Dokumenttypcode ∈ Dokumenttypcodes (I1): {I-11, I-12, I-13, I-14, I-15, I-16}
TEIF-R005ERRORDas Ausstellungsdatum (DateText functionCode='I-31') ist erforderlich.
Ausstellungsdatum (I-31, ddMMyy) ist erforderlich
TEIF-R006ERRORDie Verkäuferkennung (PartnerDetails functionCode='I-62') ist erforderlich.
Verkäuferkennung ist erforderlich
TEIF-R007ERRORDer Verkäufername (PartnerName) ist erforderlich.
Verkäufername ist erforderlich
TEIF-R008ERRORDie Käuferkennung (PartnerDetails functionCode='I-64') ist erforderlich.
Käuferkennung ist erforderlich
TEIF-R009ERRORDer Käufername (PartnerName) ist erforderlich.
Käufername ist erforderlich
TEIF-R010ERRORDer Gesamtbetrag inklusive Steuer (Moa amountTypeCode='I-180') ist erforderlich.
Gesamtbetrag inkl. Steuer (I-180) ist erforderlich
TEIF-R011ERRORDer Absender (MessageSenderIdentifier) muss durch eine tunesische Steuernummer (Typ I-01) identifiziert werden. Leitfaden §5.2.1 S.15.
Absenderkennungstyp = "I-01"
TEIF-R012ERRORDie Währung (currencyIdentifier) muss TND, EUR oder USD sein. Leitfaden §5.9.2.5 S.66.
Rechnungswährung ∈ Zugelassene Währungen (Leitfaden Abschnitt 5.9.2.5 S.66): {TND, EUR, USD}
TEIF-R013ERRORDie tunesische Steuernummer (I-01) muss dem Format folgen: 7 Ziffern + alphabetischer Schlüssel + MwSt.-Code (A/B/P/F/N) + Kategorie (M/C/P/N/E) + 3 Niederlassungsziffern. Leitfaden §5.2.1.1 S.15-17.
Absenderkennungstyp = "I-01"
Absenderkennung entspricht dem Muster: ^[0-9]{7}[A-Z][ABPFN][MCPNE][0-9]{3}$
TEIF-R014ERRORDie Maßeinheit (Quantity/@measurementUnit) ist in jeder Position erforderlich (XSD use='required').
Maßeinheit ist erforderlich
TEIF-R015ERRORDer Steuersatz der Position (TaxRate) muss eine Zahl zwischen 0 und 99,9 mit höchstens einer Dezimalstelle sein (z. B. 0, 7, 13, 19, 19.5).
Positionssteuersatz (%) entspricht dem Muster: ^[0-9]{1,2}(\.[0-9])?$
TEIF-R016ERRORDer Steuerartcode der Position (LinTax/TaxTypeName/@code) muss ein erkannter Wert sein (I-1602 MwSt., I-1601 Stempelsteuer, I-162 FODEC …).
Positionssteuertyp-Code ∈ Steuertypcodes (I16): {I-160, I-161, I-162, I-163, I-164, I-165 ... (14 Werte)}
TEIF-R017ERRORDer Steuerartcode der Zusammenfassung (InvoiceTax/Tax/TaxTypeName/@code) muss ein erkannter Wert sein.
Steuertyp-Code ∈ Steuertypcodes (I16): {I-160, I-161, I-162, I-163, I-164, I-165 ... (14 Werte)}
TEIF-R018ERRORDer Dokumenttypcode (DocumentType/@code) ist erforderlich.
Dokumenttypcode ist erforderlich
TEIF-CO-01ERRORDer Gesamtbetrag ohne Steuer (I-182) muss der Summe der Positionsbeträge ohne Steuer (I-171) entsprechen, mit einer Toleranz von 0,01.
Gesamtbetrag exkl. Steuer (I-182) ist vorhanden
Gesamtbetrag exkl. Steuer (I-182) = Σ lin.lineAmount über lin.lineAmount (±0.01)
TEIF-CO-02ERRORDer Gesamtbetrag inkl. Steuer (I-180) muss dem Gesamtbetrag ohne Steuer (I-182) + den proportionalen Gesamtsteuern (I-181) entsprechen, mit einer Toleranz von 0,01. Hinweis: Die Stempelsteuer (I-1601) ist von I-181 AUSGESCHLOSSEN, aber in I-180 ENTHALTEN.
Gesamtbetrag inkl. Steuer (I-180) ist vorhanden und Gesamtbetrag exkl. Steuer (I-182) ist vorhanden und Gesamte proportionale Steuern (I-181) ist vorhanden
Gesamtbetrag inkl. Steuer (I-180) = Gesamtbetrag exkl. Steuer (I-182) + Gesamte proportionale Steuern (I-181) (±0.01)
TEIF-R019ERRORDer Typ der Käuferkennung muss I-01 (Steuernummer), I-02 (nationale ID), I-03 (Aufenthaltserlaubnis) oder I-04 (ausländische Steuernummer) sein.
Käuferkennungstyp ∈ Partnerkennungstypen (I0): {I-01, I-02, I-03, I-04}
TEIF-R020ERRORDer Typ der Verkäuferkennung muss I-01 (Steuernummer), I-02 (nationale ID), I-03 (Aufenthaltserlaubnis) oder I-04 (ausländische Steuernummer) sein.
Verkäuferkennungstyp ∈ Partnerkennungstypen (I0): {I-01, I-02, I-03, I-04}
TEIF-R021ERRORDer Zahlungsbedingungscode (PaymentTearmsTypeCode) muss ein erkannter Wert sein: I-111 bis I-117.
Zahlungsbedingungscode ist vorhanden
Zahlungsbedingungscode ∈ Zahlungsbedingungscodes (I11): {I-111, I-112, I-113, I-114, I-115, I-116 ... (7 Werte)}
TEIF-R022ERRORDer Code des Finanzinstituts (PytFii/@functionCode) muss I-141 (Post), I-142 (Bank) oder I-143 (Sonstige) sein.
Finanzinstitutscode ist vorhanden
Finanzinstitutscode ∈ Finanzinstitutscodes (I14): {I-141, I-142, I-143}
TEIF-R023ERRORDer Kontaktfunktionscode (Contact/@functionCode) muss I-91 (Technisch), I-92 (Rechtlich), I-93 (Kommerziell) oder I-94 (Sonstige) sein.
Kontaktfunktionscode ist vorhanden
Kontaktfunktionscode ∈ Kontaktfunktionscodes (I9): {I-91, I-92, I-93, I-94}
TEIF-R024ERRORDer Kommunikationstyp (ComMeansType) muss I-101 (Telefon), I-102 (Fax), I-103 (E-Mail) oder I-104 (Sonstige) sein.
Kommunikationsmitteltyp ist vorhanden
Kommunikationsmitteltyp ∈ Kommunikationsmittelcodes (I10): {I-101, I-102, I-103, I-104}
TEIF-R025ERRORDer Referenzqualifikationscode (Reference/@refID) muss zum I8-Referenzsatz gehören (I-80 bis I-89, I-811 bis I-818, I-871).
Referenzqualifikationscode ist vorhanden
Referenzqualifikationscode ∈ Referenzqualifikatorcodes (I8): {I-80, I-81, I-811, I-812, I-813, I-814 ... (19 Werte)}
TEIF-R026ERRORDer Betreffcode des Freitextes (Ftx/SubjectCode) muss ein erkannter Wert sein: I-41 bis I-48.
Freitext-Betreffcode (I4) ist vorhanden
Freitext-Betreffcode (I4) ∈ Freitext-Betreffcodes (I4): {I-41, I-42, I-43, I-44, I-45, I-46 ... (8 Werte)}
TEIF-R027ERRORDie Stempelsteuer (I-1601) ist ein fester, nicht proportionaler Betrag: Ihr TaxRate muss 0 sein. Der tatsächliche Betrag steht in I-178 (Steuerbetrag). Sie ist von I-181 (Gesamtsteuer) AUSGESCHLOSSEN, aber in I-180 (Gesamtbetrag inkl. Steuer) ENTHALTEN. Leitfaden §5.10 + offizielle XML.
Steuertyp-Code = "I-1601"
Zusammenfassender Steuersatz = "0"
TEIF-R028ERRORDas Format des Verkäufernamens (PartnerName/@nameType) muss 'Physical' (natürliche Person) oder 'Qualification' (juristische Person) sein. Werte sind im XSD NadType definiert (nicht in der Guide-I7-Referenz).
Verkäufernamenformat (Physical/Qualification) ist vorhanden
Verkäufernamenformat (Physical/Qualification) ∈ Codes für Partnernamenformate (XSD NadType/@nameType): {Physical, Qualification}
TEIF-R029ERRORDas Format des Käufernamens (PartnerName/@nameType) muss 'Physical' (natürliche Person) oder 'Qualification' (juristische Person) sein. Werte sind im XSD NadType definiert (nicht in der Guide-I7-Referenz).
Käufernamenformat (Physical/Qualification) ist vorhanden
Käufernamenformat (Physical/Qualification) ∈ Codes für Partnernamenformate (XSD NadType/@nameType): {Physical, Qualification}
TEIF-R030ERRORDer zusammenfassende Steuersatz (InvoiceTaxDetails/TaxRate) muss eine Zahl zwischen 0 und 99,9 mit höchstens einer Dezimalstelle sein (z. B. 0, 7, 13, 19, 19.5).
Zusammenfassender Steuersatz entspricht dem Muster: ^[0-9]{1,2}(\.[0-9])?$
TEIF-R031ERRORDas Ausstellungsdatum muss im Format ddMMyy vorliegen (6 Ziffern). Beispiel: 010125 für den 1. Januar 2025. Leitfaden §5.9.2.6.
Ausstellungsdatum (I-31, ddMMyy) entspricht dem Muster: ^[0-9]{6}$
TEIF-R033ERRORDer Code für Nachlass-/Zuschlagsart der Position (LinAlc/Alc/@allowanceCode) muss I-151 bis I-155 sein.
Positionsnachlass-/Zuschlagstyp-Code (I-151 bis I-155) ist vorhanden
Positionsnachlass-/Zuschlagstyp-Code (I-151 bis I-155) ∈ Nachlass-/Gebührentypcodes (I15): {I-151, I-152, I-153, I-154, I-155}
TEIF-R034ERRORDer Code für Nachlass-/Zuschlagsart der Rechnung (InvoiceAlc/AllowanceDetails/Alc/@allowanceCode) muss I-151 bis I-155 sein.
Rechnungsnachlass-/Zuschlagstyp-Code (I-151 bis I-155) ist vorhanden
Rechnungsnachlass-/Zuschlagstyp-Code (I-151 bis I-155) ∈ Nachlass-/Gebührentypcodes (I15): {I-151, I-152, I-153, I-154, I-155}
TEIF-R035ERRORDer Funktionscode des Rechnungsorts (LocSection/LocDetails/@functionCode) muss zum I5-Referenzsatz gehören (I-51 bis I-59).
Rechnungsstandortfunktionscode (I5) ist vorhanden
Rechnungsstandortfunktionscode (I5) ∈ Standortfunktionscodes (I5): {I-51, I-52, I-53, I-54, I-55, I-56 ... (9 Werte)}
TEIF-R036ERRORDer Funktionscode des Partnerorts (PartnerDetails/Loc/@functionCode) muss zum I5-Referenzsatz gehören (I-51 bis I-59).
Partnerstandortfunktionscode (I5) ist vorhanden
Partnerstandortfunktionscode (I5) ∈ Standortfunktionscodes (I5): {I-51, I-52, I-53, I-54, I-55, I-56 ... (9 Werte)}
TEIF-R037ERRORDer Betreffcode des Positionsfreitextes (LinFtx/FreeTextDetail/@subjectCode) muss ein erkannter Wert sein: I-41 bis I-48.
Positionsfreitext-Betreffcode (I4) ist vorhanden
Positionsfreitext-Betreffcode (I4) ∈ Freitext-Betreffcodes (I4): {I-41, I-42, I-43, I-44, I-45, I-46 ... (8 Werte)}
TEIF-R042ERRORKonsistenz des Steuerbetrags: Für jedes InvoiceTaxDetails muss taxAmount = taxBase × taxRate / 100 sein (±0,01). Die Steuerart wird ignoriert — die Formel gilt für alle Blöcke.
Benutzerdefinierte Regel: teif-tax-rate-check
TEIF-R043ERRORKonsistenz des Positionsbetrags ohne Steuer: Für jede Lin muss I-171 = I-183 × Menge × (1 − Rabatt%) sein (±0,01). Wenn I-183 fehlt, wird die Position übersprungen.
Benutzerdefinierte Regel: teif-lin-amount-check
TEIF-R038WARNINGUnterpositionen (SubLin) sind vorhanden. Die Betragskonsistenz zwischen der übergeordneten Position und ihren Unterpositionen wird nicht geprüft — in TEIF ist keine Konsistenzregel definiert. Die SubLin-Validierung ist auf 1 Verschachtelungsebene begrenzt (SubLin von SubLin wird nicht validiert).
Unterpositionskennung ist verboten
TEIF-R039ERRORDie Maßeinheit (Quantity/@measurementUnit) ist in jeder Unterposition erforderlich (XSD use='required').
Unterpositionskennung ist vorhanden
Unterpositionsmaßeinheit ist erforderlich
TEIF-R040ERRORDer Steuersatz der Unterposition (TaxRate) muss eine Zahl zwischen 0 und 99,9 mit höchstens einer Dezimalstelle sein (z. B. 0, 7, 13, 19, 19.5).
Unterpositionssteuersatz (%) ist vorhanden
Unterpositionssteuersatz (%) entspricht dem Muster: ^[0-9]{1,2}(\.[0-9])?$
TEIF-R041ERRORDer Steuerartcode der Unterposition (LinTax/TaxTypeName/@code) muss ein erkannter Wert sein (I-1602 MwSt., I-1601 Stempelsteuer, I-162 FODEC …).
Unterpositionssteuertyp-Code ist vorhanden
Unterpositionssteuertyp-Code ∈ Steuertypcodes (I16): {I-160, I-161, I-162, I-163, I-164, I-165 ... (14 Werte)}
TEIF-R044ERRORAbgleich Positionen / Steuerzusammenfassung: Für jedes InvoiceTaxDetails(taxTypeCode, taxRate) muss I-177 der Summe von I-171 für Positionen mit demselben taxTypeCode und taxRate entsprechen (±0,01). Jede Positionsgruppe muss ein entsprechendes InvoiceTaxDetails haben.
Benutzerdefinierte Regel: teif-tax-cross-check
Referenztabellen
21 ListenUnterstützte TEIF-Versionen
teif-versionsDokumenttypcodes (I1)
document-type-codesPartnerkennungstypen (I0)
identifier-typesSprachcodes (I2)
language-codesDatumsfunktionscodes (I3)
date-function-codesFreitext-Betreffcodes (I4)
ftx-subject-codesStandortfunktionscodes (I5)
location-function-codesPartnerfunktionscodes (I6)
partner-function-codesCodes für Partnernamenformate (XSD NadType/@nameType)
name-format-codesReferenzqualifikatorcodes (I8)
reference-qualifier-codesKontaktfunktionscodes (I9)
contact-function-codesKommunikationsmittelcodes (I10)
communication-means-codesZahlungsbedingungscodes (I11)
payment-terms-codesZahlungskonditionscodes (I12)
payment-condition-codesZahlungsmittelcodes (I13)
payment-means-codesFinanzinstitutscodes (I14)
financial-institution-codesNachlass-/Gebührentypcodes (I15)
allowance-type-codesSteuertypcodes (I16)
tax-type-codesBetragstypcodes (I17)
amount-type-codesZugelassene Währungen (Leitfaden Abschnitt 5.9.2.5 S.66)
currenciesZugelassene Kontrollstellen
controlling-agencies