01must proveProposed | A tax zone uses an assigned two-letter country code, optionally narrowed by region and postal prefix; invalid country codes are refused on the country field. no proof recorded yet | validation | api, database | test |
02must proveProposed | A tax rate requires a name, an integer number of basis points within the supported ceiling, and dates whose start does not exceed their end. no proof recorded yet | validation | api, database | test |
03must proveProposed | Tax edits reject whitespace-only optional values and clear a field such as postal prefix only when an explicit null is supplied. no proof recorded yet | validation | api | test |
04must proveProposed | A rate with no product-type selection covers all types; a selected list limits coverage to those types and cannot exceed one hundred entries. no proof recorded yet | calculation | service, api | test |
05must proveProposed | Tax determination selects the most specific matching active zone, preferring postal prefix over region over country and retaining list order for equal specificity. no proof recorded yet | calculation | service | test |
06must proveProposed | Line tax sums separately calculated rates, each rounded to a whole minor currency unit with exact halves moving away from zero. origin: COMM-M1 D5 (docs/milestones/COMM-M1-set-up-what-you-sell.md) no proof recorded yet | calculation | service | test |
07must proveProposed | Potentially taxable checkout lines require a tax address; an address-free display quote instead reports zero tax and a warning. no proof recorded yet | policy | service | test |
08Proposed | Commerce uses workspace tax zones unless configured to delegate tax to Accounting, and rejects quotes configured with an unknown provider. | policy | service | test |
09Proposed | Replacing a tax zone replaces its rates at the read version, and removing the zone removes its rates. | invariant | service, database | test |
10must proveProposed | Tax-zone inspection requires read permission, while creation, replacement and removal require administrator write permissions. no proof recorded yet | permission | api | test |