> ## Documentation Index
> Fetch the complete documentation index at: https://docs-beta.layerfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Account Identifier

Account identifiers are unique identifiers for a specific ledger account within a business. They are used in both API inputs and outputs to specify a given ledger account.

Account identifiers are polymorphic, meaning there are multiple types of identifiers for different use cases.

### AccountId

The first use case is the intuitive `AccountId` type, which is a unique ID object for a ledger account. This kind of identifier is unique across all businesses and all ledger accounts.

<ParamField body="type" type="string">
  `AccountId` indicates we're using an AccountId identifier type.
</ParamField>

<ParamField body="id" type="string">
  The unique identifier string for the ledger account.
</ParamField>

```json Account ID Example theme={null}
{
"type": "AccountId",
"id": "f1b3b3b3-1beb-1b3b-1b3b-1b3b3b3b3b3b"
}
```

### Stable name

The second use case is the `StableName` type, which is a stable identifier for a templated account.

This kind of identifier uniquely defines a ledger account within a specific ledger, but is re-used across businesses.

This is useful for situations where you are building a workflow for a specific account type, e.g. `ACCOUNTS_RECEIVABLE` and don't want to look up the unique account ID for each business.

While useful, there are two limitations to note with stable names:

1. End-users with access to the general ledger can create their own ledger accounts, which will not have stable names. To refer to these accounts will need to use the `AccountId` type.
2. Some templated account types are specific to industries. If you have customers with different Charts. If you try to use a stable name for an account which does not exist for a business, you will receive an error.

<ParamField body="type" type="string">
  `StableName` indicates we're using a StableName identifier type.
</ParamField>

<ParamField body="stable_name" type="string">
  The stable identifier string for the ledger account.
</ParamField>

```json Stable Name Example theme={null}
    {
    "type": "StableName",
    "stable_name": "CHARITABLE_CONTRIBUTIONS"
    }
```
