Skip to main content

Refunds & Notifications · Article 6.9

Oznaczanie zwrotu ręcznie — dla SEPA i dowodów poza systemem

Gdy zwrot jest realizowany poza Stripe — przelew bankowy SEPA, gotówka, PayPal, czek pocztowy — `Oznacz jako zwrócony` to sposób na zarejestrowanie tego w Clozo. Pole powodu jest obowiązkowe (zazwyczaj referencja bankowa). Nota kredytowa przechodzi do statusu `manual`, a klient otrzymuje e-mail potwierdzający.

Zdecydowana większość zwrotów w Clozo jest obsługiwana przez Stripe i automatyczna. Ale trzy typowe przypadki przełamują ten wzorzec: (1) zaliczki zapłacone SEPA, gdzie Stripe nie ma czego zwracać; (2) zwroty Stripe, które nie powiodły się z nietranzytywnych przyczyn (zamknięta karta, niewystarczające saldo — patrz artykuł 8.10) i freelancer realizuje przelew poza systemem; (3) zwroty, które freelancer decyduje się obsłużyć ręcznie z powodów biznesowych (np. konsolidacja z oddzielną płatnością goodwill w jednym przelewie bankowym). Wszystkie trzy kończą się w tym samym miejscu: freelancer realizuje rzeczywisty zwrot przez własną bankowość, a następnie klika Oznacz jako zwrócony, aby utrzymać porządek w rejestrach Clozo.

Step by step

  1. Zrealizuj zwrot przez własną bankowość.

    Przelew SEPA, czek, gotówka, cokolwiek pasuje. Użyj numeru noty kredytowej (CRN-2026-NNNN) jako referencji, aby klient mógł go dopasować.

  2. Potwierdź, że przelew opuścił Twoje konto.

    Sprawdź dwukrotnie przez bankowość online przed oznaczeniem jako zwrócony — po kliknięciu klient otrzymuje e-mail mówiący, że jest gotowe.

  3. Otwórz notę kredytową.

    Z banera Zwrot oferty, strony Not kredytowych lub listy Dokumenty.

  4. Kliknij Oznacz jako zwrócony.

    Pojawia się modal z pytaniem o powód.

  5. Wprowadź powód.

    Numer referencji bankowej to konwencja ("Ref. banku XYZ-789", "Transakcja PayPal 7K9N", "Czek bankowy #4521"). Cokolwiek pozwoli Ci zrekonstruować rzeczywisty przelew wiele lat później.

  6. Potwierdź.

    Status przechodzi do manual; baner zmienia się na „Zwrot zakończony dnia [data] przez przelew ręczny"; klient otrzymuje e-mail potwierdzający; oferta zamyka się jeśli dotyczy.

Baner Zwrotu z przyciskiem Oznacz jako zwrócony. Po kliknięciu i potwierdzeniu baner zmienia się na „Zwrot zakończony dnia [data] przez przelew ręczny — [powód]". PDF noty kredytowej (zregenerowany) zawiera ten sam tekst powodu w treści.

Why this works this way

Implementacja (CreditNoteMarkRefundedView w amendment_views.py:686):

1. Autoryzacja. IsAuthenticated, zakres właściciela. 2. Guard idempotentności. Już-succeeded zwraca 409 z completed_at — nie możesz oznaczyć jako zwróconego zwrotu, który Stripe już zakończył. 3. Wymagany powód. Jeśli treść nie zawiera niepustego reason, zwróć 400 z details.field=reason. 4. Aktualizacja noty kredytowej. refund_status=manual, refund_completed_at=now, manual_refund_reason=reason (skrócone do 500 znaków). 5. Próba zamknięcia oferty. close_proposal_if_settled zmienia ofertę na Paid, jeśli nie pozostają inne zobowiązania (brak innych oczekujących zwrotów, brak zaległych aktywnych faktur z amount_due > 0). 6. Uruchomienie e-maila „zwrot zakończony". send_credit_note_refund_completed_email.delay(credit_note_id). Ten sam szablon co po Stripe-succeeded; klient nie widzi różnicy. 7. Zwrot zaktualizowanego stanu noty kredytowej + czy oferta się zamknęła.

Status manual (vs succeeded) zachowuje rozróżnienie audytu. Dla celów księgowych i podatkowych manual jest traktowany identycznie jak succeeded — oba oznaczają, że operacja gotówkowa się rozliczyła i nota kredytowa jest zamknięta. Ścieżka audytu oddzielnie rejestruje kanał, dzięki czemu spory wiele lat później mogą precyzyjnie prześledzić, jak zwrot był realizowany.

Troubleshooting

Keep reading

Oznaczanie zwrotu ręcznie — dla SEPA i dowodów poza systemem · Help · Clozo