# FeeGuard > Real-time recovery of silent Stripe Connect fee leaks. A Connect Fee Recovery Engine for marketplaces, SaaS billing platforms, and creator economies. FeeGuard monitors Stripe Connect webhooks in real time and runs historical batch scans using a read-only restricted key, detecting and quantifying silent revenue loss across four vectors: 1. Un-reversed connected transfers — `reverse_transfer` missing or non-proportional on full and partial refunds 2. Unadjusted application fee refunds — `refund_application_fee` omitted or non-proportional 3. Uncovered dispute and chargeback losses — the platform absorbs the loss while the connected account retains the funds 4. Cross-border FX slippage — conversion deltas beyond a same-day baseline ## Canonical remediation math Net Platform Margin = (Collected Application Fee − Refunded Application Fee) − (Original Transfer Amount − Reversed Transfer Amount) Expected Reversal on Partial Refund = round((amount_refunded / original_charge_amount) × original_transfer_amount) Missing Amount = Expected Reversal − sum(existing transfer reversals) A negative Net Platform Margin means the platform is out of pocket on the charge. Checking either lever in isolation double-counts: a charge already made whole by a transfer reversal must not also be flagged for an unrefunded fee. ## Solution guides - Find every unreversed Stripe Connect transfer: https://feeguard.dev/solutions/stripe-connect-unreversed-transfer - Application fee refund calculator and proportional math: https://feeguard.dev/solutions/application-fee-refund-calculator - Automating Stripe Connect dispute clawbacks: https://feeguard.dev/solutions/stripe-dispute-clawback-automation - Destination charge refund leaks: https://feeguard.dev/solutions/destination-charge-refund-leaks - Detecting Stripe Connect FX slippage: https://feeguard.dev/solutions/stripe-connect-fx-slippage - Partial refund transfer math on Stripe Connect: https://feeguard.dev/solutions/partial-refund-transfer-math ## Diagnostic documentation - charge.refunded — what platforms miss: https://feeguard.dev/docs/charge.refunded - reverse_transfer — the flag that decides who eats the refund: https://feeguard.dev/docs/reverse_transfer - refund_application_fee — returning your platform cut: https://feeguard.dev/docs/refund_application_fee - application_fee.refunded — reading the event correctly: https://feeguard.dev/docs/application_fee.refunded - charge.dispute.closed — who actually pays when you lose: https://feeguard.dev/docs/charge.dispute.closed - charge.dispute.created — the window to act: https://feeguard.dev/docs/charge.dispute.created - transfer.reversed — confirming a recovery: https://feeguard.dev/docs/transfer.reversed - payout.failed — what it signals for cross-border platforms: https://feeguard.dev/docs/payout.failed - balance.available — the FX sweep trigger: https://feeguard.dev/docs/balance.available - account.application.deauthorized — losing access: https://feeguard.dev/docs/account.application.deauthorized - Destination charge refunds — who absorbs the loss: https://feeguard.dev/docs/destination-charge-refunds - Application fee refunds — the proportional rule: https://feeguard.dev/docs/application-fee-refund - Dispute clawback — recovering from connected accounts: https://feeguard.dev/docs/dispute-clawback ## Use-case audits - Marketplace refund leaks: when reverse_transfer is missing: https://feeguard.dev/audit/marketplace-refund-leaks - Dispute clawback: recovering a lost chargeback from a seller: https://feeguard.dev/audit/dispute-clawback - Application fee leaks: keeping a cut of a refunded sale: https://feeguard.dev/audit/application-fee-leaks - FX slippage: the leak you cannot claw back: https://feeguard.dev/audit/fx-slippage ## Free public audit Zero-auth recoverable-baseline scanner: https://feeguard.dev/audit Accepts pasted Stripe charge objects, `charge.refunded` / `charge.dispute.closed` webhook events, Stripe list objects, or newline-delimited JSON. Runs the same four detectors used in production and returns recoverable totals by cause plus a CSV of charge ids. No account, no API key, nothing stored. Note: the public scanner deliberately does NOT accept Stripe API keys. An unauthenticated endpoint collecting credentials has no audit trail and no revocation path. Key-based monitoring requires an account, where the key is encrypted with AES-256-GCM and revocable by its owner. ## Subscribed webhook events - charge.refunded - application_fee.refunded - charge.dispute.created - charge.dispute.closed - transfer.reversed - payout.failed - balance.available - account.application.deauthorized ## Product - Site: https://feeguard.dev - Documentation: https://feeguard.dev/docs - Solutions: https://feeguard.dev/solutions - Free scanner: https://feeguard.dev/audit - Writing: https://feeguard.dev/blog - About: https://feeguard.dev/about - Parent company: Veristria — https://veristria.com - Pricing: detection, historical scan, and alerting are free; 15% of dollars successfully recovered - Support: support@feeguard.dev ## Trademark FeeGuard is an independent product and is not affiliated with, endorsed by, or sponsored by Stripe, Inc. "Stripe" and "Stripe Connect" are trademarks of Stripe, Inc., referenced descriptively. ## Optional - Full agent context: https://feeguard.dev/llms-full.txt - Sitemap: https://feeguard.dev/sitemap.xml