Sales invoice rows

Sales invoice rows

A sales invoice row is the line-level specification of what was sold. For bookkeeping, invoice rows are the best place to record posting intent because they determine the income account and VAT handling more precisely than invoice headers.

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 accounts provides the chart used for income-account selection, and bus vat uses line-level VAT fields for reporting and validation.

Actions

Classify a sales invoice row records income account and VAT treatment so sales bookkeeping remains deterministic. Set sales row service period records service dates when period allocation depends on delivered period.

Properties

Core row identity and amount fields are invoice_row_id, invoice_id, description, amount, price, and discount_percent.

Tax and posting-intent fields are vat_percent, ledger_account_id, vat_treatment, and optional reporting tag dimension.

Service-period fields are service_start_date and service_end_date.

Sales invoice rows belong to the workspace’s accounting entity. Scope is derived from the workspace root directory, and rows typically reference accounts via ledger_account_id.

Relations

A sales invoice row belongs to one sales invoice via invoice_id. A sales invoice typically has one or more rows that together describe what was sold.

A sales invoice row references one ledger account via ledger_account_id and one VAT treatment via vat_treatment and vat_percent.