Get Job Status
Get Job Status
Use this endpoint to retrieve the current status and per-item results of a background job. Asynchronous write operations do not finish inline — they return a job_id that you poll here to check whether an enroll, unenroll, create, or register operation completed successfully.
The job_id is returned by any asynchronous write operation. This endpoint is read-only.
GET jobs/manual/{job_id} Header Parameters
| Field | Type | Description |
|---|---|---|
| Authorization | string | Required. Bearer token obtained from the Auth endpoint. Format: Bearer <access_token>. |
| X-TaxBandits-Version | string | API version string. Use 1.0.0. |
Query Parameters
| Field | Type | Description |
|---|---|---|
| entity_ids | string | The organization ID. Must be exactly one UUID. |
Path Parameters
| Field | Type | Description |
|---|---|---|
| job_id | string | The job UUID returned from a write operation (register, create, update, enroll, or unenroll). |
Response Body
| Field | Type | Description |
|---|---|---|
| status | string | SUCCESS or FAILURE. |
| status_code | number | HTTP-style status code (e.g. 200, 400). |
| message | string | Human-readable status message. |
| response | object | The job result. |
| job_id | string | The job UUID being polled. |
| status | string | Current job status. See Job Status Values below. |
| body | array | Per-item results — one object per processed individual for enroll/unenroll jobs. Empty array [] for single-record jobs (create, register), which expose progress only through status. |
| individual_id | string | The individual UUID (enroll/unenroll jobs). |
| code | number | Per-item result code. See Per-item result codes below. |
| message | string | Human-readable per-item result message. |
Job Status Values
| status | Meaning |
|---|---|
| pending | Job was created but not yet picked up for processing. |
| in_progress | Currently being processed. |
| complete | All items processed successfully. |
| partial | Some items succeeded, some failed — check body[] for details. |
| error | System-level failure. |
Keep polling until status is complete, partial, or error. For most operations this resolves within a few seconds.
Per-item result codes
| code | Meaning |
|---|---|
| 200 | Updated successfully. |
| 201 | Created/enrolled successfully (new record). |
| 404 | Individual not found. |
| 409 | Individual is not enrolled in this benefit (unenroll only). |
| 422 | Business rule violation (e.g. catch-up not eligible, annual limit exceeded). |
| 500 | Internal DB error during processing. |
Payload
Request
GET jobs/manual/be1b3351-a88e-46c2-96e4-c2cf38e529a7?entity_ids=519a84f4-5e56-496a-82f3-18f51fdf3d75
Header: X-TaxBandits-Version: 1.0.0
Response Json
| Sample | Description | Action |
|---|---|---|
| 200 | Enroll / Unenroll Job - This is a sample response for an enroll or unenroll job. Each item in body[] is keyed by individual_id. | |
| 200 | Create / Register Job - This is a sample response for a create or register job. These are single-record jobs, so body is an empty array — track completion through status. | |
| 400 | Bad Request Response - You'll get the below response when job_id or entity_ids is missing or invalid. | |
| 404 | Not Found Response - You'll get the below response when no job exists for the given job_id under this employer. |
{
"status": "SUCCESS",
"status_code": 200,
"message": "Request processed successfully",
"response": {
"job_id": "be1b3351-a88e-46c2-96e4-c2cf38e529a7",
"status": "complete",
"body": [
{
"individual_id": "7a3f1c2d-11bb-4e6a-9c0d-f83a57e12346",
"code": 201,
"message": "Successfully enrolled individual in benefit"
},
{
"individual_id": "9b2e4d7f-22cc-5f7b-0d1e-994b68f23457",
"code": 404,
"message": "Individual not found"
}
]
}
}