Create an incident
Reports an employee incident for an authorized, activated employee. The API assigns the reporter and lifecycle status. With dryRun=true, the API returns the projected incident without saving it.
At a glance
Operational behavior
Reports an employee incident. The API assigns the reporter and lifecycle status. WithdryRun=true, the API returns the projected incident without saving it.
- The API assigns reporter and initial lifecycle status.
- The referenced employee must be visible in the authorized tenant scope and must already be activated.
- If the employee exists but is not activated, the API returns
422 EMPLOYEE_NOT_ACTIVATEDand does not create an incident.
Employee activation prerequisite
An incident can only be created after the referenced employee has completed activation. An employee who exists and is visible in the API-key scope but is not yet activated produces the following response:X-Request-ID.
Common errors
Before implementation
- Generate and log a new
X-Request-IDfor the attempt. - Handle every documented response status.
- Do not log
X-API-Keyor unnecessary personal data. - Reconcile current resource state before replaying an ambiguous write.
Related integration guidance
Authorizations
JobHandy integration API key. Send the credential in the X-API-Key header. Treat the key as a secret and use it only from trusted server-side environments.
Headers
If supplied, the header narrows the operation to one tenant in the API key's scope. The referenced employee must be accessible through that tenant. If omitted, the API searches the full scope and infers the tenant from the employee. In interactive clients, use the {{tenantId}} variable when a tenant must be selected. Keep the header disabled when tenant selection is not required.
^[0-9a-fA-F]{24}$Optional request identifier. If supplied, it must be a UUID v4 or v7 and is returned unchanged in every response. If omitted, the API generates one. Invalid values return 400 INVALID_REQUEST_ID. If your client uses a {{requestId}} variable, refresh it with a new UUID version 4 or 7 for every HTTP request attempt. Keep the header disabled to let the API generate the request identifier.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[47][0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$Query Parameters
When true, the API validates the request without applying the change. The operation's responses specify the returned representation. When omitted, the server uses false.
true
Body
The JSON request body must not exceed 5,242,880 bytes.
Fields accepted when reporting an employee incident.
Incident type. Values are case-sensitive.
temporary, permanent 1"temporary"
Identifier of the affected employee. The employee must be accessible in the selected or inferred tenant scope.
^[0-9a-fA-F]{24}$"68a000000000000000000001"
UTC timestamp from which the incident applies.
1Z$"2026-07-21T00:00:00.000Z"
Response
Dry-run validation succeeded. Returns the incident that would be created; it is not stored.
Employee incident details.
Unique incident identifier.
1^[0-9a-fA-F]{24}$"730000000000000000000001"
Tenant-facing numeric incident number assigned by the server.
137
Incident type. Values are case-sensitive.
temporary, permanent 1"temporary"
Server-managed incident lifecycle status.
reported, in_progress, completed, archived 1"reported"
Identifier of the affected employee.
^[0-9a-fA-F]{24}$"68a000000000000000000001"
Actor category that originally reported the incident.
user, api_key 1"api_key"
UTC timestamp at which the incident was reported.
1Z$"2026-07-21T07:30:00.000Z"
UTC timestamp from which the incident applies.
1Z$"2026-07-21T00:00:00.000Z"
UTC timestamp until which the incident applies, or null while no end is set.
1Z$null
UTC timestamp at which the incident record was created.
1Z$"2026-07-21T07:30:00.000Z"
UTC timestamp of the latest incident update.
1Z$"2026-07-21T07:30:00.000Z"
