Creating Post-Tax Deductions

Working with garnishments and other post-tax deductions

Post-tax deductions are deductions that are applied after calculating the tax on an employee’s wage. Post-tax deductions are a way for money to flow from the employee to the employer that affects net pay and does not affect taxes. Garnishments are considered a type of post-tax deduction.

In Check’s system, post-tax deductions and benefits are represented as distinct resources for several reasons:

  • Benefits can be either pre-tax or post-tax (e.g. 401k and Roth 401k) and may have an option for employer contributions. Deductions are always post-tax and never have the option for employer contributions.
  • Benefits are typically configured for multiple employees, such as medical insurance. Post-tax deductions typically apply to a single employee, or a subset of employees, such as a cash advance repayment.
  • Employers typically look at benefits grouped together in reports to understand company costs, and how much the company should pay to various vendors.

Post-tax deductions might include:

  • Repaying a loan from an employer
  • Collecting employee union dues
  • Collecting charitable contributions
  • Collecting a child support garnishment
  • Collecting a federal tax lien

Check represents a post-tax deduction as a post_tax_deduction resource that is associated with a specific employee. Check offers two types of post-tax deductions: child support garnishments and miscellaneous. These two garnishment types have different configuration requirements:

  • Child support post_tax_deductions are for child support garnishments only.
  • Miscellaneous post_tax_deductions are for everything else: non-garnishment deductions and non-child support garnishments.

An employee may have any number of post-tax deductions configured, and any number may be in effect during a given time period.

Creating post-tax deductions

A post-tax deduction must be created before running payroll for the deduction to be included on the payroll cycle. These post-tax deductions are automatically applied to a payroll when it is approved or previewed.

Your system should expose a UI to allow employers to define post-tax deductions for their employees.

Every post_tax_deduction, regardless of type, has the following required fields:

  • employee: the employee associated with this deduction.
  • description: a title for the deduction, which will appear on both payrolls and paystubs.
  • effective_start: the first payday that this deduction will apply.
  • effective_end (optional): the last payday that this deduction will apply.

Note that effective_end is the only optional field.

For deductions that apply on an ongoing basis, do not set the effective_end parameter. Child support garnishments, recurring donations, and monthly union dues are examples of post-tax deductions that apply in perpetuity.

For deductions that apply one-time, or for a set period, set effective_end to the last payday of the payroll to which the deduction should be applied. Set effective_start to the payday of the first payroll to which the deduction should apply. This deduction will be applied to all payrolls falling within these two dates, inclusively. Examples of one-time or finitely recurring post-tax deductions might include repayment for a cash advance, or collecting money for a company event.

Use POST /post_tax_deductions to create a new deduction.

Child support garnishments

Child support is a periodic payment mandated by a state authority for a parent to financially support a child. Employers may receive a detailed garnishment order to deduct an amount of the parent’s wages.

To create a child support garnishment, create a post_tax_deduction resource, and include a child_support subobject. All fields of the child_support subobject are required and can be found on the child support garnishment order.

  • external_id: the case number listed on the order, which is a unique identifier for the garnishment
  • agency: the state abbreviation of the collection agency that submitted this order
  • issue_date: the date the collections agency issued the order
  • amount: the per pay period amount to deduct. A garnishment order will include how much an employee’s wages should be garnished per pay period, broken out by how much is due depending on the pay cycle. Choose the amount that corresponds to the employer’s payroll schedule.
  • max_percent: the maximum amount to garnish listed on the order. The Federal Consumer Credit Protection Act (CCPA) and certain state agencies impose limits on the amount of disposable income that can be garnished. Use this value as the max_percent field. If the per pay period amount exceeds the max percent of employee disposable income, we will deduct up to the max percent.

Child support garnishment example

In this example, $62.50, or 65% of the employee’s disposable income (as listed on the garnishment order), will be deducted from the employee’s wages on all payrolls after the effective start date of April 1, 2020. Child support garnishments are typically applied to the employee’s wages until the employer receives a termination letter, therefore child support post-tax deductions should initially be configured with a null effective_end.

Create a child support garnishment

curl -X POST \
  https://sandbox.checkhq.com/post_tax_deductions \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
      "child_support": {
         "external_id": "CS1234567",
         "agency": "NY",
         "issue_date": "2020-04-01",
         "amount": "62.50",
         "max_percent": 65
      },
      "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
      "description": "Child support",
      "effective_start": "2020-04-01"
   }'

Example response

{
    "id": "ptd_efokrwELRPEKs039k223",
    "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
    "description": "Child Support",
    "effective_start": "2020-04-10",
    "child_support": {
        "external_id": "CS1234567",
        "agency": "NY",
        "issue_date": "2020-04-01",
        "amount": "62.50",
        "max_percent": "65.0"
    }
}

Multiple effective child support garnishments

An employee may have multiple active child support orders at once, each should be configured as an individual post_tax_deduction. If deducting for all orders in full would exceed the allowable amount to garnish, Check will partially apply all deductions according to the Administration for Children and Families rules.

If an employee has a child support garnishment that contains an arrears component or a medical requirement, please send a support request to us at [email protected] with a copy of the order.

Updating child support garnishments

Due to an employee’s changes in circumstances, their obligation to pay child support may change. An employee may have to pay a different amount or may be subject to a different maximum amount to garnish. In these situations, an employer will receive an updated notice from the state authority and should update the post-tax deduction to reflect the new information.

All fields of a child support post-tax deduction can be updated except for the employee field. Changes will impact how the deduction applies to future payrolls. Changes will not affect how the deduction has applied to past paid or currently approved payrolls.

Remitting child support garnishments

The managed boolean field on the post_tax_deduction resource denotes whether or not a child support garnishment should be remitted by Check. If it is set to true, Check will include the garnishment amount on the cash requirement of the payroll and remit the payment to the appropriate agency on behalf of the employer. If it is set to false, Check will not include the garnishment amount on the cash requirement of the payroll and it is the employer’s responsibility to send this payment. A child support garnishment can be marked as managed in all states. If a child support garnishment is created without the managed field, Check will automatically set the managed field to true. If you do not want the field to be automatically set, please explicitly set the managed field as false in the API request where you create the post_tax_deduction.

Miscellaneous post-tax deductions

Miscellaneous post-tax deductions are meant for any other type of non-child support garnishment or other post-tax deduction. In addition to the aforementioned fields, the miscellaneous post-tax deduction resource has a nested configuration object called miscellaneous which contains the following fields:

  • amount (optional): the per pay period amount to deduct
  • percent (optional): the per pay period percent of the total gross pay to deduct
  • total_amount (optional): the total amount to deduct

Although all the configuration subobject fields are optional, exactly one of amount or percent must be specified. In the case that the deduction is configured with a total_amount and the per pay period deduction would result in collecting a cumulative amount above that total, we will withhold only the remaining amount. Note that the total_amount is for the entire effective period of a deduction, and may span multiple payrolls or multiple years.

Miscellaneous post-tax deduction examples

Check’s miscellaneous post-tax deductions are designed to be flexible enough to support multiple use cases, including:

  • one-time deductions
  • recurring deductions with start and end dates
  • indefinitely recurring deductions
  • single post-tax deductions that are collected over time

One-time post-tax deduction example

This example describes a one-time employee contribution to a company event. Note that the effective_start and effective_end are both set to the same day, which will apply the deduction to the company’s payroll with a payday of 2020-12-18. Also note that the amount and total_amount are set to the same amount, which will apply the total amount of the deduction to a single payroll.

Create a one-time post-tax deduction

curl -X POST \
  https://sandbox.checkhq.com/post_tax_deductions \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
      "miscellaneous": {
         "amount": "10.00",
         "total_amount": "10.00"
      },
      "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
      "description": "New Year Luncheon",
      "effective_start": "2020-12-18",
      "effective_end": "2020-12-18"
   }'

Example response

{
    "id": "ptd_Foeijfiw381DIBjGA8",
    "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
    "description": "New Year Luncheon",
    "effective_start": "2020-12-18",
    "effective_end": "2020-12-18",
    "miscellaneous": {
        "amount": "10.00",
        "percent": null,
        "total_amount": "10.00"
    }
}

Recurring post-tax deduction with a start and end date example

This example describes a recurring employee donation during the holiday season, in which a $10 Holiday Donation is applied to all payrolls from November 1st, 2020 to December 31st, 2020, inclusive.

Here, total_amount is unset meaning that the donation will be deducted regardless of how much has been already deducted. The effective_end date is set such that the deduction will not apply past the end of 2020.

Create a recurring post-tax deduction with an end date

curl -X POST \
  https://sandbox.checkhq.com/post_tax_deductions \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
      "miscellaneous": {
         "amount": "10.00"
      },
      "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
      "description": "Holiday Donation",
      "effective_start": "2020-11-01",
      "effective_end": "2020-12-31"
   }'

Example response

{
    "id": "ptd_dfef3roko312381DIB",
    "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
    "description": "Holiday Donation",
    "effective_start": "2020-11-01",
    "effective_end": "2020-12-31",
    "miscellaneous": {
        "amount": "10.00",
        "percent": null,
        "total_amount": null
    }
}

An indefinitely recurring post-tax deduction

This example describes a $5 Union Dues payment every payroll, starting with 2020-01-01. Note that both the effective_end and total_amount fields are unset, which will apply this deduction to all payrolls going forward, regardless of the total amount previously deducted.

Create a recurring post-tax deduction without an end date

curl -X POST \
  https://sandbox.checkhq.com/post_tax_deductions \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
      "miscellaneous": {
         "amount": "5.00"
      },
      "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
      "description": "Union Dues",
      "effective_start": "2020-01-01"
   }'

Example response

{
    "id": "ptd_dJFO304ifoemfakLEL2",
    "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
    "description": "Union Dues",
    "effective_start": "2020-01-01",
    "effective_end": null,
    "miscellaneous": {
        "amount": "5.00",
        "percent": null,
        "total_amount": null

    }
}

A post-tax deduction collected over many periods

This example describes an employee gradually repaying a $1,000.00 cash advance at a rate of 10% of their total gross pay per pay period. Note that total_amount is set to the total amount to repay, and that effective_end is empty. This will apply the 10% post-tax deduction indefinitely until the $1,000 advance has been deducted from the employee’s pay. This deduction will automatically end when the total_amount has been met.

Use this method when an employee’s pay varies each pay period (such as an hourly or tipped employee), and the specific date when the total amount will be repaid cannot be pre-calculated.

Create a post-tax deduction collected over many periods

curl -X POST \
  https://sandbox.checkhq.com/post_tax_deductions \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
      "miscellaneous": {
         "total_amount": "1000.00",   
         "percent": 10
      },
      "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
      "description": "Cash Advance Repayment",
      "effective_start": "2020-12-18"
   }'

Example response

{
    "id": "ptd_KFOejfij30ifoskfodkj3",
    "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
    "description": "Cash Advance Repayment",
    "effective_start": "2020-12-18",
    "effective_end": null,
    "miscellaneous": {
        "amount": null,
        "percent": 10.0,
        "total_amount": "1000.00"
    }
}

Multiple effective miscellaneous post-tax deductions

Check will apply miscellaneous post-tax deductions in ascending order by the deduction’s date of creation. Any deductions that result in a negative employee net pay will be skipped and a warning will be added to the impacted payroll item in the payroll. See Payroll Item Warnings for more info.

For example, if an employee has an after-tax wage of $80.00 and the following effective miscellaneous post-tax deduction, only the deduction amount from ptd_hcPxrbeojjf020323 of $50.00 (effective_start: 2019-12-15) will be applied. A payroll item Warning will be issued for the union dues deduction.

Return an employee with multiple miscellaneous post-tax deductions

curl -X GET \
  'https://sandbox.checkhq.com/post_tax_deductions?employee=emp_bvNhcPxrbvRqgyCrlUcj' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \

Example response

{
    "next": null,
    "previous": null,
    "results": [
    {
        "id": "ptd_hcPxrbeojjf020323",
        "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
        "description": "Charity Donation",
        "effective_start": "2019-12-15",
        "effective_end": null,
        "miscellaneous": {
            "amount": "50.00",
            "percent": null,
            "total_amount": null
        }
    },
    {
        "id": "ptd_Qre494rrjiejf03sd3",
        "employee": "emp_bvNhcPxrbvRqgyCrlUcj",
        "description": "Union Dues",
        "effective_start": "2020-01-01",
        "effective_end": null,
        "miscellaneous": {
            "amount": "35.00",
            "percent": null,
            "total_amount": null
        }
    }
]
}

Updating miscellaneous post-tax deductions

All fields of a miscellaneous post-tax deduction can be updated except for the employee field. Changes will impact how the deduction applies to future payrolls. Changes will not affect how the deduction has applied to past paid or currently approved payrolls.

Multiple effective post-tax deductions of different types

If an employee has both miscellaneous and child support post-tax deduction types, Check will apply all child support deductions before applying any miscellaneous deductions. If there is sufficient net pay remaining, Check will apply the miscellaneous deductions. If not, Check will skip applying the miscellaneous deductions and will include a payroll item warning for each skipped deduction.

If an employee requires that any of the following post-tax deduction configurations be applied in a particular order, please submit a support request to Check at [email protected] with the priority order of the garnishments:

  • Multiple garnishment post-tax deductions
  • One or more child support garnishments and one or more miscellaneous garnishments

Deleting post-tax deductions

Deleting a post_tax_deduction will remove it forever and prevent it from applying to any future payrolls. A deleted post-tax deduction will not be returned by the GET /post_tax_deductions call. Calling GET /post_tax_deductions/:id for a deleted deduction will return a 404 error. Deleting a post-tax deduction will not impact past paid or already approved payrolls nor will it impact existing reports and paystubs.

Delete a post-tax deduction if it was created by mistake, or if it no longer applies to an employee. For example, a post-tax deduction with an effective_end date that has passed, or if a post-tax deduction with a total_amount has been fully deducted for.

Note: The Check system saves a record of all post-tax deductions for auditability.

Overriding post-tax deductions for a single payroll

Like benefits, there are certain situations in which an employer will want to change the amount deducted for a post-tax deduction for one payroll only, without affecting the amount that is deducted on future payrolls. The post-tax deduction override feature can be used to accomplish this for any miscellaneous post-tax deduction, allowing for one-time modifications to deduction amounts at payroll and payroll item create/update time.

Post-tax deduction overrides can be passed in any payroll item body like the following:

{
    "id": "itm_yvmmsVGFxLoBaMIkqzea",     
    "post_tax_deduction_overrides": [
        {
            "post_tax_deduction": "ptd_BCaZ3uagj9u8b3M6vFKt",
            "amount": "400.00",
        }
    ],
}

🚧

Note: Child support post-tax deductions can not be overridden.

Setting year-to-date limits on post-tax deductions

An annual limit for a miscellaneous post-tax deduction can be set using the annual_limit field in the miscellaneous object. This feature can be used to support programs like CalSavers, by correctly setting the annual limit for the given year. Once the annual_limit is deducted for the calendar year, this post-tax deduction will no longer apply for the given year.

{
   "employee": "{{employeeId}}",
   "description": "CalSavers",
   "effective_start": "2022-01-01",
   "miscellaneous": {
       "percent": "5.00",
       "annual_limit": "6000.00"
   }
}

📘

The annual_limit field will work similarly to the total_amount field. If total_amount and annual_limit are both defined, the post-tax deduction will stop applying as soon as either of the limits is reached.