The watchdog for your subscription billing.

Every renewal, checked before it charges and after. We flag the charges that shouldn’t go out and the ones that should have, so you keep what you’re owed and lose nothing to refunds.

Get a free billing check →On Stripe? Connect in one click →READ-ONLY · RECHARGE, LOOP & STRIPE · NO CARD

Everything it sniffs out.

Four checks around every billing cycle. Each finding is either confirmed by your own records or marked for review. Nothing gets guessed.

01BEFORE EACH RUN

Before it charges

Every queued renewal checked against the subscriber’s own record, while there’s still time to fix it.

  • Cancelled, still queuedCAUGHT
  • Skip didn’t applyCAUGHT
  • Paused, still queuedCAUGHT
  • About to be billed by two appsREVIEW
  • Price different from their planREVIEW
  • No renewal notice on recordREVIEW
02AFTER EACH RUN

After it charges

What actually went out, compared with what should have.

  • Charged after cancellingCAUGHT
  • Charged on a skipped dateCAUGHT
  • Charged while pausedCAUGHT
  • Failed-payment retry after cancelCAUGHT
  • Two subscriptions, one customerREVIEW
  • Active, but never chargedREVIEW
  • Refund that never landedREVIEW
03WHEN THINGS CHANGE

When things change

Price changes and app switches are where billing breaks.

  • Who kept the old priceWATCH
  • Double-billed after a switchCAUGHT
  • Dropped in a switchCAUGHT
  • Safe date to uninstall old appDATE
  • Missed webhooks, re-checked nightlyFIXED
IN DEVELOPMENT
04EVERY MONTH

Signed off monthly

A statement you can hand to finance, and a record for disputes.

  • Renewals checked and billedCOUNT
  • Stopped before charging$
  • Confirmed and fixed$
  • What we couldn’t seeLISTED
  • Evidence packet per disputeREADY
IN DEVELOPMENT

Your billing app says everything’s fine. We check.

Your subscription app runs the billing, so it’s also grading its own work. It’s good at the billing. Most mistakes come from the gaps around it, and nobody is watching those.

  1. 01A cancel lands after the charge is queuedThe customer did everything right. The charge goes out anyway.
  2. 02Someone edits a subscription by handA skip, a discount or a date change that doesn’t stick.
  3. 03You change a priceSome subscribers move over, some don’t, and nobody’s sure which.
  4. 04You switch subscription appsFor a cycle or two, both apps bill, or neither does.
  5. 05A payment retry fires after a cancelAn old failed charge goes through on someone who has left.
  6. 06A webhook goes missingYour systems quietly disagree about who’s active.

Four verdicts. No guessing.

Every renewal ends up with exactly one stamp. Only “Caught” goes into the money total. Anything uncertain is marked for your review and never counted.

CAUGHTConfirmed by your recordsThe charge is wrong and your own data proves it. The only verdict counted in money totals.
REVIEWNeeds your eyesSomething looks off but could be on purpose. We say exactly what’s missing and who holds it. Never totalled.
CLEARChecked and fineMatches the plan, the price and the subscriber’s status. Most renewals land here.
CAN’T SEEOutside our viewData we weren’t given or can’t reach. Listed plainly in every report, never assumed clean.
1Connect read-onlyLink Shopify and Recharge or Loop. We agree what we read first, and we never change your billing.
2Every renewal checkedBefore and after each billing run, with fixed rules, not AI guesses. The same rules every time.
3You fix, we confirmEach case has a next step. Fix it in your app, and we close it only when the data shows the fix.

Every case comes with its proof and the next step.

CASE 222 · EXAMPLE DATACAUGHT
Grace Whitlock · cancelled, still queued
SHE CANCELLED29 SEP
→
QUEUED CHARGE$54.00

Next step: cancel the queued charge in Recharge before Thursday’s run. We confirm the fix on the next sync, and the case only closes when the data shows it.

STATEMENT 009EXAMPLE DATA
September, signed off.
1–30 SEP · RULES V17 · HARTLEY & FINCH COFFEE

  • RENEWALS CHECKED4,812
  • BILLED$182,440.12
  • STOPPED BEFORE CHARGING11 · $627.00
  • CONFIRMED DISCREPANCIES3 · $214.00
  • NEEDED REVIEW (NOT TOTALLED)6
  • FOUND AFTER BILLING1
  • COVERAGE94% FULLY SEEN

WHAT WE COULDN’T SEE: 4% had partial records, 2% were prepaid gifts outside coverage. One confirmed case was still open at sign-off.

Switching apps? We watch the handover.

Moving from Recharge to Loop, or anywhere else, is when billing breaks worst. For a cycle or two, both apps can bill the same person, or neither does. We match every old subscriber to their new one and follow them through their first renewal on the new app.

The match is checked on a sample before we state how good it is, and you get told when it’s safe to switch off the old app.

RECHARGE → LOOP · 4,800 SUBSCRIBERSEXAMPLE DATA
  • OKMoved cleanly, billed once on the new app4,612
  • DOUBLEBoth apps billed the same period14
  • SILENT LOSSNobody billed them after the switch9
  • DRIFTPrice, date or quantity changed in the move41
  • NOT MIGRATEDStill only on the old app23
  • PENDINGFirst renewal on the new app still to come101
SAFE TO UNINSTALL OLD APP: 27 OCT · after the last first renewal clears
● RECORDING SINCE 12 AUGCHAIN INTACT
  • 07:58:14skip · Priya Nair · Oct#18402
  • 07:51:02pause · Daniel Kahu · till Nov#18401
  • 07:44:40queued · 1,284 for Thu#18400
  • 07:30:09refund · Jane Dawson · $45#18399
  • 07:12:55reconcile · 3 missed webhooks#18398
  • 06:48:31cancel · Grace Whitlock#18397
  • 06:20:17charge · Sione Latu · $72#18396

A record nobody can rewrite.

From the day you connect, every subscription change is written to a tamper-evident log: cancels, skips, price changes, charges and refunds, each with the time it happened and the time we saw it. Missed webhooks get caught by a nightly re-check.

It’s also where your dispute evidence comes from. See the evidence packet ↓

DISPUTE-SUPPORTING EVIDENCE

When a customer disputes a charge, you already have the file.

Pull up an evidence packet for any charge, built from the record kept since the day you connected: what they agreed to, what they were told, what they did, and what was charged and delivered. It’s sorted by the card network’s reason code, so you see exactly what the bank will look for.

  • 3reason codes covered: Visa 13.2, Visa 13.5 and Mastercard 4841
  • ✓every item marked present, missing or against you
  • #log integrity checked, so the timeline can’t be quietly edited
AGAINST YOU

It tells you when you’d lose. If a customer cancelled before the charge, the packet says so, and you refund instead of wasting time on a dispute you can’t win.

Card issuers decide disputes, and they can weigh things we can’t see. We hand you the file; we don’t promise the outcome.

EVIDENCE PACKET · CHARGE 40912EXAMPLE DATA
Ellis MooreCold Brew subscription · charged 2 Oct
$45.00
VISA 13.2 · CANCELLED RECURRINGVISA 13.5MC 4841
  • Recurring terms disclosed at signupCheckout 12 Mar · terms v3 acceptedPRESENT
  • Renewal notice sent before the chargeEmail 25 Sep · 7 days beforePRESENT
  • No cancellation before the chargeNo cancel request on recordPRESENT
  • Order for this charge fulfilled#40912 delivered 5 OctPRESENT
  • Customer used the service afterNot in our data. Attach it if you have it.MISSING
  • Event log integrityHash chain verified end to endPRESENT
5 PRESENT1 MISSING0 AGAINST YOU
TIMELINE FROM THE RECORD
  1. 12 MARSigned up · recurring terms v3 accepted
  2. 25 SEPRenewal notice sent
  3. 02 OCT 00:04Charged $45.00
  4. 05 OCTOrder #40912 delivered
For merchant or legal review. Items marked missing aren’t in the data; attach them if you hold them elsewhere.

What we promise. What we won’t.

We promise
  • ✓ Read-only access. Your billing stays yours.
  • ✓ “Caught” means your own records prove it.
  • ✓ Uncertain findings are marked, never totalled.
  • ✓ Every report lists what we couldn’t see.
  • ✓ Same fixed rules every time, traceable to records.
We won’t claim
  • ✕ That we catch every possible error.
  • ✕ That we win disputes. Card issuers decide.
  • ✕ That this is an accounting firm or formal audit.
  • ✕ That we’re big. We’re new, and small on purpose.
  • ✕ Any number about your store before we’ve checked it.
MADE IN NEW ZEALAND

Hi, I’m Toby.

Ferret Ledger is new, and I’m taking a small number of founding stores so every one gets my full attention.

hello@ferretledger.com →

Start free.

Your first check is free, with no card. Then 30 days of daily monitoring, free. After that, one monthly fee based on how many active subscriptions you have, never on what we find. We never take a cut of your revenue or get paid by billing apps.

START HEREFree billing check$0
  • ✓ Every renewal checked
  • ✓ The proof and next step for each finding
  • ✓ What we couldn’t see, listed
  • ✓ Then 30 days of daily monitoring free
Get a free check
UP TO 1,000 SUBSCRIPTIONSStarter$79 / month
  • ✓ Daily checks of every renewal
  • ✓ Permanent record of cancels and pauses
  • ✓ Sealed monthly statement
  • ✓ Email support
Start with the free check
UP TO 5,000 SUBSCRIPTIONSGrowth$149 / month
  • ✓ Everything in Starter
  • ✓ For bigger subscriber bases
  • ✓ Priority email support
  • ✓ No revenue share, ever
Start with the free check

Prices in USD. Bigger? Scale is $399/month for up to 20,000 subscriptions, and Enterprise starts at $799/month. Our first ten paying brands get 50% off for 12 months. Full pricing →

Get your free billing check.

  1. 1You send the form. We reply within one business day with a short data agreement: what we read, how it’s stored, when it’s deleted.
  2. 2You connect read-only access. It takes a few minutes.
  3. 3You get a report on one billing cycle: what’s caught, what needs review and what we couldn’t see.

This form is for Recharge and Loop today; pick another app to register interest. On Stripe, skip the form and connect in one click. Please don’t send passwords, API keys or customer records here. Privacy policy.

Straight answers.

Can it change my billing?

No. Access is read-only. It can’t change prices, cancel subscriptions, refund or charge anyone. You make fixes in your own app, and we confirm them from the data.

Which apps does it work with?

Recharge and Loop on Shopify today. Stripe connects in one click from app.ferretledger.com/connect/stripe. Use something else? Tell us in the form. It decides what we build next.

Doesn’t my subscription app already do this?

Your app runs the billing and it’s good at it. But it can’t independently check itself, and most mistakes come from the gaps around it: late cancels, manual edits, price changes and app switches.

What if the check finds nothing?

You get a report showing what was checked and what we couldn’t see. No findings means nothing was wrong in those records. It isn’t a promise that nothing could ever go wrong.

What happens to my customers’ data?

We read only what the checks need, never sell it, and delete it when you ask or leave. You get the data agreement before you connect anything.

Why “Ferret”?

Ferrets get into the gaps nobody else looks in. That’s the job.