Выплаты одним запросом
Выплаты на банковский счет можно проводить одним запросом. Процесс передачи данных и подтверждения выплаты выполняется автоматически — без дополнительных шагов. При этом необходимо соблюдать все требования стандарта PCI DSS.
Для настройки проведения выплат одним запросом обратитесь к персональному менеджеру Банка 131. После настройки все выплаты будут проходить этим способом. Чтобы отключить эту функцию, повторно обратитесь к менеджеру Банка.
Шаг 1. Создайте сессию одновременно с выплатой
Выполните запрос session/init/payout, передав параметры выплаты с открытыми данными.
Пример создания платежной сессии с выплатой
- cURL
- PHP
curl -X POST \
https://demo.bank131.ru/api/v1/session/init/payout \
-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": {
"system_type": "ru",
"ru": {
"bik": "044525971",
"account": "40817810100000270411",
"full_name": "Иванов Иван Иванович",
"description": "Перевод средств по договору № 5015553111 Иванов Иван Иванович НДС не облагается"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "good"
}'
use Bank131\SDK\API\Request\Builder\RequestBuilderFactory;
use Bank131\SDK\Client;
use Bank131\SDK\Config;
use Bank131\SDK\DTO\BankAccount\BankAccountRu;
$config = new Config(
'https://demo.bank131.ru',
'your_project_name',
file_get_contents('/path/to/your/private_key.pem')
);
$client = new Client($config);
$request = RequestBuilderFactory::create()
->initPayoutSession()
->setBankAccount(
new BankAccountRu(
'044525971',
'40817810100000270411',
'Иванов Иван Иванович',
'Перевод средств по договору № 5015553111 Иванов Иван Иванович НДС не облагается'
)
)
->setAmount(1000, 'rub')
->setMetadata('good')
->build();
$response = $client->session()->initPayout($request);
Шаг 2. Дождитесь вебхука о результате выплаты
Банк 131 отправит вам вебхук payment_finished. Информация о результате выплаты содержится в параметре status объекта payments/payout_list.
Статус succeeded означает, что выплата прошла успешно. Если статус failed — выплата не прошла из-за ошибки.
Какие бывают статусы выплаты >
Пример вебхука с результатом выплаты
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "payment_finished",
"session": {
"id": "ps_3230",
"status": "accepted",
"created_at": "2018-05-27T02:03:00.000000Z",
"updated_at": "2018-05-27T02:03:00.000000Z",
"payments": [{
"id": "po_2018",
"status": "succeeded",
"created_at": "2018-05-27T02:03:00.000000Z",
"customer": {
"reference": "user123",
"contacts": [{
"email": "user@gmail.com"
}]
},
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"bic": "044525971",
"account": "40817810100000270411",
"full_name": "Иванов Иван Иванович",
"description": "Перевод средств по договору № 5015553111 Иванов Иван Иванович НДС не облагается"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "good"
}]
}
}'