Увага! Для отримання api-ключів:
Зареєструйте профіль у нас на сайті. Верифікуйте номер телефону і емейл-адресу. Звертайтеся до служби підтримки через Телеграм-бот @Fly_pay_support .
Опис запитів Для використання API потрібно надсилати запит POST на URL: https://fly-pay.io/api/v1/ з обов'язковими заголовками:
"Accept: application/json",
"Content-Type: application/json",
"Api-Key: {public_key}",
"Signature: {signature_by_data}",
Параметри запиту надсилаються у форматі JSON .
Заголовок Authorization має містити публічний ключ користувача (public_key) для авторизації запиту.
Цифровий підпис для заголовка Signature формується методом HMAC на основі алгоритму "sha256 " з використанням секретного ключа користувача (secret_key) .
Приклад генерації підпису:
$json_data = json_encode($data);
$signature = hash_hmac("sha256", $json_data, $secret_key);
Відповідь API також містить заголовок Signature із цифровим підписом для верифікації.
Приклад повного запиту через curl з наступним відділенням у відповіді заголовка з підписом та перевіркою підпису:
// Create a callback to capture HTTP headers for the response
$rheaders = [];
$headerCallback = function ($curl, $header_line) use (&$rheaders) {
// Ignore the HTTP request line (HTTP/1.1 200 OK)
if (strpos($header_line, ":") === false) {
return strlen($header_line);
}
list($key, $value) = explode(":", trim($header_line), 2);
$rheaders[strtolower(trim($key))] = trim($value);
return strlen($header_line);
};
$json_data = json_encode($data);
$config = [
CURLOPT_USERAGENT => FlyPay user',
CURLOPT_URL => 'https://fly-pay.io/api/v1/balances',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_HEADERFUNCTION => $headerCallback,
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Content-Type: application/json',
'Api-key: '. $public_key,
'Signature: '. hash_hmac("sha256", $json_data, $secret_key),
],
CURLOPT_AUTOREFERER => true,
CURLOPT_POSTFIELDS => json_encode($data),
];
$curl = curl_init();
curl_setopt_array($curl, $config);
$response = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
/// get response body without headers
$response = substr($response, $header_size);
curl_close($curl);
/// do verification of $response
$response_signature = $rheaders['signature'];
$check_signature = hash_hmac("sha256", $response, $secret_key);
If ( hash_equals($check_signature, $response_signature) ){
/// response is verified
$response = json_decode($response, true);
}
У відповідь на запит надсилається JSON рядок зі статусом запиту (поле status – успішно або не успішно прийнятий запит в API), описом помилки у разі не успішного запиту (message), а також даними результату (data) у разі успішної обробки запиту:
{
"status": String, // success OR error
"message": String, // Optional - Если статус error, описание ошибки
"data": {
"field_1": " value_1",
"field_2": " value_2",
...
}
}
Для запитів створення транзакції на оплату рядок data також міститиме поле status зі статусом даної транзакції.
Private API Баланс акаунта Для отримання балансів гаманців використовується метод balances (" .../api/v1/balances ").
Запит
{ }
Відповідь
{
"status": "success",
"data": {[
"{currency}": [
"symbol": String,
"name": String,
"amount": Float,
"amount_locked": Float,
"available_amount": Float,
"is_crypto": Bool,
],
]}
}
Опис параметрів:
symbol - Символ валюти name - Назва валюти латиницею amount - Доступна кількість балансу amount_locked - К-ть коштів заблокованих (в оплатах) is_crypto - Якщо вказано значення true або 1, це вказує, що валюта є криптовалютою.
Способи оплати (payways) Метод payways ( ".../api/v1/payways ") дозволяє отримати доступні користувачу способи оплати/виплати/обміну, комісію за проведення платежу, мінімальну та максимальну суми.
Запит
{ }
Відповідь
{
"status": "success",
"data": {[
"payin/payout/exchange_payin/exchange_payout": {[
"{symbol}": {[
"{payway}": [
"symbol": String,
"name": String,
"min_amount": Float,
"max_amount": Float,
"percent_fee": Float,
"amount_fee": Float,
"append_fee": Bool,
"is_crypto": Bool,
"has_memo_id": Bool,
"payway": String,
"auto_conversation": Array,
]
]}
]},
"exchange": {[
"{currency_from}_{currecy_to}": {
"currency_from": String,
"currency_to": String,
"currency_from_precision": Int,
"currency_to_precision": Int,
"exchange_rate": Float,
"min_amount": Float,
"max_amount": Float,
"percent_fee": Float,
"amount_fee": Float,
"currency_fee": String,
}
]}
}
Опис параметрів:
symbol - Символ валюти name - Назва валюти латиницею min_amount - Мін. сума операції max_amount- Макс. сума операції percent_fee - Відсоток комісії від суми оплати/виплати amount_fee - Фіксована комісія за здійснення оплати/виплати (сума) append_fee - Якщо вказано значення true або 1, це вказує, що комісія буде нарахована на суму платежу is_crypto - Якщо вказано значення true або 1, це вказує, що валюта є криптовалютою. has_memo_id - Вказує, що криптовалюта має Memo ID auto_conversation - Масив валют, в які можна конвертувати отримані кошти, якщо створюється постійна Депозитна адреса.
Транзакції Прийом платежу (payin) Для прийому оплати використовується метод transaction/payin ( " .../api/v1/transaction/payin " ). Метод створює заявку приймання оплати.
Запит
{
"external_id": String,
"currency": String,
"payway": String, //(Optional)
"amount": Float,
"client_id": String,
"client_ip": String,
"client_email": String,
"callback_url": String, //(Optional)
}
Опис параметрів:
external_id - Внутрішній ідентифікатор транзакції Мерчант. currency - Валюта транзакції (btc, usdt, ...) payway - Спосіб оплати ( див. розділ Способи оплати ) amount - Сума платежу client_id - ID клієнта у системі мерчанта client_ip – IP клієнта, що здійснює платіж client_email - Email клієнта, що здійснює платіж callback_url - url адреса для сервер-сервер повідомлення про результат транзакції Відповідь
{
"status": "success",
"data": {
"id": Integer,
"create_time": Integer,
"update_time": Integer,
"external_id": String,
"currency_from": String,
"currency_to: String,
"payway: String,
"wallet": String,
"wallet_memo_id": String,
"amount_ordered": Float,
"amount_received": Float,
"type": String,
"status": String,
"tx_id": String,
"payment_amount_fee": Float,
"payment_currency_fee": String,
"convert_status": ,
"in_amount": Float,
"out_amount": Float,
"amount_fee": Float,
"conversation_amount_fee": Float,
"conversation_currency_fee": String,
"callback_url": String,
"client_id": String,
"client_email": String,
"client_ip": String,
}
}
Опис параметрів:
id - Унікальний ідентифікатор платежу у системі FlyPay create_time - Дата та час створення платежу у вигляді таймстампу в секундах. update_time - Дата та час оновлення платежу у вигляді таймстампа в секундах у системі FlyPay external_id - Внутрішній ідентифікатор транзакції Мерчанта. currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) payway - Спосіб оплати (див. розділ Способи оплати ) wallet - Гаманець, на який потрібно надсилати кошти wallet_memo_id - Memo ID гаманця, на який потрібно надсилати кошти amount_ordered - Сума оплати, заявлена користувачем amount_received - Сума реально отримана системою в процесі оплати (видається тільки після закінчення транзакції) type - Тип платежу status - Статус ордераtx_id - Ідентифікатор транзакції у системі блокчейн. Видається лише у разі роботи з криптовалютами payment_amount_fee - Комісія за платіж payment_currency_fee - Валюта комісії convert_status - Статус конвертації in_amount - Сума конвертації у початковій валюті out_amount - Сума конвертації у кінцевій валюті conversation_amount_fee - Комісія за конвертацію conversation_currency_fee - Валюта комісії за конвертацію callback_url - url адреса для сервер-сервер повідомлення про результат транзакції.
Створення виплати (payout) Для створення виплати використовується метод transaction/payout ( " .../api/v1/transaction/payout " ).
Запит
{
"external_id": String,
"currency": String,
"amount": Float,
"payway": String,
"wallet": String,
"wallet_memo_id": String,
"client_id": String,
"client_ip": String,
"client_email": String,
"callback_url": String, (Optional)
}
Опис параметрів:
external_id - Внутрішній ідентифікатор транзакції Мерчант. currency - Валюта транзакції (btc, usdt, ...) amount - Сума платежу payway - Спосіб оплати (див. розділ Способи оплати ) wallet - Номер гаманця, на який потрібно надсилати кошти wallet_memo_id - Memo ID гаманця, на який потрібно надсилати кошти client_id - ID клієнта у системі мерчанта client_ip – IP клієнта, що здійснює платіж client_email - Email клієнта, що здійснює платіж callback_url - url адреса для сервер-сервер повідомлення про результат транзакції Відповідь
{
"status": "success",
"data": {
"id": Integer,
"create_time": Integer,
"update_time": Integer,
"external_id": String,
"currency_from": String,
"currency_to: String,
"payway: String,
"wallet": String,
"wallet_memo_id": String,
"amount_spent": Float,
"type": String,
"status": String,
"tx_id": String,
"payment_amount_fee": Float,
"payment_currency_fee": String,
"convert_status": ,
"in_amount": Float,
"out_amount": Float,
"conversation_amount_fee": Float,
"conversation_currency_fee": String,
"callback_url": String,
"client_id": String,
"client_email": String,
"client_ip": String,
}
}
Опис параметрів:
id - Унікальний ідентифікатор платежу у системі FlyPay create_time - Дата та час створення платежу у вигляді таймстампу в секундах. update_time - Дата та час оновлення платежу у вигляді таймстампа в секундах у системі FlyPay external_id - Внутрішній ідентифікатор транзакції Мерчант. currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) payway - Спосіб оплати (див. розділ Способи оплати ) wallet - Номер гаманця, на який потрібно надсилати кошти wallet_memo_id - Memo ID гаманця, на який потрібно надсилати кошти amount_spent - Суму, яка буде утримана з балансу при виплаті type - Тип платежу status - Статус ордераtx_id - Ідентифікатор транзакції у системі блокчейн. Видається лише у разі роботи з криптовалютами payment_amount_fee - Комісія за платіж payment_currency_fee - Валюта комісії convert_status - Статус конвертації in_amount - Сума конвертації у початковій валюті out_amount - Сума конвертації у кінцевій валюті conversation_amount_fee - Комісія за конвертацію conversation_currency_fee - Валюта комісії за конвертацію callback_url - url адреса для сервер-сервер повідомлення про результат транзакції.
Прийом платежу з обміном (exchange_payin) Для прийому оплати з конвертацією її в іншу валюту використовується метод transaction/exchange_payin ( " .../api/v1/transaction/exchange_payin " ). Метод створює заявку на прийом оплати та після отримання оплати конвертує її у вказану валюту currency_to.
Запит
{
"external_id": String,
"currency_from": String,
"currency_to": String,
"payway": String,
"amount": Float,
"client_id": String,
"client_ip": String,
"client_email": String,
"callback_url": String, (Optional)
}
Опис параметрів:
external_id - Внутрішній ідентифікатор транзакції Мерчант. currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) payway - Спосіб оплати ( див. розділ Способи оплати ) amount - Сума платежу у валюті currency_from client_id - ID клиента в системе мерчантаclient_ip – IP клієнта, що здійснює платіж client_email - Email клієнта, що здійснює платіж callback_url - url адреса для сервер-сервер повідомлення про результат транзакції Відповідь
{
"status": "success",
"data": {
"id": Integer,
"create_time": Integer,
"update_time": Integer,
"external_id": String,
"currency_from": String,
"currency_to: String,
"payway: String,
"wallet": String,
"wallet_memo_id": String,
"amount_ordered": Float,
"amount_received": Float,
"type": String,
"status": String,
"tx_id": String,
"payment_amount_fee": Float,
"payment_currency_fee": String,
"convert_status": ,
"in_amount": Float,
"out_amount": Float,
"amount_fee": Float,
"conversation_amount_fee": Float,
"conversation_currency_fee": String,
"callback_url": String,
"client_id": String,
"client_ip": String,
"client_email": String,
}
}
Опис параметрів:
id - Унікальний ідентифікатор платежу у системі FlyPay create_time - Дата та час створення платежу у вигляді таймстампу в секундах. update_time - Дата та час оновлення платежу у вигляді таймстампа в секундах у системі FlyPay external_id - Внутрішній ідентифікатор транзакції Мерчант. currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) payway - Спосіб оплати (див. розділ Способи оплати) wallet - Номер гаманця, на який потрібно надсилати кошти wallet_memo_id - Memo ID гаманця, на який потрібно надсилати кошти amount_ordered - Сума оплати, заявлена користувачем amount_received - Сума реально отримана системою в процесі оплати (видається тільки після закінчення транзакції) type - Тип платежу status - Статус ордераtx_id - Ідентифікатор транзакції у системі блокчейн. Видається лише у разі роботи з криптовалютами payment_amount_fee - Комісія за платіж convert_status - Статус конвертації in_amount - Сума конвертації у початковій валюті out_amount - Сума конвертації у кінцевій валюті conversation_amount_fee - Комісія за конвертацію conversation_currency_fee - Валюта комісії за конвертацію callback_url - url адреса для сервер-сервер повідомлення про результат транзакції.
Створення виплати з обміном (exchange_payout) Для створення виплати з обміном використовується метод transaction/exchange_payout ( " .../api/v1/transaction/exchange_payout " ).
Запит
{
"external_id": String,
"currency_from": String,
"currency_to": String,
"amount": Float,
"payway": String,
"wallet": String,
"wallet_memo_id": String,
"client_id": String,
"client_ip": String,
"client_email": String,
"callback_url": String, (Optional)
}
Опис параметрів:
external_id - Внутрішній ідентифікатор транзакції Мерчант. currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) amount - Сума платежу, яка буде списана з гаманця currency_from payway - Спосіб оплати (див. розділ Способи оплати ) wallet - Номер гаманця, на який потрібно надсилати кошти wallet_memo_id - Memo ID гаманця, на який потрібно надсилати кошти client_id - ID клієнта у системі мерчанта client_ip – IP клієнта, що здійснює платіж client_email - Email клієнта, що здійснює платіж callback_url - url адреса для сервер-сервер повідомлення про результат транзакції Відповідь
{
"status": "success",
"data": {
"id": Integer,
"create_time": Integer,
"update_time": Integer,
"external_id": String,
"currency_from": String,
"currency_to: String,
"payway": String,
"wallet": String,
"wallet_memo_id": String,
"amount_spent": Float,
"type": String,
"status": String,
"tx_id": String,
"payment_amount_fee": Float,
"payment_currency_fee": String,
"convert_status": ,
"in_amount": Float,
"out_amount": Float,
"conversation_amount_fee": Float,
"conversation_currency_fee": String,
"callback_url": String,
"client_id": String,
"client_ip": String,
"client_email": String,
}
}
Опис параметрів:
id - Унікальний ідентифікатор платежу у системі FlyPay create_time - Дата та час створення платежу у вигляді таймстампу в секундах. update_time - Дата та час оновлення платежу у вигляді таймстампа в секундах у системі FlyPay external_id - Внутрішній ідентифікатор транзакції Мерчант. currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) payway - Спосіб оплати (див. розділ Способи оплати ) wallet - Номер гаманця, на який потрібно надсилати кошти wallet_memo_id - Memo ID гаманця, на який потрібно надсилати кошти amount_spent - Суму, яка буде утримана з балансу при виплаті type - Тип платежу status - Статус ордераtx_id - Идентификатор транзакции в системе блокчейн. Выдается только в случае работы с криптовалютамиpayment_amount_fee - Комісія за платіж payment_currency_fee - Валюта комісії convert_status - Статус конвертації in_amount - Сума конвертації у початковій валюті out_amount - Сума конвертації у кінцевій валюті conversation_amount_fee - Комісія за конвертацію conversation_currency_fee - Валюта комісії за конвертацію callback_url - url адреса для сервер-сервер повідомлення про результат транзакції.
Отримання статусу транзакції (status) Для перевірки стану транзакції використовується метод transaction/status ( " .../api/v1/transaction/status " ).
Запит
{
"id": Integer,
// OR
"external_id": String,
}
Опис параметрів:
id - Унікальний ідентифікатор платежу у системі FlyPay external_id - Внутрішній ідентифікатор транзакції Мерчант. Відповідь містить дані ордера та його статус у форматі, описаному в розділі Прийом платежу або Створення виплати .
Історія транзакцій (transactions) Список транзакцій у вказаному діапазоні дат/часу можна отримати методом transaction/history ( " ... /api/v1/transaction/history " ).
Запит
{
"limit": Integer, (Optional)
"page": Integer, (Optional)
}
Опис параметрів:
limit – Число записів у відповіді (максимум 100) page - Номер сторінки (за замовчуванням 1) Відповідь
{
"status": "success",
"total_count: Integer,
"page: Integer,
"per_page: Integer,
"data": [
{
...
}
]
}
Опис параметрів:
total_count - Загальна кількість транзакцій page - Номер сторінки per_page - Кількість транзакцій на сторінку data - Масив транзакцій, що потрапили у задану вибірку. Кожна транзакція передається у форматі, вказаному у методі status.
Deposit addresses Створення депозиту адреси Створити новий депозит адреси на тривалість життя 1 рік після неактивності можно методом deposit_address/create ( " .../api/v1/deposit_address/create " ).
Запит
{
"currency_from": String,
"currency_to": String (Optional)
"payway": String (Optional)
"client_id": String,
"client_ip": String,
"client_email": String,
"callback_url": String, (Optional)
}
Опис параметрів:
currency_from - Валюта, в якій буде створено Депозит адресу currency_to - Валюта, в яку потрібно конвертувати депозит, що надійшов. (Якщо автоконвертацію використовувати не потрібно, залишити порожнім). payway - Спосіб оплати (див. розділ Способи оплати ) client_id - ID клієнта у системі мерчанта client_ip – IP клієнта, що здійснює платіж client_email - Email клієнта, що здійснює платіж callback_url - URL зворотного дзвінка, який зможе обробити POST-запит при успішному депозиті Відповідь
{
"status": "success",
"data": {
"id": Integer,
"create_time": Integer,
"update_time": Integer,
"currency_from": String,
"currency_to": String,
"payway": String,
"address": String,
"memo_id": String,
"min_amount": Float,
"client_id": String,
"client_ip": String,
"client_email": String,
"callback_url": String,
"active": Bool,
}
}
Опис параметрів:
id - Унікальний ідентифікатор адреси у системі FlyPay create_time - Дата та час створення адреси у вигляді таймстампу в секундах. update_time - Дата та час оновлення адреси у вигляді таймстампу в секундах у системі FlyPay currency_from - Валюта, в якій буде створено Депозит адресу currency_to - Валюта, в яку потрібно конвертувати депозит, що надійшов. payway - Спосіб оплати (див. розділ Способи оплати ) address - Адреса для депозиту memo_id - Memo ID для криптовалют, яким потрібний memo (xrp, eos, stellar) min_amount - Мінімальний розмір депозиту callback_url - URL зворотного виклику, який зможе обробити POST-запит за успішного депозиту active - Якщо вказано значення true або 1, це вказує, що адреса активна
Отримання списку депозит адрес Список депозит адрес можна отримати методом deposit_address/list ( " .../api/v1/deposit_address/list " ).
Запит
{
"currency": String, (Optional)
"limit": Integer, (Optional)
"page": Integer, (Optional)
}
Опис параметрів:
currency - Валюта, в якій потрібно повернути список адрес (Якщо залишити порожнім, повернеться список усіх адрес) limit – Число записів у відповіді (максимум 100) page - Номер сторінки (за замовчуванням 1) Відповідь
{
"status": "success",
"total_count: Integer,
"page: Integer,
"per_page: Integer,
"data": [
{
...
}
]
}
Опис параметрів:
total_count - Загальна кількість адресpage - Номер сторінкиper_page - Кількість адрес на сторінкуdata - Масив адрес, що потрапили у задану вибірку. Кожна адреса передається у форматі, вказаному у методі deposit_address/create .
Exchanges Отримання передбачуваної суми обміну Для отримання передбачуваної суми обміну використовується метод exchange/estimated_amount (" .../api/v1/exchange/estimated_amount " ). Метод віддає приблизну суму обміну по валютній парі.
Запит
{
"currency_from": String,
"currency_to": String,
"amount": Float
}
Опис параметрів:
currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) amount - Сума обміну Відповідь
{
"status”: “success",
"data": {
"currency_from": String,
"currency_to: String,
"amount_from": Float,
"amount_to": Float,
}
}
Опис параметрів:
currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) amount_from - Сума оплати, заявлена користувачем amount_to - Сума конвертації у кінцевій валюті
Створення обміну Для створення виплати з обміном використовується метод transaction/exchange ( " .../api/v1/transaction/exchange " ).
Запит
{
"external_id": String,
"currency_from": String,
"currency_to": String,
"amount": Float,
"client_id": String,
"client_ip": String,
"client_email": String,
"callback_url": String, (Optional)
}
Опис параметрів:
external_id - Внутрішній ідентифікатор транзакції Мерчант. currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) amount - Сума платежу, яка буде списана з гаманця currency_from client_id - ID клієнта у системі мерчанта client_ip – IP клієнта, який здійснює обмін client_email - Email клієнта, який здійснює обмін callback_url - url адреса для сервер-сервер повідомлення про результат транзакції Відповідь
{
"status": "success",
"data": {
"id": Integer,
"create_time": Integer,
"update_time": Integer,
"external_id": String,
"currency_from": String,
"currency_to: String,
"amount_from": Float,
"amount_to": Float,
"type": String,
"status": String,
"amount_fee": Float,
"currency_fee": String,
"callback_url": String,
"client_id": String,
"client_email": String,
"client_ip": String,
}
}
Опис параметрів:
id - Унікальний ідентифікатор платежу у системі FlyPay create_time - Дата та час створення транзакції у вигляді таймстампу в секундах. update_time - Дата та час оновлення транзакції у вигляді таймстампу в секундах у системі FlyPay external_id - Внутрішній ідентифікатор транзакції Мерчанта. currency_from - Валюта вихідного гаманця (btc, usdt, …) currency_to - Валюта вхідного гаманця (btc, usdt, …) amount_from - Сума оплати, заявлена користувачем amount_to - Сума конвертації у кінцевій валюті type - Тип платежу status - Статус ордераamount_fee - Комісія за обмін currency_fee - Валюта комісії обміну callback_url - url адреса для сервер-сервер повідомлення про результат транзакції. client_id - ID клієнта у системі мерчанта client_ip – IP клієнта, який здійснює обмін client_email - Email клієнта, який здійснює обмін