Skip to main content
Version: 1.7.3

Enroll Individuals

Enroll Individuals

Use this endpoint to enroll one or more individuals in a benefit. This operation is asynchronous — it returns a job_id immediately and processes enrollments in the background.

Key Points

  • Depends on — a benefit_id from POST /benefits and individual_id values from GET /organization/directory.
  • Asynchronous — poll the returned job_id with GET /jobs/manual/{job_id} to check whether enrollment succeeded per individual.
  • Limits — a maximum of 25 individuals per request. Duplicate individual_id values are automatically de-duplicated.
  • Amounts — monetary amounts are in cents; percentages are in basis points (100 = 1%).
POST benefits/{benefit_id}/individuals 

Header Parameters

FieldTypeDescription
AuthorizationstringRequired. Bearer token obtained from the Auth endpoint. Format: Bearer <access_token>.
X-TaxBandits-VersionstringAPI version string. Use 1.0.0.

Query Parameters

FieldTypeDescription
entity_idsstringThe organization ID. Must be exactly one UUID.

Path Parameters

FieldTypeDescription
benefit_idstringThe benefit UUID from the create or list endpoints.

Request Body

The request body is an array of individual enrollment objects (max 25).

FieldTypeDescription
individual_idstringRequired. The employee UUID to enroll.
configurationobjectRequired. The deduction configuration.
   employee_deductionobjectRequired. The employee's deduction.
     typestringRequired. fixed or percent.
     amountnumberRequired. Fixed: positive integer in cents, <= 12 digits. Percent: integer 1-10000 (basis points, 100 = 1%).
     annual_maximumnumberOptional Positive integer in cents, or null.
   company_contributionobjectOptional Employer contribution.
     typestringIf provided, fixed or percent.
     amountnumberIf provided, same rules as the employee amount.
     annual_maximumnumberOptional Positive integer in cents, or null.
   catch_upbooleanOptional true / false. Only valid when the individual is catch-up eligible.
   effective_datestringOptional YYYY-MM-DD. Must be after the benefit's own effective date.
   annual_contribution_limitstringConditionally required for the hsa_pre benefit type. Values: individual or family.

Response Body

FieldTypeDescription
statusstringSUCCESS or FAILURE.
status_codenumberHTTP-style status code (e.g. 200, 400).
messagestringHuman-readable status message.
responseobjectThe background job reference.
   job_idstringUUID of the background job. Poll it to confirm per-individual enrollment.

Request Json

SampleDescriptionAction
Sample 1
Enroll one individual with a fixed employee deduction and a percent company contribution.
Sample 1
[
{
"individual_id": "7a3f1c2d-11bb-4e6a-9c0d-f83a57e12346",
"configuration": {
"employee_deduction": {
"type": "fixed",
"amount": 10000,
"annual_maximum": null
},
"company_contribution": {
"type": "percent",
"amount": 400,
"annual_maximum": null
},
"catch_up": false,
"effective_date": "2026-01-01"
}
}
]

Response Json

SampleDescriptionAction
200
Success Response - This is a sample response for successful API requests.
400
Bad Request Response - You'll get the below response when the request body fails validation.
404
Not Found Response - You'll get the below response when no benefit matches the supplied benefit_id.
{
"status": "SUCCESS",
"status_code": 200,
"message": "Request processed successfully",
"response": {
"job_id": "be1b3351-a88e-46c2-96e4-c2cf38e529a7"
}
}