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