
Foutcodes van de KoSIT-validator: BR-DE-, BR-CO- en PEPPOL-regels
Officiƫle bronnen
Gebruik deze bronnen om datums, formaten en officiƫle regelwijzigingen te controleren.
Gerelateerde technische wiki
Ontdek diepgaande ontwikkelaarsdocumentatie en regelgevende richtlijnen die bij dit artikel horen.
BR-DE-validatiefouten voor XRechnung, met de bijbehorende businessregel en praktische oplossing.
Hoe XRechnung EN 16931 in Duitsland toepast: XML-syntax, validatie, kopersreferentie en verzendkanaal.
Een Leitweg-ID opvragen, opmaken en valideren wanneer een Duitse overheidsontvanger deze in BT-10 vereist.
Een KoSIT-rapport noemt elke mislukte regel met ID, korte melding en XML-locatie. Deze pagina legt de regels uit die het vaakst voorkomen in rapporten van onze gratis XRechnung-validator, met de gebruikelijke oorzaak en de oplossing. Elke regel-ID verwijst naar een pagina met XML-voorbeelden.
Begin met de eerste fout in het rapport. Corrigeer het genoemde veld in de brongegevens, maak het bestand opnieuw aan en controleer het met dezelfde validatorconfiguratie.
Wat is KoSIT?
KoSIT, de Koordinierungsstelle für IT-Standards, is de Duitse publieke coördinatiedienst die de XRechnung-standaard uitgeeft. Zij publiceert ook de opensource-validator en de XRechnung-configuratie, die een bestand toetsen aan het XML-schema, de regels van EN 16931 en de Duitse BR-DE-regels.
Interactieve validatieketen
Zo wordt een e-factuur gevalideerd
Klik op een stap om te zien wat die controleert, of typ een regel-ID om de stap te vinden die hem meldt.
Stap 1 Ā· Wat wordt gecontroleerd
XML-schema
- Het bestand is goed gevormde XML. Kan het niet worden ingelezen, dan kan geen enkele regel draaien.
- Rootelement, namespaces, volgorde van elementen en datatypen volgen het schema UBL 2.1 of CII D16B.
Voorbeeldcodes
Typische correctie
Corrigeer de generator: een element op de verkeerde plek, een verkeerde namespace of een waarde in het verkeerde datatype.
De KoSIT-regels die het vaakst falen
De tabel is gerangschikt naar hoe vaak een regel voorkomt bij mislukte controles in onze gratis validators. De ernst is het niveau in de validatorconfiguratie die de volgende sectie noemt.
| Regel | Ernst | Betekenis | Typische oorzaak | Oplossing |
|---|---|---|---|---|
PEPPOL-EN16931-R008 | Fout | Het XML bevat een element zonder tekst en zonder onderliggende elementen. | Een exportsjabloon schrijft elk veld, ook zonder waarde in de bron, bijvoorbeeld <cbc:Note/>. | Verwijder het element, en de bovenliggende groep als die daarna leeg is. Vul het niet met "-" of "n/a". |
BR-DE-19 | Waarschuwing | Bij code 58 (SEPA-overschrijving) in BT-81 moet rekeningidentificatie BT-84 een geldige IBAN zijn. | Een typefout in de IBAN, een label zoals "IBAN:" in het veld of een nationaal rekeningnummer. | Corrigeer de IBAN in de stamgegevens. De controlecijfers moeten de modulo-97-test doorstaan; spaties worden genegeerd. |
BR-CO-09 | Fout | De btw-nummers in BT-31, BT-48 en BT-63 moeten beginnen met een ISO 3166-1-landcode (Griekenland: EL). | Het nummer is zonder prefix geƫxporteerd, of een nationaal fiscaal nummer staat in het btw-veld. | Schrijf het btw-nummer met prefix, bijvoorbeeld DE123456789. Een Duits belastingnummer (Steuernummer) hoort in BT-32. |
BR-CO-13 | Fout | Het totaal exclusief btw (BT-109) moet gelijk zijn aan de nettoregelbedragen min de kortingen (BT-107) plus de toeslagen (BT-108) op documentniveau. | Een korting of toeslag zit in het gedrukte totaal, maar staat niet als korting of toeslag op documentniveau in het XML. | Bereken de totalen opnieuw uit de geƫxporteerde regels, kortingen en toeslagen in plaats van het gedrukte totaal over te nemen. |
BR-S-08 | Fout | Voor elk btw-tarief in categorie S moet de maatstaf van heffing (BT-116) gelijk zijn aan de nettoregelbedragen plus toeslagen min kortingen tegen dat tarief. | Een korting of toeslag op documentniveau heeft het verkeerde tarief, of een korting over meerdere tarieven is met ƩƩn tarief geƫxporteerd. | Groepeer regels, kortingen en toeslagen per tarief en bouw elke btw-specificatie (BG-23) opnieuw op uit die groepen. |
BR-CO-11 | Fout | De som van de kortingen op documentniveau (BT-107) moet gelijk zijn aan de som van alle kortingsbedragen (BT-92). | Een korting is in BT-107 afgetrokken, maar niet als eigen korting (BG-20) geƫxporteerd. | Exporteer elke korting als BG-20 en bereken BT-107 uit die bedragen. |
BR-DE-27 | Waarschuwing | Het telefoonnummer van het verkoperscontact (BT-42) moet minstens drie cijfers bevatten. | Een placeholder zoals "--" of "N/A", of een naam in het telefoonveld. | Vul het echte zakelijke nummer in de verkopersgegevens in, bijvoorbeeld +49 30 1234567. |
BR-DE-15 | Fout | De kopersreferentie (BT-10) moet aanwezig zijn. KoSIT controleert alleen of die er is, niet het formaat van de Leitweg-ID. | De bestelling noemde geen referentie, of de export laat BT-10 leeg bij zakelijke klanten. | Vraag de koper welke referentie hij verwacht; een publieke opdrachtgever geeft meestal een Leitweg-ID. Verzin er geen. |
PEPPOL-EN16931-R010 | Fout | Het elektronische adres van de koper (BT-49) moet aanwezig zijn. | De klantgegevens bevatten geen e-factuuradres van de koper. | Vraag de koper om het adres en het schema, bijvoorbeeld 0204 voor een Leitweg-ID of EM voor een e-mailadres. |
BR-DE-21 | Waarschuwing | De specificatie-identificatie (BT-24) moet de XRechnung-identificatie zijn. | Het bestand declareert ZUGFeRD, Peppol BIS, kale EN 16931 of een oudere XRechnung-versie. | Zet BT-24 op de identificatie van XRechnung 3.0, of controleer het bestand met een validator voor het gedeclareerde profiel. |
CII-SR-465 / CII-SR-466 | Fout (XRechnung CII) | In CII is een contactpunt (BT-41 verkoper, BT-56 koper) een persoons- of een afdelingsnaam, niet beide. | De export schrijft ram:PersonName en ram:DepartmentName naast elkaar. De huidige KoSIT-configuratie maakt van de CEN-waarschuwing een fout. | Houd ƩƩn van beide elementen aan. UBL is niet betroffen. |
BR-FX-EN-04 | Waarschuwing (Factur-X) | Factur-X / ZUGFeRD: een factuur tussen Duitse partijen heeft een leverdatum (BT-72), een factureringsperiode (BG-14) of een periode op elke regel (BG-26) nodig. | De bron geeft geen lever- of prestatiedatum, of alleen een periode zonder land van levering (BT-80). | Vul datum of periode aan uit de brondocumenten; bij alleen een periode ook BT-80. De ZUGFeRD-validator controleert deze regel, niet KoSIT. |
PEPPOL-EN16931-R020 | Fout | Het elektronische adres van de verkoper (BT-34) moet aanwezig zijn. | De verkopersgegevens bevatten geen e-factuuradres. De regel heeft een Peppol-naam, maar KoSIT past hem toe op elke XRechnung. | Vul het elektronische adres van de verkoper in met schema (BR-62), bijvoorbeeld een e-mailadres met schema EM. |
BR-CO-10 | Fout | De som van de nettoregelbedragen (BT-106) moet gelijk zijn aan het totaal van alle nettoregelbedragen (BT-131). | Een regel, zoals verzendkosten, staat op de pdf maar niet in de export, of regels zijn na de optelling afgerond. | Bereken BT-106 uit de geƫxporteerde regels, met dezelfde afronding als de regels. |
BR-CO-15 | Fout | Het totaal inclusief btw (BT-112) moet gelijk zijn aan BT-109 plus het totale btw-bedrag (BT-110). | Het brutototaal is van de pdf overgenomen terwijl netto of btw opnieuw zijn berekend, waardoor een afrondingscent verschilt. | Bereken BT-112 als BT-109 + BT-110 uit de geƫxporteerde waarden. |
BR-DE-1 | Fout | De factuur moet betalingsinstructies (BG-16) bevatten. | De bankgegevens staan op de pdf, bijvoorbeeld in de voettekst, maar worden niet geƫxporteerd. | Voeg BG-16 toe met de betaalmiddelcode (BT-81) en de bijbehorende rekening- of machtigingsgegevens. |
BR-DE-2 | Fout | De groep verkoperscontact (BG-6) moet aanwezig zijn; BR-DE-5, BR-DE-6 en BR-DE-7 vereisen dan BT-41, BT-42 en BT-43. | De export schrijft het bedrijfsadres, maar geen contactnaam, telefoonnummer of e-mailadres. | Leg in de verkopersgegevens een bewaakte contactnaam, een telefoonnummer en een e-mailadres vast. |
KoSIT controleert alleen of BT-10 aanwezig is (BR-DE-15). Invoice-Converter.com waarschuwt bij XRechnung in de controlestap als een Leitweg-ID in BT-10 een verkeerd controlecijfer heeft; het bestand wordt daarom niet geblokkeerd. Alle andere regels staan in het overzicht van KoSIT-fouten.
Uit welke validatorversie de regels komen
Invoice-Converter.com controleert XRechnung met KoSIT-validator 1.6.3 en de XRechnung-configuratie v2026-08-31: XRechnung 3.0.2 met de EN 16931-validatieartefacten 1.3.16. Een andere configuratie kan andere regels of andere niveaus melden; vergelijk daarom alleen rapporten uit dezelfde configuratie.
Voor XRechnung 3.0 moet BT-24 het profiel aanduiden als urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0. Een verkorte identificatie of een ZUGFeRD-identificatie kiest een andere regelset.
Met de EN 16931-artefacten 1.3.16 is BR-CO-25 vervallen. Een rapport dat de regel nog toont, komt uit een oudere configuratie: een positief te betalen bedrag heeft geen vervaldatum (BT-9) of betalingsvoorwaarden (BT-20) meer nodig.
De XRechnungconfiguratie controleert UBL- of CII-XML. Zij controleert niet de PDF/A-3-container van een ZUGFeRD- of Factur-X-bestand. Gebruik daarvoor een validator voor hybride facturen.
Een waarschuwing is geen afwijzing
Een KoSIT-rapport kent hier twee belangrijke niveaus. Een fout (in het Schematron gemarkeerd als āfatalā) maakt het bestand ongeldig. Een waarschuwing is een aanbeveling: als het rapport geen fout bevat, raadt KoSIT toch aan het bestand te accepteren.
In de tabel zijn BR-DE-19, BR-DE-27, BR-DE-21, BR-FX-EN-04 waarschuwingen. Corrigeer ze als de onderliggende gegevens onjuist zijn, bijvoorbeeld een verkeerd getypte IBAN. Houd een verder geldig bestand niet tegen om alleen een waarschuwing, en verberg een waarschuwing niet met een placeholder.
Veilige volgorde voor correctie
Vaak volgt BR-DE-16: gebruikt de factuur btw-categorie S, Z, E, AE, K, G, L of M, dan zijn het btw-nummer van de verkoper (BT-31), zijn fiscaal registratienummer (BT-32) of een fiscaal vertegenwoordiger (BG-11 met BT-63) nodig; bij K of G accepteren BR-IC-02 en BR-G-02 alleen BT-31 of BT-63. De gids voor verplichte XRechnung-velden beschrijft de andere BR-DE-groepen.
Invoice-Converter.com maakt en controleert e-factuurbestanden. Het verstuurt geen facturen en is geen Peppol-accesspoint.
- Bevestig de XRechnung-versie in BT-24 en de validatorconfiguratie.
- Open de eerste fout in het rapport en noteer de regel-ID en de XML-locatie.
- Corrigeer de genoemde BT of BG in de bron- of stamgegevens, niet alleen in de gegenereerde XML.
- Maak de factuur opnieuw aan en controleer haar met dezelfde validatorconfiguratie.
- Beoordeel waarschuwingen apart. Een waarschuwing is niet hetzelfde als een afgewezen factuur.
Veelgestelde vragen
Wat is de KoSIT-validator?
De KoSIT-validator is het opensource-validatiehulpmiddel van de Duitse Koordinierungsstelle für IT-Standards. Met de XRechnung-configuratie toetst hij een XRechnung-bestand aan het XML-schema, de regels van EN 16931 en de Duitse BR-DE-regels, en zet hij elke mislukte regel in een rapport.
Wat betekent "Document MUST not contain empty elements"?
Dat is regel PEPPOL-EN16931-R008: het document mag geen lege elementen bevatten. Het bestand bevat een XML-element zonder tekst en zonder onderliggende elementen. Verwijder het element in plaats van het met een placeholder te vullen.
Is een KoSIT-waarschuwing een afwijzing?
Nee. Alleen fouten maken het bestand ongeldig. Waarschuwingen zoals BR-DE-19, BR-DE-27 of BR-DE-21 zijn aanbevelingen; corrigeer ze als de onderliggende gegevens onjuist zijn.
Waarom faalt mijn CII-bestand nu op CII-SR-465?
Sinds de KoSIT-configuratie van 31 augustus 2026 zijn CII-SR-465 en CII-SR-466 fouten voor XRechnung in CII-syntaxis. Een contact met zowel een persoonsnaam als een afdelingsnaam faalt; houd een van beide aan.
Valideert KoSIT ZUGFeRD PDF/A-3?
Nee. De XRechnungconfiguratie valideert UBL- of CII-XML. Een ZUGFeRD- of Factur-X-bestand moet daarnaast worden gecontroleerd op de PDF/A-3-container, de ingesloten XML, de metadata en de inhoudelijke overeenkomst tussen PDF en XML.
Controleer uw e-factuur
Upload uw XRechnung-XML-bestand en zie welke KoSIT-regels falen voordat u het indient. De validator is gratis en werkt zonder account.
