Skip to content

Get a ledger account

The ledger.accounts.get operation: GET /api/v1/ledger/accounts/{id} in the REST API and the ledger_accounts_get tool in the MCP server.

GET/api/v1/ledger/accounts/{id}

Returns one account of the legal entity's ledger by its ID (acct_…): code, type, normal side, currency and balance (integer micros, signed in the account's normal direction), plus its newest transactions (recentTransactions, up to 10). For the full statement, list transactions with accountId (recentTransactions.url). An account of another entity or mode is resource_not_found.

At a glance

  • REST: GET /api/v1/ledger/accounts/{id}
  • MCP tool: ledger_accounts_get
  • Operation ID: ledger.accounts.get
  • Scope: Legal entity
  • Permission: ledger:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: API key with the ledger:read scope
  • Since: M2

Request

Path parameters

FieldTypeDescription
idacct_… ID

Query parameters

This operation takes no query parameters.

Response

200 OK with a JSON object:

FieldTypeDescription
idacct_… ID
object"ledger_account"
entityIdent_… ID
livemodeboolean
brandIdbrd_… ID or nullThe brand of a revenue, deferred revenue or receivables account, or of a customer's account.
codestringThe account code from the chart of accounts, e.g. opening_balances:EUR.
kindone of 19 values, e.g. processor_clearing, bank, receivable_customers (all in the OpenAPI document)What the code names, e.g. usage_revenue or tax_payable.
typeone of asset, liability, revenue, expense, equity
currencystring
normalSideone of debit, creditThe side that increases the balance: debit for assets and expenses, credit for the rest.
noNegativebooleanThe posted balance can't go below zero.
balanceobjectInteger micros, signed in the normal direction (negative: on the other side). pending counts pending transactions.
balance.postedinteger string
balance.pendinginteger string
createdAtdate-time
updatedAtdate-time
recentTransactionsobject
recentTransactions.object"list"
recentTransactions.dataarray of object
recentTransactions.data[].idtxn_… ID
recentTransactions.data[].object"ledger_transaction"
recentTransactions.data[].entityIdent_… ID
recentTransactions.data[].livemodeboolean
recentTransactions.data[].brandIdbrd_… ID or null
recentTransactions.data[].kindone of 19 values, e.g. topup, sale, grant (all in the OpenAPI document)
recentTransactions.data[].statusone of pending, posted, voided
recentTransactions.data[].entriesarray of object
recentTransactions.data[].entries[].accountIdacct_… ID
recentTransactions.data[].entries[].accountCodestringThe account's code from the chart of accounts.
recentTransactions.data[].entries[].sideone of debit, credit
recentTransactions.data[].entries[].amountstringInteger micros, more than zero.
recentTransactions.data[].entries[].currencystring
recentTransactions.data[].totalsarray of objectDebit and credit totals per currency, always equal.
recentTransactions.data[].totals[].currencystring
recentTransactions.data[].totals[].debitsstring
recentTransactions.data[].totals[].creditsstring
recentTransactions.data[].effectiveAtdate-timeThe business date of the movement.
recentTransactions.data[].postedAtdate-time or null
recentTransactions.data[].voidedAtdate-time or null
recentTransactions.data[].reversalOftxn_… ID or nullThe posted transaction this one reverses.
recentTransactions.data[].linksobjectObjects the transaction is about, by ID.
recentTransactions.data[].memostringThe description; for a manual adjustment, its reason.
recentTransactions.data[].actorobjectWho posted it. approvalId names the approval request when a second person approved it.
recentTransactions.data[].actor.typeone of user, api_key, agent, app, system, public, customer
recentTransactions.data[].actor.idstring
recentTransactions.data[].actor.viaone of console, api, mcp, assistant, portal, job or null
recentTransactions.data[].actor.approvalIdstring or null
recentTransactions.data[].actor.onBehalfOfUserIdstring or null
recentTransactions.data[].actor.clientIdstring or null
recentTransactions.data[].actor.supportGrantIdstring or null
recentTransactions.data[].createdAtdate-time
recentTransactions.has_moreboolean
recentTransactions.urlstring

Examples

The entity's EUR bank account

HTTP
GET /api/v1/ledger/accounts/acct_01m4tx5nj8emwbyf7y9vcf47xc
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "id": "acct_01m4tx5nj8emwbyf7y9vcf47xc",
  "object": "ledger_account",
  "entityId": "ent_01m4tx5nj8emwbyf7y9vcf47x2",
  "livemode": true,
  "brandId": null,
  "code": "bank:ent_01m4tx5nj8emwbyf7y9vcf47x2:EUR",
  "kind": "bank",
  "type": "asset",
  "currency": "EUR",
  "normalSide": "debit",
  "noNegative": false,
  "balance": {
    "posted": "1500000000",
    "pending": "0"
  },
  "createdAt": "2026-10-13T12:00:00.000Z",
  "updatedAt": "2026-10-14T09:30:00.000Z",
  "recentTransactions": {
    "object": "list",
    "data": [
      {
        "id": "txn_01m4tx5nj8emwbyf7y9vcf47xg",
        "object": "ledger_transaction",
        "entityId": "ent_01m4tx5nj8emwbyf7y9vcf47x2",
        "livemode": true,
        "brandId": null,
        "kind": "adjustment",
        "status": "posted",
        "entries": [
          {
            "accountId": "acct_01m4tx5nj8emwbyf7y9vcf47xc",
            "accountCode": "bank:ent_01m4tx5nj8emwbyf7y9vcf47x2:EUR",
            "side": "debit",
            "amount": "1500000000",
            "currency": "EUR"
          },
          {
            "accountId": "acct_01m4tx5nj8emwbyf7y9vcf47xd",
            "accountCode": "opening_balances:EUR",
            "side": "credit",
            "amount": "1500000000",
            "currency": "EUR"
          }
        ],
        "totals": [
          {
            "currency": "EUR",
            "debits": "1500000000",
            "credits": "1500000000"
          }
        ],
        "effectiveAt": "2026-10-14T09:30:00.000Z",
        "postedAt": "2026-10-14T09:30:00.000Z",
        "voidedAt": null,
        "reversalOf": null,
        "links": {},
        "memo": "Opening bank balance from the 2026-09-30 statement",
        "actor": {
          "type": "user",
          "id": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
          "via": "console",
          "approvalId": "apr_01m4tx5nj8emwbyf7y9vcf47xj",
          "onBehalfOfUserId": null,
          "clientId": null,
          "supportGrantId": null
        },
        "createdAt": "2026-10-14T09:30:00.000Z"
      }
    ],
    "has_more": false,
    "url": "/api/v1/ledger/transactions?accountId=acct_01m4tx5nj8emwbyf7y9vcf47xc"
  }
}

Errors

CodeHTTP statusWhenWhat to do
resource_not_found404No account with this ID is in this entity's ledger in this mode.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
scope_required400The request names no legal entity (an org key without Ownrecord-Entity).Call the operation with credentials or a target at its level: an organization, a legal entity, a brand or the platform (details.required_scope).
permission_denied403You can't see this entity's ledger (brand-scoped members never can).Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: validation_failed, api_version_unsupported, authentication_required, api_key_invalid, dry_run_not_supported, rate_limited, internal_error.