Create Garnishment
Creates a garnishment for an employee or contractor.
curl --request POST \
--url https://api.zeal.com/garnishments \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "1eeec343485723ee58afef12",
"workerID": "674759a85785745748e3847a",
"workerType": "contractor",
"garnishment_type": "creditor",
"effective_start_date": "2025-01-01",
"agency_name": "Acme Agency",
"agency_address": "123 Court St",
"case_id": "CASE-1",
"order_number": "ORD-1",
"cap_percentage": 25,
"total_amount_owed": 500,
"total_amount_withheld": 0
}
'{
"success": true,
"data": {
"garnishmentID": "3cab1c18d38a45e7a688aceeb4fcfcaa",
"companyID": "1eeec343485723ee58afef12",
"workerID": "674759a85785745748e3847a",
"workerType": "contractor",
"garnishment_type": "creditor",
"priority": 50,
"total_amount_owed": 500,
"total_amount_withheld": 0,
"status": "active",
"effective_start_date": "2025-01-01",
"agency_name": "Acme Agency",
"agency_address": "123 Court St",
"cap_percentage": 25,
"case_id": "CASE-1",
"order_number": "ORD-1",
"created_at": "2025-01-01T00:00:00.000Z",
"updated_at": "2025-01-01T00:00:00.000Z"
}
}cap_amount and/or cap_percentage) or an advanced withholding_schedule (not both). Advanced schedules are employee-only — contractors have no pay frequency, so use simple caps instead. When both caps are set, the withholding engine applies the stricter (lower) of the two on each check or payment. A schedule defines fixed amounts and/or disposable-earnings brackets per pay frequency (money fields in dollars). Each frequency branch must tile disposable earnings from $0.00 to infinity with no gaps or overlaps (first min is 0, each next min is the previous max plus $0.01, last max is null), and at least one bracket must withhold. A schedule does not need to cover every pay frequency — include only the frequencies the order specifies; a payment whose pay frequency is not listed in the schedule withholds nothing. You may pass total_amount_withheld to seed prior withholdings (for example when migrating an existing order); when total_amount_owed is set, it must be greater than or equal to total_amount_withheld.Authorizations
Body
Company ID of employer
Employee or contractor ID
Whether the worker is an employee or contractor. withholding_schedule is supported for employees only.
employee, contractor Type of garnishment order
child_support, federal_tax_levy, state_tax_levy, creditor, student_loan, other ISO date (YYYY-MM-DD) when withholding begins
Name of the collecting agency
Address of the collecting agency
Court/agency case identifier
Court/agency order number
Optional. Prefer omitting priority unless you need a custom withholding order.
When omitted, Zeal applies a federal-baseline default by garnishment_type (lower numbers are withheld first):
child_support=10,
federal_tax_levy=20,
state_tax_levy=30,
student_loan=40,
creditor=50,
other=60.
Defaults are spaced by 10 so you can insert an override between two types without renumbering everything.
x >= 0Total balance owed in dollars. Omit for open-ended orders. When set, must be greater than or equal to total_amount_withheld.
x >= 0Optional. Amount already withheld before this garnishment was created, in dollars (for example when migrating an existing order). Defaults to 0. When total_amount_owed is set, it must be greater than or equal to total_amount_withheld.
x >= 0ISO date (YYYY-MM-DD) when withholding ends. Must be after effective_start_date.
Per-paycheck maximum withhold amount in dollars. At least one of cap_amount, cap_percentage, or withholding_schedule is required. Mutually exclusive with withholding_schedule.
x >= 0Per-paycheck maximum withhold percentage (0-100). At least one of cap_amount, cap_percentage, or withholding_schedule is required. Mutually exclusive with withholding_schedule.
0 <= x <= 100US state code (2-letter) associated with the order
Optional display name for this garnishment
Optional external identifier for your own systems
Advanced withholding schedule (mutually exclusive with cap_amount / cap_percentage). Employee-only: contractors have no pay frequency, so a schedule on a contractor is rejected — use cap_amount / cap_percentage instead. Use for fixed amounts per pay frequency or disposable-earnings brackets. At least one of cap_amount, cap_percentage, or withholding_schedule is required. Money fields are in dollars. When present, every frequency branch must tile disposable earnings from $0.00 to infinity with no gaps or overlaps: the first bracket min must be 0, each next min must be exactly $0.01 after the previous max, and the last bracket max must be null. At least one bracket in the schedule must withhold (not all exempt).
1Show child attributes
Show child attributes
curl --request POST \
--url https://api.zeal.com/garnishments \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "1eeec343485723ee58afef12",
"workerID": "674759a85785745748e3847a",
"workerType": "contractor",
"garnishment_type": "creditor",
"effective_start_date": "2025-01-01",
"agency_name": "Acme Agency",
"agency_address": "123 Court St",
"case_id": "CASE-1",
"order_number": "ORD-1",
"cap_percentage": 25,
"total_amount_owed": 500,
"total_amount_withheld": 0
}
'{
"success": true,
"data": {
"garnishmentID": "3cab1c18d38a45e7a688aceeb4fcfcaa",
"companyID": "1eeec343485723ee58afef12",
"workerID": "674759a85785745748e3847a",
"workerType": "contractor",
"garnishment_type": "creditor",
"priority": 50,
"total_amount_owed": 500,
"total_amount_withheld": 0,
"status": "active",
"effective_start_date": "2025-01-01",
"agency_name": "Acme Agency",
"agency_address": "123 Court St",
"cap_percentage": 25,
"case_id": "CASE-1",
"order_number": "ORD-1",
"created_at": "2025-01-01T00:00:00.000Z",
"updated_at": "2025-01-01T00:00:00.000Z"
}
}