Split payments

Route a single charge across multiple recipients — sub-merchant share, platform commission, fees, VAT, and tips.

View as MarkdownInstall skills

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

TypeDescription
balance_accountFunds credited to a sub-merchant's balance account
commissionPlatform fee deducted from the transaction; credited to your platform account
payment_feeProcessing and interchange fees; debited from the transaction
vatTax amount withheld (EU merchant of record flows)
tipGratuity routed separately (restaurant / hospitality)
remainderCatch-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
Was this page helpful?

On this page