Статус ордера и колбэк
Мы рекомендуем использовать колбэки вместо постоянных запросов получения статуса ордера.
Запрос
Чтобы получить статус ордера вы можете использовать следующий запрос к API:
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
Ответ
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 ордера в системе FlyPayorder_type
– Тип ордераuser_order_id
– Уникальный идентификатор платежа в системе мерчантаdescription
– Описание ордераexpected_amount_from
– Ожидаемая сумма депозитаamount_from
– Фактическая сумма депозитаcurrency_from
– Валюта пополненияnetwork_from
– Сеть депозитаdeposit_from_user
– nullwallet_from
– Кошелек, из которого выполнен депозит (номер карты или адрес в блокчейне)wallet_memo_from
– tag/memo адреса в блокчейне, из которого выполнен депозитexpected_amount_to
– Ожидаемая сумма зачисления на кошелек (карту или адрес в блокчейне)amount_to
– Фактическая сумма зачисления на кошелек (карту или адрес в блокчейне)strict_withdrawal_amount
– true еслиamount_to
была указана при создании ордераcurrency_to
– Валюта выплатыnetwork_to
– Сеть выплатыwithdraw_to_user
– nullwallet_to
– Кошелек, на который происходит выплата (номер карты или адрес блокчейна)wallet_memo_to
– tag/memo адреса в блокчейне, на который происходит выплатаwallet_to_details
– Содержит данные выплаты, которые указывались при запросе в параметреwallet_details
wallet_to_transactions
– Содержит данные выплаты на несколько карт, иначе nullamount_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
– nullcurrency_from_precision
– Точность валюты депозита или обмена, количество знаков после запятойcurrency_to_precision
– Точность валюты выплаты, количество знаков после запятой
Неожиданные ошибки в процессе создания ордера
На этапе создания ордера вы можете столкнуться с ошибками и не быть уверенным, был ли создан ордер. В этом случае вам необходимо проверить, был ли ордер действительно создан или нет.
Колбэк
Вы также можете пологаться на колбэк, который будет отправлен на callback_url
, который вы указали при создании ордера, как только ордер получит свой окончательный статус.
Структура сообщения колбэка такая же, как и объекта в ответе на запрос статуса ордера.
Нет гарантии, что колбэк будет доставлен только один раз.
Работает так называемый принцип хотя бы одной доставки.
Мы стараемся доставить колбэк до тех пор, пока вы не ответите кодом статуса http 200 OK
или 201 OK
.
В случае непредвиденного ответа или сбоя сети, система повторит попытку доставки не более 20 раз. Каждая последующая попытка доставить колбэк будет сделана с двойной задержкой.
Список статусов ордера
Название | это финальный статус? | Описание |
---|---|---|
new | нет | Новый, ожидается проведение транзакций |
processing | нет | В процессе, транзакции обрабатываются |
completed | да | Успешно выполнен |
completed_partially | да | Выполнен частично, часть суммы осталась на балансе мерчанта необмененной или невыплаченой (для ордеров с обменом или выплатой) |
canceled | да | Отменен (используется если депозит не был получен в установленное время) |
error | да | Ошибка. Ордер не был исполнен. |