Skip to content

Free audit · no account required

Quantify your silent Stripe Connect fee leaks in under 90 seconds

Paste your charge.refunded events or charge objects. The same four detectors that run in production return your recoverable baseline, broken down by cause. No signup, no credentials, nothing stored.

Up to 500 objects. Nothing is stored — the scan runs in the request and the result is returned straight to your browser.

Get your paste with one Stripe CLI command

Your last 100 charges with their transfers, fees and refunds, read with your own Stripe login. Paste the whole output above. Drop --live to try it on test data.

stripe charges list --live --limit=100 -d "expand[]=data.transfer" -d "expand[]=data.application_fee" -d "expand[]=data.refunds"

We deliberately do not accept Stripe API keys here. An unauthenticated form collecting credentials has no audit trail and no way to revoke — so this works on event data instead. Key-based monitoring lives behind signup, where the key is encrypted and revocable.

Understand what the scan is looking for

Four ways Stripe Connect quietly costs platforms money. Each guide explains the mechanism and shows the arithmetic.

The seven-step manual check

Works on any Connect platform. No signup, no key, no tooling beyond the Stripe API you already use.

  1. 1

    List charges and refunds for the last 90 days. The Events API keeps events for about 30 days, so a charge.refunded event export will not cover the full window.

  2. 2

    For each charge that has a transfer, retrieve the transfer and sum reversals.

  3. 3

    Calculate expected reversal = (amount_refunded / amount) × transfer.amount. Flag if actual < expected.

  4. 4

    For every application_fee on those charges, confirm amount_refunded is proportional.

  5. 5

    Pull all charge.dispute.closed with status=lost; verify transfer reversal + fee refund occurred.

  6. 6

    Sum missing amounts. That number is your recoverable baseline.

  7. 7

    Connect FeeGuard if you would rather this ran continuously than once.

Would rather it ran continuously than once?

Or stay on the free tier — connect FeeGuard, detection is free