Наша команда поддержки готова помочь вам 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.ua/success/invoice_id" /> <input type="hidden" name="FAIL_URL" value="https://test.ua/fail/invoice_id" /> <input type="hidden" name="STATUS_URL" value="https://test.ua/status/invoice_id" /> </form>

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

Поле Описание
CLIENT_ID* Номер кассы из личного кабинете
SIGN* Подпись запроса
SIGN_ORDER* Порядок конкатенации полей при формировании подписи
INVOICE_ID* Номер счета в системе учета магазина.
Номера счетов должны быть уникальны (уникальность проверяется)!!! С одним номером можно принять оплату только один раз!!!
AMOUNT* Сумма которую следует списать
ACCOUNT идентификатор пользователя в системе мерчанта (номер аккаунта или любой другой уникальный идентификатор)
CURRENCY* Валюта выставления счета. Доспуные валюты: UAH, USD, EUR, LTC, BTC, BCH, USDT
PAYMENT_CURRENCY Валюта в которой следует принять оплату. Доступные валюты:
Bank Transfer, NGN - bank.ngn
Bitcoin, BTC - bitcoin
Bitcoin Cash, BCH - bitcoin_cash
ChainLink, LINK - link
Ethereum, ETH - ethereum
IMPS, INR - imps.inr
Litecoin, LTC - litecoin
Monero, XMR - monero
MOOV Togo, XOF - moov-togo.xof
PayTM, INR - paytm.inr
Phone PE, INR - phonepe.inr
T-Money, XOF - tmoney.xof
Tether ERC20, USDT ERC20 - usdt_erc20
Tether TRC20, USDT TRC20 - usdt_trc20
Tron, TRX - tron
UPI, INR - upi.inr
USDC TRC20, USDC TRC20 - usdc_trc20
Verve, NGN - verve.ngn
Visa/Master, UAH - visamaster.uah
Visa/Master, USD - visamaster.usd
Visa/Master, NGN - visamaster.ngn
Visa/Master, XOF - visamaster.xof
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.ua/success/1", "FAIL_URL" => "https://test.ua/fail/1", "STATUS_URL" => "https://test.ua/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;