# Create tax exemption order for a person

Creates a tax exemption order for a person's savings account, specified in
the request URL by its ID. Specify the amount to be exempted from tax in the
request body.

Endpoint: POST /v1/persons/{person_id}/deposit_accounts/{account_id}/tax_exemptions
Version: 1.0

## Path parameters:

  - `person_id` (string, required)
    Unique ID of a person.
    Example: "111110faed3c03261a08e2660c0c08bdcper"

  - `account_id` (string, required)
    Unique ID of a Solaris account.
    Example: "e48c29b85992b8772eb7ddd518490920cacc"

## Request fields (application/json):

  - `reference` (string, required)
    UUID to use as an idempotency reference for the transaction.
    Example: "162ddd7e-790c-5963-908f-4cedfd30f9a1"

  - `amount` (object, required)
    The amount to be exempted from tax.

  - `amount.value` (integer)
    The amount.
    Example: 5000

  - `amount.unit` (string)
    Money unit used to represent the amount.
    Example: "cents"

  - `amount.currency` (string)
    The currency in which the amount is represented.
    Example: "EUR"

  - `valid_from_year` (string, required)
    Year from which the tax exemption order takes effect.
    Example: "2023"

  - `valid_to_year` (string)
    Year until which the tax exemption order applies.
    Example: "2025"

## Response 202 fields (application/json):

  - `id` (string, required)
    ID of the tax exemption order.
    Example: "d222a0b8-07ea-49be-83c1-68719be286e8"

  - `reference` (string, required)
    UUID to use as an idempotency reference for the transaction.
    Example: "162ddd7e-790c-5963-908f-4cedfd30f9a1"

  - `amount` (object, required)
    The amount to be exempted from tax.

  - `amount.value` (integer)
    The amount.
    Example: 5000

  - `amount.unit` (string)
    Money unit used to represent the amount.
    Example: "cents"

  - `amount.currency` (string)
    The currency in which the amount is represented.
    Example: "EUR"

  - `valid_from_year` (string, required)
    Year from which the tax exemption order takes effect.
    Example: "2023"

  - `valid_to_year` (string)
    Year until which the tax exemption order applies.
    Example: "2025"

## Response 400 fields (application/json):

  - `errors` (array)
    Example: [{"id":"ab9bc911-d5bb-481e-bdf5-ce006d96fa0c","status":400,"code":"validation_error","title":"Validation Error","detail":"The request could not be processed due to invalid input.","error_code":"invalid_request","source":{"field":"key","message":"One or more request parameters are missing or malformed."}}]

  - `errors.id` (string)
    Unique identifier for this error occurrence. Include it when contacting support.

  - `errors.status` (integer)
    The HTTP status code.

  - `errors.code` (string)
    The error category.

  - `errors.title` (string)
    Human-readable summary of the error category.

  - `errors.detail` (string)
    Human-readable explanation of this specific error.

  - `errors.error_code` (string)
    Machine-readable code identifying the specific failure. Use this rather than parsing detail. Not returned on every error.

  - `errors.source` (object)
    The request field that caused the error. Returned for validation errors; omitted where no specific field applies.

  - `errors.source.field` (string)
    Name of the request field that failed the validation.

  - `errors.source.message` (string)
    Human-readable explanation of why this specific field was rejected.

## Response 403 fields (application/json):

  - `errors` (array)
    Example: [{"id":"c47d8b21-6e3f-4a82-b715-2d9e4f8a1c56","status":403,"code":"unauthorized_action","title":"Unauthorized Action","detail":"The authenticated client is not permitted to perform this action."}]

  - `errors.id` (string)
    Unique identifier for this error occurrence. Include it when contacting support.

  - `errors.status` (integer)
    The HTTP status code.

  - `errors.code` (string)
    The error category.

  - `errors.title` (string)
    Human-readable summary of the error category.

  - `errors.detail` (string)
    Human-readable explanation of this specific error.

  - `errors.error_code` (string)
    Machine-readable code identifying the specific failure. Not returned on every error.

## Response 404 fields (application/json):

  - `errors` (array)
    Example: [{"id":"1365d465-71e9-44a0-a2da-b02f090ff760","status":404,"code":"not_found","title":"Not Found","detail":"No resource exists at the given identifier.","error_code":"not_found"}]

  - `errors.id` (string)
    Unique identifier for this error occurrence. Include it when contacting support.

  - `errors.status` (integer)
    The HTTP status code.

  - `errors.code` (string)
    The error category.

  - `errors.title` (string)
    Human-readable summary of the error category.

  - `errors.detail` (string)
    Human-readable explanation of this specific error.

  - `errors.error_code` (string)
    Machine-readable code identifying the specific failure. Not returned on every error.

## Response 409 fields (application/json):

  - `id` (string)
    X-Request-ID of the http request
    Example: "b35f2aaf-4e0c-4d49-8021-8a16a884ed81"

  - `status` (string)
    Example: "409"

  - `code` (string)
    Example: "record_not_unique"

  - `title` (string)
    Example: "Record not unique"

  - `details` (string)
    Example: "Record already exists."

## Response 500 fields (application/json):

  - `errors` (array)
    Example: [{"id":"1365d465-71e9-44a0-a2da-b02f090ff760","status":500,"code":"generic_error","title":"Generic Error","detail":"An unexpected error occurred while processing the request.","error_code":"generic_error"}]

  - `errors.id` (string)
    Unique identifier for this error occurrence. Include it when contacting support so the failure can be traced.

  - `errors.status` (integer)
    The HTTP status code.

  - `errors.code` (string)
    The error category.

  - `errors.title` (string)
    Human-readable summary of the error category.

  - `errors.detail` (string)
    Human-readable explanation of this specific error.

  - `errors.error_code` (string)
    Machine-readable code identifying the specific failure. Not returned on every error.


