Empfehlungs-Programm — Audit & Compliance
Geloggte Events
Jeder Lifecycle-Schritt schreibt einen Audit-Log-Eintrag auf
audit_log-Tabelle (resource_type=referral, resource_id=<referral_id>).
Sichtbar auf /admin/audit-log (Filter „Ressource = referral") und
auf der Referral-Detailseite als chronologische Timeline.
| Action | Auslöser | Payload |
|---|---|---|
referral.created | Code-Wallet erstmals angelegt | code, tenant_id |
referral.redeemed | Code wurde bei Signup verwendet | code, referrer_tenant_id, referred_tenant_id |
referral.qualified | Qualifying-Trigger erfüllt | trigger, qualified_at |
referral.rewarded | Stripe-Grant erfolgreich | reward_type, value, currency, stripe_credit_id / stripe_coupon_id |
referral.grant_failed | Stripe-Call fehlgeschlagen | reason |
referral.expired | Fenster ohne Qualifikation verstrichen | reason, expiration_days |
referral.voided | Clawback oder manuelles Stornieren | reason, admin_override |
referral.admin_override | Manuelle Aktion auf Detailseite | action (force_qualify / manual_grant / void), note |
referral.config_updated | Konfiguration geändert | before, after |
referral.program_toggled | Master-Schalter umgelegt | before, after |
Retention
Audit-Log-Einträge werden nach 12 Monaten gelöscht (bis zu 24 Monate
bei längerem Einsichtszeitraum des Tarifs). Referral-Records bleiben so lange
bestehen wie die zugehörigen Tenants — wird ein Tenant per DSGVO
gelöscht, werden seine Werbungen anonymisiert (referrer_tenant_id /
referred_tenant_id bleiben für statistische Auswertung, aber kein
Link mehr auf gelöschte Tenant-Stammdaten).
DSGVO
- Referral-Tabellen enthalten keine PII auf Spalten-Ebene —
tenant_id-Referenzen + Stripe-IDs sind der einzige Personenbezug, und beide sind pseudonymisierte Identifier. - Beim Tenant-Hard-Delete (
/admin/tenants/:id→ DSGVO-Löschung) werden Foreign-Keys auf NULL gesetzt; die statistische Werbungs- Verlaufs-Information bleibt erhalten. - E-Mail-Versand (referral_*-Templates) loggt nur die Empfänger-
E-Mail in
email_logs— selbst die unterliegt der Email-Log-Retention (Standard 90 Tage).
AGB-Vorlage
Aktivierung des Programms erfordert eine AGB-URL (Pflichtfeld in
der Konfiguration). Eine Vorlage findest du in
marketing/.../legal/referral-terms — anpassen und veröffentlichen
bevor du das Programm scharf schaltest. Mindest-Inhalt:
- Teilnahmebedingungen — wer darf werben, welche Pläne sind ausgeschlossen.
- Reward-Berechnung — Wert, Auszahlungsweg (Stripe-Credit, kein Cash), Steuern.
- Qualifying-Bedingungen — wann gilt eine Werbung als qualifiziert.
- Clawback — unter welchen Umständen wird die Belohnung zurückgenommen.
- Anti-Missbrauch — Self-Referral verboten, Limits, Recht zum manuellen Override.
- Recht zur Programmbeendigung — wir können das Programm jederzeit beenden; bereits qualifizierte Werbungen werden aber trotzdem ausgezahlt.
Werberinformationspflicht
Wenn das Programm aktiv per E-Mail / Social-Media beworben wird, können Werbe-Kennzeichnungs-Pflichten greifen (UWG, Influencer- Hinweispflichten). Die AGB-Vorlage adressiert das mit einem „Werbung"-Disclaimer-Snippet.
Reports
/admin/referrals— Live-Liste + Stats.- Audit-Log-Export — manueller CSV-Export für Buchhaltung über
/admin/audit-log(Filter setzen → „Exportieren"). - Stripe-Dashboard — alle Belohnungs-Buchungen als
balance_transactionsmitmetadata.source=referral_program.