Simulate garnishment withholding
POST/payroll/garnishments/{id}/simulate
Simulates the garnishment withholding calculation for a specific case against the employee's latest computed gross pay, without modifying any payroll records. Use to verify that the withholding amount is correct and compliant with jurisdiction limits before the next payroll run.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | The numeric ID of the garnishment case to simulate. |
Responses
200 Garnishment withholding simulation result
Content type application/json, object · GarnishmentSimulationResultV1.
| Field | Type | Required | Description |
|---|---|---|---|
garnishment_id | integer | No | |
employee_id | integer | No | |
gross_pay | number (float) | No | |
disposable_income | number (float) | No | Income available for garnishment after mandatory deductions (PAYE, SSNIT, etc.). |
max_withholding_allowed | number (float) | No | Maximum amount that can be withheld per jurisdiction consumer protection rules. |
calculated_withholding | number (float) | No | Actual withholding amount calculated for this pay period. |
remaining_arrears | number (float), nullable | No | Outstanding arrears balance after this period's withholding is applied. |
jurisdiction_cap_applied | boolean | No | Whether the jurisdiction consumer protection cap reduced the withholding below the order maximum. |
simulated_at | string (date-time) | No |
Example
{
"garnishment_id": 3,
"employee_id": 42,
"gross_pay": 4500.0,
"disposable_income": 3600.0,
"max_withholding_allowed": 720.0,
"calculated_withholding": 720.0,
"remaining_arrears": 780.0,
"jurisdiction_cap_applied": false,
"simulated_at": "2026-04-08T12:00:00Z"
}
404 Garnishment not found
Example request
curl -X POST "https://{tenant}.faciotech.net/api/v1/payroll/garnishments/{id}/simulate" \
-H "Accept: application/json"