Исполнение пакета переводов B2C
В одном запросе поддерживается прием и выполнение пакетной операции по B2C-переводам. Максимальный объем пакета — 1 000 переводов.
В параметре scope ссылки авторизации пользователя вашей компании должен быть указан сервис BC_SBP_PAYMENT для получения доступа к этому ресурсу.
При получении ошибки:
{
"internalErrorCode": "234.1-1013",
"cause": "ACTION_ACCESS_EXCEPTION",
"referenceId": "33b65e55-5624-4f97-adbe-3dffb505b41f",
"message": "Недостаточно прав для вызова POST /sbpb2c/v1/sbp/paymentB2C/execute. Отсутствует доступ хотя бы до одного из сервисов [BC_SBP_PAYMENT]."
}
Говорит об отсутствии в scope операции BC_SBP_PAYMENT. Для добавления необходимо написать письмо на почту поддержки supportdbo2@sberbank.ru.
Для отправки платежа необходимо создать запрос и дайджест на его основе.
Что такое дайджест?
Дайджест (подписываемый образ) - некоторый блок данных (строка или файл), сформированный на основе данных документа. "Слепок" документа на момент подписания. Непосредственно для него будет осуществляться операция формирования подписи. Должен содержать юридически значимые данные документа, по которым в дальнейше м может быть реализован процесс разбора спорных ситуаций с клиентами. Дайджест должен формироваться на основании актуальных данных документа непосредственно перед подписанием/проверкой подписи.
Пример дайджеста:
FIELDS:
batchUid=123e4567-e89b-12d3-a456-426655440000
TABLES:
Table=payments
#
payerAccount=40702810111111110000
receiverPhone=79052222222
bankName=Альфа-банк
bankAgentId=A23456789123
kvd=1
payeeName=Иванов Иван Иванович
comment=Прочий перевод
paymentPurpose=За товар по договору №2 от 12/01/2023
amount=100022
#
payerAccount=40702810111111110001
receiverPhone=79052222222
bankName=ВТБ
bankAgentId=A23456789124
kvd=2
payeeName=Иванов Иван Петрович
comment=Новый перевод
paymentPurpose=За товар по договору №2 от 12/01/2024
amount=100023
Важно:
Формирование дайджеста должно включать в себя только присутствующие поля и значения, сохраняя их исходные типы данных и точный порядок из примера ниже. Любые отклонения приведут к ошибке подписи. Конкретные примеры:
-
Если в запросе amount=10, в дайджесте должно быть amount=10.
-
Если какое-то поле, например comment отсутствует в запросе, то и в дайджест его включать не нужно
| Статус | Описание |
|---|---|
| SUCCESS | Пакет успешно принят к исполнению |
| FAILED | Ошибка при приеме пакета |
| HTTP код | internalErrorCode | cause | Эндпоинт | В ответе метода в message |
|---|---|---|---|---|
| 200 | - | - | POST /v1/sbp/paymentB2C/batchExecute GET /v1/sbp/paymentB2C/getBatchStatus/batch/{batchUid} | - |
| 400 | 786-0001 | VALIDATE_ERROR | POST /v1/sbp/paymentB2C/batchExecute | Ошибка валидации запроса. |
| 200 | 786-0223 | DIGITALDBO_SERT_ERROR | POST /v1/sbp/paymentB2C/batchExecute | Не удалось выполнить перевод. Попробуйте перевести деньги другим способом. |
| 200 | 786-0224 | DIGITALDBO_SIGN_ERROR | POST /v1/sbp/paymentB2C/batchExecute | Не удалось выполнить перевод. Попробуйте перевести деньги другим способом. |
| 200 | 786-0225 | PERMISSION_ERROR | POST /v1/sbp/paymentB2C/batchExecute | Не удалось выполнить перевод. Попробуйте перевести деньги другим способом. |
| 200 | 786-0226 | SIGNCONFIRM_ERROR | POST /v1/sbp/paymentB2C/batchExecute | Не удалось выполнить перевод. Попробуйте перевести деньги другим способом. |
| 400 | 786-0228 | BATCH_NOT_FOUND | GET /v1/sbp/paymentB2C/getBatchStatus/batch/{batchUid} | Пакет с указанным batchUid не найден |
| 200 | 786-0230 | CLIENT_NOT_FOUND | POST /v1/sbp/paymentB2C/batchExecute | Клиент не зарегистрирован в СБП. |
| 200 | 786-0232 | SIGN_DEFINITION_ERROR | POST /v1/sbp/paymentB2C/batchExecute | Не удалось выполнить перевод. Попробуйте перевести деньги другим способом. |
| 503 | 786-0220 | SERVICE_IS_NOT_AVAILABLE | POST /v1/sbp/paymentB2C/batchExecute | В настоящее время сервис недоступен по техническим причинам. Попробуйте позднее. |
| 500 | 786-0500 | INTERNAL_SERVER_ERROR | POST /v1/sbp/paymentB2C/batchExecute | При выполнении операции произошла ошибка. Мы уже работаем над ее устранением. Повторите попытку позже. |