# Рассрочка LIFE

# Схема взаимодействия

LIFE Diagram

# Описание процесса

Краткое описание процесса

  1. Отправка магазином API-запроса на оплату в кредит или рассрочку. Переадресация браузера плательщика на полученную ссылку userWebLink.
  2. Аутентификация плательщика по номеру мобильного телефона с помощью СМС-кода, и заполнение анкеты в личном кабинете (opens new window). Для онлайн-оформления обязательна загрузка фотографий.
  3. Ожидание плательщиком предложений кредиторов на странице покупки в личном кабинете.
  4. Выбор плательщиком подходящего предложения (срок в месяцах, размер переплаты, наличие/отсутствие первоначального взноса).
  5. Ввод плательщиком данных банковской карты (для автосписаний в пользу кредитора). Опционально возможна оплата первоначального взноса (если плательщик выбрал предложение, которое включает в себя первоначальный взнос).
  6. Подписание плательщиком договора займа с помощью СМС-кода.
  7. Возврат браузера плательщика на url магазина. Получение магазином callback-уведомления.

Полное описание процесса онлайн-оформления находится в отдельной статье в wiki Mandarin (opens new window), начиная с аутентификации плательщика по номеру мобильного телефона (первый шаг по подаче новой заявки на финансирование покупки через интерфейс можно пропустить, т.к. вы уже предоставили в API-запросе на кредит все нужные сведения).

# Тестовые данные

Для тестирования необходимо осуществить подачу заявки от имени плательщика и довести ее до подписания договора СМС-кодом.

Изначально при подключении вам будет установлен тестовый режим кредитования. При этом весь процесс будет выглядеть как настоящий, но в системах кредиторов займ будет рассмотрен как тестовый, и по нему не будет реального движения денежных средств.

В рамках тестирования необходимо выбирать варианты с нулевой предоплатой. В этом случае необходимо использовать реальную карту, на которой будет заблокирован 1 рубль и произведен его возврат после подписания.

Тестирование опции первоначального взноса возможно с использованием данных тестовых карт, которые доступны, если ваш проект был переведен в тестовый режим использования банковских карт. Для этого оставьте заявку в Cлужбу поддержки (opens new window).

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

Параметр Значение
ФИО Шариков Полиграф Полиграфович
Пол Мужской
Дата рождения 19.05.1975
Серия и номер паспорта 7709 543987
Выпустивший орган УПРАВЛЕНИЕ ФЕДЕРАЛЬНОЙ МИГРАЦИОННОЙ СЛУЖБЫ РОССИИ ПО ГОР.МОСКВЕ
Дата выпуска 01.01.2011
Код подразделения 770-001
Адрес проживания Москва, пр. Мира 111, кв. 11
Данные о занятости Любые

ОБРАТИТЕ ВНИМАНИЕ!

Важно использовать существующий номер телефона и email, так как в СМС придет пароль для подписания договора, а на email придет пароль от личного кабинета при первичной заявке (тогда в дальнейшем можно будет продолжить тестирование с этим же аккаунтом, и не заполнять анкету заново при повторной подаче заявки).

# Параметры запросов

Параметр Тип Обязателен Описание и возможные значения
payment object Да Объект, содержащий данные о транзакции.
payment.action string Да Тип транзакции.
Для LIFE всегда "action": "pay".
payment.method string Да Индикатор оплаты в кредит/рассрочку.
Для LIFE всегда method: credit.
payment.orderId string Да Номер заказа в вашей системе. Должен быть уникальным среди успешных операций!
payment.price string Да Сумма покупки, запрашиваемая у кредитора. Разделитель - точка.
payment.orderActualTill string Да Срок резервирования товара/услуги. После указанной даты оплата будет невозможна. Формат: 2020-02-20 12:34:56+00:00.
customerInfo object Да Объект, содержащий данные о пользователе.
customerInfo.email string Да Email пользователя. Формат: user@example.com.
customerInfo.phone string Да Телефон пользователя в формате РФ: +79001234567.
customValues[] array Нет Массив, содержащая дополнительную информацию к данным платежа. Может содержать до 8 пар параметров.
customValues[].name string Нет Заголовок параметра.
customValues[].value string Нет Значение параметра.
metadata object Да Объект, который для LIFE содержит дополнительную информацию, которая будет показана пользователю при оформления кредита/рассрочки.
metadata.type string Да Тип запроса: credit (займ, с переплатой для плательщика) или installments (рассрочка, без переплаты).
metadata.purchase_amount string Да Полная сумма покупки, без учета скидки. Разделитель - точка.
Если "type": "installments", то поле обязательно. Если не передано, то значение "type": "installments" будет проигнорировано!
metadata.discount string Да Размер скидки от полной суммы покупки. Например, если скидка - "10%", то параметр должен быть равен "0.1". Разделитель - точка.
Если "type": "installments", то поле обязательно. Если не передано, то значение "type": "installments" будет проигнорировано!
metadata.maturity string Нет Срок займа или рассрочки, в месяцах (3, 6, 9, 12 или 15). Если не передан, то пользователь может выбрать срок самостоятельно. Для рассрочки это недопустимо с точки зрения бизнеса, и для нее поле нужно передавать.
urls object Нет Объект, содержащий url. Если отсутствует, то используются url из настроек.
urls.return string Нет Url для редиректа пользователя после оплаты.
urls.callback string Нет Url для отправки callback-уведомления о статусе трaнзакции.

# Оплата в кредит

Данный метод используется для создания запроса со стороны магазина на продажу товара/услуги в кредит. Плательщик осуществит оплату кредитными деньгами, оформив займ (на 3, 6, 9, 12 или 15 месяцев). Опционально, магазин может запросить один фиксированный срок займа, передав его в поле metadata.maturity (3, 6, 9, 12 или 15). Если срок займа не передан в запросе, то заемщик выберет его при оформлении. Средства будут перечислены магазину на следующий банковский день после оформления. Плательщик будет платить ежемесячные взносы в пользу кредитора, при этом сумма переплаты финансируется плательщиком.

Перечень и описание параметров запроса, а также их обязательность приведены в отдельной таблице.

Транзакция будет осуществлена в асинхронном режиме. В синхронном ответе вы получите id транзакции и userWebLink, на который необходимо перенаправить пользователя.

После окончания оформления кредита вы получите callback-уведомление.

Запрос

POST https://secure.mandarinpay.com/api/transactions
{
	"payment": {
		"action": "pay",
		"method": "credit",
		"orderId": "your_unique_order_id",
		"price": "1000.00",
		"orderActualTill": "2020-02-20 12:34:56+00:00"
	},
	"customerInfo": {
		"email": "user@example.com",
		"phone": "+79001234567"
	},
	"customValues": [
		{"name": "first parameter to save and show", "value": "p1"},
		{"name": "second parameter to save and show", "value": "p2"}
	],
	"metadata": {
		"type": "credit"
	},
	"urls": {
		"callback": "http://...",
		"return": "http://..."
	}
}

Ответ в случае успешного создания транзакции (200 ОК)

{
	"id": "43913ddc000c4d3990fddbd3980c1725",
	"userWebLink": "https://secure.mandarinpay.com/Pay?transaction=0eb51e74-e704-4c36-b5cb-8f0227621518"
}

Ответ в случае, если транзакция не создана (400 Bad request)

{
	"error": "Invalid request"
}

# Оплата в рассрочку

Данный метод используется для создания запроса со стороны магазина на продажу товара/услуги в рассрочку. Плательщик осуществит оплату кредитными деньгами, оформив займ (на 3, 6, 9, 12 или 15 месяцев). Для рассрочки настоятельно рекомендуем запрашивать один фиксированный срок займа, передавая его в поле metadata.maturity (может принимать значение 3, 6, 9, 12 или 15). Средства будут перечислены магазину на следующий банковский день после оформления. Плательщик будет платить ежемесячные взносы в пользу кредитора, при этом сумма переплаты финансируется магазином за счет скидки (discount).

Для рассрочки важны следующие параметры:

  • metadata.purchase_amount - полная сумма покупки, без учета скидки (например, 1 000 руб).

  • metadata.discount - размер скидки от полной суммы покупки (например, если скидка - "10%", то параметр должен быть равен "0.1").

  • metadata.maturity - срок займа в месяцах (3, 6, 9, 12 или 15 месяцев). Исходя из срока займа и текущей процентной ставки кредитора, вы сможете рассчитать ориентировочную сумму переплаты.

  • payment.price - сумма покупки, запрашиваемая у кредитора (с учетом скидки). Рассчитывается как metadata.purchase_amount * (1 - metadata.discount) (для нашего примера, 1 000 * (1 - 0.1) = 900).

Магазин должен рассчитать payment.price таким образом, чтобы даже после максимальной переплаты по займу, плательщик не превысил полную сумму покупки. Таким образом, payment.price равна полной сумме покупки, уменьшенной на максимальную переплату по займу (если плательщик делает платежи без просрочек и штрафов).

Перечень и описание параметров запроса, а также их обязательность приведены в отдельной таблице.

Транзакция будет осуществлена в асинхронном режиме. В синхронном ответе вы получите id транзакции и userWebLink, на который необходимо перенаправить пользователя.

После окончания оформления рассрочки вы получите callback-уведомление.

Запрос

POST https://secure.mandarinpay.com/api/transactions
{
	"payment": {
		"action": "pay",
		"method": "credit",
		"orderId": "your_unique_order_id",
		"price": "900.00",
		"orderActualTill": "2020-02-20 12:34:56+00:00"
	},
	"customerInfo": {
		"email": "user@example.com",
		"phone": "+79001234567"
	},
	"customValues": [
		{"name": "first parameter to save and show", "value": "p1"},
		{"name": "second parameter to save and show", "value": "p2"}
	],
	"metadata": {
		"type": "installments",
		"discount": "0.1",
		"purchase_amount": "1000.00",
		"maturity": "12"
	},
	"urls": {
		"callback": "http://...",
		"return": "http://..."
	}
}

Ответ в случае успешного создания транзакции (200 ОК)

{
	"id": "43913ddc000c4d3990fddbd3980c1725",
	"userWebLink": "https://secure.mandarinpay.com/Pay?transaction=0eb51e74-e704-4c36-b5cb-8f0227621518"
}

Ответ в случае, если транзакция не создана (400 Bad request)

{
	"error": "Invalid request"
}