ym88659208ym87991671
Передача банковских и небанковских продуктов | Документация для разработчиков

Передача банковских и небанковских продуктов

Обновлено 29 февраля 2024

Для обращения к ресурсу необходимо отправлять запрос на:

  • Тестовый контур https://iftfintech.testsbi.sberbank.ru:9443

  • Промышленный контур https://fintech.sberbank.ru:9443

Информация о внешних сервисах

Ресурс /v1/client-extservice-products позволяет получить информацию о подключенных у клиента внешних сервисах для сервиса Партнера.

Шаги

1. Получить AccessToken.

2. Отправить запрос.

Для получения информации необходимо отправить GET-запрос (/v1/client-extservice-products) и передать авторизационный токен к данным организации клиента/собственной организации (Access Token). Авторизационный токен передается в параметре Authorization заголовка запроса.

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис GET_EXTSRV_PRODUCTS.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1

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

curl -X GET --header 'Accept: application/json' --header
'Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'https://iftfintech.testsbi.sberbank.ru:9443/fintech/api/v1/client-extservice-products'

Модель ответа

НаименованиеОписание
extserviceProducts {
name (string, optional)Наименование внешнего сервиса,
category (string, optional)Категория продукта,
shortDesc (string, optional)Краткое описание продукта,
fullDesc (string, optional)Полное описание продукта,
sinceDate (string, optional)Дата подключения,
productId (string, optional)Идентификатор продукта
}

Пример ответа

{
"name": "Бухгалтерия для ИП",
"category": "Бухгалтерия и финансовый учет",
"shortDesc": "Облачная бухгалтерия",
"fullDesc": "Сервис позволяет выполнять сдачу необходимой бухгалтерской, налоговой и финансовой отчетности в электронном виде в государственные органы",
"sinceDate": "2020-02-01",
"productId": "12"
}

Информация по персональным предложениям

Ресурс /v1/personal-offers позволяет Партнеру получить информацию по персональным предложениям клиента для того, чтобы продавать персональные предложения на своем ресурсе.

Шаги

1. Получить AccessToken.

2. Отправить запрос.

Для получения информации необходимо отправить GET-запрос (/v1/personal-offers) и передать авторизационный токен к данным организации клиента/собственной организации (Access Token) и страницу размещения предложения (placement). Авторизационный токен передается в параметре Authorization заголовка запроса.

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис PERSONAL_OFFERS.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1
Параметры запроса
placement (String)Страница размещения предложения

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

curl -X GET --header 'Accept: application/json' --header
'Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'https://iftfintech.testsbi.sberbank.ru:9443/fintech/api/v1/personal-offers?placement=website'

Модель ответа

НаименованиеОписание
InlineModel [
InlineModel1
]
InlineModel 1 {
activatedUrl (string, optional)Ссылка для перенаправления пользователя, если продукт
подключен ,
adviseMediaLink (string, optional)Ссылка на картинку для контекстного совета ,
buttonAction (integer, optional)Действие по кнопке персонального предложения ,
buttonLink (string, optional)Ссылка для перехода по кнопке персонального предложения ,
buttonName (string, optional)Наименование кнопки целевого действия для персонального предложения ,
campaignName (string, optional)Наименование кампании ,
category (string, optional)Категория продукта ,
channel (string, optional)Канал ,
contextAdvise (string, optional)Контекстный совет ,
creditProduct (string, optional)Наименование кредитного продукта ,
crmProductId (string, optional)Идентификатор продукта персонального предложения в CRM ,
currency (string, optional)Валюта ,
currencyCode (string, optional)Цифровой код валюты ,
dateSince (string, optional)Дата начала действия предложения ,
dateUntil (string, optional)Дата окончания действия предложения ,
depositType (string, optional)Тип депозита ,
fmLink (string, optional)Ссылка на внешний сайт при нажатии «Узнать больше» ,
fmMsg (string, optional)Текст при переходе на внешний сайт при нажатии «Узнать больше» ,
fullDesc (string, optional)Полное описание продукта ,
iconDocLink (string, optional)Ссылка на картинку в документарных разделах ,
iconImageLink (string, optional)Ссылка на картинку для ленты ,
iconLink (string, optional)Иконка маркетингового исследования или новостей ,
imgLink (string, optional)Ссылка на картинку на развороте предложения ,
imgLinkDcb (string, optional)Ссылка на картинку для DCB ,
isApproved (string, optional)Признак одобренного / предодобренного продукта ,
maxOfferAmount (number, optional)Максимальная сумма предложения, в тысячах ,
needPledge (boolean, optional)Признак необходимости залога при получении кредита на сумму свыше 5 млн. ,
offerAmount (integer, optional)Сумма ,
offerGuid (string, optional)Идентификатор предложения ,
offerLink (string, optional)Персональная ссылка в тексте предложения ,
offerRate (number, optional)Процентная ставка ,
offerSetLimit (string, optional)Набор сумм с символом "|" в качестве разделителя ,
offerSetRate (string, optional)Набор ставок с символом "|" в качестве разделителя ,
offerSetTerm (string, optional)Набор сроков с символом "|" в качестве разделителя ,
offerTerm (integer, optional)Срок ,
priority (integer, optional)Приоритет показа предложения ,
productCode (string, optional)Код продукта персонального предложения ,
productName (string, optional)Наименование карточки продукта ,
productSystemName (string, optional)Наименование продукта персонального предложения ,
serviceName (string, optional)Наименование внешнего сервиса в системе ,
shortDesc (string, optional)Краткое описание продукта ,
specialCondition (string, optional)Условия специального предложения ,
telInText (string, optional)Телефон в тексте персонального предложения ,
textBandCard (string, optional)Текст на карточке в ленте ,
textDocCard (string, optional)Текст на карточке в документарных разделах ,
type (string, optional)Тип предложения
}

Пример ответа

[
{
"activatedUrl":"string",
"adviseMediaLink":"https://21.21.21.21/redesign/share/stories/sovet.svg",
"buttonAction":1,
"buttonLink":"credits/products?targetCode=40",
"buttonName":"Подключить",
"campaignName":"Кредит",
"category":"Кредит",
"channel":"SBBOL",
"contextAdvise":"Деньги заказывали?",
"creditProduct":"Одобренный SMART-кредит",
"crmProductId":"1-27RUCY00",
"currency":"USD",
"currencyCode":"840",
"dateSince":"2018-12-31",
"dateUntil":"2018-12-31",
"depositType":"Депозит Классический Онлайн",
"fmLink":"string",
"fmMsg":"string",
"fullDesc":"Сервис позволит вам направить заявку на получение банковского кредита без посещения отделения банка",
"iconDocLink":"https://21.21.21.21/redesign/share/stories/mini_main_credit.jpg",
"iconImageLink":"https://21.21.21.21/redesign/share/stories/mini_shop.jpg",
"iconLink":"string",
"imgLink":"string",
"imgLinkDcb":"https://www.sberbank.ru/img/files/file.jpg",
"isApproved":"1",
"maxOfferAmount":10000,
"needPledge":false,
"offerAmount":30000,
"offerGuid":"12345678-1234-1234-1234-123456789012",
"offerLink":"string",
"offerRate":17,
"offerSetLimit":"10000|20000|30000|40000",
"offerSetRate":"15|16|17|18",
"offerSetTerm":"12|24|36|48",
"offerTerm":36,
"priority":100,
"productCode":"kredit",
"productName":"Бухгалтерия для ИП",
"productSystemName":"SMART_SBOFF",
"serviceName":"Бухгалтерия для ИП",
"shortDesc":"Кредит на любые цели",
"specialCondition":"2",
"telInText":"89269999999",
"textBandCard":"Кредит [br] для бизнеса",
"textDocCard":"Как приобрести [br] транспорт",
"type":"38/943/04"
}
]

Действия по персональным предложениям

Ресурс /v1/personal-offers/response позволяет Партнеру отправить сведения о действиях пользователя по персональным предложениям с целью определения востребованности контента.

Шаги

1. Получить AccessToken.

2. Отправить запрос.

Для передачи сведений необходимо отправить POST-запрос (/v1/personal-offers/response), в котором передать авторизационный токен к данным клиента (Access Token) и информацию по действиям пользователя. Авторизационный токен передается в параметре Authorization заголовка запроса.

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис PERSONAL_OFFERS.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token организации-клиента, полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1
Параметры тела запроса
AsupResponse {
channel (string)Канал получения отклика = ['SBBOL', 'DCB', 'MP', 'SBB', 'SBBOL3', 'FINTECH'],
datetime (string, optional)Дата и время создания отклика ,
offerId (string)Идентификатор предложения ,
placement (string, optional)Страница размещения предложения (плейсмента) ,
type (string)Тип отклика = ['SHM', 'STA', 'STL', 'HDC', 'UHC', 'SCT', 'STR', 'NPC', 'THL', 'ORC', 'ORL', 'HIM', 'OCS', 'SHW', 'HDF', 'SLL', 'SLR', 'SLS', 'OC', 'BAD', 'LGN', 'OR', 'TXL', 'TXW', 'TXN', 'OCB', 'WEL', 'MCC', 'MCS']
}

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


{
"channel": "FINTECH",
"datetime": "2018-12-31T23:59:59",
"offerId": "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"placement": "MAIN[MAIN_FEED]",
"type": "OR"
}

Информация о банковских продуктах

Ресурс /v1/client-bank-products позволяет Партнеру получить информацию о подключенных клиенту банковских продуктах для предоставления информации на своих ресурсах.

Шаги

1. Получить AccessToken.

2. Отправить запрос.

Для получения информации необходимо отправить GET-запрос (/v1/client-bank-products) и передать авторизационный токен к данным организации клиента/собственной организации (Access Token). Авторизационный токен передается в параметре Authorization заголовка запроса.

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис GET_BANK_PRODUCTS.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token полученный через SSO
Пример:Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1

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

curl -X GET --header 'Accept: application/json' --header
'Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'https://iftfintech.testsbi.sberbank.ru:9443/fintech/api/v1/client-bank-products'

Модель ответа

InlineModel [
InlineModel 1
]
InlineModel 1 {
category (string, optional)Категория продукта ,
fullDesc (string, optional)Полное описание продукта ,
name (string, optional)Наименование внешнего сервиса ,
productId (string, optional)Идентификатор продукта ,
shortDesc (string, optional)Краткое описание продукта
}

Пример ответа

[
{
"category":"Бухгалтерия и финансовый учет",
"fullDesc":"Сервис позволяет выполнять сдачу необходимой бухгалтерской, налоговой и финансовой отчетности в электронном виде в государственные органы",
"name":"Бухгалтерия для ИП",
"productId":"korpkarta",
"shortDesc":"Облачная бухгалтерия"
}
]

Дополнительная информация

Подписание запроса транспортной подписью

Content-Type может содержать одно из двух значений:

  • application/json – запрос без подписи
  • application/jose – запрос, подписанный транспортной подписью

Если Content-Type имеет значение application/jose, то запрос должен содержать данные в виде компактной сериализации RFC 7515: JSON Web Signature (JWS).

JWS состоит из трёх частей:

  1. Заголовок (Header) - определяет алгоритм подписи и тип токена
  2. Полезная нагрузка (Payload) - содержит данные, которые необходимо защитить
  3. Электронная подпись (Signature) - вычисляется с использованием приватного ключа клиента
Base64Url(Header) || ’.’ ||  Base64Url(Payload) || ’.’ || Base64Url(Signature)

Каждая часть ответа, разделенная точкой, должна декодироваться отдельно. Для декодирования следует воспользоваться алгоритмом Base64URL Encoding.

Signature - это подпись данных приватной частью ключевой пары клиента (используется приватный ключ парный сертификату клиента). Подпись вычисляется по алгоритму указанному в Заголовке (Header) в параметре alg (в нашем случае gost34.10-2012) и вычисляется от исходных данных:

Base64Url(Header) || ‘.’ || Base64Url(Payload).

Формирование исходных данных для вычисления подписи описано в спецификации RFC 7515: JSON Web Signature (JWS).

При кодировании JWS используется преобразование Base64Url. Преобразование можно представить следующим образом:

Base64Url(x) := Base64(x).Split(‘=’)[0].Replace(‘+’, ’-’).Replace(‘/’, ’_’)
  • функция Split(x), разбивает строку на части ([i] означает взятие i–ой части), используя символ разделитель x,
  • функция Replace(x,y) заменяет все вхождения символа x на символ y.

Преобразование Base64Url, отличается от Base64 преобразования:

BASE64URLBASE64
- (minus)+
_ (underline)/

Коды возврата

Код возвратаОписание кода возвратаПричина возникновения
200 (GET-запроса)OK
204NO_CONTENT
Для указанного клиента отсутствуют подключенные пакеты услугЗапрос обработан, но для указанного клиента отсутствуют подключенные пакеты услуг
400DESERIALIZATION_FAULT
Неверный формат запросаНеверный формат запроса
401UNAUTHORIZED
accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-хУказан некорректный или просроченный access_token.
403ACTION_ACCESS_EXCEPTION
Операция не может быть выполнена: доступ к ресурсу запрещенУ пользователя нет прав на использование соответствующего сервиса Sber API, доступ к которому не предусмотрен настройками scope; У пользователя отсутствует оферта с внешним сервисом.
500UNKNOWN_EXCEPTION
Внутренняя ошибка сервера
503UNAVAILABLE_RESOURCE_EXCEPTION
Сервис временно недоступенПроводятся технические работы
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.