# Tax exemptions auto-renewal

With the Investment API, an exemption order with an indefinite or unexpired date at the end of the calendar year is automatically carried over to the next year.

Auto-renewal of tax exemption orders refers to the automatic extension of tax-exempt status from one year to the next without requiring any additional action by the clients. This process also simplifies the administrative burden for you and your end users that qualify for tax exemption, ensuring that their status remains active without the need for annual reapplications.

This guide will introduce you to the topic and you will learn under which circumstances a tax exemption order can be extended or renewed.

## How does auto-renewal work?

Upvest has implemented an auto-renewal system that ensures eligible taxpayers can maintain their exemption seamlessly, provided they continue to meet the criteria established by the tax authorities.

Below we describe how and when the reconciled tax exemption data can be carried over into the new year.

### When does a renewal take place?

Basically, the renewal process is triggered every year on January 1st (New Year's Day).

### Process flow

The following diagram outlines the process flow for a tax exemption auto-renewal:

During this process, if the `valid_to_date` is not later than the end of current year, Upvest sets the `EXPIRED` status on the tax exemption and sends a `TAX_EXEMPTION.UPDATED` webhook event.

## Use cases

In the following, we illustrate examples of the rollover of the tax exemption from 2027 to 2028 using a few use cases.

### The expiry date is after the turn of the year

The current tax exemption has `valid_to_date = 2028-12-31`.

The expiry date of the current tax exemption is therefore after the New Year date. The following procedures apply:

Change previous tax exemption status
First, the previous tax exemption order is marked as `EXPIRED`.


UPDATED webhook event sent
A webhook with the type `UPDATED` is being triggered.


Create new tax exemption
A new tax exemption order is created for the new year with:

- `valid_to_date = 2028-12-31`.
- `status = ACTIVE`
- `utilized_amount = 0`


`CREATED` webhook event sent
A webhook with the type `CREATED` is being triggered.

### Infinite validity

The current tax exemption has `valid_to_date = NULL`.

This means that this tax exemption is valid indefinitely. The following procedures apply:

Change previous tax exemption status
First, the previous tax exemption order is marked as `EXPIRED`.


UPDATED webhook event sent
A webhook with the status `UPDATED` is being triggered.


Create new tax exemption
A new tax exemption order is created for the new year with:

- `valid_to_date = NULL`.
- `status = ACTIVE`
- `utilized_amount = 0`


`CREATED` webhook event sent
A webhook with the status `CREATED` is being triggered.

### Validity expires at the end of the year

The current tax exemption's `valid_to_date = 2027-12-31`. In this case, no auto-renewal is executed.

The tax exemption order is marked as `EXPIRED`.


A webhook with the status `UPDATED` is being triggered.


With the `valid_to_date` field set to NULL, or with a `valid_to_date` set to `YYYY-12-31`, where `YYYY` equals a future year, the tax exemption automatically carries over into the next tax year.