Выплата с расчетного счета на банковский счет
Этот сценарий описывает отправку выплаты на банковский счет c расчетного счета. Выплата будет произведена в два списания, одно на сумму платежа, другое на комиссию (если комиссия есть). Эти списания будут отражены в банковской выписке в интернет-банке. API позволяет отправлять выплаты самозанятым, ИП, физическим и юридическим лицам на счета в российских банках. Все параметры передаются в открытом виде.
На какие счета можно отправить
Вы можете отправить выплаты только на счета, которые начинаются с этих цифр:
- 40817810
- 42301810
- 42302810
- 42303810
- 42304810
- 42305810
- 42306810
- 42307810
- 40802810
- 40702810 (для счетов юридических лиц)
- 40701810
- 40502810
Если счет начинается с других цифр, выплата не пройдет.
Шаг 1. Начните выплату
Отправьте запрос на создание платежной сессии c одновременным стартом выплаты session/init/payout/rko.
Параметры
- Для резидентов
- Для нерезидентов
| Название | Обязательность | Тип | Описание |
|---|---|---|---|
| payment_method/payout_details | + | object | Платежные данные |
| type | + | string | Значение: bank_account |
| bank_account | + | object | Банковский счет |
| system_type | + | string | Система банковских переводов. Всегда: ru |
| ru | + | object | Объект банковского счета |
| bik | + | string | БИК банка получателя |
| account | + | string | Банковский счет получателя |
| full_name | + | string | ФИО физического лица. В случае выплаты на счет ИП, передается в следующем формате: ИП <ФИО> |
| inn | - (обязательно для выплат на счета юридических лиц или ИП) | string | ИНН |
| kpp | - (обязательно для выплат на счета юридических лиц) | string | КПП |
| description | + | string | Назначение выплаты. Как сформировать |
| participant_details | + | object | Информация об участниках выплаты |
| sender | + | object | Данные отправителя |
| account | + | string | Номер банковского расчетного счета, с которого будет осуществляться выплата |
| recipient | + | object | Данные получателя |
| amount_details | + | object | Сумма |
| amount | + | int | Сумма в копейках. Значение должно быть больше нуля. Чтобы передать 100 рублей, укажите 10000 |
| currency | + | string | Код валюты согласно ISO 4217. Регистр не важен. Всегда: rub |
| Название | Обязательность | Тип | Описание |
|---|---|---|---|
| payment_method/payout_details | + | object | Платежные данные |
| type | + | string | Значение: bank_account |
| bank_account | + | object | Банковский счет |
| system_type | + | string | Система банковских переводов. Всегда: ru |
| ru | + | object | Объект банковского счета |
| bik | + | string | БИК банка получателя |
| inn | - (обязательно для выплат на счета юридических лиц или ИП) | string | ИНН получателя |
| kpp | - (обязательно для выплат на счета юридических лиц) | string | КПП получателя |
| account | + | string | Банковский счет получателя |
| full_name | + | string | ФИО физического лица. В случае выплаты на счет ИП, передается в следующем формате: ИП <ФИО>. При выплате юридическому лицу — наименование юрлица, если предусмотрено договором. Важно: если наименование или ФИО указано некорректно, банк-получатель может отказать в зачислении и деньги вернутся на счет отправителя |
| description | + | string | Назначение выплаты с кодом валютной операции (согласуется с менеджером в Банке 131). Как сформировать |
| amount_details | + | object | Сумма |
| amount | + | int | Сумма в копейках. Значение должно быть больше нуля. Чтобы передать 100 рублей, укажите 10000 |
| currency | + | string | Код валюты согласно ISO 4217. Регистр не важен. Всегда: rub |
| participant_details | + | object | Информация об участниках выплаты |
| sender | + | object | Данные отправителя |
| full_name | - (обязательно, если отправитель — физическое лицо) | string | Имя |
| company_name | - (обязательно, если отправитель — юридическое лицо) | string | Название компании |
| address_line | + | string | Адрес. Важно: страну и город необходимо указать в следующих полях, в данном поле их дублировать не нужно |
| country_iso3 | + | string | Страна (ISO-3166-1 alpha-3) |
| city | + | string | Город |
| recipient | + | object | Данные получателя |
| full_name | + | string | Имя получателя |
Как формировать назначение выплаты
В назначении выплаты (поле bank_account.ru.description) по российским законам
необходимо указывать:
- вид операции (например, оплата услуг),
- основание платежа (например, договор №),
- наименование работ, услуг, товаров,
- облагается НДС или нет.
Если ваша организация зарегистрирована не в России, необходимо добавить код вида
валютной операции в следующем формате: {VO<код вида валютной операции>} без отступов и пробелов. Код необходимо согласовать заранее с менеджером в Банке 131.
Назначение выплаты не должно содержать следующие символы:
?,!. Максимальная длина: 210 символов.
Примеры назначения выплаты
- Для резидентов
- Для нерезидентов
Перевод средств по договору № 5015553456 Иванов Иван Иванович НДС не облагается
{VO99090} Перевод средств по договору № 5015553456 Иванов Иван Иванович НДС не облагается
Примеры запросов для выплат
- Физическим лицам
- Юридическим лицам
curl -X POST \
https://demo.bank131.ru/api/v1/session/init/payout/rko \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-d '{
"payment_method": {
"type": "bank_account",
"bank_account": {
"ru": {
"bik": "044525974",
"account": "40817810400003869535",
"full_name": "Иванов Иван Иванович",
"description": "Перевод средств по договору № 5015553111 Иванов Иван Иванович НДС не облагается"
},
"system_type": "ru"
}
},
"amount_details": {
"amount": 300,
"currency": "rub"
},
"participant_details": {
"sender": {
"account": "40702810300200000013"
}
}
}'
curl -X POST \
https://demo.bank131.ru/api/v1/session/init/payout/rko \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-d '{
"payment_method": {
"type": "bank_account",
"bank_account": {
"ru": {
"bik": "044525974",
"account": "40702810500000000001",
"full_name": "Наименование организации",
"inn": "1111111111",
"kpp": "156605101",
"description": "Перечисление денежных средств по договору за декабрь 2022 г. НДС не облагается."
},
"system_type": "ru"
}
},
"amount_details": {
"amount": 300,
"currency": "rub"
},
"participant_details": {
"sender": {
"account": "40702810300200000013"
}
}
}'
Шаг 2. Дождитесь уведомления о готовности сделать выплату
Банк 131 отправит вам вебхук ready_to_confirm.
В теле вебхука придут все данные для выплаты. Вам необходимо сохранить объект confirm_information — он понадобится для подтверждения выплаты.
В ответ следует отдавать HTTP-код 200.
Пример вебхука
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "ready_to_confirm",
"session": {
"id": "ps_2643",
"status": "in_progress",
"created_at": "2024-02-20T08:42:35.905869Z",
"updated_at": "2024-02-20T08:42:36.382627Z",
"payments": [{
"id": "po_513",
"status": "pending",
"created_at": "2024-02-20T08:42:35.965210Z",
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"bik": "044525974",
"account": "40702810500000000001",
"full_name": "ООО Ромашки",
"description": "Выплата",
"is_fast": false,
"kpp": "156605101",
"inn": "3316004790"
}
}
},
"amount_details": {
"amount": 350,
"currency": "RUB"
},
"amounts": {
"net": {
"amount": 350,
"currency": "RUB"
},
"gross": {
"amount": 350,
"currency": "RUB"
}
},
"paymentMetadata": {},
"participant_details": {
"sender": {
"account": "40702810900000000011"
}
},
"payment_options": {
"recurrent": false,
"is_subsequent": false
}
}],
"next_action": "confirm",
"session_metadata": {}
},
"confirm_information": {
"account_details": {
"sender": {
"account_number": "account_number",
"name": "name",
"bank_name": "bank_name",
"bik": "bik",
"correspondent_account_number": "correspondent_account_number",
"inn": "inn",
"kpp": "kpp"
},
"recipient": {
"account_number": "40702810500000000001",
"name": "ООО Ромашки",
"bank_name": "bank_name",
"bik": "bik",
"correspondent_account_number": "correspondent_account_number",
"inn": "3316004790",
"kpp": "156605101"
}
}
}
}'
Шаг 3. Подтвердите или отмените выплату
Проверьте данные для выплаты и подтвердите, что готовы её провести (с помощью
запроса session/confirm) или отмените (отправьте запрос session/cancel). При подтверждении выплаты объект confirm_information является обязательным. Данный запрос является платежным поручением на перевод денежных средств.
Пример запроса session/confirm
curl -X POST \
https://demo.bank131.ru/api/v1/session/confirm \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_1048967",
"confirm_information": {
"account_details": {
"sender": {
"account_number": "40702810300200000013",
"name": "Наименование партнера Банка 131",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131",
"inn": "3316004790",
"kpp": "156605101"
},
"recipient": {
"account_number": "40702810300000000006",
"name": "Наименование организации-получателя",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131"
}
}
}
}'
Пример запроса session/cancel
curl -X POST \
https://demo.bank131.ru/api/v1/session/cancel \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_1048967",
"confirm_information": {
"account_details": {
"sender": {
"account_number": "40702810300200000013",
"name": "Наименование партнера Банка 131",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131",
"inn": "3316004790",
"kpp": "156605101"
},
"recipient": {
"account_number": "40702810300000000006",
"name": "Наименование организации-получателя",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131"
}
}
}
}'
Шаг 4. Дождитесь уведомления о результате выплаты
Банк 131 отправит вам вебхук payment_finished. В теле вебхука придут все данные, с которыми
проводилась выплата. Результат выплаты приходит в поле status объекта payments/payout_list.
Если статус succeeded, значит, выплата прошла успешно.
Если статус failed — выплата не прошла из-за ошибки.
Возврат выплаты
Выплата, которую вы отправили на счет в российском банке, может вернуться. В этом случае в течение 5 дней вам придет возврат.
Если у вас подключены вебхуки, в случае возврата вы получите вебхук payment_refunded. Если вебхуки у вас отключены, вы можете узнать про возвраты следующими способами:
- С помощью запроса
session/status. - С помощью реестра выплат.
Тестирование работы выплат
Вы можете протестировать работоспособность выплат с расчетного счета. Для этого в вебхуке ready_to_confirm используйте объект confirm_information. В нем передаются тестовые данные, которые нужно отправить с запросом session/confirm. Они заполняются на сервере и используются только для тестирования.
Для проведения тестирования:
- Отправьте запрос на создание платежной сессии.
- Проверьте статус платежной сессии.
- Дождитесь вебхука.
- Отправьте запрос с тестовыми данными.
- Проверьте статус платежной сессии.
Объект confirm_information
Объект с тестовыми данным для формирования запроса ready_to_confirm.
| Название | Тип | Описание |
|---|---|---|
| confirm_information | object | Объект для тестирования выплаты |
| account_details | object | Объект с информацией о счетах отправителя и получателя |
| sender | object | Объект с тестовой информацией о счете отправителя |
| account_number | string | Номер счета отправителя |
| name | string | Имя отправителя |
| bank_name | string | Название банка отправителя |
| bik | string | БИК банка отправителя |
| correspondent_account_number | string | Корреспондентский счет отправителя |
| inn | string | ИНН банка отправителя |
| kpp | string | КПП банка отправителя |
| recipient | object | Объект с тестовой информацией о счете получателя |
| account_number | string | Номер счета получателя |
| name | string | Имя получателя |
| bank_name | string | Название банка получателя |
| bik | string | БИК банка получателя |
| correspondent_account_number | string | Корреспондентский счет получателя |
| inn | string | ИНН банка получателя |
| kpp | string | КПП банка получателя |
Шаг 1. Создайте платежную сессию c одновременным стартом выплаты
Отправьте запрос session/init/payout/rko с необходимыми данными для инициализации платежной сессии.
Пример создания сессии
curl -X POST \
https://demo.bank131.ru/api/v1/session/init/payout/rko \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"bik": "044525974",
"account": "40702810500000000001",
"full_name": "ООО Ромашки",
"inn": "3316004790",
"kpp": "156605101",
"description": "Выплата"
}
}
},
"amount_details": {
"amount": 350,
"currency": "rub"
},
"participant_details": {
"sender": {
"account": "40702810900000000011"
}
}
}'
Шаг 2. Проверьте статус платежной сессии
Проверьте статус созданной платежной сессии в запросе session/status. Если все готово к дальнейшему прохождению транзакции, то вы получите параметр "session.next_action": "confirm" в ответе.
Пример запроса
curl -X GET \
https://demo.bank131.ru/api/v1/session/status \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_2643"
}'
Шаг 3. Дождитесь вебхука с объектом confirm_information
Дождитесь вебхука ready_to_confirm с объектом confirm_information. Этот объект будет необходим для проведения дальнейшего тестирования.
Пример вебхука
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "ready_to_confirm",
"session": {
"id": "ps_2643",
"status": "in_progress",
"created_at": "2024-02-20T08:42:35.905869Z",
"updated_at": "2024-02-20T08:42:36.382627Z",
"payments": [{
"id": "po_513",
"status": "pending",
"created_at": "2024-02-20T08:42:35.965210Z",
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"bik": "044525974",
"account": "40702810500000000001",
"full_name": "ООО Ромашки",
"description": "Выплата",
"is_fast": false,
"kpp": "156605101",
"inn": "3316004790"
}
}
},
"amount_details": {
"amount": 350,
"currency": "RUB"
},
"amounts": {
"net": {
"amount": 350,
"currency": "RUB"
},
"gross": {
"amount": 350,
"currency": "RUB"
}
},
"paymentMetadata": {},
"participant_details": {
"sender": {
"account": "40702810900000000011"
}
},
"payment_options": {
"recurrent": false,
"is_subsequent": false
}
}],
"next_action": "confirm",
"session_metadata": {}
},
"confirm_information": {
"account_details": {
"sender": {
"account_number": "account_number",
"name": "name",
"bank_name": "bank_name",
"bik": "bik",
"correspondent_account_number": "correspondent_account_number",
"inn": "inn",
"kpp": "kpp"
},
"recipient": {
"account_number": "40702810500000000001",
"name": "ООО Ромашки",
"bank_name": "bank_name",
"bik": "bik",
"correspondent_account_number": "correspondent_account_number",
"inn": "3316004790",
"kpp": "156605101"
}
}
}
}'
Шаг 4. Отправьте объект confirm_information для проверки выплат
Скопируйте из полученного ответа объект confirm_information и отправьте его в запросе session/confirm.
Пример запроса
curl -X -POST \
https://demo.bank131.ru/api/v1/session/confirm \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_2643",
"confirm_information": {
"account_details": {
"sender": {
"account_number": "account_number",
"name": "name",
"bank_name": "bank_name",
"bik": "bik",
"correspondent_account_number": "correspondent_account_number",
"inn": "inn",
"kpp": "kpp"
},
"recipient": {
"account_number": "40702810500000000001",
"name": "ООО Ромашки",
"bank_name": "bank_name",
"bik": "bik",
"correspondent_account_number": "correspondent_account_number",
"inn": "3316004790",
"kpp": "156605101"
}
}
}
}'
Шаг 5. Проверьте статус тестовой платежной сессии
Проверьте статус тестовой платежной сессии в запросе session/status. Если платежная сессия была успешно проведена, то вы получите объект session.action с данными о всех операциях (в рамках одной тестовой сессии) в ответе.
Пример запроса
curl -X POST \
https://demo.bank131.ru/api/v1/session/status \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_2643"
}'