01must proveProposed | A product may lack an accounting setup, in which case its summary is empty and recorded posting policy uses unit defaults. | policy | service | test |
02must proveProposed | Sellable products require a revenue account in their setup, while Legacy Products may omit it. | validation | service | test |
03must proveProposed | Setup accounts and dimensions belong to the product’s unit, except tax classes belong to the workspace as a whole. | validation | service, database | test |
04must proveProposed | Receivable and inventory slots require asset accounts, revenue requires income, deferred revenue requires liability, and write-off and cost of goods sold require expense. | validation | service | test |
05must proveProposed | New setup references require active records; an inactive record retained in the same field remains acceptable. | validation | service | test |
06must proveProposed | A setup tax class overrides its kind default, and an already held class remains acceptable after retirement. | policy | service, database | test |
07must proveProposed | A first setup needs no read version, but existing setups require their read version and reject stale replacement. | validation | service | test |
08must proveProposed | Setup replacement clears omitted values and replaces all child collections transactionally, preserving previous data if it fails. | invariant | service | test |
09must proveProposed | Update-locked setups require explicit lock removal for replacement, either lock blocks deletion, and authorized setup editors may remove locks. | permission | service | test |
10must proveProposed | Deleting an accounting setup leaves its product intact with an empty accounting summary. | lifecycle | service | test |
11must proveProposed | Accounts, dimensions, merchant accounts and tax classes referenced by setups cannot be deleted while referenced. | invariant | database | test |
12must proveProposed | Setup reads, replacement and deletion require separate product-accounting permissions, independent of product permissions. | permission | api | test |
13must proveProposed | A setup’s product and business unit are fixed at creation and cannot change. | invariant | service, database | test |
14Proposed | The console groups accounting into five cards, saves it separately after the product, and requires a receivable account beyond backend requirements. | policy | console | observed |
15Proposed | Accounting permits creation and replacement of setups on retired products. | policy | service | observed |
16must proveProposed | Changing an accounting setup after posting leaves the account recorded on the existing posted entry unchanged. | invariant | service | test |