Purchase posting specifications
Purchase posting specifications
A purchase posting specification records the bookkeeping intent for a purchase invoice. It typically splits the purchase across one or more expense or asset accounts and captures the VAT handling decisions at the level where posting is decided.
Even when you treat the vendor invoice as the primary evidence, the posting specification is what makes bookkeeping automation possible. It is the structured explanation of how the invoice becomes debits and credits.
Ownership
Owner: bus invoices. This module is responsible for implementing write operations for this object and is the only module that should directly change the canonical datasets for it.
Secondary read-only use cases are provided by these modules when they consume this object for validation, matching, posting, or reporting:
bus journal receives posting outputs derived from purchase specifications, and bus vat validates VAT logic from purchase posting lines.
Actions
Split a purchase across accounts records multi-line intent so expenses and assets post to correct accounts. Decide purchase VAT handling records VAT treatment and deductibility at posting-decision level. Mark a line as capitalizable captures asset intent so later fixed-asset flows stay consistent.
Properties
Core posting fields are ledger_account_id, amount, and optional review note description.
VAT fields are vat_treatment, vat_rate, vat_amount, and vat_deductible_percent.
Optional classification fields are dimension, is_capitalizable, and asset_class_hint.
Relations
A purchase posting specification belongs to a purchase invoice. It captures how the invoice amount is split across one or more ledger accounts and which VAT treatment applies to each line.
When is_capitalizable is set, the line indicates fixed-asset intent that later fixed asset workflows can consume to keep asset capitalization consistent with what was booked.