---
updatedAt: 2025-10-12T20:26:15.000Z
agentTools:
  projectIndex: https://docs.checkhq.com/llms.txt
---

# Tax Deposits

Gain visibility into the status of payments for tax liabilities.

"Tax Deposit" refers to a payment that a company owes to a tax agency for any payrolls that ran on Check. Using Check’s [List tax deposits endpoint](https://docs.checkhq.com/reference/list-tax-deposits), you can give companies visibility into their Tax Deposits and communicate which may require follow-up actions

## Tax Deposit Lifecycle

When a company approves a payroll, Check will add new Tax Deposits corresponding to the payroll's tax liabilities to the list of Tax Deposits returned from the endpoint.

Upon creation, a Tax Deposit will not have a `due_date`. For Tax Deposits that are due more frequently than quarterly `due_date` is populated within 1 business day. For Tax Deposits that are due on only a quarterly or annual basis, `due_date` will be populated in the second week of the first month of the next quarter, for example in the second week of July for a payroll run in Q2.

Each Tax Deposit has a `funding_status` and a `deposit_status`.

The possible statuses for `funding_status` are:

* `funded`
  * Funding for the payroll associated with the Tax Deposit was successful.
* `pending`
  * Funding for the payroll associated with the Tax Deposit has not been completed.
* `failed`
  * Funding for the payroll associated with the Tax Deposit has failed.

The possible statuses for `deposit_status` are:

* `deposited`
  * The Tax Deposit has been paid to the tax agency.
* `pending`
  * The Tax Deposit has not yet been paid to the tax agency.

**Note**: Check will only send out payments for a Tax Deposit if it is `funded`. This means that a Tax Deposit can never have a `funding_status` of `pending` or `failed` **and** a `deposit_status` of `deposited`.

## API

Below is an example response of the [List tax deposits endpoint](https://docs.checkhq.com/reference/list-tax-deposits).

```json List tax deposits endpoint example response
{
  "next": null,
  "previous": null,
  "results": [
    {
      "payroll": "pay_vIFHhvyGN47ej1upyIT8",
      "payroll_payday": "2022-08-05",
      "tax": "tax_GaeJoEAzbqqc2D9GMfOF",
      "tax_label": "Federal Income Tax",
      "amount": 1522.04,
      "due_date": "2022-08-12",
      "funding_status": "funded",
      "deposit_status": "deposited"
    },
    {
      "payroll": "pay_vIFHhvyGN47ej1upyIT8",
      "payroll_payday": "2022-08-05",
      "tax": "tax_W7hjDGn6sU1d3U8dr9bq",
      "tax_label": "Federal Unemployment Tax",
      "amount": 961.27,
      "due_date": "2022-09-30",
      "funding_status": "funded",
      "deposit_status": "pending"
    }
  ]
}
```

Tax Deposits are returned in order from the latest `payroll_payday` to the earliest.

> 🚧 Tax Deposits in Sandbox
>
> Payment of Tax Deposits cannot be simulated in Sandbox. Therefore, when using the [List tax deposits endpoint](https://docs.checkhq.com/reference/list-tax-deposits) in Sandbox the `due_date` will always be `null` and the `deposit_status` will always be `pending`.

## Voids

A company voiding a payroll item may affect how much money will be sent to a tax agency. This logic is baked directly into the endpoint.

Let's take an example where a company has a Tax Deposit for Federal Income Tax with an `amount` of $500 and the `deposit_status` is `pending`:

```json A pending tax deposit before a void
{
  "next": null,
  "previous": null,
  "results": [
    {
      "payroll": "pay_vIFHhvyGN47ej1upyIT8",
      "payroll_payday": "2022-08-05",
      "tax": "tax_GaeJoEAzbqqc2D9GMfOF",
      "tax_label": "Federal Income Tax",
      "amount": 500.00,
      "due_date": "2022-08-12",
      "funding_status": "funded",
      "deposit_status": "pending"
    }
  ]
}
```

If the company voids an item from payroll `pay_vIFHhvyGN47ej1upyIT8` that decreases the Federal Income Tax liability amount, the Tax Deposit's `amount` will decrease by that amount. This is because only the non-voided liability amount needs to be paid to the tax agency.

This is what the Tax Deposit would look like after a void that decreases the amount of the Federal Income Tax liability by $200 while the `deposit_status` is `pending`.

```json A pending tax deposit after a void
{
  "next": null,
  "previous": null,
  "results": [
    {
      "payroll": "pay_vIFHhvyGN47ej1upyIT8",
      "payroll_payday": "2022-08-05",
      "tax": "tax_GaeJoEAzbqqc2D9GMfOF",
      "tax_label": "Federal Income Tax",
      "amount": 300.00,
      "due_date": "2022-08-12",
      "funding_status": "funded",
      "deposit_status": "pending"
    }
  ]
}
```

Let's take a different example where a company has a Tax Deposit for Federal Income Tax with an `amount` of $500 and the `deposit_status` is `deposited`:

```json A deposited tax deposit
{
  "next": null,
  "previous": null,
  "results": [
    {
      "payroll": "pay_vIFHhvyGN47ej1upyIT8",
      "payroll_payday": "2022-08-05",
      "tax": "tax_GaeJoEAzbqqc2D9GMfOF",
      "tax_label": "Federal Income Tax",
      "amount": 500.00,
      "due_date": "2022-08-12",
      "funding_status": "funded",
      "deposit_status": "deposited"
    }
  ]
}
```

If the company voids an item from payroll `pay_vIFHhvyGN47ej1upyIT8` that decreases the Federal Income Tax liability amount, the Tax Deposit's `amount` will **not** decrease. This is because the total amount for the deposit has already been paid to the agency. The Tax Deposit will remain the same.