Resolve anomaly
POST/payroll/anomalies/{id}/resolve
Marks an anomaly as resolved with a chosen resolution action (e.g. corrected, dismissed, escalated). Resolved anomalies no longer block payroll run approval. Provide a clear resolution note for the audit trail.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | The numeric ID of the anomaly to resolve. |
Request body
Content type application/json (required).
| Field | Type | Required | Description |
|---|---|---|---|
action | string | Yes | Resolution action taken. "corrected" — underlying data was fixed and payroll should be recalculated. "dismissed" — anomaly is a known false positive and can be ignored. "escalated" — flagged for senior payroll manager review. One of: |
notes | string | No | Explanation of the resolution decision (required for audit compliance). Max length: 2000 |
Example
{
"action": "corrected",
"notes": "Confirmed with manager — 68 hours includes on-call shifts. Timesheet updated to 52 standard + 16 on-call."
}
Responses
200 Anomaly resolved
Content type application/json, object · PayrollAnomalyV1.
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | No | |
employee_id | integer, nullable | No | |
run_id | integer, nullable | No | |
type | string | No | Machine-readable anomaly type code (e.g. "overtime_implausible", "negative_net_pay"). |
description | string | No | Human-readable description of the detected issue. |
status | string | No | One of: |
severity | string | No | Severity classification of the anomaly. One of: |
resolution_notes | string, nullable | No | |
detected_at | string (date-time) | No | |
resolved_at | string (date-time), nullable | No |
404 Anomaly not found
422 Validation failed — action must be corrected/dismissed/escalated
Example request
curl -X POST "https://{tenant}.faciotech.net/api/v1/payroll/anomalies/{id}/resolve" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"action": "corrected", "notes": "Confirmed with manager — 68 hours includes on-call shifts. Timesheet updated to 52 standard + 16 on-call."}'