Add a splits array to the Adyen /payments or /sessions request; each split object specifies type (BalanceAccount, Commission, Remainder, or Surcharge), amount.value, amount.currency, and account (balance account id)
Use type=BalanceAccount with the seller's balance account id and the seller's portion of the payment; use type=Commission with the platform's balance account id and the commission amount
Ensure the sum of all split amounts plus any remainder equals the total transaction amount — Adyen validates this and will decline the payment if the splits do not balance; use type=Remainder to assign any rounding difference automatically
Retrieve the payment details after capture to inspect the split outcome via the PaymentSetupResponse or the webhook notification; splits are reflected in the transaction details of each balance account
For partial captures, apply a proportional splits array in the capture request — splits must be re-specified on the capture if the capture amount differs from the authorization amount
Test split payments in the Adyen test environment using test balance account ids — verify that each balance account receives the correct funds via the Adyen Balance Platform API
Known gotchas
The splits array must be included on the initial payment (or session creation) and re-specified on the capture if amounts change — omitting splits on the capture defaults to the platform receiving the full captured amount, which may not match your intended commission structure
Adyen validates split currency consistency — all split amounts must be in the same currency as the transaction; for multi-currency platforms, ensure the presentment currency matches the balance account currency or handle FX conversion explicitly
Refunds on split payments require a corresponding refund splits array — without it, the refund may be allocated incorrectly between the seller and platform balance accounts; consult current Adyen documentation for refund splits behavior
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp