Split payments
Route a single charge across multiple recipients — sub-merchant share, platform commission, fees, VAT, and tips.
A split tells VINR how to divide the gross payment amount into components at authorization or capture time. Each component is routed to a different balance account.
Split componentsAsk
| Type | Description |
|---|---|
balance_account | Funds credited to a sub-merchant's balance account |
commission | Platform fee deducted from the transaction; credited to your platform account |
payment_fee | Processing and interchange fees; debited from the transaction |
vat | Tax amount withheld (EU merchant of record flows) |
tip | Gratuity routed separately (restaurant / hospitality) |
remainder | Catch-all for any amount not explicitly allocated; routed to the platform |
All component amounts must sum to ≤ the original transaction amount (the platform absorbs any unallocated remainder).
Creating a splitAsk
Pass a splits array on the payment or capture request:
POST /v1/payments
{
"amount": 10000,
"currency": "USD",
"payment_method": "pm_...",
"splits": [
{
"type": "balance_account",
"balance_account_id": "ba_seller_abc",
"amount": 8500,
"description": "Seller earnings"
},
{
"type": "commission",
"amount": 1000,
"description": "Platform 10%"
},
{
"type": "payment_fee",
"amount": 500
}
]
}The balance_account_id field is required for balance_account components; all other types route to the platform by default.
Split timingAsk
Authorization-time split
Split is specified when the payment is authorized. Funds are reserved against each component's balance account.
Capture-time split
Split is specified (or adjusted) when the payment is captured. The authorization-time split (if any) is overridden. Use this when the final split isn't known until fulfillment — for example, a marketplace order where the seller is confirmed after auth.
POST /v1/payments/{payment_id}/capture
{
"splits": [ ... ]
}Multi-seller splitAsk
Route a single payment to multiple sub-merchants (e.g. a bundle of products from different sellers):
"splits": [
{ "type": "balance_account", "balance_account_id": "ba_seller_1", "amount": 4000 },
{ "type": "balance_account", "balance_account_id": "ba_seller_2", "amount": 3500 },
{ "type": "commission", "amount": 1500 },
{ "type": "payment_fee", "amount": 500 }
]There is no limit on the number of balance_account components per payment.
Refunds with splitsAsk
When a split payment is refunded, VINR reverses each component proportionally by default. You can override this with explicit refund splits:
POST /v1/payments/{payment_id}/refunds
{
"amount": 4500,
"splits": [
{ "type": "balance_account", "balance_account_id": "ba_seller_1", "amount": 4000 },
{ "type": "commission", "amount": 500 }
]
}Platform commission is only reversed if explicitly included in the refund splits.
Disputes (chargebacks)Ask
When a buyer raises a chargeback on a split payment, VINR debits the full disputed amount from the platform's balance account. Your platform is responsible for recovering any sub-merchant portion. This is a key reason to maintain adequate reserve accounts.
Next stepsAsk
- Fund management — balance accounts and reserves
- Payouts — when and how split funds reach sub-merchant bank accounts