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

# Core Concepts

> Understand identifiers, pagination and request handling.

## Resources

An organization contains your data. Legal entities identify the businesses whose books you manage. Sources bring in transactions; journals record accounting entries; documents hold supporting files.

Agents perform work. Memory holds shared organization knowledge. A connection links a provider account; GL mappings link Entendre accounts and entities to that provider.

`post` records a draft journal in the ledger. `apply` commits a reviewed accounting workflow.

## Identifiers and values

Use resource IDs returned by the API in later requests.

Use enum values exactly as shown, including spaces and capitalization. Let your HTTP client encode query values. Use the amount and date formats shown on each endpoint. Keep decimal strings with their currency or asset. A missing value is not zero.

## Pagination and filtering

Set `limit` to control page size. Omit `cursor` on the first request, then pass the returned `next_cursor` to retrieve the next page. For responses with `has_more`, stop when it is false.

For lists with an ID filter, pass one ID to retrieve a single record. The response stays an array; no matches returns HTTP 200 with an empty `data` array.

Each endpoint lists its filters, page-size limits and response fields. Keep filters unchanged while following a cursor. Repeat an array parameter for multiple values. Different filters narrow the result together; values within an array match any listed value unless the endpoint states otherwise.

## Responses and retries

HTTP `201` means a resource was created. HTTP `202` means work was accepted but has not necessarily finished. HTTP `204` has no response body. For background work, use the completion check documented by that endpoint. Some operations do not provide a polling endpoint. Inspect any item failures before retrying.

Where an endpoint requires `Idempotency-Key`, use one key for each intended write. Reuse that key and the same request body when retrying the write. Follow the endpoint's version and retry requirements.

If a list item includes `etag`, copy it unchanged into `If-Match` when updating that item. On HTTP 412, retrieve the item again and review its changes before retrying.

For HTTP 429, if the response has a `Retry-After` header, wait that many seconds before you retry. Otherwise, read `error.message`.

## Errors

Use the HTTP status and `error.code` to handle a failure. Read `error.message` for details and keep `request_id` when contacting support. Each endpoint shows its error responses.
