Pular para o conteúdo

Saldo e eventos

Permissão billing:read. A recarga é feita no painel.

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

Permissão billing:read. Parâmetros: offset, limit, type.

A ordem é fixa e não configurável: os mais novos primeiro, por created_at, e em caso de empate por id. Não há parâmetro de ordenação.

type: deposit, purchase, refund, commission, bonus - o que cada um significa, veja Recarga e bônus.

external_reference é o evento externo que gerou a movimentação, e não o identificador da transação (que é o id).

promo_code vem preenchido nas linhas do tipo bonus - é o código pelo qual o bônus foi creditado. Nos demais tipos é null.

GET /api/v1/events, permissão events:read. É lido para a frente a partir de ?after=<id>, os mais antigos primeiro. Parâmetros: 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
}
TipoQuandodata
order.provisioningo pedido entrou em entregafamily, client_reference
order.completeda entrega foi concluída; também chega no prolongamento de endereçosfamily, client_reference
order.failedo pedido não foi concluído+ refunded
order.refundedo dinheiro foi devolvido+ refunded
package.traffic_lowo tráfego restante ficou abaixo de 10%purchased_gb, left_gb
package.traffic_exhaustedo volume foi consumidopurchased_gb, left_gb
package.expiredo período do pacote de endereços fixos terminou, os endereços não respondemexpired_at, cut_off (true - a senha foi desativada, o prolongamento emitirá uma nova)
topup.crediteda recarga foi creditadaamount, external_reference
api_key.revokeda chave foi revogadaapi_key_id, name

Nos eventos package.*, o campo order_id é o pedido com que o pacote foi comprado.

  • Entrega at-least-once: deduplique por id.
  • next_after é a posição para a próxima requisição; null significa que não há eventos novos.
  • events vazio significa que você alcançou o fim do log.
  • Os eventos são guardados por 30 dias.
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)

A entrega é feita só por consulta ao log.