Financials pillar · v0.16.0
journal AccountingJournalEntry
The atomic posting unit. File layout: `.corpospec/financials/journal/<YYYY>/<MM>/<entity>/<id>.yaml`. One file per entry; never overwrite once `status: posted`.
$id · https://corpospec.com/schemas/v0.16.0/journal.schema.json
Fields
| Field | Type | Required | Description |
|---|---|---|---|
| content_hash | string | yes | SHA-256 of canonicalised payload (excluding this field). The validator recomputes on every read for tamper detection. |
| currency | IsoCurrency | yes | Default currency of the entry; per-line `original_currency` may override. |
| description | string | yes | One-line summary; appears on the statement. |
| effective_date | IsoDate | yes | Accounting effective date (drives period assignment). |
| entity | PathRef | yes | The bookkeeping entity. |
| id | PathRef | yes | PathRef identifier, conventionally `financials/journal/<entity>/<YYYY-MM-DD>-<seq>`. |
| lines | JournalLine[] | yes | Lines. Must be ≥2 for a valid double-entry posting. |
| period | PathRef | yes | PathRef into the `AccountingPeriod` this entry posts to. |
| posted_at | IsoDate | yes | RFC 3339 instant the entry was recorded. |
| posted_by | PathRef | yes | PathRef into `people/**` for who posted. |
| source | AccountingJournalSource | yes | Source classification. |
| status | JournalStatus | yes | Lifecycle status. |
| approved_by | PathRef? | — | PathRef into `people/**` for approver. Required when entry amount exceeds policy threshold (configured per entity). |
| git_commit_sha | string? | — | Git commit SHA recorded by a pre-commit hook. |
| note | string? | — | Free-form internal commentary; visible to bookkeeper only. |
| references | PathRef[] | — | PathRefs into source documents (invoices, contracts, bank lines). |
| reversal_of | PathRef? | — | When this entry reverses a prior one. |
Definitions
Shared types referenced within this schema.
AccountingJournalSource
Where a journal entry originated.
Dimension
Per-line dimensional tags. Drive cross-pillar reporting (segment P&L,
product P&L, project burndown, customer / vendor sub-ledger).
type: object
IsoCurrency
ISO 4217 currency code.
pattern: ^[A-Z]{3}$
IsoDate
ISO 8601 date (YYYY-MM-DD).
type: string
JournalLine
One line of a journal entry.
Invariant (L4-JE-2 from BDR 0066): exactly one of `debit` or `credit`
is `Some(_)`. The validator rejects entries that violate this.
type: object
JournalStatus
Lifecycle status of a journal entry.
PathRef
Path-based cross-reference relative to .corpospec/ root.
Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
pattern: ^[a-z0-9_-]+(/[a-z0-9_.-]+)+$
Reference in your YAML
# yaml-language-server: $schema=https://corpospec.com/schemas/v0.16.0/journal.schema.json