Skip to main content

Refunds & Notifications · Article 6.4

Étapes du remboursement : émis → demandé → réussi (ou manuel)

La note de crédit passe par jusqu'à quatre états de la création au règlement. Chaque état correspond à un point spécifique du cycle de vie du remboursement, avec des badges d'interface et des déclencheurs d'e-mail prévisibles.

La machine à cinq états sur CreditNote.refund_status est la source de vérité unique pour la progression du remboursement. L'interface freelancer et les e-mails clients lisent tous les deux à partir d'elle. Comprendre la signification de chaque état — et quelles transitions sont possibles depuis lesquels — est le chemin le plus rapide pour diagnostiquer les questions « pourquoi mon remboursement est-il bloqué ? ».

Step by step

  1. Surveillez la bannière de remboursement du devis.

    Elle reflète le statut de la note de crédit avec un texte lisible : - pending (flux Stripe) → « Remboursement en cours — vérification Stripe » - pending (flux SEPA) → « Remboursement manuel — confirmez le virement bancaire » - requested → « Remboursement en cours — prévu dans 3 à 5 jours ouvrés. Vérifier le statut. » - failed → « Remboursement échoué : [raison]. Réessayez ou marquez manuellement. » - succeeded → « Remboursement effectué le [date] via Stripe. » - manual → « Remboursement effectué le [date] via virement manuel. »

  2. Utilisez la bonne action par état.

    pending flux Stripe : attendez ou réessayez. pending flux SEPA : émettez le virement + marquez comme remboursé. requested : Actualiser le statut (article 8.7) si la bannière reste statique pendant plus de 5 minutes. failed : Réessayer (article 8.8) ou marquez manuellement (article 8.9).

  3. Auditez via la Chronologie.

    Chaque transition d'état émet un événement dans la Chronologie (refund_initiated, refund_completed, etc.) avec des métadonnées (montant, méthode). Utile pour les inspecteurs fiscaux ou si vous devez jamais contester une transaction.

Why this works this way

Transitions d'état :

DeVersDéclencheurEffets secondaires
(aucun)pendingNote de crédit créée dans _build_credit_note post-signatureDocuments (Storno + Berichtigung + Gutschrift) créés ; le client reçoit l'e-mail « Remboursement initié »
pendingrequested_trigger_stripe_refund réussi (Refund.create accepté)stripe_refund_id et refund_initiated_at renseignés ; la bannière indique « Remboursement en cours, prévu dans 3 à 5 jours ouvrés »
pendingfailed_trigger_stripe_refund a levé une exception ou le débit n'était pas confirmérefund_failure_reason renseigné ; la bannière propose Réessayer + Marquer comme remboursé manuellement
pendingmanualLe freelancer a cliqué sur Marquer comme remboursé (flux SEPA)refund_completed_at et manual_refund_reason renseignés ; le client reçoit l'e-mail « remboursement effectué » ; le devis se ferme si applicable
requestedsucceededWebhook refund.updated avec status=succeeded OU synchronisation par extraction a renvoyé succeededrefund_completed_at renseigné ; e-mail « remboursement effectué » ; le devis se ferme
requestedfailedWebhook avec status=failed/canceledrefund_failure_reason renseigné ; la bannière propose Réessayer + Marquer comme remboursé manuellement
failedrequestedLe freelancer a cliqué sur Réessayer le remboursement Stripe (article 8.8)Raison d'échec effacée ; retour vers Stripe
failedmanualLe freelancer a cliqué sur Marquer comme remboursé (après avoir émis un remboursement SEPA hors canal)Identique à pending → manual

succeeded et manual sont terminaux — les deux indiquent que le flux de trésorerie est réglé, juste via différents canaux. La piste d'audit préserve quel canal ; le comportement visible par l'utilisateur est identique (e-mail de clôture, devis Payé si applicable, PDF de note de crédit accessible).

Troubleshooting

Keep reading

Étapes du remboursement : émis → demandé → réussi (ou manuel) · Help · Clozo