> ## Documentation Index
> Fetch the complete documentation index at: https://docs.infinity.swiss/llms.txt
> Use this file to discover all available pages before exploring further.

# List available tax codes

> Lists the VAT tax codes that can be used in the `taxCode` field of ledger entries on a given date.

Which tax codes are available depends on the organisation's VAT settings for that date:
- Without VAT, no tax codes are available.
- With the effective method, the statutory tax codes at the rates in force on that date are available (e.g. `UN81` from 2024 on, `UN77` before).
- With the simplified method (Saldosteuersatz), the organisation's own simplified tax codes (e.g. `SS53`) are available, along with the statutory codes that keep their meaning under the simplified method, such as `UEX` or `BZB81`.

## Choosing a tax code

Use this endpoint to find out which values are accepted in the `taxCode` field when [posting a ledger entry](/api/accounting/create). The available tax codes depend on the organisation's VAT settings and on the statutory VAT rates in force on the date of the booking, so pass the booking date as the `date` parameter:

```bash theme={null}
curl "https://api.infinity.swiss/v1/tax-codes?date=2025-03-01" \
  -H "x-api-token: your-api-token"
```

* If the organisation is not subject to VAT, the list is empty and ledger entries should be posted without a tax code.
* With the effective method, the statutory tax codes are returned at the rates that apply on the given date, e.g. `UN81` for the normal rate of 8.1% from 2024 on.
* With the simplified method (Saldosteuersatz), the organisation's own simplified tax codes such as `SS53` are returned, together with the statutory codes that keep their meaning under the simplified method (e.g. `UEX` for exports or `BZB81` for reverse charge). The default simplified tax code is marked with `isDefault`.

<Note>
  For a full explanation of every statutory tax code, see [“Liste der
  MWST-Codes“](https://docs.infinity.swiss/de/docs/accounting/vat/tax-codes).
</Note>


## OpenAPI

````yaml GET /v1/tax-codes
openapi: 3.1.0
info:
  title: infinity.swiss Open API
  version: '1.0'
  summary: ''
servers:
  - url: https://api.infinity.swiss
security:
  - apiKey: []
paths:
  /v1/tax-codes:
    get:
      tags: []
      summary: List available tax codes
      description: >-
        Lists the VAT tax codes that can be used in the `taxCode` field of
        ledger entries on a given date.


        Which tax codes are available depends on the organisation's VAT settings
        for that date:

        - Without VAT, no tax codes are available.

        - With the effective method, the statutory tax codes at the rates in
        force on that date are available (e.g. `UN81` from 2024 on, `UN77`
        before).

        - With the simplified method (Saldosteuersatz), the organisation's own
        simplified tax codes (e.g. `SS53`) are available, along with the
        statutory codes that keep their meaning under the simplified method,
        such as `UEX` or `BZB81`.
      operationId: find-tax-codes-v1
      parameters:
        - schema:
            type: string
            format: date
          in: query
          name: date
          description: >-
            The date for which to list the available tax codes in YYYY-MM-DD
            format. Defaults to today.
          example: '2025-03-01'
      responses:
        '200':
          description: The tax codes that can be used for ledger entries on the given date.
          content:
            application/json:
              schema:
                type: object
                required:
                  - taxCodes
                properties:
                  taxCodes:
                    type: array
                    items:
                      $ref: '#/components/schemas/AvailableTaxCode'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorised'
components:
  schemas:
    AvailableTaxCode:
      title: AvailableTaxCode
      type: object
      description: A VAT tax code that can be used for ledger entries.
      required:
        - code
        - name
        - rate
        - type
      properties:
        code:
          type: string
          description: >-
            The tax code to use in the `taxCode` field of a ledger entry, e.g. a
            statutory code like `UN81` or a simplified tax code like `SS53`.
          example: UN81
        name:
          type: string
          description: A short name describing the tax code.
          example: Umsatz (NS)
        rate:
          type: number
          description: >-
            The VAT rate in percent that is booked with this tax code. For
            simplified tax codes, this is the Saldosteuersatz owed to the tax
            authority.
          example: 8.1
        type:
          type: string
          enum:
            - sales-tax
            - input-tax
            - input-tax-only
            - reverse-charge-tax
            - saldo-sales-tax
          description: >-
            The kind of VAT the tax code books:

            - `sales-tax`: VAT owed on revenue (Umsatzsteuer)

            - `input-tax`: deductible VAT on purchases and imports (Vorsteuer,
            Einfuhrsteuer)

            - `input-tax-only`: deductible import VAT on customs invoices

            - `reverse-charge-tax`: VAT owed on services purchased from abroad
            (Bezugssteuer)

            - `saldo-sales-tax`: VAT on revenue settled with the simplified
            method (Saldosteuersatz)
        statutoryRate:
          type: number
          description: >-
            Only for simplified tax codes: the statutory VAT rate in percent
            that customers are charged, e.g. 8.1 for the normal rate.
          example: 8.1
        isDefault:
          type: boolean
          description: >-
            Only for simplified tax codes: whether this is the default tax code
            of the organisation.
  responses:
    BadRequest:
      description: >-
        A bad request is thrown if the request payload is malformed or fails
        validation.
      content:
        application/json:
          schema:
            type: object
            required:
              - code
            properties:
              code:
                type: string
                description: |-
                  The specific error code for this request. May be:
                  - `general/missing-fields`
                  - `general/malformed-request`
                  - `general/invalid-date`
                  - `general/input-too-long`
                  - `general/zero-or-negative-amount-not-allowed`
              invalidFields:
                type: array
                description: A list of the fields which were invalid, if applicable.
                items:
                  type: string
    Unauthorised:
      description: >-
        An unauthorised request was submitted. You may be using an incorrect or
        expired API token, or are attempting to access a document outside of the
        scope of the token.
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: string
                x-stoplight:
                  id: 08hkw8ukmi2lp
                description: Specific error code
          examples:
            Unauthorised request:
              value:
                code: general/unauthorised
  securitySchemes:
    apiKey:
      name: x-api-token
      type: apiKey
      in: header
      description: >-
        API token for authentication. Obtain from your Infinity account
        settings.

````