Skip to content

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

NameTypeRequiredDescription
idintegerYes

The numeric ID of the anomaly to resolve.

Request body

Content type application/json (required).

FieldTypeRequiredDescription
actionstringYes

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: "corrected", "dismissed", "escalated"

notesstringNo

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.

FieldTypeRequiredDescription
idintegerNo
employee_idinteger, nullableNo
run_idinteger, nullableNo
typestringNo

Machine-readable anomaly type code (e.g. "overtime_implausible", "negative_net_pay").

descriptionstringNo

Human-readable description of the detected issue.

statusstringNo

One of: "open", "resolved", "dismissed"

severitystringNo

Severity classification of the anomaly.

One of: "info", "medium", "high", "critical"

resolution_notesstring, nullableNo
detected_atstring (date-time)No
resolved_atstring (date-time), nullableNo

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."}'
Loading