Host-to-Host интеграция для реализации собственной платёжной формы
Если вам нужна прямая H2H интеграция, свяжитесь с вашим менеджером для получения условий
Host-to-Host интеграция используется в случае расположения платёжной формы на стороне мерчанта. К форме может быть подключен чекаут скрипт для формирования криптограммы и сбора данных плательщика
https:/checkout.js
Подписки
Через API возможно только создать подписку. Функционал получения информации о ней временно доступен только в личном кабинете мерчанта в разделе «Подписки»
Ответственно относитесь к функционалу подписок, особенно к использованию промо-периодов. Убедитесь, что у вас в явном виде указана цена после окончания этого периода. Изменение стоимости подписки веское основание для чарджбэков. Если условия спрятаны глубоко в оферте или используются иные dark pattern, у клиента могут быть основания для оспаривания транзакции.
За чарджбэки мерчанту не возвращается комиссия, а также могут быть наложены штрафы. При большом числе оспариваемых транзакций терминал может быть отключен в одностороннем порядке, а средства заморожены до 180 дней.
Оплата банковской картой
→ POST /api/h2h/payments/card-crypto
Метод используется для создания транзакции оплаты банковской картой
Параметры запроса
Свяжитесь с менеджером, чтобы узнать как подключить функционал подписки
| Параметр | Тип | Комментарий |
|---|---|---|
| amount | Число | Сумма платежа. Всего после точки может быть 2 цифры для копеек или центов. Пример: 1188.00 |
| currency | Строка | Валюта платежа (RUB, USD, EUR) |
| orderId | Строка | Уникальный идентификатор заказа в системе мерчанта |
| description | Строка | Описание заказа |
| ip | Строка | IP адрес плательщика |
| returnUrl | Строка | Адрес страницы, куда будет возвращен плательщик после оплаты |
| Строка | Адрес электронной почты плательщика. Обязательно указывать для международного терминала и подписок | |
| subscription | Объект | Используется только для функционала подписок, который должен быть разрешён на терминале |
| ├ period | Число | Частота списания. Например, 2 week — списание раз в две недели, а 3 month — квартальное |
| ├ interval | Строка | Интервал, через который происходи списание. Week — по неделям, month — по месяцам |
| ├ maxPeriods | Число | Количество последующих периодов списания, исключая первый. Например, вы продали годовую подписку с ежемесячным списанием, тогда нужно указать 11 периодов, т.к. первый уже будет закрыт текущей оплатой |
| ├ amount | Число | Сумма списаний. Если не указать, будет использоваться сумма из запроса. Поле требуется заполнять, если вы используете промо-период. Например, первый месяц за 39 ₽, а последующие за 99 ₽ |
| └ startDate | Дата | Дата списания по подписке должна быть в будущем. Применимо, когда, к примеру, клиент оплатил впервые 9 января, а регулярные списания у вас всегда 1-го числа. В таком случае указывается дата 01.02. Другой кейс, когда промо-период у вас короткий: 3 дня за 1 ₽, а дальше 1000 ₽ в месяц |
| deviceData | Объект | Данные устройства плательщика (можно собрать, подключив скрипт checkout.js на страницу оплаты) |
| ├ browserAcceptHeader | Строка | Значение HTTP заголовка Accept |
| ├ browserLanguage | Строка | Локаль браузера |
| ├ browserJavaEnabled | Булево | Доступна Java |
| ├ browserJavaScriptEnabled | Булево | Доступен JavaScript |
| ├ browserColorDepth | Число | Глубина цвета браузера |
| ├ browserScreenHeight | Число | Высота экрана в пикселях |
| ├ browserScreenWidth | Число | Ширина экрана в пикселях |
| ├ challengeWindowWidth | Число | Ширина окна браузера в пикселях |
| ├ challengeWindowHeight | Число | Высота окна браузера в пикселях |
| ├ browserTZ | Число | Часовой пояс пользователя (временное смещение от UTC), например 3 |
| ├ browserTZName | Строка | Таймзона пользователя строкой, например UTC+3 |
| ├ browserIp | Строка | IP адрес плательщика |
| └ browserUserAgent | Строка | Значение HTTP заголовка User-Agent |
| cardCrypto | Строка | Криптограмма карты плательщика (можно собрать, подключив скрипт checkout.js на страницу оплаты) |
Параметры ответа
| Параметр | Тип | Комментарий |
|---|---|---|
| transactionId | UUID | Идентификатор транзакции в системе WATA |
| transactionStatus | Строка | Статус транзакции (Pending, Paid, Declined) |
| kind | Строка | Тип транзакции: Payment — оплата, Refund — возврат |
| errorCode | Строка | Код ошибки в случае неуспешного запроса (см справочник кодов ошибок) |
| errorDescription | Строка | Описание ошибки в случае неуспешного запроса |
| threeDsData | Объект | Данные для 3ds аутентификации аутентификации, см. разъяснения ниже |
| ├ url | Строка | Адрес, на который надо отправить плательщика для ввода кода 3ds аутентификации |
| ├ method | Строка | HTTP метод, которым будет отправлена форма |
| └ parameters | Объект | |
| └ property name* | Строка | Параметры 3ds |
Параметры threeDsData
В зависимости от значений, пришедших в этом объекте, необходимо либо отправить браузер плательщика по значению url (если в параметре method пришло значение GET), либо на странице мерчанта сформировать скрытую html форму с параметрами из объекта parameters и сделать авто отправку ее на адрес url, методом method (если в параметре method пришло значение отличное от GET). В объекте parameters могут быть различные значения, рекомендуется в цикле создать элемент input для каждого из них.
Пример HTML формы
<html>
<head>
<title></title>
</head>
<body onload="setTimeout(document.forms['form'].submit(), 10000)">
<form name='form' action='{url}' method='{method}'>
<input type='hidden' name='creq' value='{creq}'>
<input type='hidden' name='threeDSSessionData' value='{threeDsSessionData}'>
</form>
</body>
</html>
Оплата по СБП
Метод предназначен для создания транзакции оплаты через Систему Быстрых Платежей (СБП) Центробанка России
Параметры запроса
Свяжитесь с менеджером, чтобы узнать как подключить функционал подписки
| Параметр | Тип | Комментарий |
|---|---|---|
| amount | Число | Сумма платежа. Всего после точки может быть 2 цифры для копеек. Оплата принимается только в российских рублях. Пример: 1188.00 |
| orderId | Строка | Уникальный идентификатор заказа в системе мерчанта |
| description | Строка | Описание заказа |
| ip | Строка | IP адрес плательщика |
| returnUrl | Строка | Адрес страницы, куда будет возвращен плательщик после оплаты |
| Строка | Адрес электронной почты плательщика. Обязательно указывать для подписок | |
| firstName | Строка | Имя плательщика |
| lastName | Строка | Фамилия плательщика |
| subscription | Объект | Используется только для функционала подписок, который должен быть разрешён на терминале |
| ├ period | Число | Частота списания. Например, 2 week — списание раз в две недели, а 3 month — квартальное |
| ├ interval | Строка | Интервал, через который происходи списание. Week — по неделям, month — по месяцам |
| ├ maxPeriods | Число | Количество последующих периодов списания, исключая первый. Например, вы продали годовую подписку с ежемесячным списанием, тогда нужно указать 11 периодов, т.к. первый уже будет закрыт текущей оплатой |
| ├ amount | Число | Сумма списаний. Если не указать, будет использоваться сумма из запроса. Поле требуется заполнять, если вы используете промо-период. Например, первый месяц за 39 ₽, а последующие за 99 ₽ |
| └ startDate | Дата | Дата списания по подписке должна быть в будущем. Применимо, когда, к примеру, клиент оплатил впервые 9 января, а регулярные списания у вас всегда 1-го числа. В таком случае указывается дата 01.02. Другой кейс, когда промо-период у вас короткий: 3 дня за 1 ₽, а дальше 1000 ₽ в месяц |
| deviceData | Объект | Данные устройства плательщика (можно собрать, подключив скрипт checkout.js на страницу оплаты) |
| ├ browserAcceptHeader | Строка | Значение HTTP заголовка Accept |
| ├ browserLanguage | Строка | Локаль браузера |
| ├ browserJavaEnabled | Булево | Доступна Java |
| ├ browserJavaScriptEnabled | Булево | Доступен JavaScript |
| ├ browserColorDepth | Число | Глубина цвета браузера |
| ├ browserScreenHeight | Число | Высота экрана в пикселях |
| ├ browserScreenWidth | Число | Ширина экрана в пикселях |
| ├ challengeWindowWidth | Число | Ширина окна браузера в пикселях |
| ├ challengeWindowHeight | Число | Высота окна браузера в пикселях |
| ├ browserTZ | Число | Часовой пояс пользователя (временное смещение от UTC), например 3 |
| ├ browserTZName | Строка | Таймзона пользователя строкой, например UTC+3 |
| ├ browserIp | Строка | IP адрес плательщика |
| └ browserUserAgent | Строка | Значение HTTP заголовка User-Agent |
Параметры ответа
| Параметр | Тип | Комментарий |
|---|---|---|
| transactionId | UUID | Идентификатор транзакции в системе WATA |
| transactionStatus | Строка | Статус транзакции (Created, Pending, Paid, Declined) |
| kind | Строка | Тип транзакции: Payment — оплата, Refund — возврат |
| sbpLink | Строка | Платёжная ссылка СБП |
| errorCode | Строка | Код ошибки в случае неуспешного запроса (см справочник кодов ошибок) |
| errorDescription | Строка | Описание ошибки в случае неуспешного запроса |
Оплата посредством T-Pay
Метод применяется для создания транзакции оплаты через систему T-Pay от Т-Банка
Параметры запроса
| Параметр | Тип | Комментарий |
|---|---|---|
| amount | Число | Сумма платежа. Всего после точки может быть 2 цифры для копеек. Оплата принимается только в российских рублях. Пример: 1188.00 |
| orderId | Строка | Уникальный идентификатор заказа в системе мерчанта |
| description | Строка | Описание заказа |
| ip | Строка | IP адрес плательщика |
| returnUrl | Строка | Адрес страницы, куда будет возвращен плательщик после оплаты |
| Строка | Адрес электронной почты плательщика | |
| subscription | Объект | Используется только для функционала подписок, который должен быть разрешён на терминале |
| ├ period | Число | Частота списания. Например, 2 week — списание раз в две недели, а 3 month — квартальное |
| ├ interval | Строка | Интервал, через который происходи списание. Week — по неделям, month — по месяцам |
| ├ maxPeriods | Число | Количество последующих периодов списания, исключая первый. Например, вы продали годовую подписку с ежемесячным списанием, тогда нужно указать 11 периодов, т.к. первый уже будет закрыт текущей оплатой |
| ├ amount | Число | Сумма списаний. Если не указать, будет использоваться сумма из запроса. Поле требуется заполнять, если вы используете промо-период. Например, первый месяц за 39 ₽, а последующие за 99 ₽ |
| └ startDate | Дата | Дата списания по подписке должна быть в будущем. Применимо, когда, к примеру, клиент оплатил впервые 9 января, а регулярные списания у вас всегда 1-го числа. В таком случае указывается дата 01.02. Другой кейс, когда промо-период у вас короткий: 3 дня за 1 ₽, а дальше 1000 ₽ в месяц |
| deviceData | Объект | Данные устройства плательщика (можно собрать, подключив скрипт checkout.js на страницу оплаты) |
| ├ browserAcceptHeader | Строка | Значение HTTP заголовка Accept |
| ├ browserLanguage | Строка | Локаль браузера |
| ├ browserJavaEnabled | Булево | Доступна Java |
| ├ browserJavaScriptEnabled | Булево | Доступен JavaScript |
| ├ browserColorDepth | Число | Глубина цвета браузера |
| ├ browserScreenHeight | Число | Высота экрана в пикселях |
| ├ browserScreenWidth | Число | Ширина экрана в пикселях |
| ├ challengeWindowWidth | Число | Ширина окна браузера в пикселях |
| ├ challengeWindowHeight | Число | Высота окна браузера в пикселях |
| ├ browserTZ | Число | Часовой пояс пользователя (временное смещение от UTC), например 3 |
| ├ browserTZName | Строка | Таймзона пользователя строкой, например UTC+3 |
| ├ browserIp | Строка | IP адрес плательщика |
| └ browserUserAgent | Строка | Значение HTTP заголовка User-Agent |
Параметры ответа
| Параметр | Тип | Комментарий |
|---|---|---|
| transactionId | UUID | Идентификатор транзакции в системе WATA |
| transactionStatus | Строка | Статус транзакции (Created, Pending, Paid, Declined) |
| kind | Строка | Тип транзакции: Payment — оплата, Refund — возврат |
| tPayLink | Строка | Платёжная ссылка T-Pay |
| errorCode | Строка | Код ошибки в случае неуспешного запроса (см справочник кодов ошибок) |