Skip to content
Logo

GET /accounts/:id

Read a single account by its UUID, polymorphically across fiat and crypto. Use this when you only have the id (e.g. from a webhook payload or stored reference) and don't know the kind upfront. When you do know the kind, the per-kind variants are more specific:

Scoped to the org bound to the credential. Accounts owned by a different org return 404.

Response 200

Returns an Account. The response shape is either-or. Branch on kind to know what's in details. Virtual accounts also carry balance / available_balance / balance_as_of. A virtual account that has never had a balance sync is refreshed at request time (the same one-shot backfill as GET /accounts/:id/balance), so the first such read may take a moment. The result is stored and later reads are instant. If that refresh can't complete, the account is returned without the balance fields rather than failing. External accounts never carry a balance (their funds sit at your own bank or wallet):

const acct = await fetch(`/v0/accounts/${id}`).then(r => r.json());
if (acct.kind === "fiat") {
  // acct.shape ∈ FiatShape; acct.details is a FiatAccount variant
} else {
  // acct.shape ∈ CryptoShape; acct.details is a CryptoAccount
}

Example: fiat (virtual US bank account)

{
  "id": "5e3a…",
  "customer_id": "2f10…",
  "kind": "fiat",
  "shape": "us",
  "origin": "virtual",
  "currency": "USD",
  "rails": ["ach", "wire"],
  "status": "active",
  "balance": "150.00",
  "available_balance": "130.00",
  "balance_as_of": "2026-06-12T12:30:00Z",
  "created_at": "2026-04-23T10:25:00Z",
  "updated_at": "2026-04-23T10:25:00Z",
  "details": {
    "account_number": "0123456789",
    "routing_number": "021000021",
    "ach_routing_number": "021000021",
    "fedwire_routing_number": "021000021",
    "bank_name": "JPMorgan Chase Bank",
    "account_holder_name": "Alice Liddell",
    "bank_address": {
      "line1": "270 Park Avenue",
      "city": "New York",
      "state": "NY",
      "postal_code": "10017",
      "country": "US"
    }
  }
}

Example: crypto (external EVM wallet)

{
  "id": "5e3b…",
  "customer_id": "2f10…",
  "kind": "crypto",
  "shape": "evm",
  "origin": "external",
  "currency": "USDC",
  "rails": ["base"],
  "status": "active",
  "created_at": "2026-04-23T10:25:00Z",
  "updated_at": "2026-04-23T10:25:00Z",
  "details": {
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f8b840"
  }
}

Errors

404 (unknown id, or scoped to a different org).

Example

curl "$SEISMIC_ORCHESTRATION_URL/v0/accounts/5e3a…" \
  -H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY"