Skip to main content

Refunds & Notifications · Article 6.4

Erstattungsstufen: ausgestellt → angefordert → erfolgreich (oder manuell)

Die Gutschrift durchläuft von der Erstellung bis zur Abwicklung bis zu vier Zustände. Jeder Zustand entspricht einem bestimmten Punkt im Erstattungslebenszyklus mit vorhersehbaren UI-Badges und E-Mail-Auslösern.

Die Fünf-Zustands-Maschine auf CreditNote.refund_status ist die einzige Wahrheitsquelle für den Erstattungsfortschritt. Sowohl die Freelancer-UI als auch die Kunden-E-Mails lesen daraus. Das Verständnis der Bedeutung jedes Zustands — und welche Übergänge von welchem Zustand aus möglich sind — ist der schnellste Weg zur Diagnose von „Warum steckt meine Erstattung fest?"-Fragen.

Step by step

  1. Das Erstattungsbanner des Angebots beobachten.

    Es spiegelt den Status der Gutschrift mit lesbarem Text wider: - ausstehend (Stripe-Ablauf) → „Erstattung in Bearbeitung — Stripe wird überprüft" - ausstehend (SEPA-Ablauf) → „Manuelle Erstattung — Banküberweisung bestätigen" - angefordert → „Erstattung in Bearbeitung — voraussichtlich in 3–5 Werktagen. Status prüfen." - fehlgeschlagen → „Erstattung fehlgeschlagen: [Grund]. Wiederholen oder manuell markieren." - erfolgreich → „Erstattung abgeschlossen am [Datum] via Stripe." - manuell → „Erstattung abgeschlossen am [Datum] via manuelle Überweisung."

  2. Die richtige Aktion je nach Zustand verwenden.

    ausstehend Stripe-Ablauf: Warten oder wiederholen. ausstehend SEPA-Ablauf: Überweisung durchführen + als erstattet markieren. angefordert: Status aktualisieren (Artikel 8.7), wenn das Banner länger als 5 Minuten statisch bleibt. fehlgeschlagen: Wiederholen (Artikel 8.8) oder manuell markieren (Artikel 8.9).

  3. Über die Timeline prüfen.

    Jeder Zustandsübergang erzeugt ein Timeline-Ereignis (refund_initiated, refund_completed usw.) mit Metadaten (Betrag, Methode). Nützlich für Steuerprüfer oder wenn Sie jemals eine Transaktion anfechten müssen.

Why this works this way

Zustandsübergänge:

VonZuAuslöserNebeneffekte
(keiner)ausstehendGutschrift erstellt in _build_credit_note nach UnterzeichnungDokumente (Storno + Berichtigung + Gutschrift) erstellt; Kunde sieht E-Mail „Erstattung eingeleitet"
ausstehendangefordert_trigger_stripe_refund erfolgreich (Refund.create akzeptiert)stripe_refund_id und refund_initiated_at befüllt; Banner zeigt „Erstattung in Bearbeitung, voraussichtlich in 3–5 Werktagen"
ausstehendfehlgeschlagen_trigger_stripe_refund hat eine Ausnahme ausgelöst oder die Abbuchung war nicht bestätigtrefund_failure_reason befüllt; Banner bietet „Wiederholen" + „Manuell als erstattet markieren"
ausstehendmanuellFreelancer hat auf „Als erstattet markieren" geklickt (SEPA-Ablauf)refund_completed_at und manual_refund_reason befüllt; Kunde erhält E-Mail „Erstattung abgeschlossen"; Angebot wird ggf. geschlossen
angeforderterfolgreichWebhook refund.updated mit status=succeeded ODER Pull-basierte Synchronisierung hat succeeded zurückgegebenrefund_completed_at befüllt; E-Mail „Erstattung abgeschlossen"; Angebot geschlossen
angefordertfehlgeschlagenWebhook mit status=failed/canceledrefund_failure_reason befüllt; Banner bietet „Wiederholen" + „Manuell als erstattet markieren"
fehlgeschlagenangefordertFreelancer hat auf „Stripe-Erstattung wiederholen" geklickt (Artikel 8.8)Fehlerursache gelöscht; zurück zu Stripe
fehlgeschlagenmanuellFreelancer hat auf „Als erstattet markieren" geklickt (nach außerbankmäßiger SEPA-Überweisung)Wie ausstehend → manuell

erfolgreich und manuell sind Endzustände — beide zeigen an, dass der Geldtransfer abgewickelt wurde, nur über verschiedene Kanäle. Der Prüfpfad bewahrt, welcher Kanal verwendet wurde; das für Benutzer sichtbare Verhalten ist identisch (Abschluss-E-Mail, Angebot als bezahlt markiert, falls zutreffend, Gutschrift-PDF zugänglich).

Troubleshooting

Keep reading

Erstattungsstufen: ausgestellt → angefordert → erfolgreich (oder manuell) · Help · Clozo