> Documentation index: [Saleor](/llms.txt) · [This section](/api-reference/taxes/llms.txt)
> Source: https://docs.saleor.io/api-reference/taxes/objects/tax-configuration

# TaxConfiguration Object

Channel-specific tax configuration.

```graphql
type TaxConfiguration implements Node, ObjectWithMetadata {
  id: ID!
  privateMetadata: [MetadataItem!]!
  privateMetafield(
    key: String!
  ): String
  privateMetafields(
    keys: [String!]
  ): Metadata
  metadata: [MetadataItem!]!
  metafield(
    key: String!
  ): String
  metafields(
    keys: [String!]
  ): Metadata
  channel: Channel!
  chargeTaxes: Boolean!
  taxCalculationStrategy: TaxCalculationStrategy
  displayGrossPrices: Boolean!
  pricesEnteredWithTax: Boolean!
  countries: [TaxConfigurationPerCountry!]!
  taxAppId: String
  useWeightedTaxForShipping: Boolean
}
```

<a id="fields"></a>

### Fields

<a id="id"></a>

#### [`id`](#id) ● [`ID!`](/api-reference/miscellaneous/scalars/id.md)

The ID of the object.

<a id="private-metadata"></a>

#### [`privateMetadata`](#private-metadata) ● [`[MetadataItem!]!`](/api-reference/miscellaneous/objects/metadata-item.md)

List of private metadata items. Requires staff permissions to access.

<a id="private-metafield"></a>

#### [`privateMetafield`](#private-metafield) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

A single key from private metadata. Requires staff permissions to access.

Tip: Use GraphQL aliases to fetch multiple keys.

<a id="tax-configuration-private-metafield-key"></a>

##### [`key`](#tax-configuration-private-metafield-key) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

<a id="private-metafields"></a>

#### [`privateMetafields`](#private-metafields) ● [`Metadata`](/api-reference/miscellaneous/scalars/metadata.md)

Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything.

<a id="tax-configuration-private-metafields-keys"></a>

##### [`keys`](#tax-configuration-private-metafields-keys) ● [`[String!]`](/api-reference/miscellaneous/scalars/string.md)

<a id="metadata"></a>

#### [`metadata`](#metadata) ● [`[MetadataItem!]!`](/api-reference/miscellaneous/objects/metadata-item.md)

List of public metadata items. Can be accessed without permissions.

<a id="metafield"></a>

#### [`metafield`](#metafield) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

A single key from public metadata.

Tip: Use GraphQL aliases to fetch multiple keys.

<a id="tax-configuration-metafield-key"></a>

##### [`key`](#tax-configuration-metafield-key) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

<a id="metafields"></a>

#### [`metafields`](#metafields) ● [`Metadata`](/api-reference/miscellaneous/scalars/metadata.md)

Public metadata. Use `keys` to control which fields you want to include. The default is to include everything.

<a id="tax-configuration-metafields-keys"></a>

##### [`keys`](#tax-configuration-metafields-keys) ● [`[String!]`](/api-reference/miscellaneous/scalars/string.md)

<a id="channel"></a>

#### [`channel`](#channel) ● [`Channel!`](/api-reference/channels/objects/channel.md)

A channel to which the tax configuration applies to.

<a id="charge-taxes"></a>

#### [`chargeTaxes`](#charge-taxes) ● [`Boolean!`](/api-reference/miscellaneous/scalars/boolean.md)

Determines whether taxes are charged in the given channel.

<a id="tax-calculation-strategy"></a>

#### [`taxCalculationStrategy`](#tax-calculation-strategy) ● [`TaxCalculationStrategy`](/api-reference/taxes/enums/tax-calculation-strategy.md)

The default strategy to use for tax calculation in the given channel. Taxes can be calculated either using user-defined flat rates or with a tax app. Empty value means that no method is selected and taxes are not calculated.

<a id="display-gross-prices"></a>

#### [`displayGrossPrices`](#display-gross-prices) ● [`Boolean!`](/api-reference/miscellaneous/scalars/boolean.md)

Determines whether displayed prices should include taxes.

<a id="prices-entered-with-tax"></a>

#### [`pricesEnteredWithTax`](#prices-entered-with-tax) ● [`Boolean!`](/api-reference/miscellaneous/scalars/boolean.md)

Determines whether prices are entered with the tax included.

<a id="countries"></a>

#### [`countries`](#countries) ● [`[TaxConfigurationPerCountry!]!`](/api-reference/taxes/objects/tax-configuration-per-country.md)

List of country-specific exceptions in tax configuration.

<a id="tax-app-id"></a>

#### [`taxAppId`](#tax-app-id) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

The tax app `App.identifier` that will be used to calculate the taxes for the given channel. Empty value for `TAX_APP` set as `taxCalculationStrategy` means that Saleor will iterate over all installed tax apps. If multiple tax apps exist with provided tax app id use the `App` with newest `created` date. Will become mandatory in 4.0 for `TAX_APP` `taxCalculationStrategy`.

Added in Saleor 3.19

<a id="use-weighted-tax-for-shipping"></a>

#### [`useWeightedTaxForShipping`](#use-weighted-tax-for-shipping) ● [`Boolean`](/api-reference/miscellaneous/scalars/boolean.md)

Determines whether to use weighted tax for shipping. When set to true, the tax rate for shipping will be calculated based on the weighted average of tax rates from the order or checkout lines.

Added in Saleor 3.21

<a id="interfaces"></a>

### Interfaces

<a id="node"></a>

#### [`Node`](/api-reference/miscellaneous/interfaces/node.md)

An object with an ID

<a id="objectwithmetadata"></a>

#### [`ObjectWithMetadata`](/api-reference/miscellaneous/interfaces/object-with-metadata.md)

<a id="returned-by"></a>

### Returned By

[`taxConfiguration`](/api-reference/taxes/queries/tax-configuration.md) query

<a id="member-of"></a>

### Member Of

[`Channel`](/api-reference/channels/objects/channel.md) object  ● [`TaxConfigurationCountableEdge`](/api-reference/taxes/objects/tax-configuration-countable-edge.md) object  ● [`TaxConfigurationUpdate`](/api-reference/taxes/objects/tax-configuration-update.md) object
