/api/reseller/order/createcurl -X POST https://hexpay.live/api/reseller/order/create \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"custom_id": "a4cee2fe-ce8c-448b-bf2c-000000000001",
"product": "stars",
"recipient_username": "durov"
}'{
"success": true,
"custom_id": "a4cee2fe-ce8c-448b-bf2c-000000000001",
"status": "created",
"total_to_pay_rub": 132.07,
"total_to_pay_nano": 132070,
"expires_at": "2026-08-21T12:30:00Z"
}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.
custom_idstringrequiredUUID, придумываете вы — ключ идемпотентности
productstringrequiredstarspremium_3mpremium_6mpremium_12mgiftsteamneuralgameapplespotify_pairingspotify_autorecipient_usernamestringrequiredTelegram-юзернейм для stars/premium/gift; ЛОГИН аккаунта для steam. Для neural, game и apple не нужен — коды выдаются вам.
quantityintegeroptionalСмысл зависит от товара: • stars — количество звёзд (50…1 000 000) • steam — СУММА ПОПОЛНЕНИЯ В РУБЛЯХ (50…50 000) • game — количество пакетов (1…10) • apple — количество карт (1…10, точные границы и шаг — в каталоге) • premium/gift/neural — не передаётся
stars_countintegeroptionalсемантичный алиас quantity для product=stars
amount_rubintegeroptionalсемантичный алиас quantity для product=steam (сумма пополнения)
packages_countintegeroptionalсемантичный алиас quantity для product=game
cards_countintegeroptionalсемантичный алиас quantity для product=apple
gift_idstringoptionalТолько для product=gift. Берётся из GET /api/reseller/gifts.
messagestringoptionalТолько для product=gift. Открытка — текст, который получатель увидит вместе с подарком. Длина считается в UTF-16 code units, как это делает Telegram (эмодзи занимает два). Длиннее — 400, обрезать молча мы не будем.
hide_namebooleanoptionalТолько для product=gift. Скрыть отправителя — получатель увидит подарок анонимным.
codestringoptionalТолько для product=neural. Код позиции из GET /api/reseller/neural.
product_refstringoptionalГотовая строка из каталога:
• game — <game>:<region>:<service_id> из GET /api/reseller/games
• apple — <COUNTRY>:<service_id> из GET /api/reseller/apple
• spotify — <mode>:<plan>:<months> из GET /api/reseller/spotify
fieldsobjectoptional• игры с delivery=topup — ключи из массива fields каталога игр
(например account_number, zone_id);
• Spotify — email аккаунта, а для spotify_auto ещё и password.
В режиме pairing пароль присылать НЕЛЬЗЯ: запрос вернёт 400. Так сделано
намеренно — молча проигнорированный пароль остался бы в ваших логах в
уверенности, что он был нужен.
callback_urlstringoptionalhttps, опционально — вебхук о доставке
successbooleanoptionalcustom_idstringoptionalstatusstringoptionaltotal_to_pay_rubnumberoptionaltotal_to_pay_nanointegeroptionalexpires_atstringoptionalдо этого момента держится зафиксированная цена; потом неоплаченный заказ отменяется (status=cancelled) и его надо создавать заново с новым custom_id
400—401—409Позиции нет в наличии — заказ не создан, деньги не тронуты503Товар временно недоступенcurl -X POST https://hexpay.live/api/reseller/order/create \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"custom_id": "a4cee2fe-ce8c-448b-bf2c-000000000001",
"product": "stars",
"recipient_username": "durov"
}'{
"success": true,
"custom_id": "a4cee2fe-ce8c-448b-bf2c-000000000001",
"status": "created",
"total_to_pay_rub": 132.07,
"total_to_pay_nano": 132070,
"expires_at": "2026-08-21T12:30:00Z"
}