GuidesAPI ReferenceChangelogAPI PolicyGusto Security
Guides

Create a child support garnishment

Retrieve agency information and create, update, and confirm child support garnishments

Child support garnishments are court-ordered deductions from an employee’s wages to help cover child support obligations.

Employers are legally required to process these deductions and remit the payments to the appropriate state agency. Gusto’s API allows you to programmatically manage these garnishments, ensuring compliance and timely payments.

1. Get child support agency data

Retrieve the list of supported child support agencies using the GET /v1/garnishments/child_support endpoint.

This data includes agency name, identifying FIPS codes, and which case identifying attributes are required when creating a garnishment for this agency. While most agencies only require a single identifier, some (e.g. OH) require multiple identifiers.

This request returns details for all state child support agencies, including the agency name, FIPS code, and required identifying attributes such as case number or remittance number. Most agencies require only one identifier, but some (for example, Ohio) require multiple.

Sample request

curl --request GET \
     --url https://api.gusto-demo.com/v1/garnishments/child_support \
     --header 'X-Gusto-API-Version: {version}' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {access_token}'

Sample response

{
  "agencies": [
    {
      "state": "AK",
      "name": "Alaska Child Support Services Division",
      "manual_payment_required": false,
      "fips_codes": [
        {
          "county": null,
          "code": "0200000"
        }
      ],
      "required_attributes": [
        {
          "key": "case_number",
          "label": "CSE Case Number"
        }
      ]
    },
    {
      "state": "OH",
      "name": "Ohio Office of Child Support Enforcement",
      "manual_payment_required": false,
      "fips_codes": [
        {
          "county": null,
          "code": "39000"
        }
      ],
      "required_attributes": [
        {
          "key": "case_number",
          "label": "CSE Case Number"
        },
        {
          "key": "order_number",
          "label": "Order Identifier"
        }
      ]
    }
  ]
}

2. Create a child support garnishment

Once you have the required agency information, you can create a garnishment for an employee using the POST /v1/employees/{employee_uuid}/garnishments

Sample request

curl --request POST \
     --url https://api.gusto-demo.com/v1/employees/{{employee_uuid}}/garnishments \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'authorization: Bearer {{company_access_token}}' \
     --data '{
  "active": true,
  "court_ordered": true,
  "times": null,
  "recurring": true,
  "annual_maximum": null,
  "pay_period_maximum": 500,
  "deduct_as_percentage": true,
  "child_support": {
    "state": "CA",
    "fips_code": "06000"
    "payment_period": "Monthly",
    "case_number": "12345678"
  },
  "amount": 50,
  "garnishment_type": "child_support"
}'

Sample response

{
  "uuid": "4c7841a2-1363-497e-bc0f-664703c7484f",
  "version": "52b7c567242cb7452e89ba2bc02cb476",
  "employee_uuid": "a6b53294-f871-4db2-bbd4-8c3d1fe56440",
  "active": true,
  "amount": "8.00",
  "description": "Company loan to employee",
  "court_ordered": false,
  "times": 5,
  "recurring": false,
  "annual_maximum": null,
  "total_amount": null,
  "pay_period_maximum": "100.00",
  "deduct_as_percentage": true,
  "garnishment_type": null,
  "child_support": null
}

Important considerations

  • Child support garnishments must be court_ordered: true, garnishment_type: 'child_support', and deduct_as_percentage: true.
  • Child support garnishments require amount and pay_period_maximum.
    • amount is the maximum percentage deduction per paycheck
    • pay_period_maximum is the dollar amount to deduct. pay_period_maximum works in conjunction with the child support garnishment specific attribute child_support.payment_period. E.g. an order for $500 monthly maximum of 40% of pay would have amount: 40, pay_period_maximum: 500, child_support.payment_period: “Monthly”
  • Descriptions for child support garnishments will be auto-generated in the form of Child support - <case_number_identifier>
  • Most states use a state-level FIPS code, while some require county-level FIPS codes (e.g. FL, IL, NY) - the child support agency data API provides this information which can be used to populate UI selections.
  • Most states only require case_number, but there are exceptions. This data is provided by the required_attributes of the agency data API, e.g:
    • OH requires case_number and order_number
    • ND requires remittance_number instead
🚧

Automatic vs manual remittance

Gusto cannot automatically pay garnishments if the garnishment was collected on an off-cycle payroll
or if the garnishment came from the state of South Carolina.

For almost all states, Gusto automatically remits garnished wages to the appropriate agency for regular payrolls.

Currently, the only exception is South Carolina. This information is provided by the manual_payment_required: true property of an agency in the agency data API. This means that for South Carolina, Gusto cannot automatically pay garnishments, so you should display the following warning in your UI when an agency with this property is selected:

Reminder: you are responsible for this payment
Unfortunately, this agency doesn't support electronic payments, so you are responsible for paying the agency yourself.

3. Update a child support garnishment

To change an existing garnishment, use the PUT /v1/garnishments/{garnishment_id}. The object version is a required parameter for this request.

Sample request

curl --request PUT  
     --url <https://api.gusto-demo.com/v1/garnishments/garnishment_id>  
     --header 'accept: application/json'  
     --header 'content-type: application/json'  
     --header 'authorization: Bearer {{company_access_token}}'  
     --data '{  
  "court_ordered": true,  
  "garnishment_type": "child_support",  
  "recurring": true,  
  "deduct_as_percentage": true,  
  "amount": 40.00,  
  "pay_period_maximum": 600.00,  
  "child_support": {  
    "state": "CA",
    "fips_code": "06000",
    "payment_period": "Monthly",  
    "case_number": "12345678"  
  },  
  "version": "52b7c567242cb7452e89ba2bc02cb476"  
}'

Sample response

{
  "uuid": "4c7841a2-1363-497e-bc0f-664703c7484f",
  "version": "52b7c567242cb7452e89ba2bc02cb476",
  "employee_uuid": "a6b53294-f871-4db2-bbd4-8c3d1fe56440",
  "active": true,
  "amount": "40.00",
  "description": "Company loan to employee",
  "court_ordered": false,
  "times": 5,
  "recurring": false,
  "annual_maximum": null,
  "total_amount": null,
  "pay_period_maximum": "600.00",
  "deduct_as_percentage": true,
  "garnishment_type": null,
  "child_support": null
}

4. (Optional) Confirm garnishment creation

View the garnishments applicable for an employee using the GET employees/{employee_id}/garnishments.

Sample request

cURLJavaScript  
curl --request GET  
     --url '<https://api.gusto-demo.com/v1/employees/{employee_uuid}/garnishments'>  
     --header 'accept: application/json'  
     --header 'authorization: Bearer {{company_access_token}}'

Sample response

[
  {
    "uuid": "4c7841a2-1363-497e-bc0f-664703c7484f",
    "version": "52b7c567242cb7452e89ba2bc02cb476",
    "employee_uuid": "a6b53294-f871-4db2-bbd4-8c3d1fe56440",
    "active": true,
    "amount": "8.00",
    "description": "Company loan to employee",
    "court_ordered": false,
    "times": 5,
    "recurring": false,
    "annual_maximum": null,
    "total_amount": null,
    "pay_period_maximum": "100.00",
    "deduct_as_percentage": true,
    "garnishment_type": null,
    "child_support": null
  },
  {
    "uuid": "4c7841a2-1363-497e-bc0f-664703c7481a",
    "version": "52b7c567242cb7452e89ba2bc02cb383",
    "employee_uuid": "a6b53294-f871-4db2-bbd4-8c3d1fe56440",
    "active": true,
    "amount": "40.00",
    "description": "Child support - AZ28319",
    "court_ordered": true,
    "times": null,
    "recurring": true,
    "annual_maximum": null,
    "total_amount": null,
    "pay_period_maximum": "400.00",
    "deduct_as_percentage": true,
    "garnishment_type": "child_support",
    "child_support": {
      "state": "AZ",
      "payment_period": "Monthly",
      "case_number": "AZ28319",
      "order_number": null,
      "remittance_number": null,
      "fips_code": "04000"
    }
  }
]