Documentation

Documentation

  • Bank 131 API
  • Languages iconEnglish
    • Русский

›How Payouts Work

131 Documentation

  • API features
  • Where to begin

Introduction to API

  • Interaction
  • API libraries
  • Testing
  • Version history

How Payouts Work

  • Features
  • How it all works
  • Main payout scenario
  • Payout refunds
  • The Self-employed

    • Payouts to the self-employed
    • Fiscalization

    Payout Methods

    • To a Russian bank card
    • To a Russian bank account
    • To a QIWI Wallet
    • To a YooMoney (Yandex.Money)
    • To the Russian Federal Tax Agency
    • Via FPS by a phone number

    Payout Scenarios

    • Payout to a card via widget
    • Payout from a nominal account to a bank card
    • Single-request payout
    • Payout to a card with PCI DSS
    • Payout to a self-employed person with fiscal receipt

How Payments Work

  • Features
  • Payment process
  • Payments via bank card
  • Payments with later capture
  • Refunds
  • Recurring payments
  • Payments via FPS by QR code
  • Payments via Telegram

    • How to create your Telegram bot
    • How to connect your Telegram bot
    • How to setup your Telegram bot

    Split Payments

    • Features and options
    • Split payments out of the box
    • Split payments using API

    Payment Scenarios

    • Paying via payment form
    • Paying with PCI DSS
    • Single-request payment

Widgets

  • Widget to get card details
  • Payment form widget
  • Widget for linking a self-employed person to the Bank

Passport Verification

  • Features
  • Interaction
  • Methods

    • Verification request
    • Verification status
  • Response and errors

The Self-employed

  • General info
  • Linking
  • Testing
  • Verification
  • Notifying
  • Accruals

Reports

  • Payouts report
  • Payments report
  • Monthly report

API Reference

  • Objects
  • Methods
  • Webhooks
  • Error codes

Main payout scenario

What kinds of scenarios are there

Payouts via API can be performed using a token or without a token.

The choice of scenario depends on the how the payment is received and whether you have a PCI DSS security certificate.

Payout to a bank card without PCI DSS

In this case, you cannot store and send the recipient's bank card details with open parameters, which means the payout can only be performed using a token, via the tokenization widget.

The widget allows you to obtain the user's card details and pass them along within your request in a secure tokenized form.

How to perform a payout to a bank card via widget

To show the user which bank card will receive the payment, use method token/info. It takes the last 4 numbers of the card on its token.

Payout to a bank card with PCI DSS, bank account, via FPS, QIWI wallet or YooMoney (Yandex.Money) wallet

No need to use a token: all the payout parameters can be passed along with open parameters.

The payment session

All API operations are carried out within a payment session (PaymentSession) – payouts, payments, and refunds. You can perform payouts in two ways:

  • initiate the payout when you start the session (as a single request, session/init/payout);
  • or create a session and only then perform the payout (making two requests: session/create and session/start/payout). For example, to immediately obtain the session identifier and use it to monitor the payout status.

Main payout scenario

These steps are only necessary for payouts with the widget

  1. You will send a request for token creation to access the JavaScript library.
  2. You will create the widget with this token, show it to the user, and obtain the card details in tokenized form.

Tokenized card details can be saved so that you can send money to that card later.

  1. You perform the payout however you prefer:
  • either first send a request for payment session creation (session/create), then a separate request for payout creation using this session's identifier (session/start/payout)
  • or create the session and the payout simultaneously (session/init/payout).

In the request for payout creation, you pass the method of receiving the payment and all the parameters mandatory for that method.

  1. Make sure Bank 131 is ready to perform a payment and is waiting for your approval. There are two options:
  • get from Bank 131 the webhook ready_to_confirm
  • or send the request session/status and wait until the value confirm is returned in the field session.next_action.
  1. You then confirm (confirm_request) or cancel (cancel_request).
  2. Bank 131 sends you the payment_finished webhook containing the result of the payout. If the status is succeeded, the payout has been performed successfully.

A payout to a Russian bank account may be refunded within 5 days. In this case, you will receive the webhook payment_refunded. Learn more about payout refunds

The scenario of payouts to self-employed people

If you are paying out to self-employed people, the scenario will be slightly different.

  • Before the start of the payout (at the very beginning), you check that the person really is self-employed and is linked to Bank 131 (using their INN, with a couple of requests – check and request/status).
  • If the INN belongs to the self-employed person but is not linked to Bank 131, you should immediately link it using the special linking widget.
  • If everything is fine, you then perform the payout as in the usual scenario. Together with the payment, you send fiscalization details: session/init/payout/fiscalization or session/start/payout/fiscalization.

More about payouts to the self-employed

Single-request payout

For payouts to bank accounts or to cards with PCI DSS, there is a simplified scenario: you send the payout using the session/init/payout request and obtain the result from the payment_finished webhook or using the session/status method.

How to perform a single-request payout