Worked example · one PSP, one month, small enough to check by hand

Can you find the two mistakes?

Below is everything payrecon was given: what Stripe says happened, the two payouts, the bank statement and the ledger's Stripe clearing account. Two mistakes are hidden in the ledger. Add the numbers up yourself, then compare with the proof and the breaks the engine found. Every figure on this page comes from these records and nothing else.

dataset.json (these records) Excel workbook Exact import file breaks.json report.html Back

1 · What Stripe says happened

Each line is one sale or refund in Stripe's payout report. Gross is what the customer paid, fee is what Stripe kept, net is what goes into the payout.

OrderTypeDateGrossFeeNetIn payout
ORD-1001charge3 Aug€100.00€1.75€98.25A
ORD-1002charge5 Aug€50.00€1.00€49.00A
ORD-1003charge10 Aug€80.00€1.45€78.55A
ORD-1004charge18 Aug€120.00€2.05€117.95B
ORD-1002refund20 Aug-€50.00€0.00-€50.00B
ORD-1005charge22 Aug€60.00€1.15€58.85B
Totals€360.00€7.40€352.60

2 · The two payouts

Stripe pays out the net of its lines. Payout A holds the first three sales; payout B holds the last two sales and the refund.

PayoutPaid onNet of its linesPayout amount
A14 Aug98.25 + 49.00 + 78.55€225.80
B28 Aug117.95 − 50.00 + 58.85€126.80

3 · The bank statement

Both payouts arrived the next day. The remittance text carries the payout id, which is how they are matched.

DateCounterpartyRemittanceAmount
15 AugSTRIPE PAYMENTS EUROPE LTDSTRIPE po_example_A€225.80
29 AugSTRIPE PAYMENTS EUROPE LTDSTRIPE po_example_B€126.80

4 · The ledger: clearing account 1105

Every posting on the Stripe clearing account, debit positive. Sales go in, fees, refunds and payouts go out. The mistakes are in here.

DatePostingDescriptionReferenceCategoryAmount
31 Jul26000001Beginsaldo Tussenrekening Stripeopening€100.00
3 Aug26000002Verkoop ORD-1001ORD-1001sale€100.00
5 Aug26000003Verkoop ORD-1002ORD-1002sale€50.00
10 Aug26000004Verkoop ORD-1003ORD-1003sale€80.00
14 Aug26000005Stripe kosten uitbetaling Apo_example_Afee-€4.20
15 Aug26000006Uitbetaling Stripe Apo_example_Apayout-€225.80
18 Aug26000007Verkoop ORD-1004ORD-1004sale€120.00
20 Aug26000008Retour ORD-1002ORD-1002refund-€50.00
29 Aug26000009Uitbetaling Stripe Bpo_example_Bpayout-€126.80
Closing balance€43.20

5 · What the engine found

Payout reconciliation · 1 Aug – 31 Aug 2026

Data as of 7 Sep 2026 · generated by payrecon M0
6settlement lines
2payouts
2bank lines
8ledger postings
11matches
2breaks to review
0in transit
0unexplained

Clearing-account proof

Expected closing = opening + sales + refunds + chargebacks + fees + payouts arrived. The difference to the ledger must be fully explained by the breaks below.

PSPOpeningSalesRefundsChargebacksFeesPayouts arrivedExpected closingLedger closingDifferenceExplainedUnexplained
Stripe€100.00€410.00-€50.00€0.00-€7.40-€352.60€100.00€43.20-€56.80-€56.80€0.00

Breaks

Sale unbooked · 1 · €60.00

PSPAmountWhat happenedProposed entry
Stripe€60.00Stripe charge ch_1005 for €60.00 (order ORD-1005, 22 Aug 2026) has no booking.Dr 1105 €60.00
Cr 2999 €60.00

Fee unbooked · 1 · €3.20

PSPAmountWhat happenedProposed entry
Stripe€3.20Stripe charged €7.40 in fees this period but only €4.20 is booked; €3.20 is missing.Dr 4410 €3.20
Cr 1105 €3.20

6 · Check it yourself

Expected closing is what the clearing account should hold if everything Stripe reported were booked:

Opening balance (31 Jul)€100.00
+ sales (five charges)€410.00
− refund-€50.00
− Stripe fees-€7.40
− payouts that reached the bank-€352.60
= expected closing€100.00
Ledger closing (table 4)€43.20
Difference (ledger − expected)-€56.80

The two breaks explain the difference exactly:

Sale ORD-1005 is missing from the ledger, so the ledger is too low by-€60.00
The fee on payout B is missing from the ledger, so the ledger is too high by€3.20
Sum-€56.80

That sum equals the difference, so nothing is left unexplained. Booking the two proposed entries moves the ledger to €100.00, and the account is proven. The Exact import file holds exactly those two entries.

The planted mistakes, for the record: The sale of ORD-1005 (60.00 on 22 Aug) is in Stripe's data but not in the ledger. The Stripe fee inside payout B (2.05 + 1.15 = 3.20) was never booked; only payout A's 4.20 was.