About
Nothing errors. The money is simply gone.
FeeGuard reconciles what your Stripe Connect platform actually moved against what it should have moved, and recovers the difference.
Why it exists
A Connect platform moves money in two directions at once. A charge comes in, an application fee is taken, a transfer goes out to the connected account. When all three stay in step, the ledger is correct.
They do not always stay in step. A refund can return the customer’s money while the connected account keeps the transfer it already received. A dispute can be lost after the payout has cleared. An application fee can go unadjusted when the charge behind it is partially refunded. FX movement between charge and payout can quietly shift the platform’s margin.
None of these is an error. Stripe does exactly what it was asked to do in every case, and the platform absorbs the difference. The discrepancy appears in no error log, no alert and no dashboard — only in a balance that is smaller than the maths says it should be.
FeeGuard watches the events as they happen, reconciles charges, transfers, application fees and disputes against each other, and flags the gaps. Where a gap qualifies for automatic recovery, it can reverse it.
Every discrepancy links to Stripe
A finding names the charge, the transfer and the fee objects behind it. Open them in your own dashboard and check the arithmetic yourself.
Restricted keys only
The connection asks for the narrowest set of Stripe permissions that can do the job. Write scopes gate auto-clawback alone and are optional.
Detection before recovery
You see what you are owed before anything is reversed. Automatic recovery is a decision you make per rule, not a default.
Race conditions are assumed
Events that can arrive out of order are held and re-evaluated rather than acted on immediately, because a false clawback is worse than a slow one.
Start free — no Stripe key required
The free audit takes no Stripe key at all. Paste an export of events or charges, or run the built-in sample, and the findings come back to your browser. Nothing you paste is kept.
Monitoring is the optional next step. It uses a restricted Stripe key you create yourself: detection needs read permissions only, and the write permissions that allow automatic recovery stay off until you enable them, rule by rule.
Trust & recovery controls
A restricted key, not a secret key
FeeGuard asks for five read permissions. A full secret key also works, but it is more access than the job needs, and the connection screen says so.
Write permissions are yours to grant
transfers:writeandapplication_fees:writeexist only for automatic recovery. Detection works without them, and recovery runs only for the rules you switch on.Every finding is checkable in Stripe
A discrepancy names the charge, transfer and fee objects behind it, so you can open them in your own dashboard before anything is reversed.
You can cut us off at any time
Revoke or roll the key in your Stripe dashboard and FeeGuard stops that instant, without a request to us.
No certification is claimed
We hold no SOC 2 report today, and the security page says exactly what we do and do not claim. Enterprise customers can request a written security overview, the subprocessors list and a signed DPA from legal@teamveristria.com.
Questions we get asked
- Why did my Stripe Connect refund lose money?
- Almost certainly because the transfer to the connected account was never reversed. A Connect charge is three separate movements — the charge, the application fee and the transfer — with independent lifecycles. Refunding the charge returns the customer their money from your balance and touches nothing else, because reverse_transfer defaults to false.
- What does reverse_transfer do, and why does it default to false?
- It reverses the transfer that paid the connected account when you refund the charge. The default is false because Stripe cannot know whose commercial loss a given refund is — that is a decision only the platform can make. The consequence is that a refund path written without it means the platform absorbs every refund.
- Should I refund the application fee as well?
- It depends whose fault the refund is, which is why refund_application_fee is also a parameter rather than a default. Keeping the fee is usually right for a buyer-remorse refund on a marketplace; returning it is usually right when the platform caused the problem. What matters is that the choice is deliberate and consistent with your terms.
- How do partial refunds split between platform and connected account?
- However you tell Stripe to split them, and whatever you do not allocate explicitly, the platform absorbs. Refund 40 of a 100 charge with a 10 fee and you can reverse 36 of the transfer and 4 of the fee to keep the split proportional, reverse the full 40 from the transfer, or reverse nothing. Stripe will do any of the three without comment.
- How long can I still reverse a transfer?
- In practice, only while the connected account still holds the balance to reverse against. There is no single deadline, but the further back a discrepancy goes the more likely it is unrecoverable — which is why a quarterly reconciliation tends to find losses that have already aged out. Detection close to the event is what makes recovery possible.
Part of Veristria
FeeGuard is a Veristria product
Veristria builds verification infrastructure for teams shipping software faster than they can review it. It was founded by Lars O. Horpestad, the author of Å ta smartere beslutninger med AI (2023), a practical guide to large language models.
All three Veristria products work the same way: look at what actually happened rather than what the code intended, prove the finding, and say plainly what to change. FeeGuard applies that to the money you move.
KeyDrift
Finds the API keys and secrets that AI coding tools leave behind in client-side JavaScript bundles.
keydrift.devRowShield
Checks what your Supabase anon key can read from a deployed URL — free, read-only, under ten seconds. Connecting one project is free and runs the nine-rule audit daily; paid plans add projects, faster scans, and more alert channels.
rowshield.devWho runs this

FeeGuard is built by Veristria (Norway), founded by Lars O. Horpestad. Veristria is a Norwegian aksjeselskap (AS) under incorporation (filed 24 August 2026); the organisation number is published on veristria.com/imprint when registration completes. Veristria is separate from AI ThinkLab AS (org.nr. 933 078 523), the founder’s prior company.
Address: Veristria, Sofie Steinnes'veg 9A, 4352 Kleppe, Norway.
The full company details are on the imprint and on Veristria’s About page. Sales, support, security, legal, press and billing each have a desk at @teamveristria.com, or call +47 988 36 369. We only email from @teamveristria.com, @useveristria.com, @meetveristria.com, @veristriagroup.com, @veristriahq.com, @veristriaworks.com and @withveristria.com.
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 here descriptively to identify the platform FeeGuard works with.