Settlement
Follow the money from an approved payin to your funding account.
Collecting the payment is half the story; this flow covers the other half — how the money that payers sent becomes a balance in your bank account. It walks the two delivery modes (automatic and manual), the webhooks that report each step, and what your reconciliation should check at the end of the day.
If you have not read the Settlement concept yet, start there: this page assumes you know what a settlement batch is.
Before you start
You will need:
- Payins reaching
approved_in_provider— any of the collection flows produces them. - To know your program's delivery mode: automatic (funding account with Mono's allied bank) or manual (external bank). It was defined when payins was enabled.
- A webhook endpoint subscribed to the
payin_settlement_batch_*events.
Automatic delivery
- Payins accumulate. Every approved payin destined for your funding account waits as
pending_to_deliver. - Mono groups them. Batches are packed throughout the day — as full as the rail's per-transfer limit allows — and whatever remains is flushed at the close of the daily cycle.
payin_settlement_batch_createdlists exactly which payins the batch covers and what each delivers. - The transfer runs.
processingmeans the provider accepted it;completedmeans the money reached your funding account. A transient send failure (retryable) is retried on a later run without a webhook; a terminalfailedis resolved by Mono manually. - Payins are stamped. Each covered payin gets
settlement_batch_idandfunds_delivery_status: "completed".
Manual delivery
With an external-bank funding account, the sweep cannot be automated — an operator settles from the Core dashboard: select the pending payins, register the transfer that delivered them, and Mono records the batch (method: "internal_transfer"). The same webhooks and fields apply, so your integration does not care which mode produced the batch.
Reconciling settlements
- Batch → bank statement: match each
payin_settlement_batch_completedto one credit on your bank statement fortotal_amount. - Batch → payins:
GET /v1/core/payins/settlement_batches/{id}returns the covered payins with theirfunding_amount— the sum is the batch total, no payin missing, none twice. - Leftovers: a payin still
pending_to_deliverat the end of the day simply missed the last batch of the cycle — the close-of-cycle flush delivers it. If a payin stays undelivered beyond a full cycle, contact Mono support with itsid.
Next steps
- Settlement concept — states, batching, and the fields involved.
- Payins — the per-payin delivery fields.
- Webhooks — the three settlement batch events in context.