Наша команда поддержки готова помочь вам 24/7.

Служба поддержки и технические вопросы

telegram

Связаться в Telegram

API для разработчиков
Формирование формы

Форма приема платежей

Описание схемы работы.

На стороне веб-сервера клиента формируется платежная форма и отдается пользователю на сабмит.

После сабмита формы пользователь перенаправляется на процессинг для совершения оплаты.

После проведения оплаты пользователь возвращается либо на SUCCESS_URL либо на FAIL_URL. На STATUS_URL в свою очередь отправляется пустой GET запрос при получении которого следует запросить статус платежа (запрос /api/einvoice/status Счета - Проверка текущего статуса счета) передав INVOICE_ID из сформированной ранее формы и на основании полученного ответа предпринимать дальнейшие действия.

Если следует принять оплату без перехода на сайт процессинга, то форму следует передавать как GET параметры на тот-же адрес и открывать страницу в IFRAME на сайте торговца.

<form action="https://acquiring.obmenka.ua/acs" method="POST">
<input type="hidden" name="CLIENT_ID" value="номер кассы" />
<input type="hidden" name="SIGN" value="подпись формы" />
<input type="hidden" name="SIGN_ORDER" value="AMOUNT;CURRENCY;..." />
<input type="hidden" name="INVOICE_ID" value="номер заказа" />
<input type="hidden" name="AMOUNT" value="100.00" />
<input type="hidden" name="ACCOUNT" value="123" />
<input type="hidden" name="CURRENCY" value="UAH" />
<input type="hidden" name="PAYMENT_CURRENCY" value="visamaster.uah" />
<input type="hidden" name="DESCRIPTION" value="Some payment description" />
<input type="hidden" name="SUCCESS_URL" value="https://test.ru/success/invoice_id" />
<input type="hidden" name="FAIL_URL" value="https://test.ru/fail/invoice_id" />
<input type="hidden" name="STATUS_URL" value="https://test.ru/status/invoice_id" />
</form>

Расшифровка полей (поля, помеченные звездочкой, обязательны)

Поле Описание
CLIENT_ID* Номер кассы из личного кабинете
SIGN* Подпись запроса
SIGN_ORDER* Порядок конкатенации полей при формировании подписи
INVOICE_ID* Номер счета в системе учета магазина.
Номера счетов должны быть уникальны (уникальность проверяется)!!! С одним номером можно принять оплату только один раз!!!
AMOUNT* Сумма которую следует списать
ACCOUNT идентификатор пользователя в системе мерчанта (номер аккаунта или любой другой уникальный идентификатор)
CURRENCY* Валюта выставления счета. Доспуные валюты: UAH, USD, EUR, RUR, LTC, BTC, BCH, USDT
PAYMENT_CURRENCY Валюта в которой следует принять оплату. Доступные валюты:
AdvCash, USD - advcash.usd
Bitcoin, BTC - bitcoin
Bitcoin Cash, BCH - bitcoin_cash
ChainLink, LINK - link
Ethereum, ETH - ethereum
Litecoin, LTC - litecoin
Monero, XMR - monero
QIWI, RUR - qiwi
Tether ERC20, USDT ERC20 - usdt_erc20
Tether TRC20, USDT TRC20 - usdt_trc20
Tron, TRX - tron
USDCoin, USDC - usdc
Visa/Master, UAH - visamaster.uah
Visa/Master, RUR - visamaster.rur
Webmoney, WMZ - wmz
Webmoney, WMX - wmx
Яндекс.Деньги/ЮMoney, RUR - yandex
DESCRIPTION Описание счета
SUCCESS_URL* URL на который будет перенаправлен пользователь после успешной оплаты
FAIL_URL* URL на который будет перенаправлен пользователь после неуспешной оплаты
STATUS_URL* URL на который будет отправлен callback при переходе счета в финальный статус. Отправляется пустой GET запрос, при получении которого мерчант должен запросить статус счета по API и принимать решение на основании полученных данных

При передаче запроса одно из полей CURRENCY или PAYMENT_CURRENCY обязательно. В случае передачи двух полей приоритет отдается PAYMENT_CURRENCY и поле CURRENCY игнорируется.

Пример формирования подписи на PHP.

$clientID = 123;
$secret = "qwertyuiop123456";

$data = [
"CLIENT_ID" => $clientID,
"INVOICE_ID" => "1",
"AMOUNT" => "100",
"CURRENCY" => "UAH",
"PAYMENT_CURRENCY" => "visamaster.uah",
"DESCRIPTION" => "Test payment",
"SUCCESS_URL" => "https://test.ru/success/1",
"FAIL_URL" => "https://test.ru/fail/1",
"STATUS_URL" => "https://test.ru/status/1"
];

$sign = base64_encode(md5($secret . base64_encode(sha1(implode("", $data), true)) . $secret, true));

$data["SIGN_ORDER"] = implode(";", array_keys($data));
$data["SIGN"] = $sign;