Dev iconDevSep 19, 2026 ~2 min source read

Why your order system and your payment provider disagree

Or, the one that ruins the afternoon, a refund larger than anything that was ever collected. Operations says the payment system is wrong, engineering says the order system is wrong, somebody exports both into a spreadsheet, and the spreadsheet becomes the thing everyone argues about instead of the systems.

Why your order system and your payment provider disagree

Share this story

Send the public story page.

Useful takeaways from this story.

Or, the one that ruins the afternoon, a refund larger than anything that was ever collected.

Operations says the payment system is wrong, engineering says the order system is wrong, somebody exports both into a spreadsheet, and the spreadsheet becomes the thing everyone argues about instead of the...

A decision gets made in the end because the week ran out, not because anyone worked out what happened.

Building the complete brief

The page is ready to read now. The fuller skim-friendly version will appear here automatically.

The useful part

Or, the one that ruins the afternoon, a refund larger than anything that was ever collected. Operations says the payment system is wrong, engineering says the order system is wrong, somebody exports both into a spreadsheet, and the spreadsheet becomes the thing everyone argues about instead of the systems. A decision gets made in the end because the week ran out, not because anyone worked out what happened.

How it works

  • I've watched this in banking, in healthcare, in gaming and in public administration.
  • The basket changed and nobody wrote it down A customer starts a checkout at €120, adds something, pays €150.
  • Pull the two exports on different days and they're €30 apart, and neither of them is lying.
  • This is the common one, and there's nothing broken: the records describe two versions of the same purchase, and nothing in the export tells you which version you're holding.
  • You'll spot it because the same order identifier carries two totals, or because a total moved between one export and the next.

What to take from it

There's nothing to do to the money вЂ" fix the export so each version of a basket carries its own identifier, and the disagreement stops existing. One payment, taken in two goes A €150 order captured as €100 and then €50.

Details worth keeping

Twice a month somebody in operations finds a number that doesn't match. An order recorded at €120.00 against a capture of €119.40. Every team was sure their situation was unusual.

Keep reading in the app

Open the app view to save this story, compare related coverage, and continue from the same source.

Open in app