Invented month, three flows
Everything below is made up: identifiers, amounts and the single currency (GBP). The processor reports four payouts and six refunds; the ledger holds four payout entries dated in this period, one of them twice, and five refund entries. Comparing totals alone shows two differences, and the payout difference of 329.66 matches no single payout. Matching on identifiers explains the two differences as three items.
If the matrix is wider than the box, scroll horizontally to read every column. Keyboard: focus the matrix and use Left/Right.
flow source items total ledger items total difference
payouts processor 4 3212.40 4 3542.06 +329.66
refunds processor 6 412.50 5 362.50 -50.00
item flow id amount status cause
D-1 payout PO-SYN-2 +1150.40 open duplicate: two ledger entries, one processor payout
D-2 refund RF-SYN-6 -50.00 open missing: no ledger entry carries this refund id
D-3 payout PO-SYN-4 -820.74 explained timing: ledger entry is dated in the next period; offsets D-1 in the totalHow each item is read
D-1 is a duplicate: one processor payout has two ledger entries, so the ledger total is higher by that payout's amount, 1,150.40. D-3 is timing: another payout's ledger entry is dated in the following period, so the ledger total is lower by its amount, 820.74, which is explained by the date rule. The two partly offset, leaving +329.66, a figure that corresponds to no single payout. D-2 is a missing entry: no ledger entry carries the refund identifier, so the ledger refund total is lower by that refund. Without identifiers the payout difference could not have been traced to its two causes.
- Open items name the next step: investigate the duplicate source, link the missing refund to its sale, none for the timing item.
- Totals are a consistency check; identifiers are the evidence.
- A difference that falls in a locked period is escalated, not corrected by software.
What was and was not exercised
The numbers were recomputed independently and nothing else was run: no Stripe or PayPal account, no ledger and no export. Stripe documents that payouts are grouped by estimated arrival date and PayPal that executed transactions can take up to three hours to appear, which are the kinds of timing effects item D-3 stands for. A real list would have more flows, currencies and fees.
Using the example
If your month-end looks like this, the standing service "Detect reconciliation drift between your payment processor and ledger every month" is £295 a month, an untested published price with billing under written terms agreed first. It is a data comparison, not an audit, and never posts or edits in your systems. Send invented examples and counts first, never credentials, bank details, invoices or customer records; real records are handled only after written agreement through a secure handoff.
Sources and limits
- Stripe: payout reconciliation report Checked 2026-10-11.
- The report groups each automatic payout's transactions by reporting category and offers summary and itemised downloads, and is not available to manual or instant payout users in the same way.
- The report groups a payout by its estimated arrival date, not the date the bank posts the deposit, and report data follows a separate processing schedule so a payout can arrive before its data is ready.
- PayPal: Transaction Search API Checked 2026-10-11.
- The list transactions call supports a maximum date range of 31 days, requires an end date, and can take up to three hours for executed transactions to appear.
- Page size defaults to 100 and can be up to 500, and the call covers the previous three years.
- Each transaction carries an event code, an amount and a fee amount.
- A transaction identifier is not unique in the reporting data: the response can list two records with the same identifier, one affecting the balance and one not.
- Xero: lock dates Checked 2026-10-11.
- Lock dates stop changes to past transactions, and the article names administrators as the users who can set or change them.