XRechnung-Beispiel

XRechnung Beispiel: geprüfte UBL- und CII-Dateien zum Download

Drei Beispieldateien aus derselben Rechnung: XRechnung 3.0 in beiden erlaubten XML-Syntaxen, vom offiziellen KoSIT-Validator angenommen, und eine absichtlich fehlerhafte Datei, an der Sie sehen, wie eine Ablehnung aussieht.

Die Dateien

DateiSyntaxKoSIT-Ergebnis
xrechnung-ubl.xmlUBL 2.1angenommen
xrechnung-cii.xmlUN/CEFACT CIIangenommen
xrechnung-fehler-br-de-15.xmlUBL 2.1abgelehnt: BR-DE-15 (Leitweg-ID fehlt)

Geprüft mit dem KoSIT-Validator 1.6.2 und der XRechnung-3.0.2-Konfiguration. Jede Änderung, die bei normbill live geht, prüft unsere Build-Pipeline genau diese Rechnung erneut gegen den echten Validator. Die Daten sind erfunden; Sie dürfen die Dateien frei verwenden, etwa als Testdaten.

Datei im Validator prüfenDieselbe Datei per API erzeugen

Was in der Beispielrechnung steckt

  • Rechnung INV-2026-0001 vom 15.06.2026, fällig am 15.07.2026, in EUR.
  • Leitweg-ID 04011000-1234512345-06 als Käuferreferenz (BT-10), Pflicht für Rechnungen an öffentliche Auftraggeber (Leitfaden zur Leitweg-ID).
  • Verkäufer Muster Lieferant GmbH (Berlin, USt-IdNr. DE123456789) mit Kontaktname, Telefon und E-Mail, die XRechnung verlangt (BR-DE-2, BR-DE-5, BR-DE-6).
  • Käufer Beispiel Kunde AG (Hamburg).
  • Eine Position: 10 × Beratungsleistung zu 100,00 € zzgl. 19 % USt.: netto 1.000,00 €, Steuer 190,00 €, brutto 1.190,00 €.
  • Zahlung per Überweisung an die IBAN DE89370400440532013000.

UBL oder CII?

  • XRechnung erlaubt zwei XML-Syntaxen mit denselben fachlichen Inhalten: UBL 2.1 und UN/CEFACT CII.
  • Welche Sie senden, hängt meist vom Empfänger oder dessen Software ab.
  • ZUGFeRD und Factur-X verwenden CII, eingebettet in ein PDF (XRechnung vs. ZUGFeRD).

Das JSON, aus dem die Dateien entstehen

Mit normbill schreiben Sie kein XML: Sie senden dieses JSON an POST /v1/invoices/generate und erhalten die XRechnung zurück, bereits vom KoSIT-Validator geprüft. Fehlt etwas, nennt die Antwort das Feld, hier etwa invoice.buyer_reference statt nur BR-DE-15.

{
  "number": "INV-2026-0001",
  "issue_date": "2026-06-15",
  "due_date": "2026-07-15",
  "currency": "EUR",
  "buyer_reference": "04011000-1234512345-06",
  "seller": {
    "name": "Muster Lieferant GmbH",
    "vat_id": "DE123456789",
    "address": {
      "country": "DE",
      "city": "Berlin",
      "postal_code": "10115"
    },
    "contact": {
      "name": "Billing",
      "phone": "+49 30 1234567",
      "email": "billing@lieferant.example"
    }
  },
  "buyer": {
    "name": "Beispiel Kunde AG",
    "address": {
      "country": "DE",
      "city": "Hamburg",
      "postal_code": "20095"
    },
    "contact": {
      "email": "ap@kunde.example"
    }
  },
  "payment": {
    "iban": "DE89370400440532013000"
  },
  "lines": [
    {
      "name": "Beratungsleistung",
      "qty": 10,
      "unit_price": 100,
      "vat": 19
    }
  ]
}

API-Dokumentation · Im Playground ausprobieren

Die UBL-Datei im Volltext

<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
  <cbc:ID>INV-2026-0001</cbc:ID>
  <cbc:IssueDate>2026-06-15</cbc:IssueDate>
  <cbc:DueDate>2026-07-15</cbc:DueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cbc:BuyerReference>04011000-1234512345-06</cbc:BuyerReference>
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cbc:EndpointID schemeID="EM">billing@lieferant.example</cbc:EndpointID>
      <cac:PostalAddress>
        <cbc:CityName>Berlin</cbc:CityName>
        <cbc:PostalZone>10115</cbc:PostalZone>
        <cac:Country>
          <cbc:IdentificationCode>DE</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>DE123456789</cbc:CompanyID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Muster Lieferant GmbH</cbc:RegistrationName>
      </cac:PartyLegalEntity>
      <cac:Contact>
        <cbc:Name>Billing</cbc:Name>
        <cbc:Telephone>+49 30 1234567</cbc:Telephone>
        <cbc:ElectronicMail>billing@lieferant.example</cbc:ElectronicMail>
      </cac:Contact>
    </cac:Party>
  </cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>
    <cac:Party>
      <cbc:EndpointID schemeID="EM">ap@kunde.example</cbc:EndpointID>
      <cac:PostalAddress>
        <cbc:CityName>Hamburg</cbc:CityName>
        <cbc:PostalZone>20095</cbc:PostalZone>
        <cac:Country>
          <cbc:IdentificationCode>DE</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Beispiel Kunde AG</cbc:RegistrationName>
      </cac:PartyLegalEntity>
      <cac:Contact>
        <cbc:ElectronicMail>ap@kunde.example</cbc:ElectronicMail>
      </cac:Contact>
    </cac:Party>
  </cac:AccountingCustomerParty>
  <cac:PaymentMeans>
    <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
    <cac:PayeeFinancialAccount>
      <cbc:ID>DE89370400440532013000</cbc:ID>
    </cac:PayeeFinancialAccount>
  </cac:PaymentMeans>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="EUR">190.00</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="EUR">1000.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="EUR">190.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="EUR">1000.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">1190.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="EUR">1190.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
    <cac:Item>
      <cbc:Name>Beratungsleistung</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="EUR">100</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</Invoice>

Etwas gefunden?

Fehler, fehlende Funktion, falsches Validierungsergebnis — sagen Sie es uns. Die aktuelle Seite wird automatisch mitgeschickt; E-Mail optional.