Settlement & payouts
Multiple providers, multiple rails, multiple settlement cycles — collapsed into one payout per currency and one report your finance team can reconcile without knowing what a provider is. This page covers the funding schedule, the payout and report objects, reserves, and what the fee column is actually made of.
How settlement works
Without orchestration, five providers means five settlement files in five formats on five schedules. Finscale sits in the middle and absorbs that:
-
Providers settle to Finscale
Each provider settles captured funds into safeguarded accounts on its own cycle. Finscale ingests every provider's settlement file and matches each line to a payment.
-
Finscale nets your balance
Per currency: gross captures − fees − refunds = net. Every component is itemized — no opaque "adjustments". (Disputes debit your balance when they open and are itemized on the dispute object, not as report lines.)
-
You get one payout per currency
On your payout schedule, Finscale pays the net amount to your bank account. One incoming transfer per currency, regardless of how many providers processed the underlying volume.
-
Report + webhook
Each payout links a settlement report itemizing every line. You're notified via the
settlement.report.readywebhook; track the payout itself viaGET /v1/payoutsand itsstatus/arrival_date.
Funding schedule
Three dates matter for any captured payment, and each is a field you can read:
| Date | What happens | Where you read it |
|---|---|---|
| Capture date | You take the money — the gross amount enters your pending balance. | The payment's created_at / capture, and the payment.succeeded event. |
| Settlement date | The provider pays the captured funds to Finscale — the line moves to available, net of fees. | settled_at on the report row; the settlement day closes at 04:00 UTC. |
| Funding date | The payout reaches your bank account. | arrival_date on the payout. |
The default end-to-end schedule is T+2: funds captured on Monday are paid out Wednesday. Notes:
- Payouts run on business days (TARGET2 calendar for EUR; local banking calendars elsewhere).
- Slower rails don't delay the payout — a direct-debit payment enters a payout only once it has actually settled, so a given day's payout mixes capture dates but never contains unsettled money.
- Daily is the default cadence; weekly and monthly schedules are configurable per currency in the dashboard.
- Currency conversion, if you've opted to consolidate payouts into one currency, happens at this step and is itemized on the report.
- Lines captured after the 04:00 UTC cutoff roll into the next settlement day.
What varies is the capture-to-settlement leg — it's a property of each method's rail, not of Finscale:
| Method family | What gates settlement | Relative speed |
|---|---|---|
| Real-time payments (UPI, PIX, BLIK…) | Funds move at authorization — settlement is confirmation, not collection. | Fastest |
| Cards, wallets | Network clearing and the acquirer's settlement cycle. | Fast |
| Bank redirects | The customer's bank has pushed the funds; the scheme forwards them. | Fast |
| Vouchers (OXXO, Boleto, Konbini) | The customer pays cash first — nothing settles until they do. | Depends on the customer |
| Direct debit (SEPA, ACH, Bacs…) | Pull-based rails with return windows — funds can bounce after collection. | Slowest |
The Payout object
{
"id": "po_6Fn1mS8vQ2Xc",
"object": "payout",
"amount": 1914190,
"currency": "EUR",
"status": "paid",
"destination": { "type": "iban", "last4": "3401", "country": "DE" },
"arrival_date": "2026-07-18",
"settlement_report": "stl_2026_07_16_eu01",
"created_at": "2026-07-18T06:00:12Z",
"livemode": false
}
amount is the net, in minor units — €19,141.90 here, exactly the linked report's totals.net. Statuses: pending → in_transit → paid | failed (a failed payout — closed bank account, rejected transfer — is retried after you fix the bank details; the funds never leave your balance). List with GET /v1/payouts and track status and arrival_date — and subscribe to settlement.report.ready for the moment the linked report is downloadable.
The settlement report
Every payout references a settlement report — stl_2026_07_16_eu01 covers the EUR activity settled on 2026-07-16 for prov_eu_acq_01. Reports are generated per provider per settlement day, plus a consolidated all-provider report ("provider": null); every one has the same shape, columns, and totals identity gross + refunds + fees = net. A report starts in status: generating and flips to ready when its CSV exists — that's the moment settlement.report.ready fires.
Fetch it as JSON via the API, or as the transaction-level CSV with Accept: text/csv (also downloadable from the dashboard). The CSV columns:
| Column | Contents |
|---|---|
payment_id | The payment behind this line — always present, whatever the provider. Refund lines carry the refunded payment's id. |
reference | Your order reference, echoed from the payment. |
method | Method code (ideal, card, …). |
provider | Opaque provider id that processed the transaction. |
gross | Minor units. Negative on refund lines. |
fee | Fee for this line, minor units — always negative. What it's made of: fee concepts below. |
net | gross + fee. The column that sums to the payout amount. |
currency | ISO 4217. |
settled_at | When the line settled (ISO 8601, UTC). |
payment_id,reference,method,provider,gross,fee,net,currency,settled_at
pay_8Q2mX4nT1cVb,ord_9f21_0716,ideal,prov_eu_acq_01,4900,-64,4836,EUR,2026-07-16T04:00:00Z
pay_3Xw9cR5pLm,ord_9f22_0716,card,prov_eu_acq_01,12900,-206,12694,EUR,2026-07-16T04:00:00Z
pay_8Q2mX4nT1cVb,ord_9f21_0716,ideal,prov_eu_acq_01,-1500,-25,-1525,EUR,2026-07-16T04:00:00Z
# … 409 more rows. sum(net) = totals.net = payout amount = 1914190
Reserves & rolling reserve
Settled money can still move backwards: a refund lands weeks after capture, a dispute months after. A reserve is settled money held back to cover that tail, so a burst of reversals doesn't land on funds that already left. Whether your account carries one — and on what terms — is decided during onboarding & KYB, based on your business model, delivery windows, and dispute history, and is revisited as history accrues.
| Type | Mechanics | Typical use |
|---|---|---|
| Fixed reserve | A set amount is withheld once and held while the account is active; released when the terms end. | A stable buffer sized to your exposure — long delivery windows, annual subscriptions. |
| Rolling reserve | A share of each settlement day's net is withheld and released after a fixed holding window — day 1's hold releases when its window lapses, day 2's the day after, continuously. | Exposure that tracks volume — the reserve grows and shrinks with your processing. |
How reserves interact with the objects on this page:
- Reserved funds are settled but not available. They never appear in
availableonGET /v1/balance— the balance you can pay out is always genuinely payable. - Releases rejoin
availablewhen their holding window lapses, and leave with the next scheduled payout — no separate transfer. - Holds and scheduled releases are itemized in the dashboard, per day, so finance can project the release calendar. The reserve share, window, and any fixed amount are defined in your merchant agreement — terms live there, not in these docs.
Fee concepts: what's inside the fee column
The fee on a settlement line isn't one charge — it's layers, each collected by a different party. Understanding them explains why fees differ between a domestic debit card and a foreign commercial credit card, even at the same amount. Concepts only: actual rates are commercial terms and live in your merchant agreement, not in these docs.
| Layer | Collected by | What it pays for | What moves it |
|---|---|---|---|
| Interchange | The customer's issuing bank | The issuer's costs and risk — fraud losses, the credit line, rewards. | Card type (debit vs credit, consumer vs commercial), issuer region vs your region, channel. Set by the card networks, published per category — usually the largest layer on card payments. |
| Scheme fees | The card network | Carrying the authorization, clearing, and settlement messages between acquirer and issuer. | Cross-border assessments, transaction volume, which network services the transaction touches. |
| Processor margin | The acquiring provider | Acquiring: the provider's license, scheme membership, funding, and risk on your volume. | The provider's own pricing — one input the routing engine's cost stage weighs between otherwise equal candidates. |
| Orchestration fee | Finscale | Routing, failover, unified reporting, and the single integration — per your merchant agreement. | Your agreement's terms. |
Two more concepts worth knowing:
- Blended vs pass-through pricing. Under blended pricing the layers are combined into one uniform fee per transaction — predictable, but the mix is invisible. Under pass-through (interchange-plus) pricing, interchange and scheme fees are passed at cost and the margin is stated separately — each settlement line's fee then varies with the card behind it. Which model applies to your account is part of your merchant agreement.
- Not every method has interchange. The interchange/scheme structure is a card-network construct. Bank redirects, real-time payments, and direct debit ride bank rails with their own — typically simpler — cost structures. That difference is one reason routing and method choice matter.
Unified reconciliation
The property that makes multi-provider finance workable: every line carries the payment_id and your reference, no matter which provider processed it. The example order was routed to prov_eu_acq_01; had failover pushed it to prov_eu_acq_02, the line would be byte-identical except for the provider column.
Reconciliation is therefore one join, not five:
- Order-level: match
referenceagainst your orders table.ord_9f21_0716reconciles to €49.00 gross, €0.64 fee, €15.00 refunded — regardless of routing. - Payout-level: the bank transfer of €19,141.90 equals
sum(net)of reportstl_2026_07_16_eu01. One number to tie to your bank statement. - Provider-level (optional): group by
providerwhen finance wants the mix — it's a column, not a separate file format.
The step-by-step daily routine — batch proofs, the id chain, and exception handling — has its own page: Reconciliation. Why the numbers can't drift in the first place: Ledger.