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

# Transactions and ledger lineage

> One business-event list for posted and not-yet-posted work, with complete journal entries and source lineage.

# Transactions and ledger lineage

Transactions is the default view inside Books → Ledger.
One row is the business event behind the accounting, not one debit or one imported feed row.

The list deliberately unifies two authorities:

* posted and draft journal-entry sets from the canonical GL;
* intake documents that are still waiting to post.

Use the posting filter to separate `posted` from `unposted` without leaving the list.
The finer event state distinguishes a posted event, a draft journal group, and an original event that has been reversed.

## Follow the evidence

A posted event opens to every entry in its set, every line, the immutable checksum evidence, its source record or approved workpaper, and its intake document where one exists.
Lineage reports `resolved`, `missing`, or `legacy_unverified`; it never manufactures a source record from a display label.

An unposted document has no posted amount.
GreatBook shows its explicit proposed amount only when the document schema supplies one, and never converts a foreign proposed number into base currency with an assumed rate.

## What this surface refuses

Transactions excludes rejected documents because rejection is a decision, not pending accounting work.
It does not net a balanced journal to zero and call that the transaction amount, hide a missing source, treat a draft as posted, or infer that an optional intake source is empty when that source could not be read.

## When the answer is unknown

If the optional intake half is unavailable, the endpoint returns the narrower posted-only answer and marks `unposted_available` false.
If lineage cannot be proven, the event stays visible with `missing` or `legacy_unverified` rather than being called resolved.
An unreadable transaction response is an error, not an empty ledger.

## Verified at source

* `langgraph_chat/devcenter/gl_api.py` defines the posted/unposted union, excluded intake states, exact amount rules, metadata, and detail projection.
* `backend/app/logics/finance/gl_lineage.py` defines the source catalogue and the `resolved`, `missing`, and `legacy_unverified` states.
* The GreatBook web repository's `src/lib/gl-transactions.ts` validates server-declared filters and refuses unknown filter values instead of issuing a misleading query.
