---
id: object/table/322
type: object
title: Table 322 "Tax Detail"
summary: Table 322 "Tax Detail" in Base Application (Microsoft.Finance.SalesTax). 8 fields, 4 public procedures. Present since at least BC23, still in BC30, changed in BC24, BC28-29.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "29"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: e446904f2c29bab619669d47e8ef4e6aef769e81d80dc6d0ad82dc34064d8292
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/SalesTax/TaxDetail.Table.al
    title: src/Layers/W1/BaseApp/Finance/SalesTax/TaxDetail.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/how-to-set-up-unrealized-sales-tax-and-sales-payment-discounts
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/how-to-set-up-use-tax-and-purchase-tax
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/tax-1099-changes
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/united-states-local-functionality
    - https://learn.microsoft.com/dynamics365/business-central/LocalFunctionality/UnitedStates/us-sales-tax
    - https://learn.microsoft.com/dynamics365/business-central/sales-tax-concept
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-receivables
    - topic/business-central/business-functionality/local-functionality/united-states
    - topic/business-central/business-functionality/local-functionality/united-states/tax
  localizations:
    - localization/ca
    - localization/mx
    - localization/us
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 322
name: Tax Detail
namespace: Microsoft.Finance.SalesTax
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries:
  - ca
  - mx
  - us
ms_search_form_ids: []
counts:
  fields: 8
  procedures: 7
  events: 0
  subscribers: 0
relations:
  out: 2
  referenced_by: 0
  pages: 1
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Table 322 "Tax Detail"

> Table 322 "Tax Detail" in Base Application (Microsoft.Finance.SalesTax). 8 fields, 4 public procedures. Present since at least BC23, still in BC30, changed in BC24, BC28-29.

Base Application · Microsoft.Finance.SalesTax · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/SalesTax/TaxDetail.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 468 "Tax Details"](../page/468.md) (6 Learn pages).

## Properties

| Property | Value |
|---|---|
| Caption | Tax Detail |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Tax Jurisdiction Code | Code[10] | Specifies the tax jurisdiction code for the tax-detail entry. | TableRelation [Table 320 "Tax Jurisdiction"](../table/320.md) (Tax Jurisdiction); NotBlank |
| 2 | Tax Group Code | Code[20] | Specifies the tax group code for the tax-detail entry. | TableRelation [Table 321 "Tax Group"](../table/321.md) (Tax Group) |
| 3 | Tax Type | Option | Specifies the type of tax (Sales Tax or Excise Tax) that applies to the tax-detail entry. | OptionCaption: Sales Tax,Excise Tax |
| 4 | Maximum Amount/Qty. | Decimal | Specifies a maximum amount or quantity. The program finds the appropriate tax percentage in either the Tax Below Maximum or the Tax Above Maximum field. |  |
| 5 | Tax Below Maximum | Decimal | Specifies the percentage that will be used to calculate tax for all amounts or quantities below the maximum amount quantity in the Maximum Amount/Qty. field. |  |
| 6 | Tax Above Maximum | Decimal | Specifies the percentage that will be used to calculate tax for all amounts or quantities above the maximum amount quantity in the Maximum Amount/Qty. field. |  |
| 7 | Effective Date | Date | Specifies a date on which the tax-detail entry will go into effect. This allows you to set up tax details in advance. |  |
| 8 | Calculate Tax on Tax | Boolean | — | not editable |

## Keys

- Key1: Tax Jurisdiction Code, Tax Group Code, Tax Type, Effective Date (clustered)

## Procedures

- `ValidateTaxSetup(TaxAreaCode: Code[20]; TaxGroupCode: Code[20]; EffectiveDate: Date)`: Validates and creates missing tax details for a specific tax area and group combination. Ensures all required tax detail records exist for proper tax calculation.
- `GetSalesTaxRate(TaxAreaCode: Code[20]; TaxGroupCode: Code[20]; EffectiveDate: Date; TaxLiable: Boolean): Decimal`: Calculates the total sales tax rate for a tax area and group combination. Sums tax rates across all jurisdictions within the specified tax area.
- `SetSalesTaxRate(TaxAreaCode: Code[20]; TaxGroupCode: Code[20]; NewTaxRate: Decimal; EffectiveDate: Date)`: Updates the sales tax rate for a specific tax area and group combination. Automatically distributes rate changes across appropriate jurisdictions.
- `SetSalesTaxRateDetailed(TaxAreaCode: Code[20]; TaxGroupCode: Code[20]; NewCityRate: Decimal; NewCountyRate: Decimal; NewStateRate: Decimal; EffectiveDate: Date)`: Sets detailed sales tax rates for city, county, and state jurisdictions separately. Allows precise control over multi-level jurisdiction tax rates.

Plus 3 local procedures.

## Triggers

OnInsert, OnRename

## Relations

- Tax Jurisdiction Code: TableRelation [Table 320 "Tax Jurisdiction"](../table/320.md)
- Tax Group Code: TableRelation [Table 321 "Tax Group"](../table/321.md)

## Pages and codeunits on this table

- [Page 468 "Tax Details"](../page/468.md) (source table)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC28-29

## Countries that replace it

[CA](../../localizations/ca.md), [MX](../../localizations/mx.md), [US](../../localizations/us.md)

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Tax Detail")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
