Rechnungsstellung
[billing] [admin]
Stripe-Connect-basierte Abrechnung — licensio = Plattform, Tenants = Connected Accounts. 1 % Plattformgebühr pro Transaktion. Stripe Tax automatisch.
Für wen
Admins. Der Tab "Rechnungsstellung" sammelt alle Daten, die Stripe für korrekte Rechnungen, MwSt, Zahlungs-Abwicklung braucht.
Was du einstellst
Rechtlicher Name + Rechtsform
- z.B. "Plant Technology GmbH"
- Wird in Stripe als
business_profile.namegesetzt - Erscheint auf jeder Rechnung als Absender
Adresse
- Straße, PLZ, Stadt, Land
- Wird in Stripe als
company.addressversucht zu setzen (Express-Accounts akzeptieren das oft nur via Onboarding)
Steuer
- USt-ID — wird zu Stripe-
tax_idshinzugefügt - Steuernummer — informativ, auf Rechnungen abgedruckt
- Stripe Tax muss separat im Stripe-Dashboard aktiviert werden (Tab Tax → Automatic Tax ON)
Kontakt
- E-Mail (für Stripe-Mails)
- Telefonnummer
Rechnungs-Logo
Eigenes Logo das auf Stripe-Rechnungen erscheint. Upload via:
- licensio-Storage (für Vorschau im Admin)
- Stripe Files API mit
purpose: 'business_icon' accounts.updateauf Connected Account mitsettings.branding.logo
Empfohlen: PNG quadratisch, ≥256x256, < 200 KB.
Schritt für Schritt
1. Stripe-Connect aktivieren
Einstellungen → Stripe → Account anlegen → Stripe-Onboarding (Express Account). Liefert deine Bankdaten, Person-Verifikation etc.
2. Rechnungsstellung-Tab füllen
Alle Felder ausfüllen + Logo hochladen. Speichern triggert automatisch Stripe-Sync (best-effort).
3. Stripe Tax im Dashboard aktivieren
- dashboard.stripe.com → Tax → Settings
- Automatic Tax auf ON
- Tax registrations → Deutschland hinzufügen
- Firmenadresse muss vollständig sein
4. Erstes Paket testen
Pakete erstellen → bei Speichern wird Stripe-Product + Price erzeugt. Im Stripe-Dashboard sichtbar unter Products des Connected Accounts.
5. Erste Zahlung
Kunde durchläuft Stripe-Checkout (Subscription für monatliche Pakete oder Single-Charge für einmalige). Webhook-Events bestätigen Zahlung in licensio.
Stripe Tax — Logik
| Sender | Empfänger | USt-ID | Ergebnis |
|---|---|---|---|
| DE | DE | beliebig | 19 % MwSt |
| DE | EU | mit USt-ID | Reverse Charge 0 % |
| DE | EU | ohne USt-ID | Lokaler Satz des Empfängerlandes |
| DE | Nicht-EU | beliebig | 0 % |
Stripe wendet das automatisch an, wenn automatic_tax: { enabled: true } und tax_behavior: 'exclusive' (Netto-Preise).
Webhook-Events (eingehend)
licensio empfängt von Stripe Connect via /api/stripe/webhook:
checkout.session.completed— Erstzahlung erfolgreichsetup_intent.succeeded— Payment-Method gespeichert (Flow B)invoice.paid— wiederkehrende Zahlunginvoice.payment_failed— Zahlung gescheitert (Notification + Mahnung)charge.refunded— Erstattungcustomer.subscription.updated/.deleted— Abo-Lifecycleaccount.updated— Connected-Account-Status
Rechnungen im Portal
Kunden sehen ihre Stripe-Rechnungen direkt im Portal-Account-Tab "Lizenz & Vertrag" → Rechnungen-Kachel mit PDF-Download (über Stripe Invoices API).
Häufige Fragen
Was ist die 1 % Plattformgebühr?
licensio.io behält 1 % jeder Transaktion ein (application_fee_amount in Stripe). Der Rest geht an dich. Sichtbar in deinem Stripe-Dashboard als Application Fee.
Wer sieht meine Stripe-Daten? Nur du. licensio-Plattform-Admins haben Read-Zugriff für Support-Fälle, aber keine Modifikations-Rechte.
Was wenn der Stripe-Webhook fehlschlägt?
Webhook-Endpoint mit STRIPE_WEBHOOK_SECRET validiert Signaturen. Bei Fehler retryt Stripe automatisch (~mehrere Stunden). Fehler-Logs in Vercel-Logs sichtbar.
Kann ich Rechnungen auch ohne Stripe schicken? Aktuell läuft alles über Stripe. Manuelle Rechnungsstellung (PDF generation außerhalb Stripe) ist nicht implementiert.
Reverse Charge bei EU-Kunden — wie?
Stripe Tax erkennt EU-USt-IDs automatisch (validiert via VIES). Wenn Kunde im Checkout USt-ID eingibt, wird Reverse Charge angewandt. tax_id_collection ist in unseren Checkouts aktiviert.
Verwandt
- Pakete — Stripe-Sync pro Paket
- Kunden — Stripe-Customer-Sync pro Kunde
- Einstellungen — alle Admin-Tabs