Aller au contenu

Solde et événements

Droit billing:read. La recharge se fait dans l’espace client.

{
"balance": "124.30",
"currency": "USD"
}

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.

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
}
TypeQuanddata
order.provisioningla commande est partie en délivrancefamily, client_reference
order.completedla délivrance a eu lieu ; arrive aussi pour la prolongation d’adressesfamily, client_reference
order.failedla commande n’a pas abouti+ refunded
order.refundedl’argent est revenu+ refunded
package.traffic_lowle reste est descendu sous 10 %purchased_gb, left_gb
package.traffic_exhaustedle volume est épuisépurchased_gb, left_gb
package.expiredla durée d’un forfait d’adresses fixes est écoulée, les adresses ne répondent pasexpired_at, cut_off (true - mot de passe désactivé, la prolongation en délivrera un nouveau)
topup.creditedla recharge est créditéeamount, external_reference
api_key.revokedla clé est révoquéeapi_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 ; null signifie qu’il n’y a pas de nouveaux événements.
  • Un events vide 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.