Быстрый старт

Быстрый старт

От нуля до первого доставленного заказа за 5 минут.

Шаг 1. Получите ключ и депозит

  1. Откройте нашего бота → кнопка «🔌 API».
  2. «🔑 API-ключ» → «Выпустить ключ».
  3. «💳 Пополнить депозит» → выберите способ оплаты и сумму.

API-ключ показывается только один раз. Сразу сохраните его в надёжном месте.

Шаг 2. Проверьте баланс и цены

curl -H "Authorization: Bearer $KEY" \
  https://hexpay.live/api/reseller/balance
# {"success": true, "balance_nano": 500000, "balance_rub": 500.0}

curl -H "Authorization: Bearer $KEY" \
  https://hexpay.live/api/reseller/products

Шаг 3. Посмотрите каталог нужного товара

Для подарков, нейросетей и игр получите доступные позиции перед созданием заказа:

curl -H "Authorization: Bearer $KEY" \
  https://hexpay.live/api/reseller/gifts

curl -H "Authorization: Bearer $KEY" \
  https://hexpay.live/api/reseller/neural

curl -H "Authorization: Bearer $KEY" \
  https://hexpay.live/api/reseller/games

curl -H "Authorization: Bearer $KEY" \
  "https://hexpay.live/api/reseller/games?game=<key>"

curl -H "Authorization: Bearer $KEY" \
  "https://hexpay.live/api/reseller/games?game=<key>&region=<code>"

Третий запрос для игр — с game и region — возвращает готовый product_ref, оптовую цену, способ доставки (delivery) и обязательные fields для пополнения.

Шаг 4. Закажите (двухфазно: create → pay)

Заказ создаётся в два шага: сначала фиксируете цену (create), затем списываете депозит (pay).
custom_id придумываете вы (UUID) — это ключ идемпотентности.

Используйте новый custom_id для каждого заказа. Повторный create или pay с тем же значением не создаст новый заказ и не спишет депозит повторно.

# 3.1 — создать заказ (цену зафиксировали, депозит НЕ списан)
curl -X POST https://hexpay.live/api/reseller/order/create \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"custom_id":"my-order-0001","product":"stars","recipient_username":"durov","quantity":100}'
# {"success":true,"custom_id":"my-order-0001","status":"created","total_to_pay_rub":131.68}

# 3.2 — оплатить (списать депозит, поставить в доставку)
curl -X POST https://hexpay.live/api/reseller/order/pay \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"custom_id":"my-order-0001"}'
# {"success":true,"custom_id":"my-order-0001","status":"pending","price_charged_rub":131.68}

Шаг 5. Дождитесь доставки (polling)

Доставка асинхронная — опрашивайте статус до delivered или failed:

curl -H "Authorization: Bearer $KEY" \
  https://hexpay.live/api/reseller/order/my-order-0001
# {"success":true,"status":"delivered","delivered_payload":{"tx_hash":"..."}, ...}

Полный сценарий на Python

import requests, uuid, time

BASE = "https://hexpay.live"
KEY = "ВАШ_КЛЮЧ"
H = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}

# баланс
print(requests.get(f"{BASE}/api/reseller/balance", headers=H).json())

custom_id = str(uuid.uuid4())

# create → pay
r = requests.post(f"{BASE}/api/reseller/order/create", headers=H, json={
    "custom_id": custom_id, "product": "stars",
    "recipient_username": "durov", "quantity": 100,
}).json()
print("create:", r)

r = requests.post(f"{BASE}/api/reseller/order/pay", headers=H,
                  json={"custom_id": custom_id}).json()
print("pay:", r)

# polling
while True:
    o = requests.get(f"{BASE}/api/reseller/order/{custom_id}", headers=H).json()
    print("status:", o["status"])
    if o["status"] in ("delivered", "failed"):
        print("payload:", o.get("delivered_payload"), "error:", o.get("error_message"))
        break
    time.sleep(3)

Не хотите поллить? Укажите callback_url в create — пришлём вебхук о доставке. Вебхук не заменяет polling: источником истины остаётся GET /order/{custom_id}.


Did this page help you?