Empfehlungs-Verwaltung
Übersicht
/admin/referrals zeigt jede einzelne Empfehlungs-Werbung im System.
Zwei Tabs:
- Übersicht — Stats-Cards (Gesamt / Eingelöst / Qualifiziert / Belohnt / Storniert), Filter nach Status, paginiierte Tabelle.
- Konfiguration — alle Programm-Einstellungen (siehe Artikel „Programm-Konfiguration").
Stats-Cards
Die Karten zeigen Gesamt-Zahlen über alle Tenants. Der Conversion- Funnel ergibt sich aus der Differenz:
- Eingelöst → Qualifiziert = wieviele Werbungen die Bedingung erreicht haben.
- Qualifiziert → Belohnt = wieviele Stripe-Calls erfolgreich liefen.
Filter
Status-Filter im Dropdown:
- Eingelöst — der Code wurde gerade verwendet, Werbung wartet auf Qualifikation.
- Prüfung — Anti-Fraud markierte sie zur manuellen Sichtung.
- Qualifiziert — Bedingung erfüllt, nächster Cron-Tick zahlt aus.
- Belohnt — Stripe-Grant erfolgreich.
- Abgelaufen — Fenster verstrichen ohne Qualifikation.
- Storniert — Manuell vom Admin oder durch Clawback rückgängig gemacht.
Detailseite
Klick auf eine Zeile → /admin/referrals/:id:
- Stammdaten: Code, Werber + Geworbener Tenant (verlinkt auf die Tenant-Detail-Seite), Reward-Snapshot.
- Stripe-IDs:
stripe_credit_idund/oderstripe_coupon_id— direkter Zugriff auf den Stripe-Audit-Trail. - Timeline: chronologisch alle Audit-Events zur Werbung
(
referral.redeemed/referral.qualified/referral.rewarded/referral.grant_failed/referral.voidedetc.). - Notes: angesammelte Hinweise (Grant-Fehler-Reasons, manuelle Admin-Notizen).
Manuelle Aktionen
Drei Buttons auf der Detailseite:
- Qualifizieren erzwingen — verfügbar nur bei Status „Eingelöst" oder „Prüfung". Setzt Status auf Qualifiziert, snapshottet die aktuelle Reward-Konfiguration. Der nächste Grant-Cron zahlt aus.
- Reward manuell auszahlen — verfügbar nur bei Status
„Qualifiziert". Triggert sofort den Stripe-Grant mit demselben
referral_grant_<id>-Idempotency-Key wie der Cron — ein zweiter Klick erzeugt keine doppelte Gutschrift. - Stornieren — setzt Status auf Storniert mit Begründung. Bereits
gewährte Stripe-Credits werden nicht automatisch zurückgebucht
— dafür ist der Clawback-Pfad (
customer.subscription.deleted- Webhook) zuständig.
Jede manuelle Aktion schreibt einen referral.admin_override-Audit-
Eintrag mit admin_override=true Flag, damit später unterscheidbar ist
was automatisch und was manuell entstand.
Stripe-Audit-Trail
Ein Klick auf eine Stripe-ID kopiert sie in die Zwischenablage; die
Stripe-Dashboard-URL lautet z.B.
https://dashboard.stripe.com/customers/<cust_id>/balance_transactions/<tx_id>.
Im Stripe-Dashboard siehst du auch Korrektur-Buchungen (Clawback-
Reversals).