---
id: SCR-ACC-BKS-012
title: Tax classes configuration
route: '/console/{tenantId}/configuration/accounting/taxClasses'
surface: console
product_area: accounting
module: books
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
purpose: >-
  Maintain tax classifications and the default classification for each product
  type.
supports:
  - CAP-ACC-BKS-013
permission: accounting.tax-classes.read
entry_from:
  - >-
    '/console/{tenantId}/configuration' (Accounting group in the configuration
    catalogue)
  - Navigation between Accounting setup screens
exits_to:
  - >-
    '/console/{tenantId}/configuration' (Accounting group in the configuration
    catalogue)
displays:
  - field: Tax classifications ordered by name
    source: listTaxClasses
  - field: 'Classification name, description and availability'
    source: getTaxClass
  - field: Product-type defaults with editable choices supplied by Products
    source: listProductTypeTaxClasses (owned by Products)
actions:
  - label: Add Tax Class
    operation_id: createTaxClass
    permission: accounting.tax-classes.create
    confirm: false
  - label: Save
    operation_id: updateTaxClass
    permission: accounting.tax-classes.update
    confirm: false
  - label: Deactivate or Activate
    operation_id: updateTaxClass
    permission: accounting.tax-classes.update
    confirm: false
  - label: Delete
    operation_id: deleteTaxClass
    permission: accounting.tax-classes.delete
    confirm: true
  - label: Save product-type default
    operation_id: replaceProductTypeTaxClass
    permission: accounting.tax-classes.update
    confirm: false
  - label: Clear product-type default
    operation_id: deleteProductTypeTaxClass
    permission: >-
      accounting.tax-classes.update (console control);
      accounting.tax-classes.delete (service)
    confirm: false
states:
  - empty
  - loading
  - error
  - read-only
  - inactive
validation:
  - BR-CAP-ACC-BKS-013-07
  - BR-CAP-ACC-BKS-013-08
patterns:
  - >-
    Shared configuration list with search, sorting, availability filtering and
    an empty state
  - 'Permission-gated bulk activation, deactivation and deletion'
  - Deletion confirmation; availability changes are immediate
  - Editor unsaved-changes protection
  - Accounting read loading and error panels
  - Side-panel classification editor
  - Products-owned default-class panel with a per-row Save control
component: components/configuration/resources/accounting-tax.tsx
evidence:
  - >-
    react-console at baf6dae3:
    components/configuration/resources/accounting-tax.tsx
  - >-
    react-console:components/configuration/config-list-screen.tsx:changeStatus;
    components/configuration/standard.tsx:standardCapabilities (shared-list
    behavior where applicable)
  - >-
    react-console:components/configuration/tax/product-type-tax-classes-panel.tsx;
    services-accounting:modules/products/aws/api/products.routes.ts:replaceProductTypeTaxClass,
    deleteProductTypeTaxClass
controls: [TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-005, TC-AZ-006, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-DAT-004, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PI-005]
---

# Tax classes configuration

## What the Screen Is For

Maintain tax classifications and the default classification for each product type.

## What It Shows and Lets People Do

Classification maintenance uses the shared list and side panel. A separate Products-owned panel lists active product types, lets staff assign a class and clears a held default when an empty choice is saved. Its choices include active classes and any inactive class currently held.

## States and Errors

The default panel is visible with tax-class read permission and enables Save with tax-class update permission. Assignment requires that update permission in the service. Clearing requires delete permission in the service even though the console uses the update gate; that mismatch remains a finding. Classification replacements retain version checks, and restricting references can refuse deletion.

## Patterns It Must Respect

Shared configuration list with search, sorting, availability filtering and an empty state. Permission-gated bulk activation, deactivation and deletion. Deletion confirmation; availability changes are immediate. Editor unsaved-changes protection. Accounting read loading and error panels. Side-panel classification editor. Products-owned default-class panel with a per-row Save control.
