Статус заказа (основной канал — polling)

GET/api/reseller/order/{custom_id}
curl https://hexpay.live/api/reseller/order/<custom_id> \
  -H "Authorization: Bearer <YOUR_API_KEY>"
Paste your key in the menu and it will replace <YOUR_API_KEY>.
{
  "success": true,
  "custom_id": "a4cee2fe-ce8c-448b-bf2c-000000000001",
  "status": "delivered",
  "product": "stars",
  "product_ref": null,
  "gift_id": null,
  "recipient": "durov",
  "quantity": 100,
  "price_quoted_rub": 132.07,
  "price_quoted_nano": 132070,
  "price_charged_rub": 132.07,
  "price_charged_nano": 132070,
  "delivered_payload": {
    "key": "37ada9160f7870a33fc8",
    "tx_hash": "37ada9160f7870a33fc8"
  },
  "activation_guide": "🤖 После оплаты вы получите CDK-ключ. Активация на https://9977ai.vip/: 1. Войдите в свой аккаунт…",
  "error_code": "recipient_invalid",
  "error_message": "Получатель не найден или не может принять этот товар",
  "refunded": true,
  "refund_amount_nano": 132070,
  "refund_amount_rub": 132.07,
  "delivery_state": "queued",
  "action_required": {
    "type": "confirm_login",
    "url": null,
    "expires_at": "2026-08-21T12:30:00Z",
    "hint": null
  },
  "eta_seconds": 0,
  "refunded_at": "2026-08-21T12:00:41Z",
  "created_at": "2026-08-21T12:00:00Z",
  "completed_at": "2026-08-21T12:00:41Z"
}

Authorization

Header Authorization: Bearer <key> on every request. The key is issued in the cabinet and shown once. It spends your deposit: keep it on the server.

Response fields

successbooleanoptional
custom_idstringoptional
statusstringoptional

created — цена зафиксирована, депозит не списан • pending — оплачен, ждёт доставки • processing — доставляется • delivered — доставлен (терминальный) • failed — доставка не удалась, депозит возвращён (терминальный) • cancelled — неоплаченный заказ истёк по TTL либо заказ отменён нами вручную; если он был оплачен, депозит возвращён (терминальный) • rejected — на оплате не хватило депозита, списания не было (терминальный)

one of:createdpendingprocessingdeliveredfailedcancelledrejected
productstringoptional
product_refstringoptional

для gift — gift_id; для neural — код позиции; для game и apple — product_ref из каталога

gift_idstringoptional

устаревший алиас product_ref — используйте product_ref

recipientstringoptional
quantityintegeroptional

для gift — звёздность подарка; для steam — сумма пополнения в ₽

price_quoted_rubnumberoptional
price_quoted_nanointegeroptional
price_charged_rubnumberoptional
price_charged_nanointegeroptional
delivered_payloadobjectoptional

Что именно доставлено. У части товаров это лишь подтверждение, у нейросетей и пакетов игровых кодов — сам товар, который нужно отдать покупателю: • stars, premium — tx_hash транзакции Fragment • gift — tx_hash: null, подтверждение — статус deliveredneural — `key`: CDK-ключ подпискиgame (коды) — `codes`: массив кодовapple — `codes`: массив кодов активации • steam и игры-пополнения — tx_hash с идентификатором заказа у исполнителя Если поставщик отдал меньше карт, чем заказано, рядом приходят partial_delivery: true, ordered_quantity и delivered_quantity, а разница возвращается на депозит — см. «Частичная выдача». tx_hash у neural/game — историческое имя, там лежит тот же ключ (у кодов — склеенный через ; ). Поле оставлено ради ранних интеграций; новый код пишите на key и codes.

activation_guidestringoptional

Инструкция активации — что покупателю делать с товаром. Приходит для всех товаров: у нейросети это активация ключа, у Apple — погашение карты с предупреждением про регион, у Stars и Premium — честное «активировать нечего». Текст зависит от позиции: страна карты Apple, вид доставки игры. Язык — параметр ?lang=ru|en того же запроса. Тот же текст доступен заранее через GET /api/reseller/guide. В теле вебхука это поле НЕ приходит.

error_codestringoptional

машиночитаемая причина провала — ветвитесь по нему, а не по тексту

one of:recipient_invalidout_of_stockproduct_unavailableinvalid_order_datadelivery_rejecteddelivery_faileddelivery_in_reviewtemporary_failureorder_cancelledaction_expired
error_messagestringoptional

человекочитаемый текст причины

refundedbooleanoptional

на депозит вернулись деньги — всегда true при status=failed, при status=cancelled с оплатой, а также при частичной выдаче (status=delivered). Сколько именно — в refund_amount_nano

refund_amount_nanointegeroptional

сколько вернулось на депозит (при частичной выдаче — только за невыданное)

refund_amount_rubnumberoptional
delivery_statestringoptional

Только у асинхронных товаров (Spotify). Уточняет, что происходит внутри статуса processing — сам status при этом остаётся одним из семи известных вам значений, нового мы не вводили. action_required означает, что дело за покупателем.

one of:queuedprocessingaction_requiredworkingin_reviewdonefailed
action_requiredobjectoptional

Только у асинхронных товаров и только когда нужно действие покупателя.

eta_secondsintegeroptional

сколько секунд осталось на действие покупателя

refunded_atstringoptional
created_atstringoptional
completed_atstringoptional

When it fails

401
404
Собираем анонимную аналитику посещений. Подробнее