Refunds & Notifications · Article 6.7
Actualiser le statut — synchronisation par extraction quand le webhook Stripe n'est pas arrivé
Les webhooks ne sont pas parfaits. Lorsqu'une note de crédit semble bloquée à `requested` malgré le traitement du remboursement par Stripe, cliquez sur `Actualiser le statut` pour récupérer l'état actuel directement depuis Stripe. Même logique de transition que le webhook ; aucun risque de double déclenchement des effets secondaires.
Actualiser le statut est le bouton « coup de pied aux pneus ». Lorsque tout fonctionne, le webhook livre le verdict de Stripe en quelques secondes et vous n'avez pas besoin de ce bouton. Lorsque le webhook est retardé ou perdu (problème réseau sur votre endpoint, file d'attente webhook de Stripe surchargée, votre endpoint a renvoyé une réponse 5xx qui a épuisé la fenêtre de réessai de 3 jours de Stripe), Actualiser vous permet de contourner le canal push et de récupérer la réponse directement. Le résultat est le même que si le webhook était arrivé proprement.
Step by step
Remarquez un statut
requestedbloqué.La bannière indique « Remboursement en cours, prévu dans 3 à 5 jours ouvrés » et reste statique depuis plus de 24 heures.
Cliquez sur
Actualiser le statut.Depuis la bannière de remboursement ou la ligne de la page Notes de crédit.
Attendez ~2 secondes.
Le serveur appelle l'API Stripe sur le compte connecté ; résout l'état canonique.
L'interface se met à jour sur place.
Si Stripe indique succeeded → la bannière bascule sur « Remboursement effectué le [date] » ; l'e-mail « remboursement effectué » se déclenche ; le devis se ferme si applicable. Si failed → la bannière propose des options Réessayer / Marquer comme remboursé. Si toujours en attente côté Stripe → le texte de la bannière se rafraîchit pour refléter l'état rapporté par Stripe.
Aucune action supplémentaire nécessaire si l'état a changé.
Tous les hooks en aval se déclenchent automatiquement.
Bannière de remboursement avec le bouton Actualiser le statut. Après le clic, un bref indicateur de chargement, puis soit aucun changement (Stripe toujours en attente), soit mise à jour de la bannière vers l'état terminal.
Why this works this way
Pourquoi un bouton manuel plutôt qu'une synchronisation cron quotidienne ? Coût et latence. Un cron qui interroge Stripe quotidiennement pour chaque note de crédit à l'état requested ajoute une charge API régulière aux limites de débit de Stripe ET introduit jusqu'à 24h de latence avant une mise à jour de l'interface. Le bouton manuel place le coût là où il est réellement nécessaire (le freelancer se demande pourquoi la bannière est bloquée) et donne une résolution quasi instantanée. Nous pourrions ajouter une synchronisation automatisée à terme si les tickets de support montrent que ce serait utile, mais le chemin manuel couvre ~95% des cas.
Troubleshooting
Keep reading
Refunds & Notifications
Stripe automatic refund (Direct Charges via Connect)
When the original deposit was paid via Stripe, the refund is automatic. Clozo issues a Refund on the freelancer's connected account, watches for the `refund.updated` webhook, and flips the credit note to `succeeded` once Stripe confirms — typically within 3–5 business days for the cash to reach 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
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.
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.