Skip to main content

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:

  1. You start by holding the money on the payer's card.

  2. You then transfer the payout to the recipient.

  3. 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

  1. Create the payment session: session/create.
  2. Get the token to work with the widget: it should have the identifier of the payment session created at the previous step.
  3. 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.

  1. Create a new payment session: session/create.

  2. 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)
  1. 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 session/capture request.