---
title: "List deposits"
method: GET
path: "/v0/deposits"
tags: ["Accounts"]
---

# List deposits

`GET /v0/deposits`

## Request

- Base URL: `https://orchestration.seismic.systems/api`
- URL: `https://orchestration.seismic.systems/api/v0/deposits`
- Auth: API key in header `Api-Key`

Deposits credited to virtual accounts outside the order flow, newest first — the read-side twin of the `account.deposit_received` webhook event, for reconciliation.

## Query parameters

- `account_id` string, uuid
- `customer_id` string, uuid
- `kind` 'fiat' | 'crypto': Top-level kind of the account — fiat vs crypto. Carried explicitly on `ApiAccount` and `ApiAccountCreationRequest` so callers can branch without parsing `shape` (and because `details` is an untagged enum that won't help them dispatch).
- `cursor` string
- `limit` integer

## Response `200`

Deposits page; `next_cursor` is set when more remain.

- ListAccountDepositsResponse: Body of `GET /deposits`. Wrapped rather than returned as a bare array so future fields (cursors, totals) don't break the wire shape. `next_cursor` is set when more pages remain; absent on the last page.
  - `deposits` ApiAccountDeposit[], required
    - `account_id` string, uuid, required
    - `account_kind` 'fiat' | 'crypto', required: Top-level kind of the account — fiat vs crypto. Carried explicitly on `ApiAccount` and `ApiAccountCreationRequest` so callers can branch without parsing `shape` (and because `details` is an untagged enum that won't help them dispatch).
    - `amount` string, nullable
    - `currency` string, nullable
    - `customer_id` string, uuid, required
    - `id` string, uuid, required
    - `received_at` string, date-time, required
    - `reference` string, nullable: Payment reference reported with the deposit — the bank statement line of the credit (e.g. `ACH Credit 021000024184980 ACME PAYMENTS LLC`). Absent when none was reported.
    - `source` ApiDepositSource: Who sent the deposit, shared verbatim between the `deposit.status_changed` webhook event and `GET /deposits`. A bank deposit identifies the sender's bank account; a blockchain deposit identifies the sending wallet and the chain it settled on. Every field is optional and omitted when absent — which ones arrive depends on the rail and on how much the sending network reports.
      - `account_number` string, nullable: The sender's account number, as reported. Bank deposits only.
      - `bank_routing_number` string, nullable: Routing number of the sender's bank. Bank deposits only.
      - `chain` string, nullable: Chain the transfer settled on (`BASE`, `ETHEREUM`, …). Blockchain deposits only; pairs with `from_address`.
      - `from_address` string, nullable: The wallet the funds were sent from. Blockchain deposits only.
      - `rail` string, nullable: How the deposit travelled: the chain for a blockchain deposit (matching `chain`), or the payment scheme for a bank deposit (`ach`, `wire`, `swift`, `sepa`, …). Always one of the rail names `GET /v0/rails` publishes, spelled exactly as that endpoint spells it — a scheme with no such rail is omitted rather than named in a settlement network's own vocabulary. Present when the sending network reported a rail, or when the credited account accepts exactly one and so names it by itself. Omitted — never guessed — when no rail is known: when no external network carried the funds (a book transfer within the settlement network), and on a credit into a virtual USD account that receives ACH, wire and SWIFT on one account number and arrives without a reported scheme.
      - `sender_name` string, nullable: Name of the sending party, on bank and blockchain deposits alike.
    - `status` 'pending' | 'under_review' | 'completed' | 'refunded' | 'failed', required: Lifecycle of a deposit credited to a virtual account. Seismic registers a deposit on the first event describing it, and the status advances forward-only as later events land — a deposit that never completes (held in review, returned to sender) stays visible for its whole life instead of being dropped.
    - `status_reason` string, nullable
    - `transaction_hash` string, nullable: On-chain settlement hash, present only for crypto-rail deposits.
  - `next_cursor` string, nullable

## Other responses

- `401`: Missing or invalid API key.

---

[API](https://skmtc.dev/seismic/apis/seismic-orchestration-api.md) - [All operations](https://skmtc.dev/seismic/apis/seismic-orchestration-api/llms.txt) - [OpenAPI document](https://skmtc.dev/seismic/apis/seismic-orchestration-api/revisions/08ada1f159fa?raw)
