Back to sensacat

Home  /  Solutions

· SensaCat Team

Business Flow Monitoring: Order to Seller Payout

Money arriving is well monitored everywhere. Money leaving to sellers usually is not, and that is the half that costs you supply.

Platforms instrument money coming in carefully and money going out casually. That is backwards for anyone running a marketplace, because a buyer whose payment fails retries, and a seller who is not paid on time starts looking at competitors.

The sequence

# Event key Max gap from previous What a stall here means
1 order.paid n/a (opens the flow) Nothing yet
2 funds.held 5 minutes Money in limbo, unassigned
3 delivery.confirmed 14 days Normal, or a delivery problem
4 escrow.released 1 hour Obligation to release missed
5 payout.initiated 24 hours Seller not paid on schedule
6 payout.paid 3 business days Bank rejection nobody saw

Step 6 is the one that goes wrong quietly. A payout initiated successfully can still be returned by the receiving bank days later for a closed account, a name mismatch or an invalid routing number. The failure event arrives as a webhook, and if that webhook is dropped your records show the seller was paid.

Step 2 deserves a tight limit because between payment and allocation the money belongs to nobody in your system. Reconciling that later is considerably harder than catching it in five minutes.

Monitor balance age directly

Event monitoring tells you a step did not fire. It does not tell you about money that has been sitting in a held state since before you started watching, and every established platform has some.

Query the state rather than the events. A held balance older than your stated release window is evidence something failed, whatever your event log says.

Run it weekly and treat any result as an incident. The oldest row on the first run is usually a good indication of how long this has been happening.

Payout failures are per-seller, so aggregates hide them

A 2% payout failure rate looks fine on a dashboard and means one seller in fifty was not paid. Those sellers do not all email you. The ones who do email once, and the ones who do not simply reduce their listings.

Alert per failed payout with the seller ID attached, not on a failure rate. The response is different too: a failed payout usually needs somebody to contact that seller about their bank details, which is account management rather than engineering.

Reconcile the ledger three ways

Money-out flows deserve a stronger check than event monitoring alone. Compare your ledger against the payment provider and against your bank, because a mismatch between any two pairs points at a different problem.

Comparison A mismatch means
Your ledger vs provider balance Events missed or misapplied
Provider payouts vs bank deposits Payout failed or was returned
Held funds vs completed orders Escrow release stalled

The middle row is the one that catches returned payouts regardless of whether the failure webhook arrived, which is why it is worth the effort of building.

Give sellers visibility

The cheapest improvement here is not monitoring at all. A seller who can see that their payout is pending, released or failed, with a date, stops emailing and stops assuming the worst.

It also turns your sellers into monitoring. A seller who can see a stuck payout will tell you about it long before any weekly reconciliation runs, and they will be less annoyed because they could see what was happening.

SensaCat tracks each order's money-out chain individually and alerts on the instance that stalls. Start free.