Сервис «Безопасные сделки»
Информация о сервисе
Безопасные сделки — это технология Сбера для защищенных расчетов между контрагентами. Технология предоставляет возможность интеграции по API для клиентов, позволяет осуществлять безопасные расчеты покупателей (бенефициаров) с продавцами (поставщиками).
Инструкция по подключению сервиса "Безопасные сделки"
- Откройте расчетный счет в Сбере и заключите договор дистанционного банковского обслуживания СберБизнес. Открыть счет и заключить договор можно в любом отделении Сбера. Список офисов размещен на сайте Банка.
Результат шага: клиент имеет возможность осуществить вход в личный кабинет СберБизнес ПРОМ.
- Ознакомьтесь с договорной документацией на сайте Банка.
Результат шага: у клиента появляется представление о реализации сервиса на своей стороне.
- Пройдите шаги по подключению к Сбер API по инструкции.
Клиенту необходимо убедиться, что в UI СББОЛ (на тестовом и промышленном стенде) доступен личный кабинет SberAPI (Все продукты и услуги → Подключено), а среди доступных scope есть NOMINAL_ACCOUNTS. Если данного scope нет - напишите письмо в адрес поддержки (supportdbo2@sberbank.ru).
Результат шага: клиент подключен к каналу Сбер API. Личный кабинет клиента настроен и готов для дальнейшей работы.
- Установите \ проверьте TLS сертифкаты для тестового стенда по инструкции.
Результат шага: У клиента установлены и проверены TLS-сертификаты для тестового стенда.
- Откройте номинальный счет на тестовом стенде.
- Получите тестовый ГОСТ сертификат.
На ПРОМ для подписания запросов необходимо использовать УКЭП. Для тестирования использовать настоящий УКЭП нельзя. Следует воспользоваться тестовым сертификатом. Например, можно воспользоваться тестовым УЦ КриптоПро.
- Передайте в адрес поддержки продукта (prom_teh_safe_pay@sberbank.ru) данные для открытия НС на тестовом стенде и подписанный произвольный контент тестовым ГОСТ сертификатом.
Данные (ИНН, КПП, ОГРН, clientId) необходимо присылать из тестового СберБизнеса (они отличаются от реальных).
Результат шага: Открыт номинальный счет на тестовом стенде. Клиенту в ответ придет письмо с номером номиманального счета на тестовом стенде, который необходимо сохранить для дальнейшего использования.
- На тестовом стенде получите код авторизации по инструкции.
Сформируйте ссылку для получения кода авторизации.
Правила заполнения параметров для запроса /v2/oauth/authorize:
Параметр | Как заполнять | Пример | Описание |
---|---|---|---|
scope | openid NOMINAL_ACCOUNTS | openid NOMINAL_ACCOUNTS | Всегда одно и то же значение |
response_type | code | code | Всегда одно и то же значение |
client_id | Взять значение из личного кабинета | 9223376456675586 | Выдается при подключении к SberAPI |
state | Произвольный набор символов | abc123 | Подробное описание соответствующего параметра |
nonce | Произвольный набор символов | abc123 | Подробное описание соответствующего параметра |
Пример сформированной ссылки: https://efs-sbbol-ift-web.testsbi.sberbank.ru:9443/ic/sso/api/v2/oauth/authorize?redirect_uri=https://www.sberbank.ru/ru/person&nonce=80012c9c-1b9a-449e-a8d5-75100ea698ac&state=296014df-dbc8-4559-ab32-041bf5064a40&scope=openid NOMINAL_ACCOUNTS &response_type=code&client_id=1958729756739688446
По этой ссылке перейдите в браузер на страницу авторизации. После ввода аутентификационных данных браузер вернет Вас на Redirect_uri вместе с кодом авторизации (в адресной строке отобразится значение query parameter «code», что и будет являться кодом авторизации).
Пример кода авторизации:
Результат шага: в адресной строке у клиента отобразится значение query parameter «code», что и будет являться кодом авторизации.
- Обменяйте полученный код авторизации на токены доступа для тестового стенда и реализуйте процесс автоматического обновления токенов по Инструкции.
Результат шага: клиент обменял код авторизации на токены доступов для тестового стенда.
- Зарегистрируйте площадку на тестовом стенде с помощью вызова метода POST/signup.
Правила наложения подписи.
Подписывать необходимо значение параметра content (включая фигурные скобки), внутри которого не должно быть переносов строк, табов и пробелов.
Пример подписываемого контента:
{"data":{"nominalAccountNumber":"40702810038000000000"},"agreement":"Клиент подтверждает, что операция совершается в соответствии с условиями Договора номинального счета"}
Такой принцип подписания необходимо использовать для всех POST запросов.
Результат шага: Площадка зарегистрирована на тестовом стенде. Клиенту в ответ придет параметр nominalAccountId, который необходимо сохранить для дальнейшего использования.
- Добавьте бенефициара(-ов) в реестр с помощью вызова метода POST/beneficiaries/create.
Результат шага: Бенефициар(-ы) добавлен в реестр. Клиенту в ответ придет параметр beneficiaryId, который необходимо сохранить для дальнейшего использования.
- Напишите письмо на адрес поддержки продукта (prom_teh_safe_pay@sberbank.ru) для пополнения баланса бенефициара на тестовом стенде.
В письме необходимо указать значения параметров:
- nominalAccountId - ХХХХХХХХ-ХХХХ-ХХХХ-ХХХХ-ХХХХХХХХХХХХХ
- beneficiaryId - ХХХХХХХХ-ХХХХ-ХХХХ-ХХХХ-ХХХХХХХХХХХХХ
- docAmount - ХХХ (сумма в копейках)
- docPurpose - Пополнение счета
Результат шага: Теперь все готово для реализации и тестирования клиентом всех методов API.
- По завершению тестирования напишите письмо в адрес поддержки продукта (prom_teh_safe_pay@sberbank.ru) для демонстрации демо реализации.
Результат шага: Клиент провел демонстрацию демо реализации совместно с командой продукта.
- Напишите письмо в адрес поддержки (supportdbo2@sberbank.ru) для разблокировки промышленного стенда.
Результат шага: Промышленный стенд разблокирован и готов для дальнейшей эксплуатации.
- Откройте номинальный счет для учета средств нескольких бенефициаров.
При открытии номинального счета выберите расчетный счет, с которого будет взиматься комиссия. Открыть счет можно в любом отделении Сбербанка. Список офисов размещен на сайте Банка.
Результат шага: Клиент открыл номинальный счет в отделении Сбера для учета средств нескольких бенефициаров.
- Получите открепляемый УКЭП ФЛ, который можно будет использовать на сервере площадки.
- Передайте в адрес поддержки продукта (prom_teh_safe_pay@sberbank.ru) подпись над произвольным контентом.
- Получите в ответ идентификатор сертификата.
- Обратитесь к территориальному менеджеру для заключения доп. соглашения, указав в нем полученный идентификатор сертификата.
Результат шага: Клиент получил от сертифицированного УЦ открепляемый УКЭП ФЛ.
Выполните пункты 4-6 применительно к промышленному стенду.
Выполните пункт 8 применительно к промышленному стенду.
🎉 Ваше приложение подключено к промышленному стенду и готово к работе!
Схема работы сервиса
- Графическое описание
- Текстовое описание
Шаг | Что делаем | Подробности |
---|---|---|
1 | Клиент авторизуется через СберБизнес ID | Шаг реализуется с помощью СберБизнес ID - в рамках процесса авторизации через СберБизнес ID вы получаете access_token клиента и, при необходимости, дополнительную информацию о Клиенте. Подробно о подключении сервиса СберБизнес ID рассказали в соответствующем разделе документации. |
2 | Клиент регистрируется в продукте "Безопасные сделки" | С помощью метода /v1/nominal-account/signup выполняется единоразовый запрос для активации API при регистрации в продукте "Безопасные сделки" |
3 | Работа с реестром бенефициаров | С помощью набора методов для работы с реестром бенефициаров площадка имеет возможность:/v1/nominal-account/beneficiaries/create - отправить запрос на создание бенефициара'/v1/nominal-account/beneficiaries/delete' - отправить запрос на удаление бенефициара '/v1/nominal-account/beneficiaries/update' - отправить запрос на изменение информации по бенефициару /v1/nominal-account/beneficiaries/registry - отправить запрос на получение реестра бенефициаров/v1/nominal-account/beneficiaries/details/{id} - отправить запрос на получение сведений о бенефициаре/v1/nominal-account/beneficiaries/state/{id} - отправить запрос на получение состояния бенефициара/v1/nominal-account/beneficiaries/balance-report/{id} - отправить запрос на получение выписки по движению денежных средств на балансе бенефициара/v1/nominal-account/beneficiaries/moneyback - отправить запрос на вывод денежных средств бенефициара с номинального счета на расчетный счет /v1/nominal-account/beneficiaries/{beneficiaryId}/balance/events/{eventId} - отправить запрос на получение информации про денежный event конкретного бенефициара |
4 | Работа со смарт-контрактами | С помощью набора методов для работы со смарт-контрактами клиент имеет возможность:/v1/nominal-account/smart-contracts - отправить запрос на создание смарт-контракта/v1/nominal-account/smart-contracts/confirmstep - отправить запрос на подверждение шага смарт-контракта/v1/nominal-account/smart-contracts/completion - отправить запрос на завершение смарт-контракта/v1/nominal-account/smart-contracts/{id} - отправить запрос на получение актуальных сведений о смарт-контракте |
Вариант реализации
В рамках Платформы клиент самостоятельно разрабатывает ролевую модель и настраивает права доступа к функциональности.
Вариант реализации работы площадки клиента с сервисом "Безопасные сделки"
Шаги
- Клиент интегрируется с сервисом Безопасные сделки
- Покупатель (бенефициар) заключает с продавцом (поставщиком) сделку на площадке клиента с использованием безопасной сделки
- С помощью технологии расчетов безопасной сделки производится контроль наличия средств покупателя/заказчика на номинальном счете под конкретную покупку
- По факту подтверждения сделки (получения товара/услуг) средства перечисляются продавцу (поставщику)/исполнителю
Участники
- Покупатель — представитель ЮЛ/ИП, который от лица своей компании приобретает услуги или товары на вашей платформе;
- Поставщик — представитель ЮЛ/ИП, который от лица своей компании осуществляет продажу услуг или товаров на вашей платформе;
- Платформа — любой web-ресурс (интернет-магазин, мобильное приложение и т.д.), который вы используете в рамках клиентского пути Клиентов;
- Банк — в контексте данного usecase представляет из себя методы и ресурсы Sber API, к которым обращается Платформа, и СберБизнес, на который переадресовывают Клиента для проведения оплаты.
Общая схема процессов в рамках работы с сервисом "Безопасные сделки"
Используемые методы
№ | Метод | Точка вызова | Описание | Шаг в схеме |
---|---|---|---|---|
1 | /v1/smart-contracts | Создать смарт-контракт | 10 | |
2 | /v1/smart-contracts/confirmstep | Подтвердить шаг смарт-контракта | 14 | |
3 | /v1/smart-contracts/completion | Завершить смарт-контракт | 22 | |
4 | /v1/beneficiaries/create | Создать бенефициара | 2 | |
5 | /v1/beneficiaries/details/{id} | Запросить сведения о бенефициарe | 4 | |
6 | /v1/beneficiaries/moneyback/beneficiaries/moneyback | Вывести средства с номинального счета | 19 |
Cпецификация основного API
FAQ
Как проходит сделка через смарт-контракты?
Владельцем номинального счета является владелец площадки (web-ресурса), а зарегистрированные на ней покупатели/заказчики — бенефициары денежных средств по данному счету. В целях проведения безопасной сделки покупатель/заказчик заключает с продавцом сделку на платформе площадки с использованием безопасной сделки от Сбера. Технология таких расчетов позволяет площадке контролировать наличие денег покупателя/заказчика на номинальном счете под конкретную покупку и перечислять их продавцу/исполнителю только тогда, когда товар будет доставлен, услуга исполнена, либо по каким-либо иным признакам подтверждения сделки. В контракте может быть предусмотрено несколько сторон от поставщика/исполнителя, например — транспортная компания. Также допускается финансирование покупателя/заказчика за счет кредитных средств, перечисленных на номинальный счет площадки.
Интеграция с площадкой осуществляется по API. Таким образом, площадке необходимо адаптировать свой интерфейс личного кабинета под логику работы со смарт-контрактами, а также предусмотреть в договорной документации использование номинального счета.
Кто должен подписывать УКЭП смарт-контракт?
Смарт-контракт создается между Банком и площадкой и подписывается самой площадкой. Подписание смарт-контракта всеми участниками сделки не требуется.
Заменяет ли смарт-контракт договор?
Смарт-контракт не заменяет договор, а является инструментом, помогающим автоматизировать расчеты между участниками сделки, в нем отражается финансово-значимая информация из договорных отношений клиентов площадки.
В какой валюте можно открыть номинальный счет?
На номинальный счет можно перечислять средства только в валюте Российской Федерации (рубли)
В чем преимущество при заключении сделок через смарт-контракты?
Главным конкурентным преимуществом расчетов через смарт-контракты является безопасность сделки между покупателем и продавцом/заказчиком. За счет использования технологии холдирования денежных средств на номинальном счете, продавец может быть уверен, что он получит оплату за товар или услугу, а покупатель гарантирует наличие у него необходимой суммы, при этом без риска ее потерять. Это дает площадке больше доверия со стороны пользователей, что позволяет дополнительно привлекать клиентов для безопасных расчетов по сделкам.
Кто может стать владельцем номинального счета?
Юридическое лицо/индивидуальный предприниматель — резидент РФ, у которого открыт в Сбербанке расчетный счет.
Кто такие бенефициары номинального счета?
Юридическое лицо, индивидуальный предприниматель или физическое лицо, которое приняло правила платформы и расчеты через номинальный счет, владеющее денежными средствами, находящимися на номинальном счете торговой площадки, (бенефициаром может быть только резидент РФ). Бенефициар может иметь расчетный счет как в Сбербанке, так и в любом другом коммерческом банке РФ.
Какую комиссию возьмет Сбербанк по смарт-контракту?
Вознаграждение банка взимается с расчетного счета площадки в виде процента с каждой сделки по факту перечисления средств с номинального счета по каждой исполненной транзакции согласно тарифам банка (процент от суммы платежа, комиссия включает НДС).
Можно ли ознакомиться с возможностями сервиса через тестовый стенд?
Да, мы предоставляем такую возможность. Тестовый доступ аналогичен промышленному API.
Какая должна быть электронная подпись?
Для работы с нашим сервисом и подписания смарт-контрактов площадке необходимо подключить УКЭП.
Наличие у площадки УКЭП является обязательным условием подключения к сервису. Список уполномоченных УЦ. Подробнее об УКЭП.
Как бенефициар может пополнять баланс номинального счета?
Бенефициар пополняет номинальный счет платежным поручением со своего расчетного счета в банке.
Возможно ли бенефициару увидеть баланс собственных денежных средств на номинальном счете?
Такая информация может быть доступна бенефициару в случае настроек личного кабинета площадки.
Можно ли создавать смарт-контракт без обеспечения денежных средств бенефициара на номинальном счете для пост оплаты со стороны покупателя/заказчика?
Нет. Однако допускается пополнение номинального счета третьим лицом, в том числе за счет кредитных средств.
От каких рисков защищает покупателя сделка через номинальный счет?
- Невозможно взыскание денежных средств по обязательствам владельца номинального счета — площадки.
- Невозможно взыскание денежных средств с бенефициаров по запросам ФНС.
- Возможно взыскание денежных средств с бенефициаров по судебному решению.