---
title: "List balance transactions (ledger), newest first"
method: GET
path: "/v1/accounts/{id}/transactions"
tags: ["Accounts"]
---

# List balance transactions (ledger), newest first

`GET /v1/accounts/{id}/transactions`

## Request

- Base URL: `https://api.honkio.ca`
- URL: `https://api.honkio.ca/v1/accounts/{id}/transactions`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Every non-message balance movement: Stripe top-ups/refunds/disputes, phone rent, provisioning fees, and verification upcharges, paginated newest first. Per-message SMS/email costs are NOT included here; see the messages/emails list for those.

Requires `account:r`.

## Path parameters

- `id` string, required

## Query parameters

- `limit` integer
- `before` string

## Response `200`

Paginated balance transaction ledger

- object: Paginated balance transaction ledger
  - `transactions` object[]
    - `id` string
    - `amount_cents` integer: Signed: positive = credit, negative = debit
    - `balance_after_cents` integer
    - `reason` string: Why the balance moved: topup, refund, dispute, phone_rent, provisioning, activation, verification, and their *_refund reversals; admin_adjustment for staff changes. Per-message SMS charges do not appear here: they are on the messages themselves. One-off corrections carry their own reasons (inbound_backfill, overcharge_refund, sweep_reversal).
    - `tax_cents` integer: Top-ups only, when sales tax was charged: the GST/HST charged on top of amount_cents. amount_cents is always the credit, before tax. Absent otherwise.
    - `charged_cents` integer: Top-ups only, when sales tax was charged: what the card was charged, amount_cents plus tax_cents. Absent otherwise.
    - `created_at` string, date-time
  - `has_more` boolean

## Other responses

- `401`: Missing, invalid, revoked or expired API key.
- `402`: The account has no balance, or a LIVE key was used before the first top-up.
- `403`: The API key lacks the permission this operation requires, or the account is suspended or closed.
- `404`: NOT_FOUND: also when the id is not the calling key's account (404 rather than 403, so the ledger's existence is not confirmed).
- `422`: VALIDATION_ERROR: the request failed validation; details names the fields.
- `429`: Rate limit reached: 100 requests per second per account, or a route-specific limit (Retry-After set where one applies).
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/honkio/apis/honkio-api.md) · [All operations](https://skmtc.dev/honkio/apis/honkio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/honkio/apis/honkio-api/revisions/ce4ed3fe9691?raw)
