---
title: "List every movement in one timeline"
method: GET
path: "/transactions"
tags: ["Transactions"]
---

# List every movement in one timeline

`GET /transactions`

## Request

- Base URL: `https://developers.ozav.io/v2`
- URL: `https://developers.ozav.io/v2/transactions`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

One feed for everything that moved value for your customers: the
transfers you created through this API, and the on-chain deposits
credited into custody. You no longer have to stitch two listings together
and guess the order between them.

Ordered newest first. Each row carries a `type` (`transfer` or
`deposit`), so you can branch without a second lookup, and the `id` is
the id of the underlying resource - use it to fetch the full record.

Paginated with the standard opaque cursor. The cursor spans both sources
at once: it is not one cursor per source, so a busy day on one side can
never hide rows from the other.

**Card transactions are not in this feed.** They are read per card at
`GET /cards/{card_id}/transactions`.

## Query parameters

- `limit` integer
- `starting_after` string
- `customer_id` string

## Response `200`

A page of movements, newest first.

- object
  - `data` Transaction[], required
    - `object` 'transaction', required: Resource type discriminator for the envelope; always the literal `transaction`. What kind of movement it is lives in `type`.
    - `id` string, required: The underlying resource's id. For `transfer` it is the `ozav_tr_` id; for `deposit` it is the custody deposit id. Opaque either way - store it and pass it back, never parse it.
    - `type` 'transfer' | 'deposit', required: `transfer` - a movement you created through this API. `deposit` - an on-chain credit observed into custody.
    - `status` string, required: The underlying resource's status, passed through unchanged. Read it together with `type`: the vocabularies are per-resource, so a `deposit` never carries a transfer status and the reverse.
    - `amount` string, required: Decimal string at accounting precision - up to 6 fractional digits. Never a float. The value must be greater than zero, with no leading zeros in the integer part (a bare `0` integer part is allowed for sub-unit values such as "0.50") and at most 15 integer digits.
    - `currency` string, required: Uppercase ISO 4217 code or stablecoin symbol (e.g. BRL, USD, EUR, MXN, USDC, USDT). Uppercase is the canonical form: values are accepted case-insensitively on input but are always uppercase in responses.
    - `created_at` string, date-time, required: When the movement was recorded (RFC 3339, UTC). This is the field the feed is ordered by.
    - `customer_id` string: Present when the movement belongs to a customer of yours.
    - `network` string: Present on `deposit`; the network the credit arrived on.
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required

## Other responses

- `400`: The request is invalid.
- `401`: Missing or invalid API key.
- `403`: The organization lacks the entitlement (code ENTITLEMENT_REQUIRED) or the key lacks the scope (code INSUFFICIENT_SCOPE). On money-moving requests (POST /transfers, POST /wallets/{wallet_id}/transfers) a compliance hold on the customer answers with code COMPLIANCE_HOLD: the hold is reviewed and lifted on OZAV's side; retrying does not clear it. When the only hold is a pause until pending onboarding documents are received, a withdrawal answers CUSTOMER_DOCUMENTS_PENDING instead: send what `requirements` on GET /customers/{id} lists; OZAV lifts the pause after reviewing it. On OZAV Services (live without the platform's KYB), any API outside decisions, screenings, lists and self-custody wallets answers with code PRODUCTION_NOT_ACTIVATED.
- `503`: A dependency OZAV needs (storage, a resource lookup) could not be reached, so OZAV fails closed rather than guess. Safe to retry with the same `Idempotency-Key` where the operation accepts one.

---

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