Free scan

Scan for uncovered dispute losses — paste charge.dispute.closed events

Paste `charge.dispute.closed` events where status was lost, and the scanner pairs each against its source charge’s transfer to show which losses debited your platform while the seller kept funds — recoverable figure computed per case, dispute fee excluded because network rules never let it move.

Inputs and computation

Same accepted shapes as the transfer scanner. Per lost dispute with a transfer: recoverable = transfer.amount − amount_reversed, never dispute.amount (overstates by your fee), never including the $15-style fee. Partial wins read from balance transactions when present.

Output anatomy and caveats

Rows per case: disputed amount debited, recoverable remainder, reachability note based on reversal state. Open disputes do not appear — realised losses only, since pre-judging live disputes belongs to watch-lists, not scanners.

Privacy

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.

Common questions

Partial wins?

Handled via balance-transaction reads where data permits; rows annotate when fuller exports improve precision.

Fraud-coded disputes?

Same math; different strategy — early-reversal gating lives in the playbook, not the scanner.