Background Mobile

Split Payments and Payouts in a Two-Sided Marketplace

e commerce/
September 17, 2026
Split Payments and Payouts in a Two-Sided Marketplace

Split payments in a two-sided marketplace are not a billing detail. They are a core architectural decision that touches your payment processor, your ledger, your compliance posture, and your ability to move fast later. Get it wrong early and you'll be unpicking it for months.

This post covers how these systems actually work, where the common failure points are, and what you should think hard about before you commit to an implementation path.

How Money Actually Moves in a Marketplace

When a buyer pays on a marketplace, the money rarely goes directly to the seller. It typically flows through an intermediary account, a platform wallet or a "pooled" account, before being routed to the seller minus the platform's commission. That middle step is where most of the complexity lives.

The two dominant models are:

  • Collect-then-disburse: The platform collects the full transaction amount, holds it, and periodically sweeps funds to sellers. Simpler to implement, harder to reconcile at scale.
  • Split at capture: The payment processor splits the charge at the point of capture, routing platform fees and seller proceeds simultaneously. Stripe Connect, Adyen MarketPay, and Mangopay all support variants of this.

The "split at capture" model is cleaner in theory. In practice, it constrains you to the processor's own fee and routing logic, which matters if you have variable commission rates, tiered seller agreements, or territory-specific tax rules.

The Role of the Ledger

Whichever model you choose, you need an internal ledger. This is not optional. Payment processor dashboards are not a substitute for a double-entry ledger that tracks what is owed to each seller, what the platform has earned, what is held in escrow, and what has been disbursed.

A minimal ledger has at least four account types per seller: a receivable account, a payable account, an escrow account, and a fees account. Every transaction creates balanced entries across these. Every payout reduces the payable account. If your ledger doesn't balance, you have a bug, and it will surface during your first tax audit or seller dispute.

Tools worth knowing: Tigerbeetle is a purpose-built financial ledger database with ACID guarantees designed for high-throughput transaction workloads. For lower volumes, a PostgreSQL schema with serialisable isolation and optimistic locking is a reasonable starting point, provided your engineers understand the difference between a general-purpose database and a financial ledger.

What Does a Payout Architecture Actually Look Like?

The payout side is where most marketplaces accumulate technical debt. A payout is not just a bank transfer. It is a composite operation that involves eligibility checks, KYC/AML verification, currency conversion if applicable, scheduling logic, and failure handling.

Payout Triggers

You have three basic options for when payouts fire:

  1. Scheduled: Daily, weekly, or monthly sweeps. Predictable, easy to batch, but sellers wait.
  2. On-demand: Sellers initiate. Requires real-time balance checks and fraud rules. Stripe's Instant Payouts via Visa Direct settle in under 30 minutes to eligible debit cards.
  3. Event-driven: Payout triggers on a business event, such as order completion, dispute window expiry, or a milestone. The most flexible and the most complex to maintain.

Most mature marketplaces end up with a hybrid: scheduled payouts as the default, on-demand as a paid feature, and event-driven for specific verticals like gig work where immediate earnings visibility matters.

Failure Handling Is Not Optional

Bank transfers fail. Account numbers change. Sort codes get deprecated. A payout architecture without explicit failure handling and retry logic will leak money and create support tickets. You need a state machine per payout attempt, not just a fire-and-forget API call. States should include: pending, submitted, in-flight, settled, failed, and cancelled. Transitions between states must be idempotent.

Stripe's transfer_reversal and Adyen's transferFunds reversal flows handle the processor side. The hard part is reconciling the reversal in your internal ledger and notifying the seller in a way that doesn't destroy trust.

/// Not sure where to start?

Get the architecture before you commit

Tell us what you're building and we'll map the technical approach, stack, and rough timeline. No cost, no obligation, no sales call required.

How Do You Handle Commission, Refunds, and Disputes Without Losing Your Mind?

Commission is straightforward when it's a flat percentage. It gets complicated fast when you have category-based rates, promotional discounts, volume tiers, or partner agreements with custom splits. Model this in your database, not in code. A commission_rules table with effective dates, seller IDs, product category flags, and rate fields will save you enormously compared to a switch statement in your payment service.

Refunds in a split payment system require unwinding multiple ledger entries simultaneously. If you refunded only the buyer-facing amount and forgot to reverse the platform fee, you've effectively charged the seller for a transaction that didn't complete. This happens more often than it should. Every refund path in your test suite should assert the final state of all four ledger accounts, not just the buyer's balance.

Disputes are worse. A chargeback initiated by the buyer's card network pulls funds from your platform account, not the seller's. You then have to claw back from the seller's balance, which may be insufficient, and you absorb the chargeback fee, typically $15 to $25 per dispute on Stripe. Building a reserve mechanism, where a percentage of seller earnings is held back for a rolling 30-day window, is standard practice in high-chargeback verticals like ticketing or rental.

KYC, KYB, and the Compliance Layer You Can't Skip

You cannot pay out to an unverified seller. That's not a policy choice; it's a regulatory requirement under FATF guidelines and, in the EU, under PSD2 and the 5th Anti-Money Laundering Directive. In India, FEMA and RBI guidelines on payment aggregators impose their own seller verification requirements.

Stripe Connect handles KYC for sellers onboarded through their Express or Custom accounts. Adyen MarketPay requires you to submit KYC documents via their API and manage the verification workflow yourself. The second approach gives you more control and a better seller experience, but you own the compliance risk if the workflow has gaps.

For KYB (Know Your Business), you'll need to verify company registration, beneficial ownership to the 25% threshold in most jurisdictions, and, in some verticals, professional licences. Jumio, Onfido, and Sumsub all offer API-first verification with webhook callbacks that integrate cleanly into an onboarding state machine.

Choosing the Right Payment Processor for Split Payments

This is a real decision with real trade-offs. Here's a direct comparison of the main options at the time of writing:

Processor Split Model Payout Rails Custom Ledger Needed Best For
Stripe Connect Split at capture or manual transfers Stripe payouts, Instant Payouts (Visa Direct) No, but recommended Startups, US/EU focus
Adyen MarketPay Split at capture via SplitData Local rails in 40+ countries Yes Enterprise, global reach
Mangopay Wallet-based, split via e-wallets SEPA, Faster Payments Partially (wallets act as ledger) EU-focused marketplaces
Razorpay Route Route-based splits IMPS, NEFT, UPI Yes India-first marketplaces
PayPal Payouts Batch payouts post-collection PayPal balance, bank Yes Buyer-familiar markets

If you are building for India, Razorpay Route or Cashfree Payouts are the pragmatic choices. If you are building for Europe first, Mangopay's wallet model reduces your ledger surface area significantly. Global-from-day-one is genuinely hard and usually means Adyen, with the engineering overhead that entails.

Conclusion

Split payment and payout systems have a narrow surface area that looks deceptively simple and a wide operational surface area that bites you in production. The internal ledger is non-negotiable. The commission model belongs in data, not logic. Failure states need explicit modelling. And your compliance layer needs to be designed alongside the payment flow, not bolted on after launch.

If you are scoping this work, start with the ledger design and the payout state machine before you write a single API call to your chosen processor. Everything else is easier once those two are solid.


FAQ

Do I need a separate payment processor for split payments, or can I use a standard gateway? Standard gateways collect money but don't support splitting funds between parties at capture. You need a marketplace-capable processor like Stripe Connect, Adyen MarketPay, or Razorpay Route. The split logic is a distinct feature set, not just an API parameter, and carries its own pricing and compliance requirements.

How long should I hold seller funds before disbursing? The most common holding period is 7 to 14 days, which covers the window for buyers to raise disputes or initiate chargebacks. High-risk verticals like travel or events often hold 30 days or until service delivery. Whatever period you choose, document it in your seller agreement. It has legal and regulatory implications.

What's the difference between a marketplace wallet and a bank account for holding funds? A marketplace wallet is a ledger entry in your system or your processor's system. It represents a balance but doesn't sit in a segregated bank account unless you've specifically structured it that way. Holding commingled seller funds without the appropriate e-money licence is illegal in the EU and increasingly scrutinised elsewhere.

Can I build split payment logic myself without using Stripe Connect or Adyen MarketPay? Yes, by collecting through a standard payment gateway and managing disbursements yourself. This requires a payment aggregator licence in most jurisdictions, careful KYC compliance, and your own ledger. It is the right choice only if you have scale that justifies the compliance overhead and your margins don't work with processor pricing.

How do currency conversions affect split payouts in cross-border marketplaces? Currency conversion adds FX rate risk and timing risk. If you collect in EUR and pay out in INR, the rate at capture and the rate at disbursement may differ. You need to decide who bears that risk: the platform or the seller. Most platforms fix the conversion rate at the time of capture and take the FX risk themselves, which requires treasury management at scale.

Have a project in mind? Contact Sodio Technologies to discuss your requirements and explore the right technology solution for your business.

/// Work with us

Talk to the engineers who'd build it

You'll get a technical scope, timeline and cost estimate from the people doing the work, not an account manager. In-house team, no subcontracting, since 2016.

Contact Us