Перейти к основному содержимому

Статус ордера и колбэк

Рекомендация

Мы рекомендуем использовать колбэки вместо постоянных запросов получения статуса ордера.

Запрос

Чтобы получить статус ордера вы можете использовать следующий запрос к API:

POST /v2/order/status
POST /v2/order/status HTTP/1.1
Content-Type: application/json
Accept: application/json; charset=utf-8
Api-key: {publicApiKey}
Signature: {signature}
{
/* One of the following: */
"order_id": "merchant_unique_order_id"
/* or */
"order_uuid": "3e7d0f84-d655-4069-991c-ad4739874ca5"
}

Ожидается один из следующих параметров:

  • order_id – Уникальный идентификатор платежа в системе мерчанта
  • order_uuid – ID ордера в системе FlyPay

Ответ

RESPONSE
HTTP/1.1 200 OK
Content-Type: application/json

{
/* The overall status of the request, not the order status */
"status": "success",
"data": {
"order_uuid":"3e7d0f84-d655-4069-991c-ad4739874ca5",
"order_type":"deposit_exchange_withdraw",
"user_order_id":"merchant_unique_order_id",
"description": null,
"expected_amount_from":"29",
"amount_from":null,
"currency_from":"usdt",
"network_from":"trc20",
"deposit_from_user": null,
"wallet_from":null,
"wallet_memo_from":null,
"expected_amount_to":"0.00103988",
"amount_to":null,
"strict_withdrawal_amount": false | true,
"currency_to":"btc",
"network_to":"btc",
"withdraw_to_user": null,
"wallet_to":"2N9MQVd2rQZF9TEE3SXHzjvBUNgFWr2qf6V",
"wallet_memo_to":null,
"wallet_to_details": null | {},
"wallet_to_transactions": [],
"amount_from_fee":null,
"amount_to_fee":"0",
"deposit_url":null,
"deposit_address":"TVb4KtWABb9vyzMhiLm3cgFaE11MCZfvQu",
"deposit_memo":null,
"blockchain_deposit_hash": null,
"blockchain_withdrawal_hash": null,
"exchange_rate_initial":"0.000035858",
"exchange_rate_actual":null,
"client_info": {
"client_id": "id1234",
"client_ip": "127.0.0.1",
"client_email": "[email protected]"
},
/* Order status */
"status":"new",
"error_code":0,
"error_message":"",
"created_at":"1970-01-01 19:17:37",
"updated_at":"1970-01-01 19:17:38",
"finalized_at":null,
"start_order_at": null,
"currency_from_precision": 2,
"currency_to_precision": 8
}
}

Описание параметров в ответе:

  • order_uuid – ID ордера в системе FlyPay
  • order_type – Тип ордера
  • user_order_id – Уникальный идентификатор платежа в системе мерчанта
  • description – Описание ордера
  • expected_amount_from – Ожидаемая сумма депозита
  • amount_from – Фактическая сумма депозита
  • currency_from – Валюта пополнения
  • network_from – Сеть депозита
  • deposit_from_user – null
  • wallet_from – Кошелек, из которого выполнен депозит (номер карты или адрес в блокчейне)
  • wallet_memo_from – tag/memo адреса в блокчейне, из которого выполнен депозит
  • expected_amount_to – Ожидаемая сумма зачисления на кошелек (карту или адрес в блокчейне)
  • amount_to – Фактическая сумма зачисления на кошелек (карту или адрес в блокчейне)
  • strict_withdrawal_amount – true если amount_to была указана при создании ордера
  • currency_to – Валюта выплаты
  • network_to – Сеть выплаты
  • withdraw_to_user – null
  • wallet_to – Кошелек, на который происходит выплата (номер карты или адрес блокчейна)
  • wallet_memo_to – tag/memo адреса в блокчейне, на который происходит выплата
  • wallet_to_details – Содержит данные выплаты, которые указывались при запросе в параметре wallet_details
  • wallet_to_transactions – Содержит данные выплаты на несколько карт, иначе null
  • amount_from_fee – Сумма комиссии в валюте депозита
  • amount_to_fee – Сумма комиссии в валюте выплаты
  • deposit_url – URL на который нужно перенаправить клиента для совершения платежа
  • deposit_address – Адрес в блокчейне, на который нужно отправить депозит
  • deposit_memo – tag/memo адреса в блокчейне, на который нужно отправить депозит
  • deposit_address_title – Название депозит адреса, если это постоянный депозит адрес, и для него было создано название
  • deposit_address_initial_order_uuid – order_uuid первого ордера в системе, где был использован данный депозит адрес, если есть
  • blockchain_deposit_hash – Хэш транзакции в блокчейне для завершенного депозита в крипто валюте
  • blockchain_withdrawal_hash – Хэш транзакции в блокчейне для завершенной выплаты в крипто валюте
  • exchange_rate_initial – Ожидаемый курс обмена при создании ордера
  • exchange_rate_actual – Фактический курс обмена
  • statusСтатус ордера (new)
  • error_code – Код ошибки
  • error_message – Текст сообщения об ошибке
  • created_at – Дата и время создания ордера в формате "Y-m-d H:i:s"
  • updated_at – Дата и время обновления ордера в формате "Y-m-d H:i:s"
  • finalized_at – Дата и время финализации ордера в формате "Y-m-d H:i:s"
  • start_order_at – null
  • currency_from_precision – Точность валюты депозита или обмена, количество знаков после запятой
  • currency_to_precision – Точность валюты выплаты, количество знаков после запятой

Неожиданные ошибки в процессе создания ордера

На этапе создания ордера вы можете столкнуться с ошибками и не быть уверенным, был ли создан ордер. В этом случае вам необходимо проверить, был ли ордер действительно создан или нет.

Колбэк

Вы также можете пологаться на колбэк, который будет отправлен на callback_url, который вы указали при создании ордера, как только ордер получит свой окончательный статус.

Структура сообщения колбэка такая же, как и объекта в ответе на запрос статуса ордера.

важно

Нет гарантии, что колбэк будет доставлен только один раз.

Работает так называемый принцип хотя бы одной доставки.

Мы стараемся доставить колбэк до тех пор, пока вы не ответите кодом статуса http 200 OK или 201 OK.

В случае непредвиденного ответа или сбоя сети, система повторит попытку доставки не более 20 раз. Каждая последующая попытка доставить колбэк будет сделана с двойной задержкой.

Список статусов ордера

Названиеэто финальный статус?Описание
newнетНовый, ожидается проведение транзакций
processingнетВ процессе, транзакции обрабатываются
completedдаУспешно выполнен
completed_partiallyдаВыполнен частично, часть суммы осталась на балансе мерчанта необмененной или невыплаченой (для ордеров с обменом или выплатой)
canceledдаОтменен (используется если депозит не был получен в установленное время)
errorдаОшибка. Ордер не был исполнен.