Баланс і події
GET /api/v1/balance
Section titled “GET /api/v1/balance”Право billing:read. Поповнення робиться в особистому кабінеті.
{ "balance": "124.30", "currency": "USD"}GET /api/v1/transactions
Section titled “GET /api/v1/transactions”Право billing:read. Параметри: offset, limit, type.
Порядок фіксований і не налаштовується: нові зверху, за created_at, у разі збігу - за id.
Параметра сортування немає.
type: deposit, purchase, refund, commission, bonus - що стоїть за кожним із них,
див. Поповнення та бонуси.
external_reference - зовнішня подія, що породила рух, а не ідентифікатор транзакції (ним
є id).
promo_code заповнено в рядках типу bonus - це код, за яким нараховано бонус. В інших
типів null.
GET /api/v1/events, право events:read. Читається вперед від ?after=<id>, старі зверху.
Параметри: after, limit, type.
{ "events": [ { "id": 881, "type": "order.completed", "occurred_at": "2026-08-28T12:00:04+00:00", "order_id": 128, "package_id": 42, "data": { "family": "traffic_gateway", "client_reference": "deal-8891" } }, { "id": 882, "type": "package.traffic_low", "occurred_at": "2026-08-28T18:31:00+00:00", "order_id": 128, "package_id": 42, "data": { "purchased_gb": "35.000", "left_gb": "3.410" } } ], "next_after": 882}| Тип | Коли | data |
|---|---|---|
order.provisioning | замовлення пішло у видачу | family, client_reference |
order.completed | видача відбулася; надходить і на продовження адрес | family, client_reference |
order.failed | замовлення не відбулося | + refunded |
order.refunded | гроші повернулися | + refunded |
package.traffic_low | залишок опустився нижче 10% | purchased_gb, left_gb |
package.traffic_exhausted | обсяг витрачено | purchased_gb, left_gb |
package.expired | термін пакета фіксованих адрес сплив, адреси не відповідають | expired_at, cut_off (true - пароль вимкнено, продовження видасть новий) |
topup.credited | поповнення зараховано | amount, external_reference |
api_key.revoked | ключ відкликано | api_key_id, name |
У подій package.* поле order_id - замовлення, яким пакет було куплено.
- Доставка at-least-once: дедуплікація за
id. next_after- позиція для наступного запиту;nullозначає, що нових подій немає.- Порожній
eventsозначає, що ви наздогнали журнал. - Події зберігаються 30 діб.
after = load_position()
while True: params = {"limit": 200} | ({"after": after} if after else {}) body = session.get(f"{BASE}/api/v1/events", params=params, headers=AUTH).json()
for event in body["events"]: if not already_handled(event["id"]): handle(event) mark_handled(event["id"])
if body["next_after"] is not None: after = body["next_after"] save_position(after)
if not body["events"]: sleep(15)Доставка - тільки опитуванням журналу.