Split payments using API
This scheme allows you to split one payment into several payments using the existing methods of sending payouts and receiving payments.
You should consider it if:
- Some of the money is going to a legal entity (platform or service) and the rest to an individual (including self-employed individuals).
- The money is going to an individual's bank card.
Who it's for
Platforms where people buy and sell goods and services and pay money for that, and the platform gets a cut.
How it works
We have:
- The payer – the person who pays for a good or service.
- The recipient of the payout – the person who receives some of the money (for selling goods, for example).
- The company that receives the rest of the money, e.g. takes a cut (this is you).
In a nutshell:
You start by holding the money on the payer's card.
You then transfer the payout to the recipient.
When the payout is completed, you debit ("capture") the money on hold from the payer's card.
The difference between the amount of the payment you receive and the payout you perform is your fee.
Now for the details.
How to route a split payment
Step 1. Tokenize the recipient's card
Show the tokenization widget to the recipient of the payout. The recipient will input their card details, and you will receive their token in response.
You can do this once, save the token and then use it to send money to each other in the future.
Step 2. Create a request to debit the money from the payer's card
- Create the payment session:
session/create
. - Get the token to work with the widget: it should have the identifier of the payment session created at the previous step.
- Call the payment form widget and show it to the payer.
The payer goes through the payment process, entering their card details and confirming the payment via 3D Secure if necessary.
The amount of the payment is put on hold on the payer's card.
Step 3. Get a notification of delayed capture
Bank 131 will send you a ready_to_capture
webhook. This means that the money has been successfully put on hold on the payer's card. You can now proceed with the payout.
Step 4. Send the payout to the recipient.
Transfer the required amount to the recipient: perform the payout using the card token you previously obtained and saved.
In this example, the recipient is a self-employed person; the payment is performed with fiscalization with the tax service, and you get a receipt.
Create a new payment session:
session/create
.Send money to the recipient by using the
session/start/payout/fiscalization
request, specifying:
- the recipient's bank card token
- the recipient's full name (in the
recipient.full_name
parameter) - recipient taxpayer identification number (INN in Russia) in
tax_reference
- the purpose of the payment (in the
metadata
field)
- Get a
payment_finished
webhook with the receipt.
Step 5. Debit the money on hold from the payer's card
This can be done using the capture_request
request.