Free scan
Scan for unreversed transfers — paste your charge.refunded events
Paste your last quarter of `charge.refunded` events — or raw charge objects — and the same detectors that run in FeeGuard’s production pipeline compute exactly which refunds left money stranded in connected accounts, per charge, with a CSV of ids for recovery work. No account, no API key, nothing stored.
What you can paste
Accepted shapes: single charge objects; charge.refunded webhook envelopes; Stripe list objects ({ object: "list", data: [...] }); newline-delimited JSON mixing any of the above. Malformed lines report rather than abort, so partial exports still yield results.
What gets computed
Per charge with a transfer: proportional expected reversal (half-up, ratio clamped), minus actual reversals, tolerance two minor units, net-position cross-check so fee-made-whole charges never double-flag. Output: recoverable total, breakdown by cause, CSV of affected charge ids.
- Charge
- ch_3Px…9sK
- Refunded / amount
- $33.33 / $100.00
- Expected vs reversed
- $30.00 vs $0.00
- Missing
- $30.00
Privacy and limits
The public scanner deliberately does not accept Stripe API keys: an unauthenticated endpoint collecting credentials would have no audit trail and no revocation path. Key-based monitoring happens only inside accounts where keys are encrypted with AES-256-GCM and revocable by their owners.
Results reflect pasted snapshots; live state may already differ. The practical lookback is 90 days — older findings rarely retain reachable balances anyway.
Common questions
Why not accept API keys here?
The public scanner deliberately does not accept Stripe API keys: an unauthenticated endpoint collecting credentials would have no audit trail and no revocation path. Key-based monitoring happens only inside accounts where keys are encrypted with AES-256-GCM and revocable by their owners.
How current are results?
As current as your export — snapshot semantics apply, and re-pasting fresher data refreshes everything.