Create Offboard¶
Endpoint: POST /api/personnel-events/offboard
Description: Creates a new offboarding personnel event for an existing identity.
Request Body¶
| Field | Type | Required | Description |
|---|---|---|---|
identityId |
string (GUID) | Yes | The unique identifier of the identity being offboarded. Must reference an existing identity. |
effectiveDate |
string (ISO 8601) | Yes | The date the offboarding takes effect. Must be today or later. |
comment |
string | No | Optional comment added to the event. |
Sample Request¶
{
"identityId": "d4a7e2b1-3f5c-4a8d-9e6b-1c2d3e4f5a6b",
"effectiveDate": "2026-04-15T00:00:00Z",
"comment": "Employee resignation effective April 15"
}
Response Attributes¶
| Field | Type | Description |
|---|---|---|
id |
string (GUID) | Unique identifier of the created personnel event. |
kind |
string | Resource type. Always Personnel Event. |
number |
integer | Sequential personnel event number. |
type |
string | Event type. Always Offboard for this endpoint. |
status |
string | Current status. |
reporter |
object | The API token that created the event. |
reporter.id |
string (GUID) | Reporter identity ID. |
reporter.name |
string | Reporter display name. |
assignee |
object | The identity assigned to manage the event. null if unassigned. |
assignee.id |
string (GUID) | Assignee identity ID. |
assignee.name |
string | Assignee display name. |
affectedIdentity |
object | The identity being offboarded. Full identity representation. |
neededOn |
string (ISO 8601) | Effective date. |
neededUntil |
string (ISO 8601) | End date. null for offboarding events. |
completedOn |
string (ISO 8601) | Completion date. null when newly created. |
stages |
array[object] | Milestone stages (Approval, Provision, Verification). |
activity |
array[object] | Activity log entries. |
comments |
array[object] | Comments on this event. |
Sample Response (201)¶
{
"id": "f6a7b8c9-d0e1-2345-6789-abcdef012345",
"kind": "Personnel Event",
"number": 314,
"type": "Offboard",
"status": "Scheduled",
"reporter": {
"id": "c4d5e6f7-a8b9-0123-4567-89abcdef0123",
"name": "API Token - HR Integration"
},
"assignee": null,
"affectedIdentity": {
"id": "d4a7e2b1-3f5c-4a8d-9e6b-1c2d3e4f5a6b",
"kind": "Identity",
"firstName": "Sarah",
"lastName": "Chen",
"emailAddress": "schen@firstbankofvalkyrie.com",
"type": "Employee",
"title": "Senior Loan Officer",
"company": "First Bank of Valkyrie",
"division": "Commercial Lending",
"department": "Business Loans",
"office": "Fargo Main",
"supervisorName": "Martinez, Robert",
"createdDate": "2023-03-15T14:30:00Z",
"updatedDate": "2025-11-20T09:15:00Z",
"firstSeenDate": "2023-03-16T02:00:00Z",
"inactivatedDate": null,
"status": "Active"
},
"neededOn": "2026-04-15T00:00:00Z",
"neededUntil": null,
"completedOn": null,
"stages": [
{
"name": "Approval",
"status": "Scheduled",
"startedOn": null,
"scheduledStart": "2026-04-08T00:00:00Z",
"completedOn": null,
"completedBy": null,
"accessRequests": []
},
{
"name": "Provision",
"status": "Scheduled",
"startedOn": null,
"scheduledStart": "2026-04-15T00:00:00Z",
"completedOn": null,
"completedBy": null,
"accessRequests": []
},
{
"name": "Verification",
"status": "Scheduled",
"startedOn": null,
"scheduledStart": null,
"completedOn": null,
"completedBy": null,
"accessRequests": []
}
],
"activity": [
{
"createdDate": "2026-03-25T14:00:00Z",
"author": "API Token - HR Integration",
"action": "Created",
"content": "Offboard event created via API"
}
],
"comments": [
{
"createdDate": "2026-03-25T14:00:00Z",
"author": "API Token - HR Integration",
"content": "Employee resignation effective April 15"
}
]
}
Error Response (400)¶
{
"error": "validation_error",
"message": "One or more validation errors occurred",
"correlationId": "a1b2c3d4e5f6789012345678abcdef01",
"errors": [
{
"field": "identityId",
"message": "Identity with id d4a7e2b1-3f5c-4a8d-9e6b-1c2d3e4f5a6b not found"
}
]
}