> ## 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.

# The entry in the ledger

> The end of the golden path: a balanced, hash-chained entry, and how to find it again.

# The entry in the ledger

**What you are doing.** Confirming that the book moved by exactly the number printed on the document.

**View journal entry** opens the General Ledger focused on that entry: its lines, the native amount, the rate, and a totals row that says **balanced ✓**.

The header shows the book as a whole: the number of posted entries, total debits, total credits, and whether they agree.
That header is a one-second sanity check on the entire ledger, and it is worth glancing at every time.

<Warning>
  **Match on the document reference, not the entry number.**
  The ledger identifies this entry by its document reference, `TW-GUIDE-A1`.
  It does not print the `JE-000020` number the review page quoted.
</Warning>

## That is the whole loop

Paper, or a form → a hashed PDF → a signed document → a reviewed intake row → a drafted entry → a second approval → an immutable, hash-chained line in your general ledger.

```mermaid theme={null}
flowchart LR
  P["a form"] --> H["a hashed PDF"] --> S["a signed document"]
  S --> R["a reviewed intake row"] --> D["a drafted entry"]
  D --> A["a second approval"] --> L["an immutable,<br/>hash-chained line"]
```

## What just happened underneath

The write did rather more than insert two rows.

<Steps>
  <Step title="A per-org advisory lock was taken" icon="lock">
    So two concurrent postings cannot both extend the hash chain from the same head.
  </Step>

  <Step title="18 GL invariants were validated" icon="shield-check">
    Balance, one-sidedness, non-negative decimals, account ownership, currency and rate resolution,
    required dimensions, and an open period. On any failure the writer raises and writes nothing.
  </Step>

  <Step title="An entry number was allocated monotonically" icon="hash">
    Per org, so entry numbers cannot collide or go backwards.
  </Step>

  <Step title="The entry was chained" icon="link">
    The versioned checksum binds the previous checksum, the entry head and the canonical lines.
    The canonical form sorts the lines and stringifies the decimals, so neither line order nor
    `10` versus `10.0000` can change a checksum.
  </Step>

  <Step title="An event was appended to the event stream" icon="activity">
    Itself hash-chained. There are two chains over this entry, not one.
  </Step>
</Steps>

## What you cannot do here, and why

**You cannot edit this entry.**
Database triggers reject an UPDATE on a posted entry, so the rule holds even against a direct SQL session, not just against the application.

**You cannot delete it.**
The only correction is a reversing entry, which is itself a posted event with its own canonical reversal control and writer provenance.

**You cannot quietly change it.**
Every entry is chained to the one before it, and the Auditor recomputes the chain rather than trusting a stored flag.
A tampered entry breaks the recompute, and [the Auditor](/greatbook/guides/audit-your-books) reports it.

<Note>
  This is the trade the whole product makes.
  Immutability is inconvenient exactly once, at the moment you notice a mistake.
  It is valuable every other moment, because it is what makes the book worth reading.
</Note>

## Sub-ledgers

The sibling tab answers the questions the journal cannot.
**Subledgers** gives you who you owe and what is in the bank, rolled up from the same entries.

<Note>
  A control-account leg and its sub-ledger row are **one fact**.
  Nothing posts one without the other: every path that credits the AP control account goes through a
  single writer for the obligation, in the same transaction as the entry.
  So the sub-ledger and the control account cannot disagree, and the Close checksum that ties them is
  checking something real rather than a value against itself.
</Note>

## Finding it again

<Card title="Reading the General Ledger" icon="book-open" href="/greatbook/guides/read-the-ledger" horizontal>
  The filters, how to read one entry, and the sibling tabs.
</Card>

Lineage runs in both directions.
From **Books → Review**, open the posted row and click **View journal entry**; from Transactions, open the event to read its native source, approved workpaper and intake document when those records exist.
An unresolved historical source remains `missing` or `legacy_unverified` rather than being inferred from a label.

## Related

* [The seven guarantees](/greatbook/guarantees) - the invariants that ran during this write
* [Asking the Auditor](/greatbook/guides/audit-your-books) - proving the chain to yourself
* [Closing a period](/greatbook/guides/close-a-period)
