List wallet transactions
Returns a cursor-paginated history of every movement on your
organization's wallet: top-up credits, send debits, manual adjustments,
and refunds. Each row carries balance_after_cents so you can render a
running balance without a second read. Use source_ref to cross-
reference a transaction (for example, the Stripe invoice id on a top-up
credit or the outbound message id on a debit).
Range defaults and caps mirror /v1/billing/usage: from and to
default to the last 30 days, the explicit to - from window must be
90 days or less, and limit defaults to 100 with a maximum of 500.
Requires the billing:read scope.
Authenticate by sending your API key as a bearer token:
Authorization: Bearer am_live_.... Every request is automatically
scoped to the organization that owns the key and to the scopes granted
to that key.
In: header
Query Parameters
date-timedate-time1001 <= value <= 500Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/billing/transactions"{
"success": true,
"data": [
{
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"ts": "2026-04-26T12:00:00Z",
"kind": "topup",
"amount_cents": 2000,
"balance_after_cents": 4250,
"source": "stripe",
"source_ref": "in_1NbCxYJh3ZgY8a",
"metadata": {}
},
{
"id": "2a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d",
"ts": "2026-04-26T11:59:00Z",
"kind": "debit",
"amount_cents": -18,
"balance_after_cents": 2250,
"source": "outbound",
"source_ref": "7c1f0a2d-9e8b-4c3a-9d2e-1f0a2b3c4d5e",
"metadata": {}
}
],
"meta": {
"total": 0,
"limit": 100,
"offset": 0,
"next_cursor": null
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "authentication failed",
"request_id": "01JTBQH2FZ8K1RXC0WJ4Z9P3VM"
}
}{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "missing required scope",
"request_id": "01JTBQH2FZ8K1RXC0WJ4Z9P3VM"
}
}{
"success": false,
"error": {
"code": "VALIDATION_FAILED",
"message": "validation failed",
"request_id": "01JTBQH2FZ8K1RXC0WJ4Z9P3VM",
"details": {
"to": "must be E.164",
"body": "must be 1..1600 chars"
}
}
}