<!-- md-source: d55d7cb246e0 FactoorSharpWeb/Views/Home/PeppolDotNet.cshtml -->

# Peppol BIS Billing 3.0 mit .NET und C#

> Markdown-Fassung von <https://www.factoorsharp.de/de/Home/PeppolDotNet> für KI-Agenten.
> Sprachen: [Deutsch](https://www.factoorsharp.de/de/Home/PeppolDotNet.md) ·
> [English](https://www.factoorsharp.de/en/Home/PeppolDotNet.md) ·
> [Français](https://www.factoorsharp.de/fr/Home/PeppolDotNet.md)

Peppol BIS Billing 3.0 ist eine CIUS (Core Invoice Usage Specification) auf Basis von
EN 16931 – technisch dieselbe UBL-Struktur wie die XRechnung, unterschieden über die
Spezifikationskennung BT-24. Mit FactoorSharp entsteht beides aus demselben
Rechnungsmodell in C# und VB.NET.

**Abgrenzung:** Diese Seite beschreibt die Dokumentebene – erzeugen, lesen,
kennzeichnen. Den Versand über das Peppol-Netzwerk (AS4) übernimmt ein Access Point;
siehe Abschnitt „Wo FactoorSharp aufhört".

## Peppol-Rechnung erzeugen

```csharp
FacturXInvoice.SetLicense("DEIN-LIZENZSCHLUESSEL");

var invoice = FacturXInvoice.CreateInvoice(
    "RE-2025-0042",
    new DateTime(2025, 9, 3),
    CurrencyCodes.EUR);

invoice.SetSeller("BikeTech GmbH", "10115", "Berlin", "Radweg 12", CountryCodes.DE);
invoice.SetBuyer("City Bikes AG", "20457", "Hamburg", "Hafenstraße 45", CountryCodes.DE);

// Peppol BIS Billing 3.0 statt XRechnung kennzeichnen (BT-24)
invoice.SpecificationIdentifier = SpecificationIdentifiers.PeppolBisBilling30;

// Peppol kennt keine CII-Syntax – UBL wird deshalb explizit angegeben
invoice.Save("peppol-invoice.xml", ZUGFeRDVersion.Version25, Profile.XRechnung, ZUGFeRDFormats.UBL);
```

## XRechnung oder Peppol BIS Billing 3.0? Derselbe Kern, eine andere Kennung

Beide sind CIUS auf Basis von EN 16931 und verwenden dieselbe UBL-Struktur.
Unterschieden werden sie über die Spezifikationskennung BT-24, die als
`cbc:CustomizationID` im XML steht. Wer bereits XRechnungen erzeugt, braucht für Peppol
kein zweites Rechnungsmodell und keine zweite Bibliothek – nur eine andere Kennung beim
Speichern.

BT-24 ist keine geschlossene Codeliste: Auch CIUS anderer EU-Staaten lassen sich über
`SpecificationIdentifier` als URN setzen.

```csharp
// Dasselbe Rechnungsmodell, drei Zielformate – unterschieden nur über BT-24:

// 1. XRechnung (Standard beim Profil XRechnung, Kennung wird automatisch gesetzt)
invoice.Save("xrechnung.xml", ZUGFeRDVersion.Version25, Profile.XRechnung);

// 2. XRechnung mit KoSIT-Extension
invoice.SpecificationIdentifier = SpecificationIdentifiers.XRechnung30Extension;
invoice.Save("xrechnung-extension.xml", ZUGFeRDVersion.Version25, Profile.XRechnung);

// 3. Peppol BIS Billing 3.0
invoice.SpecificationIdentifier = SpecificationIdentifiers.PeppolBisBilling30;
invoice.Save("peppol-invoice.xml", ZUGFeRDVersion.Version25, Profile.XRechnung, ZUGFeRDFormats.UBL);
```

## Was Peppol zusätzlich verlangt

Die Spezifikationskennung allein macht aus einer XRechnung noch keine gültige
Peppol-Rechnung. Zwei Angaben, die bei einer reinen XRechnung optional bleiben dürfen,
sind bei Peppol BIS Billing 3.0 verpflichtend:

- **Teilnehmerkennungen (BT-34 / BT-49):** Verkäufer und Käufer brauchen je eine
  elektronische Adresse mit Schema-Kennung – darüber findet der Service Metadata
  Publisher (SMP) den Empfänger.
- **Referenz des Käufers oder Bestellreferenz (BT-10 / BT-13):** mindestens eines der
  beiden Felder muss gefüllt sein. Bei XRechnungen an deutsche öffentliche Auftraggeber
  steht in BT-10 ohnehin meist die Leitweg-ID.

```csharp
// Teilnehmerkennungen für Verkäufer und Käufer (BT-34 / BT-49).
// Üblich sind die USt-IdNr. (Schema 9930 für Deutschland) oder eine GLN (Schema 0088).
invoice.SetSellerElectronicAddress("DE123456789", ElectronicAddressSchemeIdentifiers.GermanyVatNumber);
invoice.SetBuyerElectronicAddress("DE987654321", ElectronicAddressSchemeIdentifiers.GermanyVatNumber);

// Mindestens eines der beiden Felder ist bei Peppol BIS Billing 3.0 verpflichtend
invoice.ReferenceOrderNo = "PROJ-4711"; // Referenz des Käufers, BT-10
// oder alternativ:
invoice.OrderNo = "PO-2026-0042";       // Bestellreferenz, BT-13
```

Der Geschäftsprozess BT-23 wird beim Speichern automatisch gesetzt, da ihn sowohl
XRechnung als auch Peppol BIS Billing verlangen.

## Eingehende Peppol-Rechnungen verarbeiten

Beim Einlesen ist der Weg derselbe wie bei ZUGFeRD und XRechnung. Welches Regelwerk der
Absender verwendet hat, steht in BT-24; die Endpunkt-Kennungen hängen an den Parteien.
Elektronische Adressen sind nicht auf Verkäufer und Käufer beschränkt – das Datenmodell
sieht sie an 19 Geschäftsterminen vor.

```csharp
var invoice = FacturXInvoice.Load("peppol-invoice.xml");

// Welches Regelwerk war es? BT-24 steht als cbc:CustomizationID im Dokument.
if (invoice.SpecificationIdentifier == SpecificationIdentifiers.PeppolBisBilling30)
{
    var sellerEndpoint = invoice.Seller.ElectronicAddress;   // BT-34
    var buyerEndpoint = invoice.Buyer.ElectronicAddress;     // BT-49
}
```

## Wo FactoorSharp aufhört: der Access Point

Peppol besteht aus zwei Teilen, die oft in einen Topf geworfen werden: dem **Dokument**
und dem **Netzwerk**. FactoorSharp deckt den ersten Teil ab. Den Transport über das
Peppol-Netzwerk per AS4 übernimmt ein Access Point.

| Mit FactoorSharp | Dafür braucht es einen Access Point |
|---|---|
| Peppol BIS Billing 3.0 erzeugen und lesen (UBL) | Versand und Empfang über das Peppol-Netzwerk (AS4) |
| Spezifikationskennung BT-24 setzen und auswerten | Registrierung als Peppol-Teilnehmer |
| Geschäftsprozess BT-23 (automatisch beim Speichern) | Empfänger-Lookup über SMP und SML |
| Teilnehmerkennungen BT-34 / BT-49 mit EAS-Schema | Zertifikate und Zustellnachweise |
| Pflichtfelder BT-10 / BT-13 befüllen | |
| ZUGFeRD, Factur-X und XRechnung aus demselben Modell | |

## Typische Einsatzszenarien

- Rechnungen für Geschäftspartner im EU-Ausland, die über Peppol empfangen
- Anbindung an einen vorhandenen Access Point als Dokumentenquelle
- Bestehende XRechnung-Integration um Peppol erweitern
- Eingehende UBL-Rechnungen aus dem Peppol-Netzwerk verarbeiten

## Häufige Fragen

**Kann FactoorSharp Peppol-Rechnungen versenden?**
Nein. FactoorSharp arbeitet auf Dokumentebene: Es erzeugt, liest und validiert
Peppol-BIS-Billing-3.0-Dokumente. Der Versand über das Peppol-Netzwerk läuft über AS4
und setzt einen Access Point sowie eine Registrierung als Peppol-Teilnehmer voraus.

**Was ist der Unterschied zwischen XRechnung und Peppol BIS Billing 3.0?**
Beide sind CIUS auf Basis von EN 16931 und nutzen dieselbe UBL-Struktur. Unterschieden
werden sie über BT-24 (`cbc:CustomizationID`). XRechnung ist der deutsche Standard für
öffentliche Auftraggeber, Peppol BIS Billing 3.0 das Regelwerk für den Austausch über
das Peppol-Netzwerk. Peppol verlangt zusätzlich Teilnehmerkennungen für beide Parteien
(BT-34 / BT-49) und mindestens eines der Felder BT-10 oder BT-13.

**Unterstützt FactoorSharp UBL?**
Ja. Neben der CII-Syntax gibt FactoorSharp auch UBL aus – beim Speichern über
`ZUGFeRDFormats.UBL`. Für Peppol ist das zwingend, weil Peppol BIS Billing 3.0 keine
CII-Syntax kennt.

**Welche Teilnehmerkennungen werden unterstützt?**
Die elektronische Adresse wird mit einer Schema-Kennung aus der EAS-Codeliste gesetzt,
etwa die deutsche USt-IdNr. (Schema 9930) oder eine GLN (Schema 0088). Die Konstanten
stehen in `ElectronicAddressSchemeIdentifiers`.

**Muss ich mein bestehendes Rechnungsmodell für Peppol umbauen?**
Nein. Wer bereits ZUGFeRD oder XRechnung mit FactoorSharp erzeugt, setzt für Peppol die
Spezifikationskennung und speichert als UBL. Positionen, Steuern und Parteien bleiben
unverändert.

**Gibt es eine kostenlose Testlizenz?**
Ja, 30 Tage mit vollem Funktionsumfang, ohne Zahlungsangaben.

## Weiterführende Seiten

- [Produktübersicht](https://www.factoorsharp.de/de/Home/Index.md) – Funktionen, Preise, FAQ
- [ZUGFeRD .NET und ZUGFeRD C#](https://www.factoorsharp.de/de/Home/ZugferdDotNet.md) –
  kompakter Überblick für .NET-Projekte
- [Los geht's](https://www.factoorsharp.de/de/Home/GettingStarted.md) – Installation und
  erste Factur-X-Rechnung
- [Registrierung](https://www.factoorsharp.de/account/SignUp?culture=de) – 30 Tage kostenlos testen
