If the split amounts are not known or decided at the time of payment, you can provide the split data in a /payments/paymentPspReference/captures request instead.
Providing split data at capture overrules data from the original payment request. If you don't send split data in the capture request, we use the split data from the payment authorisation.
If you consider splitting at capture, take into account the following restrictions:
- Splitting payments at capture is only possible for payment methods that support separate captures.
- When using payment methods that do not support delayed captures, the funds may not be booked correctly unless the split data is provided in the payment request.
- Partial captures require you to supply split data. If you don't provide split data, then all funds are booked to your liable balance account.
To split a payment at capture, first you need to enable manual captures, then follow up with a /payments/paymentPspReference/captures API call containing the split details. You can also override the split information you provided in the payment request if you send different split data in your capture request.
Enable manual capture
You can enable manual capture on different levels:
- Account level
Enabling manual captures on the account level applies to all your point-of-sale users in your platform. In this case, you must follow up each authorized Terminal API payment with a POST /payments/paymentPspReference/captures API call. - Transaction level
Enabling manual captures on the transaction level means that you must add a manual capture flag to each payment request, then make a POST /payments/paymentPspReference/captures API call for the specific authorization.
Step 1: Get the pspReference
From the
transactionID
field in the payment response, get the pspReference
of the authorization you want to capture.
Step 2: Send the capture request
To capture and split a payment at the same time, send a POST /payments/paymentPspReference/captures request, where paymentPspReference
is the pspReference
of the authorization you want to capture.
In the body, include the splits array. For each item in the array, specify the following fields:
Parameter | Required | Description |
---|---|---|
account | ![]() |
The account that will receive (or be charged) the split amount. This is the balanceAccountId of one of your user's balance accounts. You do not need to specify this field when type is Commission. |
amount.value | ![]() |
The value of the split amount. You do not need to specify this field for transaction fees, since they are not known at the time of payment. |
type | ![]() |
Defines the part of the payment you want to book to the specified account .Possible values:
|
amount.currency | Required for currency conversion | The currency of the split amount. |
reference | Required if type is BalanceAccount |
Your unique identifier for the specific transaction split. |
description | Your description for that specific transaction split, which is returned in our reporting. |
Here is an example of how you can split the payment amount at the time of capture, when a customer pays for goods worth EUR 400.00.
- EUR 396.00 are booked to your user's balance account as payment for the goods.
- EUR 4.00 are booked to your liable balance account as your platform's commission.
- All transaction fees are booked against your user's balance account, deducted from the sale amount.
Step 3: Check the result
API response
In the capture response, note the following:
paymentPspReference
: the PSP reference of the authorizationpspReference
: the PSP reference associated with this capture request. This is different from the PSP reference of the authorization.status
: received
Webhook
Wait for the CAPTURE webhook to learn the outcome of the request.