How does reconciliation work?
Each transaction needs one reference that appears in every record: the merchant’s order ID sent with the payment, the provider’s transaction ID returned with it, and the settlement batch that included it. Finance teams then match the ledger to provider reports transaction by transaction, and provider payouts to bank deposits batch by batch. Stripe’s payout reconciliation report is an example of the provider side: it groups the transactions in each payout by category, such as charges, refunds and fees.
Why does it matter?
Without it, errors go unnoticed: duplicate charges, refunds that never reached the customer, settlements short of what was due, fees above the contract. As an illustrative example: a merchant processes 60,000 payments a month across three PSPs. If 0.2% end in a mismatch, such as a payment marked failed in the shop but settled by the provider, that is 120 cases a month to explain, and each one left open is either lost revenue or a customer charged without an order.
What makes it hard?
Several providers with different report formats, cut-off times and settlement currencies. Asynchronous outcomes, where a payment the customer abandoned succeeds minutes later. Methods where the customer controls the amount, such as bank transfers, which Stripe notes can be overpaid or underpaid. And currency conversion on refunds and disputes, which changes the amount taken from the merchant.
Where does Omno use it?
Omno keeps one transaction record per payment across all connected PSPs, with a merchant reference on every request linking Omno’s transaction ID to the merchant’s ledger. Webhooks and Get Transaction Info confirm final statuses, and reporting and data export give finance teams payments and payouts by provider and period to match against each PSP’s settlement reports.