Skip to main content
Version: 1.7.3

Benefits Overview

The Benefits endpoints let you create and manage the benefits an employer offers, and enroll or unenroll individual employees in those benefits. This is the most involved route in the Payroll Integration API — several operations are asynchronous and return a job_id you must poll to confirm the result.

Every Benefits endpoint requires the X-TaxBandits-Version header (1.0.0) and the entity_ids query parameter (the organization ID). See the Payroll Integration API Overview for prerequisites and the response envelope.

Key elements

  • entity_ids — The organization ID. Required on every call.
  • benefit_id — A unique identifier returned when you create/register a benefit. Used to get, update, enroll, unenroll, and read deductions for that benefit.
  • individual_id — An employee UUID from GET /organization/directory. Used to enroll and unenroll employees. See Organization.
  • job_id — Returned by every asynchronous write (create, register, enroll, unenroll). Poll it with GET /jobs/manual/{job_id} to confirm the result. See Jobs.

All monetary amounts are in cents (e.g. 10000 = $100.00). Percentage amounts are in basis points (e.g. 400 = 4%).

Data flows between these endpoints — IDs returned by one call become inputs to the next. Follow this order end-to-end:

  • Create a benefitPOST /benefits returns a benefit_id and a job_id.
  • Confirm creation — poll GET /jobs/manual/{job_id} until the job completes.
  • Get / update the benefitGET /benefits/{benefit_id} reads it back; PATCH /benefits/{benefit_id} updates the description or effective date.
  • Enroll individualsPOST /benefits/{benefit_id}/individuals returns a job_id; poll it to confirm each enrollment.
  • Check job statusGET /jobs/manual/{job_id} shows per-individual results.
  • Get the enrolled listGET /benefits/{benefit_id}/enrolled returns the enrolled individual_id values.
  • Get deductionsGET /benefits/{benefit_id}/individuals returns the deduction configuration for enrolled individuals.
  • Unenroll individualsDELETE /benefits/{benefit_id}/individuals returns a job_id; poll it to confirm each removal.

Benefits Endpoints

MethodPathPurpose
GET/benefitsReturn all active benefits configured for the employer.
POST/benefitsCreate a benefit for the employer.
GET/benefits/{benefit_id}Retrieve full details of a single benefit.
PATCH/benefits/{benefit_id}Update the description and/or effective date of a benefit.
GET/benefits/{benefit_id}/enrolledReturn the individual UUIDs currently enrolled in the benefit.
GET/benefits/{benefit_id}/individualsReturn the deduction configuration for enrolled individuals.
POST/benefits/{benefit_id}/individualsEnroll one or more individuals in a benefit (asynchronous).
DELETE/benefits/{benefit_id}/individualsUnenroll one or more individuals from a benefit (asynchronous).

Supported Benefit Types

The type field identifies the kind of benefit. Use the type value (not the plan name) in requests.

Plan Nametype Value
Simple IRAsimple_ira
401(k) Traditional401k
Flexible Spending Account – Medical (FSA)fsa_medical
Health Savings Account (HSA)hsa_pre
Roth 403(b) Post Tax403b_roth
403(b) Pre-Tax403b
Medical, Dental & Visionmdv_pre
401(k) Roth401k_roth
Flexible Spending Account – Dependent Carefsa_dependent_care

An employer cannot have more than one active benefit of the same type. The only exception is mdv_pre, which allows multiple active benefits of the same type per employer (for example, separate MEDICAL, DENTAL, and VISION plans).