Refunds & Notifications · Article 6.9
Manuell als erstattet markieren – für SEPA und außerbörsliche Nachweise
Wenn eine Erstattung außerhalb von Stripe ausgestellt wird – SEPA-Banküberweisung, Bargeld, PayPal, versendeter Scheck – ist `Als erstattet markieren` der Weg, sie in Clozo zu erfassen. Das Begründungsfeld ist Pflicht (typischerweise eine Bankreferenz). Die Gutschrift wechselt in den Status `manuell`, und der Kunde erhält eine Bestätigungs-E-Mail.
Die große Mehrheit der Erstattungen in Clozo wird durch Stripe gesteuert und automatisch durchgeführt. Aber drei häufige Fälle durchbrechen dieses Muster: (1) Per SEPA bezahlte Anzahlungen, bei denen Stripe nichts zu erstatten hat; (2) Stripe-Erstattungen, die aus nicht-transienten Gründen fehlschlagen (geschlossene Karte, unzureichendes Guthaben – siehe Artikel 8.10) und bei denen der Freiberufler stattdessen eine außerbörsliche Überweisung ausstellt; (3) Erstattungen, die der Freiberufler aus geschäftlichen Gründen manuell abwickeln möchte (z. B. Zusammenfassung mit einer separaten Kulanzahlung in einer Banküberweisung). Alle drei enden am gleichen Punkt: Der Freiberufler erstattet über seine eigene Bank und klickt dann auf „Als erstattet markieren", um die Aufzeichnungen in Clozo korrekt zu halten.
Step by step
Erstattung über Ihre eigene Bank ausstellen.
SEPA-Überweisung, Scheck, Bargeld – was auch immer passt. Die Gutschriftnummer (CRN-2026-NNNN) als Verwendungszweck verwenden, damit der Kunde sie zuordnen kann.
Bestätigen, dass die Überweisung Ihr Konto verlassen hat.
Über Online-Banking prüfen, bevor Sie als erstattet markieren – sobald Sie klicken, erhält der Kunde eine E-Mail, dass es erledigt ist.
Gutschrift öffnen.
Über das Erstattungs-Banner des Angebots, die Gutschriftenseite oder das Dokumente-Dropdown.
Auf
Als erstattet markierenklicken.Ein Modal erscheint und fragt nach einer Begründung.
Begründung eingeben.
Bankreferenznummer ist die Konvention ("Sparkasse Ref XYZ-789", "PayPal Txn 7K9N", "Bankscheck Nr. 4521"). Alles, was es Ihnen ermöglicht, die tatsächliche Überweisung Jahre später zu rekonstruieren.
Bestätigen.
Status wechselt zu
manuell; Banner wechselt zu „Erstattung abgeschlossen am [Datum] per manueller Überweisung"; Kunde erhält Bestätigungs-E-Mail; Angebot schließt, falls zutreffend.
Erstattungs-Banner mit der Schaltfläche Als erstattet markieren. Nach dem Klicken und Bestätigen wechselt das Banner zu „Erstattung abgeschlossen am [Datum] per manueller Überweisung – [Begründung]". Das Gutschrift-PDF (neu generiert) enthält denselben Begründungstext in seinem Inhalt.
Why this works this way
Implementierung (CreditNoteMarkRefundedView in amendment_views.py:686):
1. Autorisieren. IsAuthenticated, eigentümerbegrenzt.
2. Idempotenzschutz. Bereits-succeeded gibt 409 mit completed_at zurück – eine von Stripe bereits abgeschlossene Erstattung kann nicht als manuell markiert werden.
3. Begründung erforderlich. Fehlt im Anfragekörper eine nicht-leere reason, wird 400 mit details.field=reason zurückgegeben.
4. Gutschrift aktualisieren. refund_status=manual, refund_completed_at=now, manual_refund_reason=reason (auf 500 Zeichen gekürzt).
5. Versuchen, das Angebot zu schließen. close_proposal_if_settled setzt das Angebot auf Paid, wenn keine anderen Pflichten mehr bestehen (keine anderen ausstehenden Erstattungen, keine aktiven Rechnungen mit amount_due > 0).
6. E-Mail „Erstattung abgeschlossen" senden. send_credit_note_refund_completed_email.delay(credit_note_id). Gleiche Vorlage wie Stripe-succeeded; der Kunde sieht keinen Unterschied.
7. Antwort: aktualisierter Gutschriftstatus + ob das Angebot geschlossen wurde.
Der Status manual (vs. succeeded) bewahrt die Prüfunterscheidung. Für Buchhaltungs- und Steuerzwecke wird manual identisch mit succeeded behandelt – beide bedeuten, dass der Geldteil abgerechnet ist und die Gutschrift geschlossen ist. Der Prüfpfad hält den Kanal separat, damit Streitigkeiten Jahre später genau nachvollziehen können, wie die Erstattung ausgestellt wurde.
Troubleshooting
Keep reading
Refunds & Notifications
SEPA / out-of-band refund: when automation can't help
When the original deposit was paid via SEPA bank transfer (or any non-Stripe channel), Clozo can't refund automatically — Stripe API has nothing to refund. You issue the SEPA transfer manually from your bank, then click `Mark refunded` to update the credit note and notify the client.
Refunds & Notifications
Refund stages: issued → requested → succeeded (or manual)
The credit note moves through up to four states from creation to settled. Each state corresponds to a specific point in the refund lifecycle, with predictable UI badges and email triggers.
Refunds & Notifications
The Credit Notes page
A first-class section in the freelancer dashboard that lists every credit note across all your proposals, with status, refund amount, linked proposal, and action buttons. Use this when you want to manage refunds without drilling into each proposal individually.
Refunds & Notifications
Failed refunds & recovery — common Stripe failure reasons
A `failed` credit note has a `refund_failure_reason` string from Stripe. Most reasons fall into a small set; here's what each means and the recommended recovery.