Gutschriften (Self-Billing)
Mit Gutschriften rechnet Ihre Plattform als Leistungsempfänger über die Leistungen ihrer Partner ab, statt auf deren Rechnungen zu warten. Ein Beispiel ist ein Ladenetz, das jeden Monat an die Gastgeber seiner Ladepunkte auszahlt. Fakturnaut erzeugt jede Gutschrift als geprüfte XRechnung oder als ZUGFeRD-PDF, versendet sie auf Wunsch per E-Mail und hält Widerspruch und Annahme fest.
Das Gutschriftverfahren ist in Vorbereitung. Bis es für Ihr Konto freigeschaltet ist, antworten seine Endpunkte mit
404 self-billing.disabled. Live-Schlüssel brauchen einen Tarif mit Gutschriften (402 self-billing.plan-not-included). Testschlüssel funktionieren in jedem Tarif, in der Sandbox.
Diese Seite ist keine Steuerberatung. Jede steuerliche Aussage nennt ihre Quelle. Ob und wie Sie Gutschriften einsetzen, entscheiden Sie mit Ihrer Steuerberatung.
Rollen
Eine Gutschrift ist eine Rechnung, die der Leistungsempfänger ausstellt (§ 14 Abs. 2 Satz 5 UStG). In der E-Rechnung heißt das:
| Rolle | Wer | In der E-Rechnung |
|---|---|---|
| Aussteller (Leistungsempfänger) | Ihr Verkäufer (issuerId, ein Eintrag aus /sellers) | Käufer, BG-7 |
| Lieferant (Leistender) | Ihr Partner (/suppliers) | Verkäufer, BG-4 |
Fakturnaut setzt beide Parteien, die Nummer (GS-<Jahr>-…), den Rechnungstyp 389 und die Angabe „Gutschrift“, die
§ 14 Abs. 4 Satz 1 Nr. 10 UStG verlangt.
Lieferanten mit Ihrer eigenen ID
Halten Sie Ihre Partner mit Ihrer eigenen ID (externalId) aktuell. PUT legt einen Lieferanten an (201) oder
ändert ihn (200); ein unveränderter Inhalt ändert nichts.
curl -s -X PUT "$BASE/suppliers/by-external-id/host-hotel-muster" -H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' -d '{
"name": "Hotel Muster KG", "entrepreneur": true, "vatId": "DE812345673", "vatTreatment": "standard",
"address": {"street": "Seestraße 5", "city": "Berlin", "postCode": "10115", "country": "DE"},
"contact": {"name": "Erika Muster", "phone": "+49 30 123456", "email": "buchhaltung@hotel-muster.example"},
"invoiceEmail": "gutschriften@hotel-muster.example", "iban": "DE89370400440532013000"}'
- Nur Unternehmer.
entrepreneurist Pflicht, undfalsewird abgelehnt (self-billing.supplier-not-entrepreneur). Eine Gutschrift setzt voraus, dass der Leistende Unternehmer ist (§ 14 Abs. 2 Satz 5 UStG). Eine Zahlung an eine Privatperson ist deshalb keine Gutschrift. - Nötig ist eine USt-IdNr. oder eine Steuernummer.
smallBusiness: true(Kleinunternehmer) gehört zuvatTreatment: "small-business". Alle anderen Lieferanten habenstandardoderreverse-charge.- Antworten zeigen IBAN und Steuernummer nur gekürzt (
…3000). - Jede Änderung löst das Ereignis
supplier.updatedaus. Es nennt die geänderten Felder, nie deren Werte.
Die Vereinbarung vor der ersten Gutschrift
Eine Gutschrift gilt nur als Rechnung, wenn beide Seiten das Verfahren vorher vereinbart haben (§ 14 Abs. 2 Satz 5
UStG). Halten Sie diese Vereinbarung fest. attestation: true bestätigt den Text self-billing-agreement-v1.
curl -s -X POST "$BASE/suppliers/$SUPPLIER/agreements" -H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' -d '{"sellerId": "'"$SELLER"'", "kind": "terms-clause",
"concludedOn": "2026-01-01", "validFrom": "2026-01-01", "attestation": true}'
Ohne Vereinbarung, die am Ausstellungstag gilt, wird die Gutschrift abgelehnt. Eine Kopie der Vereinbarung (PDF, PNG
oder JPEG, höchstens 10 MB) laden Sie mit POST …/agreements/{id}/document hoch. Endet die Vereinbarung, beenden Sie
sie mit POST …/agreements/{id}/revocation.
Eine Gutschrift ausstellen
Jeder Aufruf braucht einen Idempotency-Key. externalReference ist Ihre Auszahlungs-ID und je Schlüsselmodus
eindeutig.
curl -s -X POST "$BASE/self-billed-invoices" -H "Authorization: Bearer $KEY" \
-H 'Idempotency-Key: payout-2026-10-host-hotel-muster' -H 'Content-Type: application/json' -d '{
"issuerId": "'"$SELLER"'", "supplierExternalId": "host-hotel-muster",
"externalReference": "payout-2026-10-host-hotel-muster", "delivery": "email", "formats": ["zugferd"],
"content": {"servicePeriod": {"start": "2026-10-01", "end": "2026-10-31"}, "dueDate": "2026-11-15",
"lines": [{"name": "Ladestrom Oktober 2026", "quantity": 1240, "unitCode": "KWH", "netPrice": 0.30,
"vatCategory": "S", "vatRate": 19}]}}'
Formate. zugferd, xrechnung-ubl oder xrechnung-cii. Ohne formats gilt das preferredFormat des
Lieferanten, sonst zugferd. Jedes Format durchläuft vor dem Ausstellen die offizielle Prüfung. GET /self-billed-invoices/{id}/document?format=… lädt eine Datei herunter,
…/report prüft sie erneut.
Zustellung.
delivery: "email"sendet die Gutschrift an dieinvoiceEmaildes Lieferanten. Dafür muss Ihr Verkäufer verifiziert sein.none(Voreinstellung) heißt: Sie stellen selbst zu. Das halten Sie mitPOST …/delivery-marksfest.
Eine Gutschrift geht nie als gewöhnliche XRechnung über Peppol: Das System des Lieferanten würde sie als
Eingangsrechnung buchen. Die Zustellung als Peppol BIS Self-Billing 3.0 (delivery: "peppol") ist in Vorbereitung.
Bis sie eingeschaltet ist, antwortet peppol mit 422 self-billing.channel-not-supported. Danach geht die Gutschrift
an die peppolId des Lieferanten. Ein Lieferant, der auf Peppol nicht für Gutschriften registriert ist, erhält sie an
seine invoiceEmail.
Ebenso können dann Ihre eigenen Verkäufer, die Peppol-Dokumente über uns empfangen, Gutschriften ihrer Kunden
empfangen (PUT /sellers/{id}/peppol/self-billing).
Monatliche Auszahlungsläufe
Ein Batch nimmt bis zu 1.000 Gutschriften und 1 MB auf. Er läuft im Hintergrund, und ein fehlerhafter Eintrag hält die
anderen nicht auf. Jeder Eintrag braucht eine externalReference. Ein Eintrag, der mit derselben
externalReference und demselben Inhalt erneut gesendet wird, auch in einem neuen Batch, antwortet mit der zuvor
ausgestellten Gutschrift; mit anderem Inhalt schlägt er fehl (self-billing.external-reference-taken).
curl -s -X POST "$BASE/self-billed-invoices/batches" -H "Authorization: Bearer $KEY" \
-H 'Idempotency-Key: payout-2026-10' -H 'Content-Type: application/json' -d @payout-batch.json # 202
curl -s "$BASE/self-billed-invoices/batches/$BATCH" -H "Authorization: Bearer $KEY"
Ist alles verarbeitet, meldet das Ereignis self_billing.batch.completed das Ergebnis. Ein lauffähiges Beispiel mit
curl, Node und jedem SDK liegt im Repository unter examples/self-billing: ein Lauf für drei Gastgeber mit 19 %, mit
einem Kleinunternehmer und mit Umkehr der Steuerschuld.
Umsatzsteuer: Kleinunternehmer und § 13b UStG
- Kleinunternehmer: Die Zeilen tragen
vatCategory: "E"mit 0 %. Fakturnaut ergänzt den Hinweis auf § 19 UStG. Zeilen mit Umsatzsteuer werden abgelehnt, denn wer Steuer unberechtigt ausweist, kann sie nach § 14c Abs. 2 UStG schulden. - Umkehr der Steuerschuld: Die Zeilen tragen
vatCategory: "AE"mit 0 %. Fakturnaut ergänzt „Steuerschuldnerschaft des Leistungsempfängers“ (§ 14a Abs. 5 UStG). Bei Strom eines im Inland ansässigen Lieferanten gilt das nur, wenn Lieferant und Empfänger beide Wiederverkäufer von Strom sind (§ 13b Abs. 2 Nr. 5 Buchst. b, Abs. 5 Satz 4 UStG; Abschnitte 3g.1 und 13b.3a UStAE). Ob das zutrifft, entscheiden Sie mit Ihrer Steuerberatung.
Fakturnaut prüft, dass Steuerart und Lieferant zusammenpassen. Eine steuerliche Beurteilung gibt Fakturnaut nicht.
Widerspruch und Annahme, Korrektur und Storno
Der Lieferant kann der Gutschrift widersprechen. Mit dem Widerspruch verliert sie ihre Wirkung als Rechnung (§ 14 Abs. 2 Satz 6 UStG). Halten Sie Widerspruch oder Annahme fest, so wie sie bei Ihnen eingegangen sind. Fakturnaut zeichnet sie nur auf, es löst nichts automatisch aus.
curl -s -X POST "$BASE/self-billed-invoices/$ID/objection" -H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' -d '{"receivedOn": "2026-11-03", "channel": "letter", "reason": "Menge falsch"}'
curl -s -X POST "$BASE/self-billed-invoices/$ID/acceptance" -H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' -d '{"channel": "email"}'
- Korrektur:
POST …/correctionsnennt die Änderung; eine negative Menge mindert. - Storno:
POST …/cancellationhebt die Gutschrift samt ihren Korrekturen auf. - Beide sind eigene Gutschriften mit Rechnungstyp 389 und Bezug auf das Original. Beide brauchen einen
Idempotency-Key.
Ereignisse: self_billed_invoice.issued, .objected und .accepted. Sie nennen Datum und Kanal, nie die Begründung
(Webhooks).
Abrechnung und Sandbox
- Jede Gutschrift, Korrektur und jedes Storno zählt als ein Dokument Ihres Tarifs.
- Mit einem Testschlüssel entstehen Testgutschriften. Sie sind als Test markiert, haben eigene Nummernkreise, werden nie abgerechnet und nach 30 Tagen gelöscht.
- Lieferanten und Vereinbarungen des Testmodus sind von den Live-Daten getrennt.
Alle Endpunkte stehen in der API-Referenz unter „Self-billing“.
Quellen
- § 14 UStG (Gutschrift, Pflichtangaben, Widerspruch), § 14a UStG, § 14c UStG, § 13b UStG, § 19 UStG
- Umsatzsteuer-Anwendungserlass (UStAE) (Bundesfinanzministerium)