DocsControls

Settlement and fee integrity

All documentation pages

Calculate what the settlement should have been, then find out what arrived

  • Domain: Payments & Settlement
  • Moment: After the money moves
  • Customer: A payment service provider

Calculate what you were owed, then compare it with the settlement.

The situation

A payment service provider moves money for merchants across cards, wallets, transfers and QR. Money arrives from processors on their cycles, net of fees, refunds and chargebacks. Money goes out on a payout schedule, at the provider's own pricing.

Every leg has its own file, its own timing and its own fee logic. None of them agree without a person making them agree.

The pricing that decides whether any of it is correct sits in a contract, a sheet and somebody's memory. Margin leaks in that gap, one transaction at a time.

What breaks today

The expected amount is never calculated. The team matches the processor file against its own records and calls that reconciled. This confirms agreement between the files but cannot confirm the contracted amount.

Fee logic lives in two places and is reconciled in neither. The processor deducts its fee before it pays. You apply your own price to the merchant. Held apart, margin per transaction surfaces only at month end.

Timing splits one transaction across several files. Capture on one day, settlement in a later cycle, refund after that, chargeback weeks later. The same transaction appears with different amounts and signs, so matching a file to a day manufactures false breaks.

Net batches hide their components. A batch arrives as one net figure with refunds and chargebacks inside it. Until it is decomposed, a short settlement looks like a refund correctly deducted.

Rate changes arrive without a version. Pricing changes mid-month and the sheet is overwritten. Nobody can state which price applied on which date, which makes disputes difficult to recalculate.

Suspense absorbs the rest. A duplicate payout and a late settlement both present as a surplus, so both get parked. The suspense account becomes the register of everything nobody could resolve.

Payouts leave against a figure nobody recomputed. The instruction is built from the same source that should have checked it. Once funds move, correction is a commercial conversation.

What Manuel does

One transaction ledger, built from every leg. Processor settlements, acquirer reports, gateway exports, refund and chargeback files, payout instructions and bank statements, over SFTP, API, database and file. Each becomes a transaction event carrying merchant, scheme, currency, timestamps and every counterparty identifier.

Contracted pricing as an approved, version-locked baseline. Terms load as versioned rules with an effective date, an owner and an approval: rate by scheme and card type, per-transaction fee, tiers, minimums, reserve rate and release schedule. A transaction is priced at the terms live on its date, permanently.

Expected settlement, calculated before the file arrives. Manuel computes what each processor should settle and each merchant receive: gross, fees, refunds, chargebacks, reserve, net. That number turns a match into a check.

Multi-pass matching with named tolerances. Match by settlement identifier first. If unmatched, match on merchant plus amount plus date within a defined window. Variance above the approved tolerance is an exception. Batches are decomposed to item level first.

Exceptions are grouped by cause. Causes include short settlement, missing items, duplicates, incorrect fee rates or bases, unfunded refunds, repeated chargebacks, and overdue reserves. Each case carries the expected value, actual value, rate version, and source file.

Check before payout. The payout run reads the exception status. A merchant with an open funding exception is held with the reason. When write-back is outside the scope, Manuel produces the payout file and hold list for your system.

A record from every run. Every run records what was checked, the term version, result, actor, timestamp, reason, and values before and after.

What the customer gets

The complete control process is designed but is not in production. There is no measured result yet.

Each unmatched item receives a reason and value. Margin per transaction is calculated during the process.

Paid discovery measures the value and age of suspense, breaks by class, fee variance, time to close, missing effective dates, and the share of settled value that can be calculated from a contract. These measures become the acceptance criteria.

What stays with your existing systems

The switch keeps processing. The core ledger stays the system of record. Bank rails, merchant portal and scheme connections stay untouched. Manuel holds no funds and moves no money. It reads what your systems produced, calculates what your contracts required, and names the difference.

What a first scope looks like

One processor relationship, one settlement currency, a closed historical window, read-only, nothing wired to the live payout run. We load commercial terms for a subset of merchants, compute expected settlement and match against files you have already booked.

You see the variance on a period already finished, before anything touches a live cycle.


Related: Pre-reconciliation detection / Residual exception diagnosis / Payment release control