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

# Accounting

> Code transactions and bills and sync them to your accounting platform.

Once a company connects an accounting platform such as QuickBooks, NetSuite or
Xero, Slash prepares an accounting entry for every transaction once it
settles, and for every bill it sends to the platform.
The accounting API lets you code those entries, sync them to the platform, and
set up rules so most of them code themselves.

<CardGroup cols={3}>
  <Card title="Dimensions and values" icon="tags" href="/docs/v2/accounting/dimensions-and-coding">
    Find what to code entries with.
  </Card>

  <Card title="Code and sync entries" icon="arrows-rotate" href="/docs/v2/accounting/coding-and-syncing">
    Code, approve and sync entries.
  </Card>

  <Card title="Automate coding" icon="wand-magic-sparkles" href="/docs/v2/accounting/rules-and-automation">
    Code entries with rules and AI.
  </Card>
</CardGroup>

## Key concepts

* **Connection.** The legal entity's link to its accounting system: a
  platform Slash syncs with, such as QuickBooks, Xero or NetSuite, or a CSV
  export. Dimensions, entries and rules belong to a connection. Where an endpoint
  takes an optional `connectionId`, it's required (`connection_id_required`)
  only when the legal entity has more than one connection. When a list needs
  it, send it with every page, not only the first. Endpoints that address an
  entry or rule by id find its connection themselves.
* **Dimension.** A field an entry is coded with, such as the GL account,
  vendor, class or department. Each dimension has a list of values that come
  from the platform.
* **Entry.** What Slash will post to the platform for one transaction or bill.
  Its line items carry the coding.

## Get started

<Steps>
  <Step title="Check the connection">
    Call [List accounting connections](/api-reference/accounting/connections/list).
    An empty list means the legal entity hasn't connected accounting yet, and
    the other accounting endpoints return `not_found`.
  </Step>

  <Step title="Look up what entries are coded with">
    [List accounting dimensions](/api-reference/accounting/dimensions/list)
    shows the fields the platform expects. See
    [Dimensions and values](/docs/v2/accounting/dimensions-and-coding).
  </Step>

  <Step title="Read entries">
    [List accounting entries](/api-reference/accounting/entries/list) with
    `status=in_review` to get the entries waiting for review. To find the entry
    for a specific transaction, pass `transactionId`, or read the transaction's
    `accountingEntryId`.
  </Step>
</Steps>

## Entry status

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/slash-9da6c7e7/iQrNr-l_pA8n5N2d/images/charts/accounting-entry-lifecycle.light.svg?fit=max&auto=format&n=iQrNr-l_pA8n5N2d&q=85&s=5c22c495c34f0b17e7845e3a889dacdf" alt="Accounting entry lifecycle" width="1472" height="990" data-path="images/charts/accounting-entry-lifecycle.light.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/slash-9da6c7e7/iQrNr-l_pA8n5N2d/images/charts/accounting-entry-lifecycle.dark.svg?fit=max&auto=format&n=iQrNr-l_pA8n5N2d&q=85&s=2db6276306c99294f606c951d5d91287" alt="Accounting entry lifecycle" width="1472" height="990" data-path="images/charts/accounting-entry-lifecycle.dark.svg" />
</Frame>

| Status | Meaning |
| - | - |
| `in_review` | Waiting to be coded and reviewed. |
| `ready_to_sync` | Approved. Nothing is sent to the platform until the entry is synced. |
| `pending_sync` | Queued to be sent to the platform. |
| `syncing` | Being recorded on the platform. |
| `synced` | Recorded on the platform. `externalUrl` opens it there. |
| `failed` | The platform rejected it. `lastSyncError` says why. |
| `archived` | Set aside, and won't be sent to the platform. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.