QR Оплата

Конфигурация API

Версия API

ID торговца

Пароль торговца

Адрес сервера

1. Получение QR кода (createInvoice)

Данные запроса

Уникальный номер заказа в Вашем магазине
Описание платежа
Сумма платежа в копейках (если 0, тогда плательщик сам вводит сумму в приложении)
Валюта платежа (UAH, EUR, RUR и т.д.)
1 = тестовый платеж; 0 = боевой платеж
1 = Счет смогут оплачивать больше одного раза (если указано значение 1, то параметры user_to, date_life, date_start_push, count_push игнорируются), 0 = счет одноразовый
0 = списание с карт Visa & MasterCard; 1 = блокировка денежных средств
Можно выставить счет конкретному пользователю (номер моб. телефона пользователя в международном формате 380xxxxxxxxx, его email адрес или account_id)
Дата срока жизни выставленного счета в формате Y-m-d
Дата с которой начинать отправку PUSH уведомлений
Кол-во уведомлений. 1 уведомление = 1 день. Т.е. один раз в день
URL куда сервер вернет результат о платеже
URL куда вернуть пользователя после успешной оплаты (только для сайтов)
URL куда вернуть пользователя после неудачной оплаты (только для сайтов)
Данные которые возвращаются обратно торговцу при оплате счета
Укажите любое значение

Значение Описание Тип
invoice_id Уникальный идентификатор выставленного счета string (12)
qr URL картинки QR кода string
link_app Ссылка для открытия в приложении string
site_pay Короткая ссылка для оплаты инвойса на сайте string
2. Статус счета (statusPayment)

Данные запроса

Уникальный идентификатор выставленного счета
Уникальный номер заказа на стороне торговца
Получить список платежей по указанному маркеру, работает только для долговременных QR long_term (если маркер не указан или 0, то вернет статус платежа, если указать 1, то вернет список оплаченных платежей с маркером 1)

Значение Описание Тип
status Статус транзакции (возвращается только если счет еще никто не пытался оплатить) (processing – в процессе оплаты; canceled – закончилось время жизни счета date_life) string
payments Массив всех попыток оплатить счет array
- trans_id Уникальный идентификатор транзакции string (12)
- date_pay Дата платежа string
- amount Сумма платежа в копейках int
- order_id Уникальный номер заказа на стороне торговца string (64)
- status Статус транзакции (processing – в процессе оплаты; canceled – закончилось время жизни счета (date_life) или плательщик отменил; approved – платеж зачислен/оплачен; waitingauthcomplete – деньги заблокированы на карте и ждут снятия или отмены платежа) string
- test 0 боевая транзакция; 1 – тестовая; smallint
- description Описание платежа string
- success_url URL куда вернуть пользователя после успешной оплаты (только для сайтов) string
- fail_url URL куда вернуть пользователя после неудачной оплаты (только для сайтов) string
- fields_other Необходимые торговцу данные, которые возвращаются обратно торговцу при оплате счета string
- fields_app Результат выбора плательщиком данных, которые создавались торговцем при выставлении счета string
- email Email пользователя string
- fname Имя string
- lname Фамилия string
- mobile Номер мобильного телефона string
3. Обновить маркер платежа (updateMark)

Данные запроса

Уникальный идентификатор транзакции
Маркер транзакции

Значение Описание Тип
success Вернет true если успех или error код и описание ошибки boolean
4. Снять заблокированную сумму (settlePayment)

Данные запроса

Уникальный идентификатор транзакции
Сумма в копейках

Значение Описание Тип
success Вернет true если успех или error код и описание ошибки boolean
5. Частичный возврат денежных средств (refundPayment)

Данные запроса

Уникальный идентификатор транзакции
Сумма в копейках

Значение Описание Тип
success Вернет true если успех или error код и описание ошибки boolean
6. Отмена платежа / Возврат денежных средств (voidPayment)

Данные запроса

Уникальный идентификатор транзакции

Значение Описание Тип
success Вернет true если успех или error код и описание ошибки boolean
7. Обработка результата платежа на стороне торговца (result_url)

Пример JSON ответа от сервера, который придет Вам на указанный result_url при создании счета

{
  "trans_id": "123456789012",
  "status_pay": 3,
  "site_id": "1000000001",
  "order_id": "12345",
  "amount": 25000,
  "currency": "UAH",
  "mktime": "1487602271287",
  "test": 0,
  "fields_other": null,
  "fields_app": null,
  "hash": "72d4a48dc7fe890af8beb00cd440c12d",
  "account_id": "102541125",
  "mobile": "380971111111",
  "fname": "Vitaliy",
  "lname": "Kurshinov",
  "email": "vit@mymail.com"
}

Данные ответа

Значение Описание Тип
trans_id ID транзакции string (12)
status_pay Статус транзакции 1 - в ожидании оплаты; 2 - транзакция отменена; 3 - оплачено; 5 - деньги заблокированы на карте плательщика; 6 - возврат денег плательщику int (1)
site_id Уникальный идентификатор торговца string (10)
order_id Уникальный идентификатор заказа на стороне торговца string (100)
amount Сумма в копейках int
currency Валюта (UAH, USD, EUR ...) string (3)
mktime Дата и время в микросекундах string
test 1 - тестовая транзакция; 0 - боевая транзакция int (1)
fields_other Данные которые возвращаются обратно торговцу при оплате счета string or object or array
fields_app Дополнительные данные которые возвращаются торговцу при оплате счета object
hash Подпись ответа string (32)
account_id ID плательщика string (9)
mobile Мобильный номер телефона плательщика string (min 10)
fname Имя плательщика string
lname Фамилия плательщика string
email Email плательщика string

Создание подписи hash для проверки статуса платежа

Для формирования hash мы используем алгоритм шифрования HMAC-MD5 . Все необходимые данные необходимо склеить через тройное двоеточие :::

Пример формирования подписи на языке программирования PHP

$respons = json_decode(file_get_contents("php://input"));
$site_passw = 'Z@(K0APS@B~MW1Q';
$hash = hash_hmac('md5', $respons->trans_id.':::'.$respons->status_pay.':::'.$respons->site_id.':::'.$respons->order_id.':::'.$respons->amount.':::'.$respons->currency.':::'.$respons->mktime.':::'.$respons->test, $site_passw);
if ($respons->hash === $hash) // ответ от сервера валидный. в противном случаи ответ не доверенный