Начните прямо сейчас

Зарегистрируйтесь или оставьте заявку на подключение к системе.

Даю согласие на передачу и обработку персональных данных.

API — программный интерфейс для взаимодействия между системами интеграторов/агрегаторов и системы выдачи POS займов Webbankir pay.

Интерфейс работает по адресу https://webbankir.partners/api-rmk/v1. С помощью интерфейса возможно создавать и подписывать клиентские займы, проверять предварительно одобренный лимит клиента, создавать заявки на получение лимита.

Архитектура

API использует REST архитектуру. Запросы передаются методами GET, POST, PUT, PATCH, DELETE, параметры передаются в теле запроса в формате JSON или в query.

Указание формата передачи параметров обязательно через заголовок запроса Content-Type:

Content-Type: application/json

Ответ система выдает в JSON формате, для удобства все ответы обернуты во враппер data:

data token ie3hiliasethsaca214ui23 expiration 2018-09-05T16:14:44+03:00

На статус ответа указыавет HTTP код, возвращаемый сервером Webbankir. Возможные варианты кодов:

200 Запрос обработан успешно, в ответ выдан один или несколько искомых объектов (для GET запросов)
201 Запрос обработан успешно, в системе создан новый объект, в ответ возвращен созданный объект (для POST и PUT запросов)
204 Запрос обработан успешно, искомый объект найден, возврат данных не требуется (тело будет пустым)
400 Запрос не обработан в силу имеющихся ошибок. В ответ возвращен список ошибок
401 Запрос не обработан из-за проблем с аутентификацией. В ответ возвращен список ошибок. Если вы получаете данный ответ то скорее всего или при авторизации была указана неверная пара логин/пароль, или "протух" токен, и кассиру нужно показать экран авторизации.
404 Запрос был обработан успешно, но объект с искомыми параметрами найден не был (для GET запросов)
500, 501, 504 Запрос не был обработан из-за ошибок на стороне сервера. В этом случае необходимо показать кассиру окно с ошибкой и просьбой повторить действия через несколько минут.
Формата возврата ошибок

Ошибки всегда возвращаются в виде массива errors. В каждом объекте ошибок три поля - code, message и field:


data
errors

code cashier-not-found
message Кассир с id = 1 не найден
field null



В каждом объекте ошибок три поля - code, message и field:

code В этом поле передается код ошибки в виде string. Коды ошибок уникальны, никогда не меняются. Вы можете реализовывать бизнес-логику обработки ошибок основываясь на возвращенных кодах
message В этом поле передается текстовое описание ошибки. Описания на русском языке, никакая отладочная информация в них не передается, текст ошибки свободно можно отображать клиенту. Описания к одним и тем же кодам ошибок могут изменяться на усмотрение платформы Webbankir
field Если ошибка была вызвана конкретным известным полем из запроса, то здесь будет название поля. Используется для автоматического разноса ошибок по полям в подсказки (например, если был передан неверный номер паспорта, то здесь будет указано название поля "passport-series" и вы сможете отобразить ошибку под полем "Серия паспорта"). Если ошибка имеет общий характер и проставить соответствие конкретному полю невозможно - значение будет null.
Аутентификация запросов

Для аутентификации запроса используется Bearer authentification — отправка в заголовке токена. Токен пересылается в заголовках (headers) в следующем формате:

Authorization Bearer ie3hiliasethsaca214ui23

То есть в заголовке с ключом Authorization передается значение Bearer пробел токен.

Если в любом запросе (кроме авторизационного запроса, приведенного выше) не передан заголовок с токеном, формат заголовка неверный или токен "протух", система вернет HTTP статус 401 – Unauthorized.

Получение токена

Токен можно получить следующим запросом:

GET /cashier/{cashierId}/token?password={password}

Параметры запроса:

Параметры
Формат
Применение
Описание
cashierId
Numeric
Обязательный
ID кассира (можно получить в кабинете)
password
String
Обязательный
Пароль кассира (можно получить или изменить в кабинете)

Пример успешного ответа:


data
token ie3hiliasethsaca214ui23
expiration 2018-09-05T16:14:44+03:00

Параметры ответа:

Параметры
Формат
Применение
Описание
token
String
Обязательный
Значение токена
expiration
String
Обязательный
Дата, после которой токен будет считаться "протухшим", то есть неактуальным
Определение лимита клиента

В начале работы с заёмщиком необходимо определить его статус и лимит в системе:

GET /user?phone={phone}

Параметры запроса:

Параметры
Формат
Применение
Описание
phone
String
Обязательный
Телефон клиента в формате 79201234567 (без + и с ведущей 7-кой)

Варианты ответа:

200 Ответ приходит в случае, если клиент имеется в системе и имеет неизрасходованный предварительно одобренный лимит. В этом случае клиента можно направлять на интерфейсы формирования корзины займа.
204 Тела ответа нет. Ответ приходит в случае, если клиент имеется в системе, но не имеет предварительно одобренного лимита. В этом случае клиенту нужно отобразить сообщение "Ваша заявка принята, ожидайте одобрения лимита". В случае отправки повторных запросов до окончания процедуры скоринга клиента вы будете получать 204 код до тех пор, пока скоринг не закончится финальным успешным (200) или неуспешным (400) статусом. При получении 204 ответа вы можете как повторять запрос с таймаутом 1 минута автоматически, так и отобразить клиенту кнопку "Попробовать снова", при нажатии на которую запрос проверки лимита уйдет вручную. Обычно процедура скоринга занимает до 5 минут, но в отдельных случаях может достигать 15 минут, если требуется дополнительная проверка заемщика (например, если при потребовавшейся ручной проверке заёмщика андеррайтеры не смогли до него дозвониться)
400 code=user-validation-error Номер телефона передан в неверном формате
400 code=limit_refusal В заявке на лимит заёмщику отказано. В этом случае продолжать работу с заёмщиком не имеет смысла
404 Заёмщик не найден в системе, требуется направить клиента на интерфейсы подачи заявки на лимит

Пример успешного ответа 200:


data
id 80213560
current_limit 15000.00

Параметры ответа:

Параметры
Формат
Применение
Описание
id
Int
Обязательный
Id клиента, который будет использоваться в запросах на создание займа
current_limit
Float
Обязательный
Значение лимита, доступного к займу
Создание займа
POST /user/{userId}/sale

period 6
own_funds 5000
products

name Лампа настольная
price 8500.16
is_returnable true
operation_type loan



Параметры запроса:

Параметры
Формат
Применение
Описание
userId
Int
Обязательный
ID клиента, полученный в результате выполнения запроса определения лимита заёмщика с кодом ответа 200
period
Int
Обязательный
Срок займа в месяцах. На данный момент допустимы значения 3 и 6 соответствующие трем и шести месяцам.
own_funds
Float
Обязательный
Сумма средств, которые вносятся клиентом в кассу магазина на месте. Сумма займа в общем виде будет равна сумме стоимости всех товаров минус сумме внесенных в кассу средств. Если бизнес логика вашей интеграции не предполагает внесение средств клиентом "на месте", передавайте 0
products
Array
Обязательный
Массив, в котором передается корзина товаров. Если клиент покупает несколько одинаковых товаров, то они должны быть перечислены в массиве несколько раз (то есть поля "количество" в запросе нет)
name
String
Обязательный
Название товара. Название будет указано в договоре займа с клиентом, необходимо передавать осмысленные названия товаров
price
Float
Обязательный
Стоимость товара в рублях, копейки указываются после запятой
is_returnable
Bool
Обязательный
Допустима ли операция возврата товара клиентом. В общем случае должно передаваться значение true. Значение false обычно требуется для товара "доставка" или например при продаже лекарственных средств, которые согласно закону Российской Федерации недопустимы к возврату.
operation_type
String
Обязательный
Тип продажи товара. В общем случае должно указываться значение "loan". Если товар продается мерчантом в рассрочку на 3, 6 или и 3 и 6 месяцев то передаются значения 3, 6 или 36. Любые неверно переданные, "несловарные" значения будут приведены к параметру "loan" и товар будет продаваться в обычный займ, когда мерчант получает на расчетный счет 100% стоимости товара, а клиент платит как тело займа, так и проценты по нему.

Варианты ответа:

201 Займ создан, требудется подписание займа кодом из SMS сообщения
400 code=user-sale-validation-error Какое-то из полей передано неверно
400 code=user-sale-time-error Попытка оформить займ менее чем через 5 минут после оформления предыдущего. Нельзя для одного и того же клиента брать займы чаще чем раз в 5 минут
400 code=user-blocked Клиенту запрещено выдавать займы. Такой код вы можете увидеть только в ситуации, когда клиент был заблокирован недавно, иначе вы бы получали этот же код в ответ на запрос лимита
400 code=user-sale-current-limit-error Клиент пытается взять займ больше, чем ему доступно в лимите. В силу того, что в системе Webbankir pay существуют тарифы со скидками, предоставляемыми мерчантами, в некоторых ситуациях вы не увидите этот код даже если сумма товаров в корзине минус собственные средства больше чем доступный лимит (потому что на корзину будет дополнительно предоставляться скидка от магазина)
400 code=no-merchant-rate-error У мерчанта нет активного тарифа. Это означает что настройка на стороне менеджеров выполнена не полностью, обратитесь к курирующему менеджеру
404 Клиент с таким ID не найден
Подпись займа клиентом

Для того, чтобы займ считался выданным, клиент должен подписать его SMS кодом, отправленным на его телефон

Инициация отправки SMS кода

После создания займа (201 ответ) необходимо автоматически инициировать отправку SMS кода на телефон клиента. Этот же запрос используется для повторной отправки кода. Действительным является только последний полученный на телефон код

PUT /user/{userId}/sale/{saleId}/code

Параметры запроса:

Параметры
Формат
Применение
Описание
userId
Int
Обязательный
ID клиента, полученный в результате выполнения запроса определения лимита заёмщика с кодом ответа 200
saleId
Int
Обязательный
ID займа, полученный в теле ответа на создание займа (201 код ответа)

Варианты ответа:

201 Код отправлен на телефон клиента. Нужно отобразить окно для ввода кода
404 Или клиент или займ не найдены
Подпись займа кодом из SMS

После отправки кода (201 ответ) клиент должен ввести код в систему. Отправка кода на сервер Webbankir pay осуществляется следующим запросом:

PATCH /user/{userId}/sale/{saleId}/code/{smsCode}

Параметры запроса:

Параметры
Формат
Применение
Описание
userId
Int
Обязательный
ID клиента, полученный в результате выполнения запроса определения лимита заёмщика с кодом ответа 200
saleId
Int
Обязательный
ID займа, полученный в теле ответа на создание займа (201 код ответа)
smsCode
Int
Обязательный
SMS код из 4 цифр, введенный пользователем

Варианты ответа:

201 Код верный, займ подписан. Это финальный код для займа,
400 code=wrong-sms-code Код неверный
400 code=user-sale-code-validation-error Код семантически неверный (вы передаете не 4 цифры)
400 code=user-sale-current-limit-error Клиент пытается подписать займ, для оформления которого ему не хватает текущего лимита
400 code=user-sale-time-error Клиент пытается подписать займ менее чем через 5 минут после подписи предыдущего. Нельзя подписывать займы так часто
Создание заявки на лимит

Если в ответ на определение лимита пользователя вы получили 404 ответ, то нужно отправить пользователя на экран регистрации. Регистрация нового пользователя и подача заявки на POS лимит выполняется в 4 шага, ниже приведены запросы для полной регистрации нового пользователя

Создание пользователя
POST /customer

first_name Василий
last_name Пупкин
middle_name Васильевич
mobile_phone 79201234567

Параметры запроса:

Параметры
Формат
Применение
Описание
first_name
String
Обязательный
Имя
last_name
String
Обязательный
Фамилия
middle_name
String
Обязательный
Отчество, если у клиента его нет то нужно передать пустую строку
mobile_phone
String
Обязательный
Телефон в формате 79201234567 - ведущая 7, без +, пробелов и прочих нецифровых символов

Варианты ответа:

201 Параметры верные, пользователь создан. В момент получения этого кода пользователю отправляется SMS сообщение на его номер телефона. Для повторной отправки SMS сообщения нужно повторно отправить данный запрос, при этом новый объект customer создан не будет
400 code=cashier-validation-error Какое-то из полей передано неверно
400 code=client-not-unique Клиент с таким номером телефона уже существует. Эту ошибку вы можете увидеть если пойдете в запрос получив на определение лимита пользователя не 404 ответ, а какой-то другой (или вообще не проверив существование пользователя). Мы не даем регистрировать номера телефонов, закрепленные за активными заёмщиками. В случае, если вы повторно пойдете на /customer когда объект уже существует и при этом не является активным заёмщиком - то новый объект (дубль) создан не будет, вы получите в ответ старый уже существовавший customer_id

Пример успешного ответа (201):


data
id 355
first_name Василий
last_name Пупкин
middle_name Васильевич
mobile_phone 79201234567

Параметры ответа:

Параметры
Формат
Применение
Описание
id
Int
Обязательный
Идентификатор регистрирующегося клиента. Его нужно использовать для дальнейших запросов регистрации клиента, при этом когда клиент станет активным, то у него будет другой user_id который != customer_id
first_name
String
Обязательный
Имя
last_name
String
Обязательный
Фамилия
middle_name
String
Обязательный
Отчество
mobile_phone
String
Обязательный
Телефон в формате 79201234567
Ввод SMS кода
POST /customer/{customer_id}/code

sms_code 1234

Параметры запроса:

Параметры
Формат
Применение
Описание
customer_id
Int
Обязательный
ID клиента, полученный в ответ на запрос POST /customer
sms_code
String
Обязательный
Код, пришедший в СМС сообщении клиенту

Варианты ответа:

204 No content Код верный, можно переходить к дальнейшему шагу
400 code=cashier-validation-error СМС код семантически неверный или отсутствует
400 Код неверный или иная проблема
404 Клиента с таким ID не существует
Ввод данных паспорта
POST /customer/{customer_id}/passport

birth_day 2016-05-20
birth_place г. Снежное
series_and_number 2016123456
division_code 360006
issue_date 2016-05-20
issued_by ОТДЕЛ УФМС РОССИИ ПО ВОРОНЕЖСКОЙ ОБЛ
address
postal_code 394024
region 3600000000000
city Воронеж
settlement Поселение
street Рабочий проспект
do_not_have_street 1
house 1
flat 1

address_fiases
value Воронежская обл, г. Воронеж, пр-кт. Рабочий
region_fias_id b756fe6b-bbd3-44d5-9302-5bfcc740f46e
city_fias_id 5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1
settlement_fias_id 5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1
street_fias_id 5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1
house_fias_id 5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1

Параметры запроса:

Параметры
Формат
Применение
Описание
customer_id
Int
Обязательный
ID клиента, полученный в ответ на запрос POST /customer
birth_day
String
Обязательный
Дата рождения в формате 2016-05-20
birth_place
String
Обязательный
Место рождения
series_and_number
String
Обязательный
Серия и номер паспорта - десять цифр стрингом без пробелов и прочих разделителей
division_code
String
Обязательный
Код подразделения, выдавшего паспорт. 6 цифр без пробелов дефисов и прочих разделителей стрингом
issue_date
String
Обязательный
Дата выдачи паспорта в формате 2016-05-20
issued_by
String
Обязательный
Стринговое представление подразделения, выдавшего паспорт. Должно быть получено справочным методом расшифровки названия подраделения по коду
address
Object
Обязательный
Объект адреса
address.postal_code
String
Обязательный
Почтовый код, 6 цифр стрингом. Должен быть получен и проброшен без изменений из справочного метода получения адреса
address.region
String
Обязательный
Код региона, должен быть получен и проброшен без изменений из справочного метода получения адреса
address.city
String
Обязательный
Город, должен быть получен и проброшен без изменений из справочного метода получения адреса
address.settlement
String
Обязательный
Поселение, должно быть получено и проброшено без изменений из справочного метода. Если его нет в методе получения адреса то все равно нужно передавать пустую строку
address.street
String
Обязательный
Улица, должна быть получена и проброшена без изменений из справочного метода получения адреса
address. do_not_have_street
Int
Обязательный
Признак отсутствия в адресе улицы (актуально для мелких поселений и пригородов), должна быть получена и проброшена без изменений из справочного метода получения адреса
address.house
String
Обязательный
Номер дома, должен быть получен и проброшен без изменений из справочного метода получения адреса
address.flat
String
Обязательный
Номер квартиры. Единственное поле блока адреса, которое вводится пользователем вручную напрямую в инпут. Если квартиры у него нет то допустимо передавать пустую строку.
address_fiases
Object
Обязательный
Блок фиас кодов полей адреса, должен быть наполнен данными из справочного метода получения адреса

Варианты ответа:

204 No content Данные паспорта переданы верно, можно переходить к дальнейшему шагу
400 code=cashier-validation-error Какое-то из полей передано неверно
404 Customer не был найден
Информация о доходе, ИНН и бенефициаре

Внимание! В некоторых случаях данный запрос может выполняться до 30 секунд (то есть держать открытое http соединение). Необходимо блокировать возможность повторного сабмита формы если ответ еще не был получен

В данном запросе есть блок бенефициара. В вашем приложении должно быть четкое разъяснение клиентам, что заполняться данный блок должен только в ситуации, когда выгодополучателем займа является другое лицо. Нельзя заполнять данные бенефициара, копируя данные заемщика еще раз, это ухудшит скоринговый процесс.

Пример запроса с передачей бенефициара:

POST /customer/{customer_id}/beneficial-and-salary

salary 10000
inn_or_snils 123456789012
work_name ООО Ромашка
beneficial
last_name Иванов
first_name Василий
middle_name Петрович
passport 2016123456
passport_division_code 360006
passport_date_of_issue 1999-01-01

Пример запроса без бенефициара:

POST /customer/{customer_id}/beneficial-and-salary

salary 10000
inn_or_snils 123456789012
work_name ООО Ромашка
beneficial null

Параметры запроса:

Параметры
Формат
Применение
Описание
customer_id
Int
Обязательный
ID клиента, полученный в ответ на запрос POST /customer
salary
Int
Обязательный
Сумма ежемесячного дохода заёмщика (например, зарплата) в рублях
inn_or_snils
String
Обязательный
В данное поле передается или ИНН (12 цифр) или СНИЛС (11 цифр). Для автоматической подстановки поля обязательно используйте справочный метод определения ИНН, но пользователь обязательно должен иметь возможность отредактировать поле и передать индивидуальное значение. В поле передается стринг только с цифрами
work_name
String
Обязательный
Место работы в любом удобном формате
beneficial
Object
Обязательный
Объект в случае наличия бенефициара или null в случае его отсутствия
beneficial.last_name
String
Обязательный
Фамилия
beneficial.first_name
String
Обязательный
Имя
beneficial.middle_name
String
Обязательный
Отчество
beneficial.passport
String
Обязательный
Серия и номер паспорта (10 цифр) стрингом
beneficial. passport_division_code
String
Обязательный
Код подразделения, выдавшего паспорт. 6 цифр без разделителей стрингом. Обязательно покажите пользователю в уведомительных целях текстовое название подразделения, получив его с помощью справочного метода получения названия подразделения по его коду
beneficial. passport_date_of_issue
String
Обязательный
Дата выдачи паспорта в формате ГГГГ-ММ-ДД

Варианты ответа:

204 No content Данные переданы верно, пользователь зарегистрирован. В этом случае заёмщику нужно отобразить экран "Ваша заявка отправлена". После получения данного ответа запрос определения лимита будет возвращать 204 код до тех пор пока не закончится процедура скоринга клиента. Клиент получает 2 смс сообщения - о факте подачи заявки и о статусе скоринга (выдан лимит или в лимите отказано). Обычно процедура скоринга занимает до 5 минут, но в отдельных случаях может достигать 15 минут, если требуется дополнительная проверка заемщика
400 code=customer-validation-error Какое-то из полей передано неверно
400 code=passport-not-found-error Вы пропустили запрос отправки паспортных данных, регистрация не может быть завершена
400 code=user-blocked Учетная запись пользователя заблокирована. Это означает, что по пользователю не будет принято успешного скорингового решения по причине его блокировки. Статус финальный. Причины блокировки не разглашаются
400 code=customer-is-registered Пользователь уже прошел процесс регистрации. Данный код является своего рода защитой от повторной отправки финального запроса регистрации
400 Иная ошибка. Текст ошибки нужно отобразить пользователю
404 Customer не был найден
Справочники данных

Запросы из данного блока используются для наполнения анкеты заявки на лимит

Название подразделения по его коду
GET /passport/division_code/{code}

Параметры запроса:

Параметры
Формат
Применение
Описание
code
Int
Обязательный
Код подразделения, 6 цифр

Варианты ответа:

200 В ответе передается код подразделения
400 Иная ошибка. Текст ошибки нужно отобразить пользователю
404 code=passport-validation-error Семантическая ошибка (код передан не в виде 6 цифр

Пример успешного ответа:


data
value ОТДЕЛ УФМС РОССИИ ПО ВОРОНЕЖСКОЙ ОБЛ.

Получение адреса

Для подачи заявки на лимит нужно передать блоки address и address_fiases. Общая логика такая - вы показываете пользователю инпут для поиска адреса. Пользователь вводит данные, вы отправляете данный запрос, получаете массив ответов, показываете ему подсказку. Только в случае, если он выбрал какой-то из вариантов адресов у вас появляется набор данных для заполнения блока address и address_fiases в анкете.

Обратите внимание:

1 Пользователь может ввести адрес с точностью до улицы. В этом случае у вас не будет поля house и house_fias_id. Это не конечный адрес регистрации с точностью джо дома, пользователь должен продолжить выбор. Сабмитить анкетную форму при таком неполном адресе нельзя
2 Поле postal_code вы должны достать из подсказки (выбранный пользователем пункт) и подставить в инпут, однако нужно давать возможность пользователю его менять
3 Если у адреса есть house но нет street то в запросе анкеты нужно передать поле do_not_have_street=1, если street есть то do_not_have_street=0 (существуют реальные адреса без улиц, что-то вроде "Поселок Подгорное, дом 34")
4 Поля city и settlement могут быть как оба ("г. Москва п. Наро-Фоминск"), так и друг без друга ("г. Москва", "с. Подгорное"). Но хотя бы одно поле существовать должно
GET /address?search={searchString}

Параметры запроса:

Параметры
Формат
Применение
Описание
searchString
String
Обязательный
Поисковая строка

Варианты ответа:

200 В ответе передается массив с подходящими вариантами. Если подходящий адрес найден не был - будет пустой массив

Пример успешного ответа:


data
suggestions

value г Воронеж, Рабочий пр-кт
...
data
postal_code 394024
...
region_fias_id b756fe6b-bbd3-44d5-9302-5bfcc740f46e
region_kladr_id 3600000000000
...
region Воронежская
...
city_fias_id 5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1
...
city Воронеж
...
settlement_fias_id 225af9a1-c016-42d7-b2bc-efbe5b8bbc78
...
settlement Подгоренское
street_fias_id 225af9a1-c016-42d7-b2bc-efbe5b8bbc78
...
street Рабочий
house_fias_id 225af9a1-c016-42d7-b2bc-efbe5b8bbc78
...
house 100
...




Получение ИНН по паспортным данным

В данном запросе используются данные customer, но если их нет - их можно переопределить необязательными данными в wuery запроса. Внимание! Запрос может выполняться до 1 минуты (поддержание открытого http соединения)

GET /customer/{customer_id}/inn?birthDay={birthDay}&firstName={firstName}&lastName={lastName}&middleName={middleName}&passportSeriesAndNumber={passportSeriesAndNumber}

Параметры запроса:

Параметры
Формат
Применение
Описание
customer_id
Int
Обязательный
ID клиента, полученный в ответ на запрос POST /customer
birth_day
String
Необязательный
Дата рождения в формате 2016-05-20
firstName
String
Необязательный
Имя
lastName
String
Необязательный
Фамилия
middleName
String
Необязательный
Отчество, если у клиента его нет то нужно передать пустую строку
passportSeriesAndNumber
String
Необязательный
Серия и номер паспорта - десять цифр стрингом без пробелов и прочих разделителей

Варианты ответа:

200 В ответе передается найденный ИНН
400 Иная ошибка. Текст ошибки нужно отобразить пользователю
404 По переданным данным ИНН не найден

Пример успешного ответа:


data
value ОТДЕЛ УФМС РОССИИ ПО ВОРОНЕЖСКОЙ ОБЛ.

Калькулятор займа

Данный запрос используется, чтобы клиент мог оценить условия займа, которые ему предлагает платформа Webbankir pay

PATCH /schedule

period 6
user_id 8020056
products

name Лампа настольная
price 8500.16
is_returnable true
operation_type loan



Параметры запроса:

Параметры
Формат
Применение
Описание
period
Int
Обязательный
Срок займа в месяцах. На данный момент допустимы значения 3 и 6 соответствующие трем и шести месяцам.
user_id
Int
Необязательный
ID клиента, полученный в результате выполнения запроса определения лимита заёмщика с кодом ответа 200. Если у вас есть этот код - обязательно его передавайте (т.к. он существенно влияет на формирование графика выплат), если его нет (в бизнес логике вы отправляете запрос до взятия у клиента его номера телефона) то передавать не нужно
own_funds
Float
Необязательный
Сумма средств, которые вносятся клиентом в кассу магазина на месте. Сумма займа в общем виде будет равна сумме стоимости всех товаров минус сумме внесенных в кассу средств. Если бизнес логика вашей интеграции не предполагает внесение средств клиентом "на месте", не передавайте или передавайте 0
products
Array
Обязательный
Массив, в котором передается корзина товаров. Если клиент покупает несколько одинаковых товаров, то они должны быть перечислены в массиве несколько раз (то есть поля "количество" в запросе нет)
name
String
Обязательный
Название товара. Название будет указано в договоре займа с клиентом, необходимо передавать осмысленные названия товаров
price
Float
Обязательный
Стоимость товара в рублях, копейки указываются после запятой
is_returnable
Bool
Обязательный
Допустима ли операция возврата товара клиентом. В общем случае должно передаваться значение true. Значение false обычно требуется для товара "доставка" или например при продаже лекарственных средств, которые согласно закону Российской Федерации недопустимы к возврату.
operation_type
String
Обязательный
Тип продажи товара. В общем случае должно указываться значение "loan". Если товар продается мерчантом в рассрочку на 3, 6 или и 3 и 6 месяцев то передаются значения 3, 6 или 36. Любые неверно переданные, "несловарные" значения будут приведены к параметру "loan" и товар будет продаваться в обычный займ, когда мерчант получает на расчетный счет 100% стоимости товара, а клиент платит как тело займа, так и проценты по нему.

Варианты ответа:

200 Параметры верные, график займа возвращен
400 code=schedule-validation-error Какое-то из полей передано неверно
400 code=user-not-found Вы передали поле user_id, но такого заёмщика не существует. Обратите внимание, что передавать значения типа 0, 1, false, null и подобные нельзя, если у вас информации о клиенте нет - поле нужно не передавать
400 code=no-merchant-rate-error У мерчанта нет активного тарифа. Обратитесь к курирующему менеджеру

Пример успешного ответа (200):


data
loan_body 9600.05
daily_percent_rate 0.0015
amount 10490.8
schedule

date 2018-12-13T00:00:00+03:00
amount 3500
percents 432.85
loan_body 3067.15


date 2019-01-13T00:00:00+03:00
amount 3500
percents 432.85
loan_body 3067.15



Параметры ответа:

Параметры
Формат
Применение
Описание
loan_body
Float
Обязательный
Общее тело займа. В силу применяемых тарифов со скидкой, предоставляемой мерчантом на часть товаров, это поле может не быть равным сумме price переданных в запросе товаров
daily_percent_rate
Float
Обязательный
Суточная ставка по займу. Для отображения клиенту годовой ставки нужно умножить на 365 или 366 в зависимости от високосности года
amount
Float
Обязательный
Общая сумма оплаты клиентом с учетом процентов в случае, если клиент вносит платежи ровно в платежный день без опережений и просрочек
schedule
Array
Обязательный
Массив платежей, платежный график для клиента
schedule.X.date
String
Обязательный
Дата платежа. В случае, когда вы не передавали user_id, платежной датой считается дата запроса в следующем месяце, или последний день месяца если такой даты не существует. В случае, если вы передали user_id и у клиента есть активные займы, то дата платежа будет зафиксированной для клиента "платежной датой"
schedule.X.amount
Float
Обязательный
Сумма платежа. Обычно суммы платежа одинаковы, но в случае наличия активной платежной даты первый платеж будет меньше среднего, а последний - больше среднего (т.к. клиент в первом платеже оплачивает проценты за неполный месяц пользования займом)
schedule.X.percents
Float
Обязательный
Часть платежа являющаяся уплатой процентов за пользование заемными средствами
schedule.X.loan_body
Float
Обязательный
Часть платежа являющаяся уплатой тела займа
Возникли вопросы по работе API?
Напишите нам
Notification w/ confirmation

Notification w/ confirmation message