Troubleshooting & Reference ยท Article 7.3
"The refund shows as Requested but Stripe says it succeeded"
The credit note is stuck in "Requested" status while Stripe's dashboard shows the refund as `succeeded`. Almost always a missing webhook subscription on the Connect account; one click on `Refresh status` resolves it.
Stripe Connect refunds rely on webhooks to keep Clozo's view in sync with Stripe's actual state. When a webhook subscription is misconfigured or transiently fails, the refund "completes" on Stripe's side but Clozo doesn't know it yet. The Refresh status button is the manual reconciliation โ it's safe to click as many times as you want.
Step by step
Confirm Stripe's view.
Open Stripe dashboard โ Refunds โ look up the refund ID. If status is
succeeded, proceed.Click
Refresh statuson the credit note in Clozo (Credit Notes page or the proposal detail).
Watch the status flip.
Within 2-3 seconds, the credit note should move to
Succeededand the refund-completed email fires.
Why this works this way
Refunds go through four states: Requested โ Processing โ Succeeded (or Failed). The state machine moves forward when the corresponding Stripe webhook arrives โ refund.created, refund.updated, charge.refunded. If any subscription is missing on the Connect account dashboard, the corresponding state transition stalls.
In May 2026 ([D-115] / BUG-PROD-009), we identified that some Connect accounts created before the fix didn't have refund.updated in their subscription set. The fix landed in two parts: (1) the default subscription template now includes refund.updated for all new accounts, (2) a migration backfilled subscriptions for existing accounts. If you onboarded before May 2026 and haven't rolled the fix forward, the Refresh status button covers the gap.
Refresh status calls Stripe's API (stripe.Refund.retrieve(refund_id)) and applies the returned state directly. There's no risk of double-processing โ the local state machine is idempotent on the same target state.
Troubleshooting
Keep reading
Refunds & Notifications
Email: "Refund completed โ โฌX returned"
The closing email of a refund flow. Fires when Stripe confirms the refund succeeded (or when you mark a SEPA refund as complete). Carries the credit note PDF.
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.