Charge Splits

Charge Splits

BETA: This endpoint is subject to change without notice.

A charge split distributes funds from a payment to one or more child accounts. You configure the split when creating the payment intent, and when the funds settle, they are allocated directly to each child account's balance.

This is one of several ways to move funds to embedded accounts. You can also create direct transfers at any time — for example, when an invoice is created (to pay out ahead of receiving payment) or in response to a payment_intent.succeeded webhook (to pay out when you know the funds will settle but ahead of settlement).

Creating a payment intent with splits

Add a transfers array to your CreatePaymentIntent request. Each entry specifies a child account and the amount to allocate:

curl -X POST https://api.synaptopay.com/v1/accounts/acct_YOUR_ACCOUNT/payment-intents \
  -H "Authorization: Api-Key $API_KEY" \
  -H "Idempotency-Key: YOUR_UNIQUE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "100000",
    "currency": "GBP",
    "transfers": [
      {
        "account_name": "accounts/acct_SELLER_A",
        "amount": "60000"
      },
      {
        "account_name": "accounts/acct_SELLER_B",
        "amount": "30000"
      }
    ]
  }'

How charge splits work

When the payment succeeds, the expected split amounts appear in each account's pending balance:

  • Seller A: 600.00 GBP pending
  • Seller B: 300.00 GBP pending
  • Your account: the remaining 100.00 GBP pending

When the funds settle, the pending amounts move to available for each account.

A CHARGE_SPLIT transfer record is created when the payment succeeds. The transfer.settled webhook fires when the funds settle and become available.

See Custodial Balances for details on settlement.

Lifecycle

StepYour accountEach child account
Payment succeedsNet retained amount appears in pendingAllocated amount appears in pending
Funds settleMoves to availableMoves to available

Refunds

If a payment intent with charge splits is refunded, the refund is taken from your account's balance — funds are not clawed back from the child accounts that received the split. You are responsible for recovering those funds separately if needed (e.g. via direct transfers back from the child accounts). Listen for the refund.updated webhook event to be notified when a refund occurs — see Webhooks.

More sophisticated refund processing for charge splits will be supported in a future release.

Invoices

Charge splits are currently only supported on payment intents, not invoices. If you need to split invoice proceeds to child accounts, listen for the invoice.paid or payment_intent.settled webhook and create direct transfers using the batch create API. Support for charge splits on invoices will be added in a future release.

Constraints

  • Each recipient must be a direct child of your account
  • Each recipient must have capabilities.transfers.state of ACTIVE
  • Transfer amounts must be positive
  • Only one transfer per recipient account per payment intent
  • The total transfer amount cannot exceed the payment intent amount (but can equal it — you can allocate 100% to children)

Retrieving charge split transfers

Charge split transfers appear alongside direct transfers when you list transfers. They are distinguished by type: "CHARGE_SPLIT" and include the charge_name field linking them to the originating charge.

curl -X POST https://api.synaptopay.com/v1/accounts/acct_YOUR_ACCOUNT/transfers:list \
  -H "Authorization: Api-Key $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "page_size": 20
  }'

Example response

{
  "transfers": [
    {
      "name": "accounts/acct_YOUR_ACCOUNT/transfers/txfr_TRANSFER_ID",
      "type": "CHARGE_SPLIT",
      "source_account_name": "accounts/acct_YOUR_ACCOUNT",
      "destination_account_name": "accounts/acct_SELLER_A",
      "currency": "GBP",
      "amount": "60000",
      "charge_name": "accounts/acct_YOUR_ACCOUNT/charges/ch_CHARGE_ID",
      "create_time": "2026-01-15T10:30:00Z",
      "update_time": "2026-01-15T10:30:00Z"
    }
  ]
}

Charge splits vs direct transfers

Charge splitsDirect transfers
When configuredAt payment intent creationAny time via the CreateTransfer API
When funds moveAt settlementImmediately
Funds sourceCharge proceedsAvailable balance
Use caseSplitting payment proceedsMoving already-available funds between accounts

See Transfers for direct transfers.