﻿---
name: bank131-payouts-via-fps
description: Use when the user asks about payouts via the Faster Payments System (FPS, SBP) by phone number from a settlement or an escrow account: recipient details (`bank_account` with `system_type: faster_payment_system`, `faster_payment_system` with `phone` and `bank_id`), checking that the recipient is registered in FPS with `fps/customer_verification`, the list of FPS participant banks via `fps/banks`, the payout purpose in `description`, the mandatory `participant_details` for escrow account payouts, and FPS payout restrictions (instant 24/7, no refunds).
---

### How it works

You can pay individuals via the Faster Payments System (FPS, SBP) by phone number from a settlement or an escrow account. To do this, open a settlement account in Bank 131 — the Bank will register you in FPS. The recipient must also be registered in FPS.

FPS payouts are credited instantly, 24/7.

### Payout flow

Payout via FPS follows the standard payout flow:

1. Create a session with `session/create/rko` (for a settlement account) or `session/create/nominal` (for an escrow account).
2. Send the payout with `session/start/payout/rko` (settlement account) or `session/start/payout/nominal` (escrow account).
3. Wait for the `ready_to_confirm` webhook and save the `confirm_information` object from its body.
4. Confirm the payout with `session/confirm` or cancel it with `session/cancel`, passing `confirm_information`.
5. Wait for the `payment_finished` webhook. The result is in the `status` field of the `payments`/`payout_list` array: `succeeded` means the payout succeeded, `failed` means it failed.

You can create a session and send the payout at the same time — with `session/init/payout` (settlement account) or `session/init/payout/nominal` (escrow account). This way is not recommended.

### Recipient details

Recipient details (`payment_method` with `type: bank_account`):

- `system_type` — always `faster_payment_system`;
- `faster_payment_system.phone` — the recipient's phone number;
- `faster_payment_system.bank_id` — the identifier of the recipient's bank in FPS;
- `faster_payment_system.description` — the payout purpose.

### List of banks

To find out which banks support FPS, use the `fps/banks` method. It returns the list of FPS participant banks with their `id`, `ru_name`, and `eng_name`. The method is used only for payouts.

### Check the recipient

Before the first payout to new details, check that the recipient is registered in FPS with `fps/customer_verification`. For subsequent payouts to the same details this check is not required.

If the recipient is found in FPS, the session gets a successful status; if not, the session is cancelled. The operation is not charged and is confirmed automatically — the `ready_to_confirm` webhook is not sent.

Request parameters:

- `payment_method` (API v1) or `payout_details` (API v2) — the recipient's details, where `system_type` is `faster_payment_system_verification`, with `phone` and `bank_id`;
- `participant_details.recipient` — the recipient's `first_name`, `last_name`, and `middle_name`.

### Payout from an escrow account

When paying from an escrow account, `participant_details` is mandatory:

- `sender.account` — the number of the escrow account the payout is made from;
- `recipient.beneficiary_id` — the recipient's INN.

The sender is the platform, the recipient is the beneficiary. Before the payout, the list of beneficiaries must be provided to Bank 131 in advance and undergo mandatory identification. See the escrow payout skill for details.

For payouts from a settlement account, `participant_details` is not required.

### Payout purpose (description)

The purpose must include:

- the type of operation;
- the basis of the payout;
- the name of the works, services, or goods;
- whether VAT is charged or not;
- for non-residents, the currency operation code agreed with Bank 131.

The characters `?` and `!` are forbidden. The maximum length is 140 characters.

For a resident: `Transfer of funds under contract 5015553456 Ivanov Ivan Ivanovich VAT not charged`.

For a non-resident, add the currency operation code: `{VO99090} Transfer of funds under contract 5015553456 Ivanov Ivan Ivanovich VAT not charged`.

### Amount

The amount is passed in `amount_details`:

- `amount` — the amount in kopecks, must be greater than zero. To transfer 100 rubles, use `10000`;
- `currency` — `rub`.

### Restrictions

- FPS payouts cannot be refunded.
- The recipient must be registered in FPS.
- Before the first payout to new details, check the recipient with `fps/customer_verification`.
- A settlement or escrow account in Bank 131 and registration in FPS are required.
