Сервис «Кредит в корзине»
Информация о сервисе
Кредит в корзине – это сервис для организации расчетов между юридическими лицами (ЮЛ) и индивидуальными предпринимателями (ИП) с использованием денежных средств Банка. Сервис позволяет получать информацию по кредитным предложениям от Банка для Клиентов Платформы, создавать кредитные заявки, формировать и отслеживать статус платежного документа в СберБизнес плательщика.
Ядро механизма сервиса составляют платежные поручения, которые используются в качестве платежных документов для расчетов между компаниями.
Платежное требование
Платежное поручение – это документ, который используется для указания банку перевести определенную сумму денег с одного счета на другой. Обычно это делается, когда компания хочет произвести оплату за товары или услуги, перевести деньги индивидуальному предпринимателю или юридическому лицу.
Платежные поручения используются широким кругом лиц, включая индивидуальных предпринимателей, малый и средний бизнес, крупные корпорации и даже государственные учреждения. Их используют, когда нужно сделать перевод, который требует предварительного уведомления или планирования (например, оплата аренды, коммунальных услуг или выплата заработной платы).
Подробнее о сервисе можно прочитать на сайте Банка.
До начала разработки интеграции с сервисом потребуется:
- Заключить договор с Банком на использование сервиса "Кредит в корзине".
- Завершить интеграцию со СберБизнес ID.
Без сервиса СберБизнес ID настроить работу сервиса невозможно.
Терминология
- Платформа – любой web-ресурс (сайт, интернет-магазин, мобильное приложение и т.д.), который вы, как Партнер Банка, используете в рамках клиентского пути Клиентов
- Клиент – пользователь СберБизнес, представитель ЮЛ/ИП, который от лица своей компании приобретает услуги или товары на Платформе
Схема работы сервиса
- Графическое описание
- Текстовое описание
Шаг | Что делаем | Подробности |
---|---|---|
1 | Предложите Клиенту выбрать способ оплаты | Клиент, находясь на Платформе, выбрал необходимые товары/услуги и перешел к оплате. Покажите ему доступные способы оплаты. Среди доступных способов должен быть "Кредит в корзине" (кнопка "Оплата в кредит") без описания конкретных условий. Для получения информации для Клиента требуется авторизация с помощью СберБизнес ID. |
2 | Предложите Клиенту авторизоваться через СберБизнес ID | Подробно о подключении сервиса СберБизнес ID рассказали в соответствующем разделе документации. Если Клиент до старта этого сценария уже авторизовался с помощью СберБизнес ID на Платформе, и у вас есть его access_token, то обязательно обновите его с помощью refresh_token. |
3 | Проверьте возможность кредитования | С помощью ресурса /fintech/api/v2/oauth/user-info получите информацию по клиенту. Проверьте соответствие условиям кредитования.Условия доступности покупки в кредит |
4 | Получите информацию о наличии текущего кредита Клиента | С помощью ресурса /fintech/api/v1/credit-offers и access_token пользователя Клиента запросите информацию о текущем кредитном договоре.Эту информацию можно будет использовать для формирования выбора способов оплаты. |
5 | Получите информацию о кредитных предложениях | С помощью ресурса /fintech/api/v1/credit-offers и access_token пользователя вашей компании запросите информацию о кредитных предложениях для Платформы.Условия динамичны и могут меняться, поэтому запрашивать информацию необходимо в каждом клиентском пути. Процесс получения и обновления access_token аналогичен процессу авторизации Клиента. Получение access_token пользователя вашей компании требуется выполнить единожды при разработке интеграции до выхода в промышленную эксплуатацию. Также необходимо будет обновлять его с помощью refresh_token. |
6 | Предложите Клиенту выбрать способ оплаты (повторно) | После сбора информации о доступных способах оплаты на предыдущих этапах в интерфейсе Платформы предложите пользователю Клиента выбрать удобный вариант. Кнопка "Оплата в кредит" может иметь 2 состояния: новый или действующий кредит. - При выборе "новый кредит" переходим к шагу 7.1 - При выборе "действующий кредит" переходим к шагу 7.2 |
7.1 | Сформируйте заявку на кредит | С помощью ресурса /fintech/api/v1/credit-requests вы можете создать в СберБизнес клиента заявку на оформление кредитного договора. |
8.1 | Перенаправьте Клиента на страницу заявки | С использованием идентификатора созданной заявки на кредитный договор из шага 7.1 вы формируете ссылку переадресации и перенаправляете по ней пользователя Клиента. Перейдя по ссылке в сервис, пользователь пройдет аутентификацию, заполнит кредитную заявку и подпишет ее для исполнения Банком. После получения положительного решения по заявке Клиенту автоматически будет создано платежное поручение для оплаты заказа. Автоматически созданному платежному поручению присваивается тот же идентификатор, который использовался в создании заявки на кредит из шага 7.1 Ссылка переадресации выглядит следующим образом: {контур Банка}/ic/dcb/index.html#/credits/credit-financing/credit-partners?order=externalID Дополнительная информация о формировании ссылки. |
7.2 | Сформируйте оплату за счет открытого кредитного договора | С помощью ресурса /fintech/api/v1/payments/from-invoice-any и access_token пользователя Клиента вы создадите платежное поручения в СберБизнес Клиента. |
8.2 | Перенаправьте клиента в сервис оплаты | С использованием идентификатора созданного платежного поручения из шага 7.2 вы формируете ссылку для оплаты и перенаправляете по ней пользователя Клиента. Перейдя по ссылке в сервис оплаты, пользователь пройдет аутентификацию, выберет счет списания и подпишет платежное поручение для исполнения Банком. Ссылка переадресации выглядит следующим образом: {контур Банка}/ic/dcb/index.html#/payment-creator/{externalid}?backUrl={backUrl} Дополнительная информация о формировании ссылки. |
9 | Получите статус платежного поручения | С помощью ресурса /fintech/api/v1/payments/{externalId}/state вы сможете разработать механизм проверки статуса оплаты и реакцию Платформы на каждый из них.В этой части страницы указали все статусы платежного поручения и их описание. |
Варианты реализации
Ниже, в качестве примера, приведена диаграмма вариантов использования:
Выбор способа оплаты покупки
Клиент добавляет в корзину товары/услуги и переходит к оплате.
Вы ему показываете доступные способы оплаты, среди которых есть "Кредит в корзине". Клиент видит данный способ без условий для него - до авторизации СберБизнес ID и получения информации по Клиенту у вас отсутствует возможность проверить возможность кредитования Клиента и условия. После авторизации через СберБизнес ID вы вновь показываете способы оплаты, среди которых "Кредит в корзине" с условиями для Клиента (если присутствует возможность кредитования).
В случаях, когда Клиент уже авторизован на Платформе, и у вас есть access_token пользователя Клиента, уже при первой отрисовке способов оплаты вы сможете проверить возможность кредитования и предоставить полную информацию.
В данном usecase рассматривается случай первой авторизации Клиента на вашей Платформе.
Шаги
- Показать доступные способы оплаты
- Получить access_token Клиента
- Проверить возможность кредитования
- Получить информацию о действующем кредите
- Получить информацию по условиям кредитования
- Предложить выбрать способ оплаты
Участники usecase
- Клиент — представитель ЮЛ/ИП, который от лица своей компании приобретает услуги или товары вашей компании;
- Платформа — любой web-ресурс (сайт, интернет-магазин, мобильное приложение и т.д.), который Вы используете рамках клиентского пути Клиентов;
- Банк — в контексте данного usecase представляет из себя методы и ресурсы Sber API, к которым обращается Платформа.
Предусловия
- Клиент находится на Платформе
- Клиент не авторизован через СберБизнес ID
- Клиент (пользователь) имеет доступ к работе с кредитами в СберБизнес компании
Постусловия
- Клиент выбрал способ для оплаты покупки
Используемые ресурсы
№ | Метод | Точка вызова | Описание | Операция в scope | Шаг в схеме |
---|---|---|---|---|---|
1 | /ic/sso/api/v2/oauth/authorize | Получение кода авторизации | openid | 2. Получить access_token | |
2 | /ic/sso/api/v2/oauth/token | Получение токена доступа | openid | 2. Получить access_token | |
3 | /ic/sso/api/v2/oauth/user-info | Получение информации | openid | 2. Получить access_token и 3. Проверить возможность кредитования | |
4 | /fintech/api/v1/credit-offers | Получение информации по кредитным предложениям | GET_CREDIT_OFFERS | 4. Получить информацию о действующем кредите и 5. Получить информацию по условиям кредитования | |
5 | /ic/sso/api/v2/oauth/token | Обновление токена доступа | openid | Ресурс может потребоваться для обновления access_token на любом шаге |
Оплата из нового кредита
Клиент данный способ оплаты может выбрать в случае отсутствия действующего кредитного договора, а также в случае его наличия и возможности оформления еще одного.
Шаги
- Создать кредитную заявку
- Подписать кредитную заявку
- Получить статус платежного поручения
Участники usecase
- Клиент — представитель ЮЛ/ИП, который от лица своей компании приобретает услуги или товары вашей компании;
- Платформа — любой web-ресурс (сайт, интернет-магазин, мобильное приложение и т.д.), который Вы используете рамках клиентского пути Клиентов;
- Банк — в контексте данного usecase представляет из себя методы и ресурсы Sber API, к которым обращается Платформа.
Предусловия
- Клиент завершил сценарий "Выбор способа оплаты покупки"
- Клиент выбрал способ оплаты "Оплатить в кредит" (новая кредитная заявка "Кредит в корзине")
Постусловия
- Клиент оплатил покупку из денежных средств, полученных по новому кредиту
Используемые ресурсы
№ | Метод | Точка вызова | Описание | Операция в scope | Шаг в схеме |
---|---|---|---|---|---|
1 | /ic/sso/api/v2/oauth/token | Обновление токена доступа | openid | Ресурс может потребоваться для обновления access_token на любом шаге | |
2 | /ic/sso/api/v2/oauth/user-info | Получение информации | openid | 1. Создать кредитную заявку Может потребоваться для получения реквизитов Клиента и вашей компании. | |
3 | /fintech/api/v1/credit-requests | Создание заявки на кредитный договор | CREDIT_REQUEST | 1. Создать кредитную заявку | |
4 | /fintech/api/v1/payments/{externalId}/state | Получить статус платежного поручения | PAY_DOC_RU_INVOICE_ANY | 3. Получить статус платежного поручения |
Оплата из действующего кредита
Клиент данный способ оплаты может выбрать в случае наличия действующего кредитного договора.
Шаги
- Создать платежное поручение
- Подписать платежное поручение
- Получить статус платежного поручения
Участники usecase
- Клиент — представитель ЮЛ/ИП, который от лица своей компании приобретает услуги или товары вашей компании;
- Платформа — любой web-ресурс (сайт, интернет-магазин, мобильное приложение и т.д.), который Вы используете рамках клиентского пути Клиентов;
- Банк — в контексте данного usecase представляет из себя методы и ресурсы Sber API, к которым обращается Платформа.
Предусловия
- Клиент завершил сценарий "Выбор способа оплаты покупки"
- Клиент выбрал способ оплаты "Оплатить с действующего кредита"
Постусловия
- Клиент оплатил покупку из денежных средств действующего кредита
Используемые ресурсы
№ | Метод | Точка вызова | Описание | Операция в scope | Шаг в схеме |
---|---|---|---|---|---|
1 | /ic/sso/api/v2/oauth/token | Обновление токена доступа | openid | Ресурс может потребоваться для обновления access_token на любом шаге | |
2 | /ic/sso/api/v2/oauth/user-info | Получение информации | openid | 1. Создать платежное поручение Может потребоваться для получения реквизитов Клиента и вашей компании. | |
3 | /fintech/api/v1/payments/from-invoice-any | Создать черновик платежного поручения | PAY_DOC_RU_INVOICE_ANY | 1. Создать платежное поручение | |
4 | /fintech/api/v1/payments/{externalId}/state | Получить статус платежного поручения | PAY_DOC_RU_INVOICE_ANY | 3. Получить статус платежного поручения |
Scope сервиса
Scope
openid+CREDIT_REQUEST+GET_CREDIT_OFFERS+PAY_DOC_RU_INVOICE_ANY+buyOnCreditMmb+creditLineAvailableSum+hasActiveCreditLine+orgLawFormShort+userCryptoType+aud+iss+inn+sub+orgFullName+email+phone_number+HashOrgId+orgKpp
Условия доступности покупки в кредит
Возможность покупки в кредит на Платформе должна предоставляться только при выполнении условия:
Значение атрибута **buyOnCreditMmb**, возвращаемого на запрос `/fintech/api/v2/oauth/user-info`, должно быть **true**.
Также у Клиента может быть действующий кредитный договор, из денежных средств которого он может оплатить покупку. Необходимо проверить значение атрибута hasActiveCreditLine - признак наличия действующей возобновляемой кредитной линии (ВКЛ). При наличии ВКЛ проверьте атрибут creditLineAvailableSum - сумма действующей ВКЛ.
Наименование организационно-правовых форм, для которых доступны кредитные продукты и предложения для покупки в кредит:
Полное наименование организационно - правовой формы | Общепринятое сокращение |
---|---|
Общество с ограниченной ответственностью | ООО |
Индивидуальный предприниматель | ИП |
Глава крестьянского (фермерского) хозяйства | ГКФХ |
Заполнение заявки на кредит
Правила заполнения полей сумма заказа (amount) и запрошенная сумма кредита (creditAmount):
- Если сумма заказа (значение amount) больше максимальной суммы доступной для покупки в кредит (значение sumMax, полученное в ответе на запрос
/v1/credit-offers
), то уведомлять клиента о сумме заказа, которую он может оплатить. - Если клиенту доступна оплата несколькими платежами, то предлагать выбор: оплатить часть заказа или изменить сумму заказа (значение amount).
- Если клиент выбирает оплатить часть заказа, то заполнять сумму заказа (значение amount) значением остатка по кредитной линии (availableSum, полученное в ответе на запрос
/v1/credit-offers
). - Если сумма заказа (значение amount) меньше минимальной суммы доступной для покупки в кредит (значение sumMin, полученное в ответе на запрос
/v1/credit-offers
), то заполнять сумму заказа значением amount, а запрошенную сумму кредита (creditAmount) заполнять минимальной суммой доступной для покупки в кредит (sumMin). - Если сумма заказа (значение amount) между минимальной (sumMin) и максимальной (sumMax) суммами доступными для покупки в кредит, то заполнять сумму заказа и запрошенную сумму кредита (creditAmount) значением amount.
Переадресация на кредитную заявку
Платформа создает заявку на кредитный договор в СберБизнес Клиента. Необходимо переадресовать пользователя Клиента в заявку для завершения оформления кредитного договора.
Пользователь Клиента, перейдя по ссылке на кредитную заявку, пройдет аутентификацию, заполнит кредитную заявку и подпишет ее для исполнения Банком. После получения положительного решения по заявке Клиенту автоматически будет создано платежное поручение для оплаты заказа.
- Модель ссылки
- Пример
Ссылка переадресации выглядит следующим образом:
{контур Банка}/ic/dcb/index.html#/credits/credit-financing/credit-partners?order={externalId}
Переменная | Описание | Дополнительная информация |
---|---|---|
{контур Банка} | адрес Банка, на который делается запрос для открытия страницы сервиса оплаты | Для корректного выбора контура Банка потребуется определить тип криптопрофиля пользователя Клиента. В рамках запроса /ic/sso/api/v1/oauth/user-info вы получаете данные по Клиенту, в том числе атрибут userCryptoType.Атрибут позволяет определить криптопрофиль пользователя - SMS (СМС) или Token (электронный ключ (токен)). - Тестовый контур https://efs-sbbol-ift-web.testsbi.sberbank.ru:9443 - Промышленный контур СМС-пользователь https://sbi.sberbank.ru:9443 - Промышленный контур Токен-пользователь http://localhost:28016 |
{externalid} | уникальный идентификатор платежного документа | Данный идентификатор присваивает ваша Платформа на шаге создания кредитной заявки |
https://sbi.sberbank.ru:9443/ic/dcb/index.html#/credits/credit-financing/credit-partners?order=d4fbfe27-ee37-4451-b224-8113a06c44a3
Переадресация на платежное поручение
Чтобы Банк начал обработку платежного поручения, платежное поручение должно быть подписано. В клиентском пути сервиса платежное поручение формируется в клиентской части СберБизнес Клиента, поэтому и подписывать платежное поручение должен Клиент.
Для реализации бесшовного перехода в клиентскую часть СберБизнес необходима переадресация Клиента. Перейдя по ссылке в сервис оплаты, клиент пройдет аутентификацию, выберет счет списания и подпишет черновик платежного поручения для его исполнения Банком.
- Модель ссылки
- Пример
Ссылка переадресации выглядит следующим образом:
{контур Банка}/ic/dcb/index.html#/payment-creator/{externalid}?backUrl={backUrl}
Переменная | Описание | Дополнительная информация |
---|---|---|
{контур Банка} | адрес Банка, на который делается запрос для открытия страницы сервиса оплаты | Для корректного выбора контура Банка потребуется определить тип криптопрофиля пользователя Клиента. В рамках запроса /v1/oauth/user-info вы получаете данные по Клиенту, в том числе атрибут userCryptoType.Атрибут позволяет определить криптопрофиль пользователя - SMS (СМС) или Token (электронный ключ (токен)). - Тестовый контур https://efs-sbbol-ift-web.testsbi.sberbank.ru:9443 - Промышленный контур СМС-пользователь https://sbi.sberbank.ru:9443 - Промышленный контур Токен-пользователь http://localhost:28016 |
{externalid} | уникальный идентификатор платежного документа | Данный идентификатор присваивает ваша Платформа на шаге создания платежного поручения |
{backUrl} | страница возврата, на которую Банк вернет пользователя Клиента после успешного подписания черновика платежного поручения | - backUrl нужно закодировать URLEncode; - Если не указать backUrl в ссылке, пользователи не смогут после подписания платежного поручения вернуться на Платформу; - Если backUrl будет отличаться от адреса вашей платформы, который указали при регистрации в Банке, то при возврате клиента на backUrl он будет видеть ошибку. |
https://sbi.sberbank.ru:9443/ic/dcb/index.html#/payment-creator/d4fbfe27-ee37-4451-b224-8113a06c44a3?backUrl=https://www.example.ru/
Получение информации по кредитным предложениям
/fintech/api/v1/credit-offers
Ресурс позволяет получить информацию по кредитным предложениям от Банка для сервиса Партнера (Платформы), содержащую условия возможности покупки в кредит Клиентами.
Для получения информации по кредитным предложениям необходимо отправить GET-запрос /fintech/api/v1/credit-offers
с токеном доступа (access_token) пользователя в параметре Authorization заголовка.
В параметре scope ссылки авторизации пользователя должен быть указан сервис GET_CREDIT_OFFERS
для получения доступа к этому ресурсу.
При использовании:
- access_token вашей компании + client_id Платформы, вы получите информацию по кредитным предложениям от Банка для Платформы
- access_token Клиента, вы получите информацию о действующем кредитном договоре Клиента (при его наличии)
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
https://iftfintech.testsbi.sberbank.ru:9443
- Промышленный контур
https://fintech.sberbank.ru:9443
Request
/fintech/api/v1/credit-offers
- Модель
- Пример
Наименование | Тип | Формат | Regexp | Обязательность | Описание |
---|---|---|---|---|---|
HEADER | |||||
Authorization | string | string | ^[a-zA-Z0-9]{38}$ | required | Access token пользователя, полученный через SSO. |
QUERY-PARAMETERS | |||||
clientID | number | number | ^(?![^]*[0-9]){14}$ | optional | Идентификатор сервиса, |
lawForm | string | string | ^(ООО|ИП|ГКФХ)$ | optional | Общепринятое сокращение организационно-правовой формы организации, для которой необходимо получить кредитные предложения |
GET /fintech/api/v1/credit-offers?lawForm=%D0%98%D0%9F HTTP/1.1
Authorization: Bearer xbgDF3brf456ghi789jkl012mNKFtEpqr678
Responses
200 (OK)
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
creditOffers [ | |||
creditOffer | array[creditOffer] | optional | Кредитное предложение |
] | |||
creditOffer { | |||
checkSum | number | optional | Сумма займа, после которой потребуется выездная проверка по месту ведения бизнеса, |
clientId | number | required | Идентификатор внешнего сервиса, |
delayRepayment | integer | optional | Льготный период, |
individual | boolean | optional | Является ли клиент ФЛ, |
orgLawForms | array[OrgLawForm] | optional | Перечень организационно-правовых форм организаций, для которых доступен кредитный продукт, |
productCode | string | required | Код кредитного продукта, |
productName | string | optional | Наименование кредитного продукта, |
questions | array[QuestionForm] | optional | Список топ вопросов с ответами по созданию кредитной заявки, |
rate | string | optional | Ставка по кредитному предложению (%), |
sumMax | number | optional | Максимальная сумма доступная для покупки в кредит, |
sumMin | number | optional | Минимальная сумма доступная для покупки в кредит, |
termMax | number | optional | Максимальный срок кредита (в месяцах), |
termMin | number | optional | Минимальный срок кредита (в месяцах), |
contractNumber | string | optional | Номер договора, |
availableSum | string | optional | Сумма лимита, |
dateSince | date | optional | Дата начала действия договора, |
dateUntil | date | optional | Дата окончания договора |
} | |||
OrgLawForm { | |||
name | string | required | Полное наименование организационно-правовой формы, |
shortName | string | required | Общепринятое сокращение организационно-правовой формы |
} | |||
QuestionForm { | |||
answer | string | optional | Ответ на вопрос по созданию кредитной заявки, |
question | string | optional | Вопрос по созданию кредитной заявки |
} |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
{
"clientId": 92233764567396,
"productName": "Покупка в кредит",
"productCode": "MB-F-ip-150",
"sumMin": "10000.00",
"sumMax": "5000000.00",
"rate": "16.00",
"termMin": 1,
"termMax": 36,
"orgLawForms": [
{
"name": "Индивидуальный предприниматель",
"shortName": "ИП"
}
],
"delayRepayment": 46,
"questions": [
null,
null,
null
],
"checkSum": null,
"contractNumber": null,
"availableSum": null,
"dateSince": null,
"dateUntil": null,
"individual": false
},
{
"clientId": 92233764567396,
"productName": "Покупки в рассрочку",
"productCode": "MB-K-ip-225",
"sumMin": "100000.00",
"sumMax": "3000000.00",
"rate": "18.00",
"termMin": 12,
"termMax": 12,
"orgLawForms": [
{
"name": "Индивидуальный предприниматель",
"shortName": "ИП"
}
],
"delayRepayment": 30,
"questions": [
{
"question": "Вопроc",
"answer": "Ответ"
},
null,
null
],
"checkSum": "534342.00",
"contractNumber": null,
"availableSum": null,
"dateSince": null,
"dateUntil": null,
"individual": false
}
]
204 (No Content)
Для данной организационно-правовой формы отсутствуют предложения по кредитным продуктам
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Отсутствует |
HTTP/1.1 204 No Content
Content-Type: application/json;charset=UTF-8
400 (Bad request)
Cause | Message | Description |
---|---|---|
DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request метода. Скорректируйте заполнение атрибутов и повторите запрос. |
VALIDATION_FAULT | Ошибка валидации | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request метода, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"cause": "DESERIALIZATION_FAULT",
"referenceId": "014ec3a1-3e41-4805-9e22-d07947b012af",
"message": "Неверный формат запроса"
}
401 (Unauthorized Error)
Cause | Message | Description |
---|---|---|
UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAUTHORIZED",
"referenceId": "014ec3a1-3e41-4805-9e22-d07947b012af",
"message": "accessToken not found by value = 3513f959abbd54490aa9f9fb67fb7380fae5d4"
}
403 (Forbidden)
Cause | Message | Description |
---|---|---|
ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция GET_CREDIT_OFFERS . Необходимо добавить эту операцию в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
ACCESS_EXCEPTION | Работа с сервисом запроса кредитных предложений доступна только по собственной организации | В authorization используется access_token пользователя, который не является сотрудником вашей компании. Если требуется получить информацию по кредитным предложениям для Платформы - необходимо использовать access_token пользователя вашей компании. Если требуется получить информацию о действующем кредитном договоре Клиента - необходимо использовать access_token пользователя Клиента и не заполнять query-параметр client_id. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
{
"cause": "ACTION_ACCESS_EXCEPTION",
"referenceId": "7535c2bb-7706-4b16-9882-d68aedbf2fef",
"message": "Операция не может быть выполнена: доступ к ресурсу запрещен"
}
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json;charset=UTF-8
{
"cause": "UNKNOWN_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a65d",
"message": "Внутренняя ошибка сервера"
}
Создание заявки на кредитный договор
/fintech/api/v1/credit-requests
Ресурс позволяет создать заявку на оформление кредитного договора.
Для создания заявки необходимо отправить POST-запрос /fintech/api/v1/credit-requests
с токеном доступа (access_token) пользователя в параметре Authorization заголовка и реквизитами заявки в теле запроса.
В параметре scope ссылки авторизации пользователя должен быть указан сервис CREDIT_REQUEST
для получения доступа к этому ресурсу.
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
https://iftfintech.testsbi.sberbank.ru:9443
- Промышленный контур
https://fintech.sberbank.ru:9443
Request
/fintech/api/v1/credit-requests
- Модель
- Пример
Наименование | Тип | Формат | Regexp | Обязательность | Описание |
---|---|---|---|---|---|
HEADER | |||||
Authorization | string | string | ^[a-zA-Z0-9]{38}$ | required | Access token пользователя, полученный через SSO. |
BODY | |||||
CreditRequest { | |||||
account | string | string | ^[0-9]{1,34}$ | required | Расчетный счет для зачисления денежных средств за заказ, |
amount | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Сумма заказа, |
consent | Consent | object | optional | Информация по согласиям от партнера, | |
creditAmount | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Запрошенная сумма кредита, |
creditProductCode | string | string | ^[0-9A-Za-z]{1,20}$ | optional | Код продукта кредитного предложения, в рамках которого оформляется заявка, |
creditTerm | number | number | ^[0-9]{1,5}$ | required | Срок кредита (в месяцах), |
deliveryAmount | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | optional | Сумма доставки, |
externalId | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Идентификатор документа, присвоенный партнером, |
limitAmountMarketplace | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | optional | Сумма кредита от маркетплейса, |
marketplaceData | MarketplaceData | object | optional | Данные от партнера об оборотах клиента, | |
negativeOrderUrl | string | URL | ^[a-zA-Z0-9. _ -]{1,1000}$ | required | Ссылка на заказ при отказе в выдаче кредита |
orderId | string | string | ^[0-9A-Za-z]{1,50}$ | required | Идентификатор заказа клиента (номер), |
orderInfo | array[OrderInfo] | array[object] | optional | Информация о составе заказа, | |
orderUrl | string | URL | ^[a-zA-Z0-9. _ -]{1,1000}$ | required | Ссылка на заказ, |
payeeInfo | PayeeInfo | object | required | Реквизиты получателя, | |
purpose | string | string | ^[a-zA-Z0-9. _ -]{1,120}$ | required | Назначение платежа, |
vatAmount | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | optional | Сумма НДС |
} | |||||
Consent { | |||||
consent | string | string | ^(Yes|No)$ | required | Получено согласие ("Yes"/"No"), |
consentHash | string | string | ^[a-fA-F0-9]{256}$ | required | SHA-256 хеш поля consentText, |
consentText | string | string | ^[a-zA-Z0-9. _ -]$ | required | Текст согласия, |
firstname | string | string | ^[a-zA-Z0-9. _ -]{1,36}$ | required | Имя представителя, |
lastname | string | string | ^[a-zA-Z0-9. _ -]{1,36}$ | required | Фамилия представителя, |
middlename | string | string | ^[a-zA-Z0-9. _ -]{1,36}$ | required | Отчество представителя, |
position | string | string | ^[a-zA-Z0-9. _ -]{1,36}$ | required | Должность представителя ("Директор"/"ИП"), |
startDate | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | required | Дата подписания согласия |
} | |||||
MarketplaceData { | |||||
commissions | array[Commission] | array[object] | optional | Информация по комиссиям, | |
sellings | array[Selling] | array[object] | optional | Информация по реализации товара, | |
stock | Stock | object | optional | Информация по товарным остаткам | |
} | |||||
OrderInfo { | |||||
numOfPosition | integer | integer | ^[0-9]{1,10}$ | optional | Количество позиций/товаров, |
position | string | string | ^[a-zA-Z0-9. _ -]{1,100}$ | optional | Позиция/Наименование товара, |
price | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | optional | Стоимость позиции, |
totalPrice | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | optional | Итоговая стоимость |
} | |||||
PayeeInfo { | |||||
payeeBankBic | string | string | ^[0-9]{9}$ | required | БИК получателя, |
payeeCorrAcc | string | string | ^[0-9]{20}$ | required | Кор счет получателя, |
payeeInn | string | string | ^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$ | required | ИНН получателя, |
payeeKpp | string | string | ^([0-9]{9}|0)$ | required | КПП получателя, |
payeeName | string | string | ^[0-9a-zA-Zа-яА-ЯеЁ \t]+$ | required | Наименование получателя |
} | |||||
Commission { | |||||
logistic | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Комиссия за доставку и логистику, |
period | string | MM.YYYY | ^[0-9]{2}-[0-9]{4}$ | required | Месяц реализации, |
stock | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Начисления за услуги склада (хранение и операции сборки-разборки, приемки и т.д.), |
transaction | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Транзакционная комиссия |
} | |||||
Selling { | |||||
amount | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Количество реализованного товара за период (реально выкупленный), |
fov | number | number | ^[0-9]{1,3}.[0-9]{1,2}$ | required | FOV (Выкупаемость), |
gmv | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Совокупная стоимость товаров, проданных на торговой площадке за определенный период времени без учета возвратов, обмена и скидок, |
period | string | MM.YYYY | ^[0-9]{2}-[0-9]{4}$ | required | Месяц реализации (мм.гггг), |
productDescription | string | string | ^[a-zA-Z0-9. _ -]{1,800}$ | required | Описание продукта, |
revenue | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Выручка в руб. за период |
} | |||||
Stock { | |||||
amount | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Количество остатка, |
assortiment | integer | integer | ^[0-9]{1,10}$ | required | Количество уникальных товаров (ассортимент), |
averagePrice | number | number | ^[0-9]{1,16}\.[0-9]{2}$ | required | Средняя цена товара, |
date | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | required | Дата, на момент которой имеется остаток, |
duration | integer | integer | ^[0-9]{1,10}$ | required | Сколько дней в среднем товар лежит на складе (передается целое число, округленное математически), |
productDescription | string | string | ^[a-zA-Z0-9. _ -]{1,800}$ | required | Описание продукта, |
registrationDate | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | required | Дата регистрации партнера на площадке |
warehousingModel | string | string | ^[a-zA-Z0-9. _ -]{1,64}$ | required | Модель работы с площадкой |
} |
POST /fintech/api/v1/credit-requests HTTP/1.1
Content-Type: application/json
Authorization: Bearer xbgDF3brf456ghi789jkl012mNKFtEpqr678
{
"account": "40802810706000000087",
"amount": 1.01,
"creditAmount": 1.01,
"creditProductCode": "MB-F-ip-150",
"creditTerm": 48,
"deliveryAmount": 1.01,
"externalId": "aaaf73f9-f244-4407-8b96-b0da73f1f9a2",
"limitAmountMarketplace": 1.01,
"marketplaceData": {
"commissions": [
{
"logistic": 1.01,
"period": "11.2021",
"stock": 1.01,
"transaction": 1.01
}
],
"sellings": [
{
"amount": 1.01,
"fov": 1.01,
"gmv": 1.01,
"period": "11.2021",
"productDescription": "Описание продукта",
"revenue": 1.01
}
],
"stock": {
"amount": 1.01,
"assortiment": 48,
"averagePrice": 1.01,
"date": "2018-12-31",
"duration": 48,
"productDescription": "Описание продукта",
"registrationDate": "2018-12-31",
"warehousingModel": "fbs"
}
},
"negativeOrderUrl": "https://www.partner.ru/negative_basket",
"orderId": "2128506",
"orderInfo": [
{
"numOfPosition": 1,
"position": "string",
"price": 1.01,
"totalPrice": 1.01
}
],
"orderUrl": "https://sberbank.ru/ru/order?uid=2128506",
"payeeInfo": {
"payeeBankBic": "044525225",
"payeeCorrAcc": "30101810400000000225",
"payeeInn": "7707083893",
"payeeKpp": "222201001",
"payeeName": "Общество с ограниченной ответственностью \"Клиент\""
},
"purpose": "Оплата заказа №2128506 от 23.12.2019. НДС 20% - 1,01 рублей",
"vatAmount": 1.01
}
Responses
201 (Created)
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
CreditRequest { | |||
account | string | required | Расчетный счет для зачисления денежных средств за заказ, |
amount | number | required | Сумма заказа, |
bankComment | string | optional | Банковский комментарий к статусу документа, |
bankStatus | string | optional | Статус документа. Возможные значение: RECEIVED – запрос получен банком,PROCESSED – кредитная заявка обработана клиентом, |
consent | array[Consent] | optional | Информация по согласиям от партнера, |
creditAmount | number | required | Запрошенная сумма кредита, |
creditProductCode | string | required | Код продукта кредитного предложения, в рамках которого оформляется заявка, |
creditTerm | number | required | Срок кредита (в месяцах), |
deliveryAmount | number | required | Сумма доставки, |
externalId | string | required | Идентификатор документа, присвоенный партнером, |
limitAmountMarketplace | number | optional | Сумма кредита от маркетплейса, |
marketplaceData | array[MarketplaceData] | optional | Данные от партнера об оборотах клиента, |
negativeOrderUrl | string | required | Ссылка на заказ при отказе в выдаче кредита |
orderId | string | required | Идентификатор заказа клиента (номер), |
orderInfo | array[OrderInfo] | optional | Информация о составе заказа, |
orderUrl | string | required | Ссылка на заказ, |
payeeInfo | array[PayeeInfo] | optional | Реквизиты получателя, |
purpose | string | required | Назначение платежа, |
vatAmount | number | optional | Сумма НДС |
} | |||
Consent { | |||
consent | string | required | Получено согласие ("Yes"/"No"), |
consentHash | string | required | SHA-256 хеш поля consentText, |
consentText | string | required | Текст согласия, |
firstname | string | required | Имя представителя, |
lastname | string | required | Фамилия представителя, |
middlename | string | required | Отчество представителя, |
position | string | required | Должность представителя ("Директор"/"ИП"), |
startDate | string | required | Дата подписания согласия |
} | |||
MarketplaceData { | |||
commissions | array[Commission] | optional | Информация по комиссиям, |
sellings | array[Selling] | optional | Информация по реализации товара, |
stock | array[Stock] | optional | Информация по товарным остаткам |
} | |||
OrderInfo { | |||
numOfPosition | integer | optional | Количество позиций/товаров, |
position | string | optional | Позиция/Наименование товара, |
price | number | optional | Стоимость позиции, |
totalPrice | number | optional | Итоговая стоимость |
} | |||
PayeeInfo { | |||
payeeBankBic | string | required | БИК получателя, |
payeeCorrAcc | string | required | Кор счет получателя, |
payeeInn | string | required | ИНН получателя, |
payeeKpp | string | required | КПП получателя, |
payeeName | string | required | Наименование получателя |
} | |||
Commission { | |||
logistic | number | required | Комиссия за доставку и логистику, |
period | string | required | Месяц реализации, |
stock | number | required | Начисления за услуги склада (хранение и операции сборки-разборки, приемки и т.д.), |
transaction | number | required | Транзакционная комиссия |
} | |||
Selling { | |||
amount | number | required | Количество реализованного товара за период (реально выкупленный), |
fov | number | required | FOV (Выкупаемость), |
gmv | number | required | Совокупная стоимость товаров, проданных на торговой площадке за определенный период времени без учета возвратов, обмена и скидок, |
period | string | required | Месяц реализации (мм.гггг), |
productDescription | string | required | Описание продукта, |
revenue | number | required | Выручка в руб. за период |
} | |||
Stock { | |||
amount | number | required | Количество остатка, |
assortiment | integer | required | Количество уникальных товаров (ассортимент), |
averagePrice | number | required | Средняя цена товара, |
date | string | required | Дата, на момент которой имеется остаток, |
duration | integer | required | Сколько дней в среднем товар лежит на складе (передается целое число, округленное математически), |
productDescription | string | required | Описание продукта, |
registrationDate | string | required | Дата регистрации партнера на площадке |
warehousingModel | string | required | Модель работы с площадкой |
} |
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
{
"externalId": "aaaf73f9-f244-4407-8b96-b0da73f1f9a2",
"orderId": "2128506",
"orderUrl": "https://sberbank.ru/ru/order?uid=2128506",
"account": "40802810706000000087",
"amount": "1.01",
"vatAmount": "1.01",
"purpose": "Оплата заказа №2128506 от 23.12.2019. НДС 20% - 1,01 рублей",
"bankStatus": "RECEIVED",
"bankComment": null,
"creditProductCode": "MB-F-ip-150",
"creditAmount": "1.01",
"creditTerm": 48,
"deliveryAmount": "1.01",
"orderInfo": [
{
"position": "string",
"numOfPosition": 1,
"price": "1.01",
"totalPrice": "1.01"
}
],
"payeeInfo": {
"payeeName": "Общество с ограниченной ответственностью \"Клиент\"",
"payeeInn": "7707083893",
"payeeBankBic": "044525225",
"payeeCorrAcc": "30101810400000000225",
"payeeKpp": "222201001"
},
"negativeOrderUrl": null,
"limitAmountMarketplace": "1.01",
"marketplaceData": {
"stock": {
"date": "2018-12-31",
"registrationDate": "2018-12-31",
"amount": "1.01",
"averagePrice": "1.01",
"assortiment": 48,
"duration": 48,
"warehousingModel": "fbs",
"productDescription": "Описание продукта"
},
"sellings": [
{
"period": "11.2021",
"amount": "1.01",
"revenue": "1.01",
"gmv": "1.01",
"fov": "1.01",
"productDescription": "Описание продукта"
}
],
"commissions": [
{
"period": "11.2021",
"transaction": "1.01",
"logistic": "1.01",
"stock": "1.01"
}
]
},
"consent": null
}
400 (Bad request)
Cause | Message | Description |
---|---|---|
DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request метода. Скорректируйте заполнение атрибутов и повторите запрос. |
WORKFLOW_FAULT | Невозможно идентифицировать организацию плательщика | Проверьте корректность указанных реквизитов плательщика. |
Документ с таким externalId уже существует в системе | Используется externalId, который уже есть в системе (дубль). Сгенерируйте новый externalId и повторите запрос. | |
Отсутствует доступный открытый рублевый расчетный счет у организации плательщика | Плательщику требуется открыть рублевый расчетный счет в Сбербанке | |
Неизвестный счет получателя: <счет получателя платежа> | Проверьте корректность указанного счета в атрибуте payeeAccount. Счет должен принадлежать компании, к которой принадлежит пользователей, чей access_token используется в authorization. | |
Указана некорректная ссылка на заказ | ||
VALIDATION_FAULT | Ошибка валидации | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request метода, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"cause": "VALIDATION_FAULT",
"referenceId": "e47211e6-6801-474f-911c-f97813ca5181",
"message": "Объект CreditRequest не соответствует модели",
"checks": [
{
"level": "ERROR",
"message": "должно соответствовать \"^[0-9]{20}$\"",
"fields": [
"account"
]
}
],
"fieldNames": [
"account"
]
}
401 (Unauthorized Error)
Cause | Message | Description |
---|---|---|
UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
403 (Forbidden)
Cause | Message | Description |
---|---|---|
ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция GET_CREDIT_OFFERS . Необходимо добавить эту операцию в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
{
"cause": "ACTION_ACCESS_EXCEPTION",
"referenceId": "7535c2bb-7706-4b16-9882-d68aedbf2fef",
"message": "Операция не может быть выполнена: доступ к ресурсу запрещен"
}
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json;charset=UTF-8
{
"cause": "UNKNOWN_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a65d",
"message": "Внутренняя ошибка сервера"
}