# List all tax codes

`GET /api/configuration/tax-codes`

- **Success:** `200 OK`
- **Products:** Operator (`FOH`)
- **Features:** Front of House Generic Access (`FOHGENERIC`)

HTML version: [List all tax codes](https://support.gladstonesoftware.cloud/reference/configuration/list-all-tax-codes)

## Overview

Returns every tax code configured for your tenant, with its rate and its translated descriptions.
A tax code is the identifier a product or charge is tagged with so the platform knows which tax rate
to apply — VAT bands, zero-rated and exempt codes, and any locally defined equivalents.

Use this call to build the lookup table your integration needs before it reads or writes anything
priced, since tax codes are referenced by their string `id` rather than a numeric key. To read a
single code including its translations, call
[Retrieve a tax code's details](retrieve-a-tax-codes-details.md).

The result is not paginated or filtered — you always get the whole set. A code created or
amended in the back office may not be visible on the very next call.

## Endpoint

`GET {base_url}/api/configuration/tax-codes`

`{base_url}` is the environment URL issued to your integration. See [Authenticating with Gladstone APIs](../../guides/authenticating-with-gladstone-apis.md).

## Sample request

```bash title="cURL"
curl -X GET '{base_url}/api/configuration/tax-codes' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'
```

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `[].id` | string | The tax code's identifier, unique within your tenant — a short string, not a number. It is the value other configuration records use to reference this tax code. Codes are upper-cased with spaces stripped, so send them back exactly as returned. Where a code was created without a caller-supplied id, the platform generates one prefixed `TAXC`. |
| `[].description` | string | The default, untranslated label for the code, in the tenant's base language. Use `translations` in preference where you have a culture to render for. |
| `[].rate` | number (float) | The tax rate applied by this code. Rates are held to a maximum of two decimal places — creating or updating a code with more is rejected with `The tax rate can only be specified to two decimal places`. A code with no rate configured is returned as `0`, not `null`. |
| `[].reference` | string | A free-text reference held against the code, typically for matching to an external finance or accounting system. Set at create or update time and returned unchanged; no format or uniqueness rule applies to it. May be `null`. |
| `[].translations` | array of object | Culture-specific versions of `description`, one entry per configured culture. Only the description is translatable for a tax code — no other field has translations. Returned as an empty array, not `null`, when nothing has been translated, so a client can iterate it unconditionally. |
| `[].translations[].type` | string | The property this entry translates. For tax codes it is always `description`, because that is the only translated property; treat any other value as unexpected rather than filtering on it. |
| `[].translations[].culture` | string | The culture the translation applies to — match it against the locale you are rendering for and fall back to `description` when there is no entry. |
| `[].translations[].text` | string | The translated description for this culture. Replaces `description` for display; it does not extend it. |

## Sample response

```json title="200 OK"
[
  {
    "id": "string",
    "description": "string",
    "rate": 10.5,
    "reference": "string",
    "translations": [
      {
        "type": "string",
        "culture": "string",
        "text": "string"
      }
    ]
  }
]
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `500` | Internal server error | |
