---
title: "List tax exemptions for a user"
method: GET
path: "/users/{user_id}/tax_exemptions"
tags: ["Tax Exemptions"]
---

# List tax exemptions for a user

`GET /users/{user_id}/tax_exemptions`

## Request

- Base URL: `https://sandbox.upvest.co`
- URL: `https://sandbox.upvest.co/users/{user_id}/tax_exemptions`
- Auth: OAuth 2 (client credentials, token URL `https://sandbox.upvest.co/auth/token`, scopes: `taxes:admin`)

Returns the tax exemption orders of the end user identified by `user_id`.

Use the `offset` and `limit` query parameters to page through results; `meta.total_count` gives the total number of matching tax exemptions.

See the [Retrieving tax exemption orders guide](https://docs.upvest.co/products/tol/guides/taxes/tax_exemptions_get) for implementation details.

## Query parameters

- `sort` 'created_at'
- `order` 'ASC' | 'DESC'
- `offset` integer
- `limit` integer

## Response `200`

OK

- object: Paginated list of tax exemption orders for an end user. Contains a `data` array of tax exemption objects and a `meta` object with offset/limit pagination metadata.
  - `meta` object, required: Offset/limit pagination metadata for a list response. Contains the `offset` and `limit` applied to the request, the `count` of resources returned in this page, and the `total_count` of matching resources.
    - `offset` integer, required: Amount of resource to offset in the response.
    - `limit` integer, required: Total limit of the response.
    - `count` integer, required: Count of the resources returned in the response.
    - `total_count` integer, required: Total count of all the resources.
    - `sort` string: The field that the list is sorted by.
    - `order` 'ASC' | 'DESC': The ordering applied to the list. * ASC — Ascending order. * DESC — Descending order.
  - `data` object[], required: The tax exemption orders in this page of results.
    - `id` string, uuid, required: The unique identifier of the tax exemption order, as a UUID.
    - `created_at` string, date-time, required: Date and time when the resource was created. [RFC 3339-5](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), [ISO8601 UTC](https://www.iso.org/iso-8601-date-and-time-format.html)
    - `updated_at` string, date-time, required: Date and time when the resource was last updated. [RFC 3339-5](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), [ISO8601 UTC](https://www.iso.org/iso-8601-date-and-time-format.html)
    - `status` 'NEW' | 'ACTIVE' | 'EXPIRED' | 'CANCELLED', required: Tax exemption status * NEW - The tax exemption request is created. * ACTIVE - The tax exemption is valid and active for the current year. * EXPIRED - The tax exemption is no longer `ACTIVE` and the `valid_to_date` already lies in the past. An update is not possible. * CANCELLED - The tax exemption could not be created or was cancelled.
    - `user_ids` string[], required: Ids of the users for whom the tax exemption was created.
    - `country` string, required: Country code. [ISO 3166 alpha-2 Codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
    - `valid_from_date` string, date, required: Date from which the tax exemption is valid. [RFC 3339, section 5.6](https://json-schema.org/draft/2020-12/json-schema-validation.html#RFC3339)
    - `valid_to_date` string, date, nullable, required: Date until which the tax exemption is valid. If it is unlimited, it is omitted. For Germany it is always the last day of the year (YYYY-12-31). [RFC 3339, section 5.6](https://json-schema.org/draft/2020-12/json-schema-validation.html#RFC3339)
    - `tax_exemption_details` object, required: The German tax exemption details returned for a tax exemption order, including the allowance granted and the amounts used and remaining for the tax year.
      - `tax_exemption_type` 'SINGLE' | 'MARRIED' | 'CIVIL_PARTNERSHIP', required: Tax exemption type * SINGLE - Tax exemption for Individual. * MARRIED - Tax exemption for married couples. * CIVIL_PARTNERSHIP - Tax exemption for registered civil partnerships.
      - `tax_exemption_amount` object, required: A monetary amount relating to a tax exemption order, with its [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency.
        - `amount` string, required: A positive cash amount, as a decimal string with up to two decimal places.
        - `currency` 'EUR' | 'GBP', required: Alphabetic three-letter [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. * EUR — Euro. * GBP — Pound Sterling.
      - `utilized_amount` object, required: A monetary amount relating to a tax exemption order, with its [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency.
        - `amount` string, required: A positive cash amount, as a decimal string with up to two decimal places.
        - `currency` 'EUR' | 'GBP', required: Alphabetic three-letter [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. * EUR — Euro. * GBP — Pound Sterling.
      - `remaining_amount` object, required: A monetary amount relating to a tax exemption order, with its [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency.
        - `amount` string, required: A positive cash amount, as a decimal string with up to two decimal places.
        - `currency` 'EUR' | 'GBP', required: Alphabetic three-letter [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency code. * EUR — Euro. * GBP — Pound Sterling.

## Other responses

- `400`: Bad Request. The incoming request had a malformed parameter/object.
- `401`: Unauthorized. The caller has not been authenticated.
- `403`: Forbidden. The caller has been authenticated but is not allowed to take the requested action.
- `404`: Not Found. The requested resource could not be found.
- `405`: Method Not Allowed. The requested method is not allowed on the requested resource.
- `406`: Not Acceptable. The resource does not have a current representation that would be acceptable to the user agent. "Accept" header defined unsupported value.
- `429`: Too Many Requests. The caller has exceeded their quota for the time period and has been throttled.
- `500`: Internal Server Error. The service encountered an unexpected error.
- `503`: Service Unavailable. The service handling for this request cannot be reached at this time.
- `504`: Gateway Timeout. The service gateway has reached its internal timeout.

## Changes

- **2026-09-16** `85aff1852bf8`: 1 warning
  - added the new `CIVIL_PARTNERSHIP` enum value to the `data/items/tax_exemption_details/tax_exemption_type` response property for the response status `200`

[Operation history](https://skmtc.dev/upvest/apis/upvest-investment-api/changes/users/:user_id/tax_exemptions/get.md)

---

[API](https://skmtc.dev/upvest/apis/upvest-investment-api.md) · [All operations](https://skmtc.dev/upvest/apis/upvest-investment-api/llms.txt) · [OpenAPI document](https://skmtc.dev/upvest/apis/upvest-investment-api/revisions/ca69534b631d?raw)
