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

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

telegram

Связаться в Telegram

API for developers
Form generation

Payment Reception Form

Description of the Working Scheme.

On the client's web server, a payment form is generated and provided to the user for submission.

After submitting the form, the user is redirected to the processing page to complete the payment.

After the payment is processed, the user is redirected either to the SUCCESS_URL or the FAIL_URL. At the same time, an empty GET request is sent to the STATUS_URL, and upon receiving it, the payment status should be requested (using the /api/einvoice/status endpoint). The INVOICE_ID from the previously generated form should be passed, and further actions should be taken based on the received response.

If you need to accept payment without redirecting to the processing site, you should pass the form as GET parameters to the same address and open the page in an IFRAME on the merchant's website.

<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>

Field Decryption (fields marked with an asterisk are mandatory)

Field Discription
CLIENT_ID* Cash register number from the personal account
SIGN* Request signature
SIGN_ORDER* Order of field concatenation when forming the signature
INVOICE_ID* Invoice number in the merchant's accounting system.
Invoice numbers must be unique (uniqueness is checked)!!! With one number, you can accept payment only once!!!
AMOUNT* The amount to be debited
ACCOUNT User identifier in the merchant's system (account number or any other unique identifier)
CURRENCY* Currency for issuing the invoice. Available currencies: UAH, USD, EUR, LTC, BTC, BCH, USDT
PAYMENT_CURRENCY Currency in which the payment should be accepted. Available currencies:
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
VisaMaster, UAH - visamaster.uah
VisaMaster, USD - visamaster.usd
VisaMaster, NGN - visamaster.ngn
VisaMaster, XOF - visamaster.xof
DESCRIPTION Description of the invoice
SUCCESS_URL* URL to which the user will be redirected after successful payment
FAIL_URL* URL to which the user will be redirected after unsuccessful payment
STATUS_URL* URL to which a callback is sent when the invoice reaches its final status. An empty GET request is sent, and upon receiving it, the merchant should request the invoice status via the API and make decisions based on the received data

When making the request, either the CURRENCY or PAYMENT_CURRENCY field is mandatory. In case both fields are provided, the priority is given to PAYMENT_CURRENCY, and the CURRENCY field is ignored.

Example of signature formation in 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;