SSpotify Partner API
Документация

Пополнение баланса через API

Через API можно создавать Crypto-пополнения, счета LZT Market и заявки на перевод по Bybit UID.

Порядок работы:

1. Получите список доступных сетей:

GET /topups/crypto/methods

2. Создайте заявку на пополнение:

POST /topups/crypto

3. Отправьте точную сумму на address из ответа. Не выводите средства на этот адрес из Crypto Bot или xRocket: такие переводы могут не быть распознаны и зачислены.

4. После оплаты передайте hash транзакции:

POST /topups/{topup_id}/tx

5. Проверьте статус заявки:

GET /topups/{topup_id}

Доступные trade_type зависят от настроек сервиса. Список нужно брать из GET /topups/crypto/methods.

Пример создания заявки:

{
  "amount": 10,
  "trade_type": "usdt.trc20"
}

Пример Python:

import requests

BASE_URL = "https://api.averonpay.app"
TOKEN = "pk_partner_key"

headers = {
    "Authorization": f"Bearer {TOKEN}",
    "Content-Type": "application/json",
}

methods = requests.get(
    f"{BASE_URL}/topups/crypto/methods",
    headers=headers,
    timeout=20,
)
print(methods.json())

topup = requests.post(
    f"{BASE_URL}/topups/crypto",
    headers=headers,
    json={
        "amount": 10,
        "trade_type": "usdt.trc20",
    },
    timeout=20,
)
topup_data = topup.json()
print(topup_data)

topup_id = topup_data["topup_id"]
address = topup_data["address"]
pay_amount = topup_data["pay_amount"]
pay_symbol = topup_data["pay_symbol"]

print(f"Send {pay_amount} {pay_symbol} to {address}")

# После оплаты замените transaction_hash на реальный hash транзакции.
tx = requests.post(
    f"{BASE_URL}/topups/{topup_id}/tx",
    headers=headers,
    json={"tx_hash": "transaction_hash"},
    timeout=20,
)
print(tx.json())

status = requests.get(
    f"{BASE_URL}/topups/{topup_id}",
    headers=headers,
    timeout=20,
)
print(status.json())

LZT Market

1. Получите доступные платёжные способы:

GET /topups/payment/methods

2. Создайте счёт:

POST /topups/payment

Тело запроса:

{
  "amount": 10,
  "payment_method": "lzt"
}

В ответе используйте pay_url для оплаты. Поле amount — сумма, которая будет зачислена на баланс; pay_amount — сумма счёта с учётом настроенной комиссии.

Пример Python:

import requests

BASE_URL = "https://api.averonpay.app"
TOKEN = "pk_partner_key"
headers = {"Authorization": f"Bearer {TOKEN}"}

topup = requests.post(
    f"{BASE_URL}/topups/payment",
    headers=headers,
    json={"amount": 10, "payment_method": "lzt"},
    timeout=20,
).json()

print("Оплатить:", topup["pay_url"])

# Webhook LZT зачисляет платёж автоматически. Этот запрос можно использовать
# для ручной проверки или polling до terminal status.
checked = requests.post(
    f"{BASE_URL}/topups/{topup['topup_id']}/check",
    headers=headers,
    timeout=20,
).json()
print(checked)

Bybit UID

1. Создайте заявку:

POST /topups/bybit

Тело запроса:

{
  "amount": 10
}

В ответе address содержит Bybit UID, pay_amount — точную сумму перевода, а pay_symbol всегда равен USDT. Выполните внутренний перевод USDT через Bybit на указанный UID.

2. После перевода отправьте его txID:

POST /topups/{topup_id}/bybit-tx

Тело запроса:

{
  "tx_id": "1234567890"
}

Пример Python:

import requests

BASE_URL = "https://api.averonpay.app"
TOKEN = "pk_partner_key"
headers = {"Authorization": f"Bearer {TOKEN}"}

topup = requests.post(
    f"{BASE_URL}/topups/bybit",
    headers=headers,
    json={"amount": 10},
    timeout=20,
).json()

print(f"Перевести {topup['pay_amount']} {topup['pay_symbol']} на UID {topup['address']}")

# После внутреннего перевода замените значение на реальный txID из Bybit.
confirmed = requests.post(
    f"{BASE_URL}/topups/{topup['topup_id']}/bybit-tx",
    headers=headers,
    json={"tx_id": "1234567890"},
    timeout=20,
).json()
print(confirmed)

Один txID можно использовать только один раз. Перевод должен быть выполнен после создания заявки, иметь статус зачисленного и соответствовать монете и сумме заявки.

Получить текущее состояние без обращения к платёжному провайдеру:

GET /topups/{topup_id}

Статусы заявки:

pending     заявка создана, ожидает оплату или проверку hash
completed   платеж подтвержден, баланс пополнен
cancelled   заявка или истёкший счёт отменены

Минимальные суммы и комиссии могут отличаться по монете и сети. Перед созданием заявки всегда используйте GET /topups/crypto/methods и проверяйте address, pay_amount, pay_symbol, memo и address_transfer_warning из ответа POST /topups/crypto. Для XRP поле memo — обязательный Destination Tag: перевод без него не будет зачислен. Вывод из Crypto Bot или xRocket на выданный on-chain address запрещен: перевод может не быть распознан и зачислен.