Skip to content

card_h2h

Интерфейс Host-to-Host позволяет мерчанту максимально гибко интегрировать прием оплат при помощи платежных карт, так как интерфейс не использует внешнюю платежную страницу и мерчант не ограничен в дизайне собственного пользовательского платежного интерфейса. Главное требование к мерчанту – наличие сертификата PCI DSS соответствующего уровня.

Для приема оплаты через интерфейс host-to-host необходимо выполнить следующие шаги:

  1. Отправить запрос на создание платежа card_h2h.create;
  2. Открыть полученную ссылку acs_url у себя на странице в iframe. Данную ссылку можно получить из колбека на указанный при создании платежа callback_url или запросив статус платежа используя метод status;
  3. После успешного прохождения плательщиком 3DS аутентификации будет отправлен callback об успешном выполнении платежа. Если callback_url не указан, статус платежа можно запросить используя метод status.

Список созданных Host-to-Host платежей можно получить по запросу history.card_h2h.


card_h2h.create

Входящие параметры метода необходимые для создания Host-to-Host платежа:

Параметр Обязательный параметр Тип Пример Описание
amount да str "150.75" сумма платежа
card_data да object {...} данные карты (детальное описание этого параметра представленно ниже)
currency да str "UAH" трехбуквенный код валюты платежа (согласно ISO 4217)
externalid да str "1234567890" уникальный идентификатор платежа
return_card_token да bool true флаг, указывающий необходимо ли токенизировать карту используемую для платежа
browser_info нет dict {...} Информация браузера плательщика
callback_url нет str "https://any_money.redirect.com" URL-адрес, на который будет отправляться информация об изменении состояния платежа. Если данный параметр не передан, то сообщения будут отправлять на callback url указанный в разделе “Настройки” в Личном Кабинете мерчанта
client_email нет str "[email protected]" адрес электронной почты плательщика
client_ip нет str "192.168.0.0" IP адрес плательщика
failure_url нет str "https://any_money.redirect.com" URL-адрес для перенаправления плательщика в случае неуспешного завершения оплаты
merchant_payfee нет str "0.55" часть от общей суммы комиссии за платеж, которую оплачивает мерчант. Значение должно быть в интервале [0..1] c точностью до двух знаков после запятой. По умолчанию указывается "0"
success_url нет str "https://any_money.redirect.com" URL-адрес для перенаправления плательщика в случае успешного завершения оплаты

Использование success_url и failure_url

Используются для сценариев прохождения 3DS верификации платежа вне страницы мерчанта с последующим возвратом на страницу успешного завершения платежа (либо на страницу ошибки завершения платежа) на стороне мерчанта.

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

Параметр Обязательный параметр Тип Пример Описание
card_number да str "5827037218673202" номер карты
expiry_month да str "06" месяц истечения срока действия (формат MM)
expiry_year да str "34" год истечения срока действия (формат YY)
security_code да str "492" 3-х или 4-х значный код проверки подлинности карты

Параметры ответа на запрос создания платежа:

Параметр Обязательный параметр Тип Пример Описание
account_amount да str "145.50" сумма зачисления на счёт мерчанта в валюте платежа за вычетом комиссии
amount да str "150.75" сумма платежа
callback_url да str "https://any_money.redirect.com" URL-адрес, на который будет отправляться информация об изменении состояния платежа. Если данный параметр не передан, то сообщения будут отправлять на callback url указанный в разделе “Настройки” в Личном Кабинете мерчанта
ctime да bigint 1652701264396 время создания платежа (timestamp)
currency да str "UAH" трехбуквенный код валюты платежа (согласно ISO 4217)
email да str or null "[email protected]" адрес электронной почты плательщика, указанный при создании платежа. Будет null если адрес не был указан при создании
externalid да str "1234567890" уникальный идентификатор созданного платежа, заданный мерчантом
fee_amount да str "5.25" сумма комиссии в валюте платежа
lid да int 47893 уникальный идентификатор созданного платежа в системе AnyMoney
merchant_payfee да str "0.55" часть от общей суммы комиссии за платеж, которую оплачивает мерчант. Значение в интервале [0..1] c точностью до двух знаков после запятой
owner да int 26 уникальный идентификатор мерчанта, создавшего пополнение
status да enum "new" текущий статус платежа (в данном случае, всегда будет new)

Список возможных ошибок

EStateCardPayinUnavail
Данный метод недоступен
EParamType
Неверный тип данных
EParamCurrencyInvalid
Указана недоступная валюта платежа
EParamInvalid
Указано неверное значение переданного параметра


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

Параметр Обязательный параметр Тип Пример Описание
account_amount да str "145.50" сумма зачисления на счёт мерчанта в валюте платежа за вычетом комиссии
amount да str "150.75" сумма платежа
ctime да bigint 1652701264396 время создания платежа (timestamp)
currency да str "UAH" трехбуквенный код валюты платежа (согласно ISO 4217)
email да str or null "[email protected]" адрес электронной почты плательщика, указанный при создании платежа. Будет null если адрес не был указан при создании
externalid да str "1234567890" уникальный идентификатор созданного платежа, заданный мерчантом
fee_amount да str "5.25" сумма комиссии в валюте платежа
lid да int 47893 уникальный идентификатор созданного платежа в системе AnyMoney
merchant_payfee да str "0.55" часть от общей суммы комиссии за платеж, которую оплачивает мерчант. Значение в интервале [0..1] c точностью до двух знаков после запятой
owner да int 26 уникальный идентификатор мерчанта, создавшего пополнение
status да enum "wait" текущий статус платежа, один из следующих: wait, done, fail, expired
tp да str "card_h2h" тип платежа (всегда будет card_h2h)
acs_url нет str "https://any.money/form/uxcERpIwkYLicBZGHr6jczDcLnCgQQBd6yPEOQd8bV_wyrTbPo2q2YRwVaBtb_P6m4_R" URL-адрес, на который нужно перенаправить плательщика для прохождения 3DS аутентификации. Возвращается только для платежа в статусе wait
card_mask нет str "582703******3202" замаскированный номер карты, при помощи которой выполнялся платёж. Возвращается только в случае успешного завершения платежа (статус done)
card_token нет str "4929a4cf-c2иe-5da9-b210-161b553a03a8" токен карты, при помощи которой выполнялся платёж. Возвращается только в случае успешного завершения платежа (статус done) и если при создании был указан "return_card_token": true
ftime нет bigint 1655134605974 время финализации платежа (timestamp). Возвращается только для финализированных платежей в статусах done, fail, expired

iFrame

Пример реализации iframe и обработки его событий на странице-хосте:

// Call create3DSIframe
function create3DSIframe(acs_url) {
    initPostMessageListener();
    const containerId = 'frame-wrapper-3ds'; // is html element(wrapper) for iframe
    const nodeIframe = document.createElement('iframe');
    nodeIframe.src = acs_url;
    document.getElementById(containerId).appendChild(nodeIframe);
}

function handlePaymentSuccess() {
    // Add success handler
    // For example: show success notification, close modal, display final payment status
}
function handlePaymentError() {
    // Add error handler
    // For example: show error notification, display payment form
}

// Event listener that handles final payment status
function postMessageListener(event) {
    const typeMessage = event.data.func;
    const status = event.data.args[0];
    if (typeMessage === 'finalPayment') { // check for final status only
        if (status === 'success') {
            handlePaymentSuccess();
        } else if (status === 'fail') {
            handlePaymentError();
        }
        removePostMessageListener();
    }
}

function initPostMessageListener() {
    window.addEventListener('message', postMessageListener);
}

function removePostMessageListener() {
    window.removeEventListener('message', postMessageListener);
}