Pairing
Если статус заказа pairing, нужно открыть pair_url.
pair_url может прийти:
1. Сразу в ответе POST /orders, если ссылка успела создаться за первые секунды.
2. Позже в ответе GET /orders/{order_id}.
3. Позже через webhook со статусом pairing.
Если к партнеру привязана Telegram-конфа, бот также отправит уведомление туда.
Создание Pairing-заказа и ожидание ссылки на Python:
import time
import requests
BASE_URL = "https://api.averonpay.app"
TOKEN = "pk_partner_key"
headers = {"Authorization": f"Bearer {TOKEN}"}
created = requests.post(
f"{BASE_URL}/orders",
headers=headers,
json={
"product_id": "spotify_premium_pairing",
"item_id": "spotify_premium_pairing_1",
"ref": "pairing-order-1002",
"fields": {
"spotify_premium_pairing_email": "user@example.com",
},
},
timeout=30,
)
created.raise_for_status()
order = created.json()
order_id = order["order_id"]
for _ in range(12):
if order.get("pair_url"):
print("Откройте ссылку:", order["pair_url"])
break
if order["status"] in {"done", "failed", "cancelled"}:
print("Заказ завершился:", order)
break
time.sleep(5)
response = requests.get(
f"{BASE_URL}/orders/{order_id}",
headers=headers,
timeout=20,
)
response.raise_for_status()
order = response.json()
else:
print("Ссылка еще не готова — продолжайте polling или ждите webhook")
Обновление истекшей ссылки на Python:
order = requests.get(
f"{BASE_URL}/orders/{order_id}",
headers=headers,
timeout=20,
).json()
if "pair_link_expired" in (order.get("error") or ""):
repaired = requests.post(
f"{BASE_URL}/orders/{order_id}/actions/repair",
headers=headers,
timeout=20,
)
repaired.raise_for_status()
print(repaired.json())
Срок действия и автоматическая отмена
Pairing-ссылка обычно действует около 5 минут. Определяйте истечение по текущему состоянию заказа — status = waiting и error, содержащий pair_link_expired.
Для получения новой ссылки вызовите POST /orders/{order_id}/actions/repair. Успешный repair создает новую ссылку с новым сроком действия. Сам вызов GET /orders/{order_id} ссылку не продлевает.
Если предыдущий repair еще обрабатывается или действие недоступно для текущего состояния заказа, API возвращает HTTP 409 с error = order_action_conflict. Обновите заказ через GET /orders/{order_id} и повторяйте repair только после появления pair_link_expired.
Если pairing долго не завершен и ссылка не обновляется, заказ может быть автоматически отменен примерно через час с возвратом баланса. В таком случае заказ получает status = cancelled, error = pair_link_timeout и refunded = true. Это время ориентировочное: repair может продлить жизненный цикл заказа, поэтому клиентской интеграции не следует самостоятельно считать заказ отмененным по локальному таймеру — дождитесь cancelled/failed через GET или webhook.