Create account or ledger connection
Stores connection credentials. Account providers support preview/import; ledger providers (e.g. quickbooks) store OAuth tokens only. For multisig providers (safe, squads, realms), an address that fails to resolve returns a classified error body { statusCode, error, code, message } with code one of: invalid_address (bad format), multisig_not_found (well-formed address, no multisig there), wrong_network (Safe only — exists, but on a different chain than selected), upstream_unavailable (the provider/RPC failed — transient, safe to retry).
Authorizations
Authorization method required to allow user to access the api endpoints.
Body
Response
"conn_abc123"
"My Utila Account"
utila, kraken, binance, okx, bybit, bitget, gate, kucoin, plaid, squads, altitude, coinbase, realms, wise, safe, hyperliquid, cubist, privy, dfns, anchorage, revolut_business, turnkey, octav, fordefi, coins_ph, fireblocks, pave_bank, quickbooks "utila"
Connection family: account (import Range Accounts) or ledger (bookkeeping).
account, ledger "account"
Non-sensitive public metadata
"2026-01-01T00:00:00.000Z"
Last config edit: creation, rename, or a credential/session refresh. Sync deliberately never touches it, so this is not a freshness signal — read last_synced_at for that.
"2026-01-01T00:00:00.000Z"
When a transaction-sync run last succeeded for this connection, or null if none ever has. Prefer this over updated_at for freshness: on most providers nothing writes updated_at after creation, so it would age forever however often the connection syncs (RNG-5128).
Two caveats before treating it as connection health. Sync is only ever triggered manually (POST /v2/account-connections/transactions/sync); nothing runs it on a schedule (RNG-5155), so an old timestamp means nobody asked, not that anything is wrong. And for the providers served by the transfers endpoint (safe, squads, realms, cubist, privy, turnkey, dfns, altitude) a run returns early without contacting the provider and is still recorded as a success, so the timestamp moves without any data being fetched (RNG-5156).
"2026-01-01T00:00:00.000Z"
Outcome of the most recent sync run, or null before the first one. failed leaves last_synced_at at the last genuinely successful run.
running, succeeded, failed "succeeded"