Update Garnishment
Transitions a garnishment lifecycle status: modify (supersede), cancel, or vacate.
curl --request PATCH \
--url https://api.zeal.com/garnishments/{garnishmentID} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "1eeec343485723ee58afef12",
"status": "modified",
"modification": {
"cap_percentage": 30,
"total_amount_owed": 450
}
}
'{
"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": "canceled",
"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",
"canceled_reason": "duplicate entry"
}
}PATCH is a lifecycle transition keyed on status. Only active garnishments can be updated.
Modify (status: "modified")
Supersedes the existing record with a new linked garnishment. This is the only way to change withholding terms or display fields. Send a partial modification object — omitted fields are inherited from the superseded record. Optional fields accept null to clear them on the replacement. Simple caps (cap_amount / cap_percentage) and withholding_schedule are mutually exclusive: sending a non-null value on one mode clears the omitted opposite mode, so a mode switch does not need to null the other side. Sending both modes together is rejected. When you send a withholding_schedule, the garnishment must be for an employee (contractors have no pay frequency; use simple caps instead). The schedule must tile $0.00 to infinity per pay frequency with no gaps or overlaps, and at least one bracket must withhold. It does not need to cover every pay frequency — include only the frequencies the order specifies; a payment whose pay frequency is not listed withholds nothing. The resulting record must still have at least one withholding rule. The response is the new active garnishment with previous_garnishmentID set to the superseded record’s ID; amount already withheld is carried forward.
Cancel (status: "canceled")
Closes the garnishment in place. Requires canceled_reason (for mistakes, duplicates, bad worker match, or other non-legal cancellation).
Vacate (status: "vacated")
Closes the garnishment in place when the court/order was withdrawn or overturned.Authorizations
Path Parameters
Garnishment ID
Body
- Modify
- Cancel
- Vacate
Company ID of employer
Must be modified
modified Partial overrides for the replacement garnishment. Omitted fields are inherited from the superseded record. Simple caps (cap_amount / cap_percentage) and withholding_schedule are mutually exclusive: sending a non-null value on one mode clears the omitted opposite mode, so a mode switch does not need to null the other side. Sending both modes together is rejected. When withholding_schedule is set, the garnishment must be for an employee (contractors have no pay frequency; use simple caps instead). Every frequency branch must tile $0.00 to infinity with no gaps or overlaps, and at least one bracket must withhold. The schedule does not need to cover every pay frequency; a payment whose pay frequency is not listed withholds nothing.
Show child attributes
Show child attributes
curl --request PATCH \
--url https://api.zeal.com/garnishments/{garnishmentID} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "1eeec343485723ee58afef12",
"status": "modified",
"modification": {
"cap_percentage": 30,
"total_amount_owed": 450
}
}
'{
"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": "canceled",
"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",
"canceled_reason": "duplicate entry"
}
}