Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
  1. Home
  2. Blog
  3. Why Does Our Internal Ledger Never Quite Match What the Provider Says We Hold?
Problems We Solve

Why Does Our Internal Ledger Never Quite Match What the Provider Says We Hold?

Fintech startups find their ledger and provider balances out by small amounts every day. We build a daily reconciliation that matches items and explains breaks.

Updated 3 min readBy SpiderHunts Technologies

Free estimateNo obligation

Get a free estimate

Tell us what you need. A senior engineer reads every enquiry.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →

Quick answer — TL;DR

Ledger versus provider differences come from timing, fees, reversals and events your ledger never received, and matching totals will not tell you which. We build a daily item-level reconciliation that pulls the provider's statements and your ledger entries, matches them on references, classifies each break and gives ops a short list to investigate with a record of how each was cleared.

The morning spreadsheet that never balances

Every morning someone in finance or ops downloads yesterday's statement from the provider, exports your ledger for the same day, and pastes both into a spreadsheet. The totals are close. They are rarely the same.

The difference is small, so it gets noted as a timing difference and carried forward. By Friday there are five of these, and a couple from last week that never cleared. Nobody is sure whether they relate to the same payments. When the month closes, finance asks for an explanation and the answer is a list of guesses.

Where the differences come from

A daily total comparison hides the causes, because different kinds of break net against each other. The usual causes are ordinary but they need different fixes.

CauseWhat it looks likeWhere it usually starts
Cut-off timingAn item is on one day in your ledger and the next day at the providerDifferent day boundaries or time zones
Provider feesAmounts deducted that your ledger did not postFees shown only in statements, not in events
Returns and reversalsMoney back in with a new referenceReturn events not linked to the original payment
Missed eventsProvider has an item your ledger never sawDropped or failed webhooks
Manual adjustmentsOps fixed something in one place onlyNo shared adjustment process
DuplicatesThe same event posted twiceRetried webhooks without idempotency checks

Once the breaks are split by cause, most of them repeat. The same fee type, the same kind of return, the same webhook that sometimes arrives twice.

Living with unexplained breaks

Unexplained differences take real people's time every day and they tend to grow. They make month end slow, because finance has to reconstruct weeks of history. They make it harder to answer a partner who asks for evidence that balances were checked. And a genuine problem, such as a payment that went out twice, can hide inside a pile of small timing differences for longer than it should.

The reconciliation we set up

What we build is an automated daily match at item level, with the human part saved for the breaks that need a decision.

  1. Provider data is pulled automatically each day through the provider's API or statement files, including fees and returns.
  2. Your ledger entries for the same window are read from your database or ledger service.
  3. Items are matched on the provider reference first, then on amount, date window and counterparty where references are missing.
  4. Unmatched items are classified using rules for the causes above, so a known fee type or a timing item is labelled rather than left open.
  5. Timing items are carried and automatically cleared when their pair arrives the next day.
  6. Everything left over goes to a short break list, with the evidence from both sides on one screen and a place to record the resolution.
  7. A daily summary shows matched, carried, explained and open items, and the age of each open one.

Where a break reveals a missed event, the fix is logged so engineering can see patterns, such as one webhook type that keeps failing.

If your finance system is Xero, NetSuite or similar, the reconciled position and adjustments can be posted there through its API rather than typed.

After a month of daily matching

The morning spreadsheet is replaced by a report that is already done. Most days the break list is short, and each item on it has both sides of the evidence attached. Ops clears it in the morning, records a reason, and the item stops appearing.

Month end becomes a review of daily results rather than a reconstruction. When someone asks how a particular balance was checked on a particular day, you open that day's report and show them.

Are your balances doing this?

  • Someone compares daily totals in a spreadsheet by hand.
  • Small differences get carried forward as timing without a match.
  • Provider fees or returns are not posted to your ledger automatically.
  • The same break keeps appearing for the same reason.
  • Month end takes days because breaks have to be rebuilt from history.

FAQ

Frequently asked questions

The questions readers ask us after this guide.

Still have a question?

Ask us directly — a senior engineer will get back to you.

Ask about your project

Do we need to replace our ledger?

No. We read from the ledger you have. If it is missing things such as fee postings, we show where and suggest the smallest change.

What if the provider does not give us item-level data?

Most providers offer statement files or API endpoints with item detail. If yours does not, we match at the lowest level it does give and flag the limits clearly.

Who decides how a break is resolved?

Your team. The system classifies and suggests, and a person records the resolution for anything that is not a known pattern.

Can it handle more than one provider and currency?

Yes. Each provider account is reconciled separately against the matching ledger accounts, in its own currency.

What drives the cost?

The number of providers and accounts, how clean the references are on both sides, and whether results post into your finance system.

Keep reading

More on Problems We Solve

Start here

Tell us where your fintech ops team loses the day

Describe the queue or the report that eats your ops team's week, the providers and partner bank you sit on, and the admin tools people use now. We will tell you what we would build, what we would leave to your own engineers, and if a setting in your provider's dashboard already solves it, we will say so instead.

  1. You tell us what you needTwo minutes on the form, or a message on WhatsApp.
  2. A senior engineer reviews itAnd comes back with questions, a realistic range and an honest view on fit.
  3. Free 30-minute scoping callWe talk through scope, options and a realistic estimate — with no obligation.
Free estimateNo obligation

Talk to someone who builds this

Send a short brief and we will come back with an honest view and a realistic range.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →