Перейти к основному содержимому

Выплата с номинального счета на банковский счет

Этот сценарий описывает отправку выплаты на банковский счет c номинального счета. Выплата будет произведена в два списания, одно на сумму платежа, другое на комиссию (если комиссия применяется). Эти списания будут отражены в банковской выписке в онлайн-банке. API позволяет отправлять выплаты самозанятым, ИП, физическим и юридическим лицам на счета в российских банках. Все параметры передаются в открытом виде.

На какие счета можно отправить

Вы можете отправить выплаты только на счета, которые начинаются с этих цифр:

  • 40817810
  • 42301810
  • 42302810
  • 42303810
  • 42304810
  • 42305810
  • 42306810
  • 42307810
  • 40802810
  • 40702810 (для счетов юридических лиц)
  • 40701810
  • 40502810

Если счет начинается с других цифр, выплата не пройдет.

Шаг 1. Начните выплату

Отправьте запрос на создание платежной сессии c одновременным стартом выплатыapi/v1/session/init/payout/nominal.

Обязательные параметры

НазваниеТипОписание
payment_methodPaymentMethodПлатежные данные
  typestringзначение: bank_account
  bank_accountBankAccountPaymentMethodБанковский счет
    system_typestringСистема банковских переводов. Всегда: ru
    ruBankAccountRUОбъект банковского счета
      bikstringБИК банка получателя
      accountstringБанковский счет получателя
      full_namestringФИО физического лица. В случае выплаты на счет ИП, передается в следующем формате: ИП <ФИО>.
      innstringИНН. Необходимо указать при выплатах на счета юридического лица или ИП
      kppstringКПП. Необходимо указать при выплатах на счета юридического лица
      descriptionstringНазначение выплаты. Как сформировать
participant_detailsParticipantDetailsИнформация об участниках выплаты
  senderParticipantДанные получателя
    accountstringНомер банковского номинального счета, с которого будет осуществляться выплата
    beneficiary_idstringИНН бенефициара или выгодоприобретателя. Необходимо указать только при выплатах с номинального счета
  recipientParticipantДанные получателя
    beneficiary_idstringИНН бенефициара или выгодоприобретателя. Необходимо указать только при выплатах с номинального счета. Не заполняется при выплатах по СБП
amount_detailsAmountDetailsСумма
  amountintСумма в копейках. Значение должно быть больше нуля. Если отправляете 100 рублей, нужно передать 10000
  currencystringКод валюты согласно ISO 4217. Регистр не важен. Всегда: rub

Как заполнять данные бенефициара

Для выплат с номинального счета необходимо указывать данные бенефициара. В качестве данных бенефициара мы ожидаем получить ИНН бенефициара. Данные бенефициара указываются в объекте participant_details , в списке данных отправителя sender или данных получателя recipient. Если ваш бенефициар является отправителем - укажите его инн в блок sender, если он является получателем, то укажите в блоке recipient. До старта выплат вам необходимо передать список данных ваших бенефициаров Вашему менеджеру.

Как формировать назначение выплаты

В назначении выплаты (поле BankAccountRU.description) по российским законам необходимо указывать:

  • вид операции (например, оплата услуг),
  • основание платежа (например, договор №),
  • наименование работ, услуг, товаров,
  • облагается НДС или нет.

Если ваша организация зарегистрирована не в России, необходимо добавить код вида валютной операции в следующем формате: {VO<код вида валютной операции>} без отступов и пробелов. Код необходимо согласовать заранее с менеджером в Банке 131.

Назначение выплаты не должно содержать следующие символы: ?, !. Максимальная длина: 210 символов.

Пример назначения выплаты

Перевод средств по договору № 5015553456 Иванов Иван Иванович НДС не облагается

Пример запроса для выплаты на счет физического лица

curl -X POST \
https:// api/v1/session/init/payout/nominal \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: 721af394d5a7aefd0e91f5390abc4d7e20fb2b5784b091fef621f3c61b7abb4b' \
-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"
},
"recipient":{
"beneficiary_id": "1234567890"
}
}
}'

Пример запроса для выплаты на счет юридического лица

curl -X POST \
https:// api/v1/session/init/payout/nominal \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: 721af394d5a7aefd0e91f5390abc4d7e20fb2b5784b091fef621f3c61b7abb4b' \
-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"
},
"recipient":{
"beneficiary_id": "1234567890"
}
}
}'

Шаг 2. Дождитесь уведомления о готовности сделать выплату

Банк 131 отправит вам вебхук ready_to_confirm. В теле вебхука придут все данные для выплаты. Вам необходимо сохранить объект confirm_information — он понадобится для подтверждения выплаты.

В ответ следует отдавать HTTP-код 200.

Пример вебхука ready_to_confirm

  curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: a4f1698616d6ad7b8b73a9d72d281eeb443b64dee3f38df430eeed6aa29e1dc' \
-d '{
"type": "ready_to_confirm",
"session": {
"id": "ps_260159",
"status": "in_progress",
"created_at": "2023-01-17T13:41:59.352487Z",
"updated_at": "2023-01-17T13:42:01.657512Z",
"payments": [
{
"id": "po_67428",
"status": "pending",
"created_at": "2023-01-17T13:41:59.594022Z",
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"bik": "049205131",
"account": "40702810300000000006",
"full_name": "Наименование организации-получателя",
"description": "Перечисление денежных средств по договору № 1 НС от 01.09.2021 комиссия площадки за декабрь 2022 г. НДС не облагается.",
"is_fast": false
}
}
},
"amount_details": {
"amount": 2700,
"currency": "RUB"
},
"amounts": {
"net": {
"amount": 2700,
"currency": "RUB"
}
}
}
]
}
}

Шаг 3. Подтвердите или отмените выплату

Проверьте данные для выплаты и подтвердите, что готовы её провести (с помощью запроса confirm_request) или отмените (отправьте запрос cancel_request. При подтверждении выплыты объект confirm_information является обязательным. Данный запрос является платежным поручением на перевод денежных средств.

Пример запроса confirm_request

  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: 6eaf1e9cfa15f011e02c0a126187fe327a71e9d79be5e3fdb3f69dc5dfcd9872' \
-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"
}
}
}
}'

Пример запроса cancel_request

  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: 6eaf1e9cfa15f011e02c0a126187fe327a71e9d79be5e3fdb3f69dc5dfcd9872' \
-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. В теле вебхука придут все данные, с которыми проводилась выплата. Результат выплаты приходит в поле payment.status.

Если статус succeeded, значит, выплата прошла успешно. Если статуc failed — выплата не прошла из-за ошибки.

Подробнее о статусах выплаты

Возврат выплаты

Выплата, которую вы отправили на счет в российском банке, может вернуться. В этом случае в течение 5 дней вам придет возврат.

Помните: вы можете воспользоваться функциональностью уведомления о пополнении номинального счета. Чтобы получать уведомление каждый раз, когда средства поступают на ваш номинальный счет в результате внутрибанковских или межбанковских операций, просто сообщите вашему менеджеру Банка адрес, на который вы хотите получать такие уведомления. Данный вебхук позволит вам оперативно получать информацию о пополнении и текущем балансе номинального счета без необходимости авторизации и мониторинга состояния счета в интернет-банке.

Тестирование работы выплат

Вы можете протестировать работоспособность выплат с номинального счета. Для этого в вебхуке ready_to_confirm используйте объект confirm_information. В нем передаются тестовые данные, которые нужно отправить с запросом confirm_request. Они заполняются на сервере и используются только для тестирования.

Для проведения тестирования:

  1. Отправьте запрос на создание платежной сессии.
  2. Проверьте статус платежной сессии.
  3. Дождитесь вебхука.
  4. Отправьте запрос с тестовыми данными.
  5. Проверьте статус платежной сессии.

Объект confirm_information

Объект с тестовыми данным для формирования запроса ready_to_confirm.

НазваниеТипОписание
confirm_informationObjectОбъект для тестирования выплаты
  account_detailsObjectОбъект с информацией о счетах отправителя и получателя
    senderObjectОбъект с тестовой информацией о счете отправителя
      account_numberstringНомер счета отправителя
      namestringИмя отправителя
      bank_namestringНазвание банка отправителя
      bikstringБИК банка отправителя
      correspondent_account_numberstringКорреспондентский счет отправителя
      innstringИНН банка отправителя
      kppstringКПП банка отправителя
    recipientObjectОбъект с тестовой информацией о счете получателя
      account_numberstringНомер счета получателя
      namestringИмя получателя
      bank_namestringНазвание банка получателя
      bikstringБИК банка получателя
      correspondent_account_numberstringКорреспондентский счет получателя
      innstringИНН банка получателя
      kppstringКПП банка получателя

Шаг 1. Создайте платежную сессию c одновременным стартом выплаты

Отправьте запрос session/init/payout/rko с необходимыми данными для инициализации платежной сессии.

curl --location 'https://demo.bank131.ru/api/v1/session/init/payout/rko' \
--header 'X-PARTNER-PROJECT: 2pr-rko-test' \
--header 'X-PARTNER-SIGN: sign' \
--header 'Content-Type: application/json' \
--data '{
"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 --location 'https://demo.bank131.ru/api/v1/session/status' \
--header 'X-PARTNER-PROJECT: 2pr-rko-test' \
--header 'X-PARTNER-SIGN: sign' \
--header 'Content-Type: application/json' \
--data '{
"session_id": "ps_2643"
}'

Шаг 3. Дождитесь вебхука с объектом confirm_information

Дождитесь вебхука ready_to_confirm с объектом confirm_information. Этот объект будет необходим для проведения дальнейшего тестирования.

{
"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 и отправьте его в запросе confirm_request.

curl --location 'https://demo.bank131.ru/api/v1/session/confirm' \
--header 'X-PARTNER-PROJECT: 2pr-rko-test' \
--header 'X-PARTNER-SIGN: sign' \
--header 'Content-Type: application/json' \
--data '{
"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 --location 'https://demo.bank131.ru/api/v1/session/status' \
--header 'X-PARTNER-PROJECT: 2pr-rko-test' \
--header 'X-PARTNER-SIGN: sign' \
--header 'Content-Type: application/json' \
--data '{
"session_id": "ps_2643"
}'