Solde et événements
GET /api/v1/balance
Section intitulée « GET /api/v1/balance »Droit billing:read. La recharge se fait dans l’espace client.
{ "balance": "124.30", "currency": "USD"}GET /api/v1/transactions
Section intitulée « GET /api/v1/transactions »Droit billing:read. Paramètres : offset, limit, type.
L’ordre est fixe et non configurable : les plus récentes en premier, par created_at, en cas
d’égalité - par id. Il n’y a pas de paramètre de tri.
type : deposit, purchase, refund, commission, bonus - ce que recouvre chacun d’eux,
voir Rechargement et bonus.
external_reference - l’événement externe à l’origine du mouvement, et non l’identifiant de la
transaction (c’est id).
promo_code est renseigné pour les lignes de type bonus - c’est le code au titre duquel le bonus
a été crédité. Pour les autres types, null.
Événements
Section intitulée « Événements »GET /api/v1/events, droit events:read. Se lit vers l’avant à partir de ?after=<id>, les plus
anciens en premier. Paramètres : 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}| Type | Quand | data |
|---|---|---|
order.provisioning | la commande est partie en délivrance | family, client_reference |
order.completed | la délivrance a eu lieu ; arrive aussi pour la prolongation d’adresses | family, client_reference |
order.failed | la commande n’a pas abouti | + refunded |
order.refunded | l’argent est revenu | + refunded |
package.traffic_low | le reste est descendu sous 10 % | purchased_gb, left_gb |
package.traffic_exhausted | le volume est épuisé | purchased_gb, left_gb |
package.expired | la durée d’un forfait d’adresses fixes est écoulée, les adresses ne répondent pas | expired_at, cut_off (true - mot de passe désactivé, la prolongation en délivrera un nouveau) |
topup.credited | la recharge est créditée | amount, external_reference |
api_key.revoked | la clé est révoquée | api_key_id, name |
Pour les événements package.*, le champ order_id est la commande par laquelle le forfait a été
acheté.
- Livraison at-least-once : dédoublonnage par
id. next_after- la position pour la requête suivante ;nullsignifie qu’il n’y a pas de nouveaux événements.- Un
eventsvide signifie que vous avez rattrapé le journal. - Les événements sont conservés 30 jours.
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)La livraison se fait uniquement par interrogation du journal.