Payments / Intermediate / 5 min
Design a reconciliation system
Match our payments against the bank settlement file each day. Late settlements clear themselves; lost webhooks and fee differences are real breaks.
Start the simulation → Change the load, break a part, watch what happens. Free, no sign-up.
In short
- What it is
- Reconciliation compares our records of payments with the bank’s or provider’s settlement file and lists every row that does not match.
- Why it matters
- Webhooks get lost, banks settle late and fees change amounts, so without a daily check money goes missing without anyone noticing.
- The trade-off
- Exact id matching is simple, but real files need fee rules, partial refunds and tolerance windows, and late rows must be carried over, not flagged.
- Say it in an interview
- "A daily job loads the settlement file, joins on the transaction id, carries T+1 rows forward, and raises tickets only for unexplained breaks."
Check yourself
What is payment reconciliation?
Answer: Matching our own records against the bank or provider records and explaining every difference. Two independent records of the same money should agree; reconciliation finds and explains where they do not.
A payment is in our records but not in today’s bank file. What is the most common reason?
Answer: The bank settles it a day later (T+1). Settlement often lags; carry the row over and match it against tomorrow’s file before raising an alarm.
The bank file has a payment we have no record of. What likely happened?
Answer: Our webhook or callback was lost, so we never recorded a payment that did succeed. Fetch the payment from the provider API, record it, and fulfil the order; then fix why the callback was missed.