Get an account
Returns one account with bank details, balances and, when it is not active, the reason. Poll it after create until status is active. When requires_user_action is true, act on status_reason with application_id. balance and balance_details are in major units. ledger_balance is in minor units.
Path Parameters
ID of the account
Responses
| Status | Description |
|---|---|
200 |
The account |
404 |
Not found, or not in your business |
200 response
An account. The API leaves out empty fields. It also returns accounts not opened with POST /v2/accounts, without the v2 fields.
The account's wallet address
Account type, such as operating. Accounts not opened with POST /v2/accounts can carry other types, such as card.
pending while opening, then active. rejected means the bank declined and failed means opening failed. deleted and manual_review appear only on older accounts.
Possible values: pending, active, frozen, closed, rejected, failed, deleted, manual_review
A stable code that explains a status other than active. Branch on it. You act on tos_pending and kyc_pending by sending the customer to required_action_url, and on awaiting_customer_document and awaiting_customer_data by updating the application. Other codes need no action, or mean the account cannot be opened. The API returns it only when you read a single account.
Explanation in words. The wording can change, so branch on status_reason.
Document types to upload with the application update
Field names to send with the application update
Page the end customer must open, for terms or verification
True when the application is waiting on you
Possible values: negative_balance
Possible values: main, sub_account, virtual, multi_currency
Possible values: fbo_account, subledger
Name of the bank that holds the account
Balance in major units. Gravv takes it from the wallet first, then the bank's last known figure, then the ledger. balance_source says which. The API omits it when there is no figure, which means unknown, not zero.
Possible values: institution, wallet, ledger
The bank's figures, in major units
The Gravv ledger position, in minor units (see scale)
Settled and spendable
Settled plus in flight. Show this to the customer.
Possible values: synced, stale, cooling_down, syncing, failed, simulated, deferred
Deposit bank name. Some banks leave it out. In that case, use bank_name.
Extra bank details, such as bic and swift_code
Whether a settlement wallet is attached. Always present.
The application to update when the account waits on you
Hash of the bank's reference, for support correlation only
{
"data": {
"id": "6f1c2a9e-3b1d-4f7a-9c62-0d8e4b7a5c11",
"label": "Jane USD",
"date_created": "2026-10-13T09:12:44Z",
"wallet_address": "0x5a3e9b0c7d2f41e8a6b4c3d2e1f0a9b8c7d6e5f4",
"blockchain_network": "polygon",
"type": "operating",
"customer_id": "0b6f3c1e-2a4d-4c8e-9f10-7d2a6b5e4c33",
"currency": "USD",
"status": "pending",
"status_reason": "awaiting_customer_document",
"required_documents": [
"proof_of_address"
],
"requires_user_action": true,
"category": "main",
"bank_name": "Example Bank",
"bank_code": "cross_river_bank",
"settlement_enabled": false,
"application_id": "5e7a9c1b-2d4f-4a6b-8c0d-e1f2a3b4c5d6"
},
"error": null
}
404 response
Error message. When several fields fail, it names the first and says how many others are in details. Branch on the HTTP status and the details codes, not on this text.
Field problems, keyed by field path. Each value is CODE: message, such as REQUIRED: Customer ID is required. The API joins several problems on one field with ; .
{
"data": null,
"error": "Resource not found"
}
Authorization
- ApiKeyAuth