payrolldataspecs.com

Retrieval · comparison

How to read benefit enrollments from an HRIS: the four unified benefits models

Reading enrollments through a unified API means reading up to four things — the plan catalog, each employee's enrollment, dependent coverage and coverage amounts — and the seven vendors compared here model these very differently, with availability varying by connector on every vendor that models them at all.

By Eli Wilson · Published

Reading enrollments through a unified API means reading up to four things: the plan catalog, each employee’s enrollment, dependent coverage, and coverage amounts. The seven vendors compared here model these very differently, and on every vendor that models them at all, availability varies by connector. As of 1 Oct 2026: Bindbee has four read-only benefits models plus a Dependent model. Merge has a plan object (EmployerBenefit) and an enrollment object (Benefit). Finch’s Benefits API (plans, enrollments, dependents) is in Early Access on ADP Workforce Now and Workday. Unified.to has a plan-level Benefit object and an employee-level Deduction object. Knit has no plan or enrollment model, but exposes benefits through an employee deduction model and has a dependents model. Apideck and Kombo document no benefits model.

The per-connector detail below uses Bindbee’s docs, because its four models map one-to-one onto the four things above and its availability matrix is public. The same questions apply to every vendor: which object holds the enrollment, and on which of your customers’ systems is it actually populated?

How the unified APIs model benefits (as of 1 Oct 2026)

VendorPlan / enrollment readDependentsWriteNotes
BindbeeEmployer Benefit (plan), Benefit (enrollment), Dependent Benefit, Benefit CoverageDependent model (relationship, DOB, SSN, student status)Benefits models are read-only. Deductions are written as payroll-run lines on supported connectorsAvailability varies by connector; benefits models need the Pro tier
MergeEmployerBenefit (plan) and Benefit (enrollment, with contributions and dates)Not verifiedNot documented for benefits objects. Documented HRIS writes are Employees and Time OffPer-integration benefits coverage not verified
FinchBenefits API: plans, enrollments, dependentsIn the Benefits APIDeductions and contributions to payroll on Pro, marked “Employer Fee Required”Benefits API is Early Access (announced 14 Sep 2026), ADP Workforce Now and Workday, GA targeted Summer 2027
KomboNone. No benefits, enrollment or deduction paths among the 26 /hris paths in Kombo’s OpenAPINo dependents pathNo deduction writePayroll read (pay runs, payslips) lists UKG Pro and UKG Ready only
ApideckNone. Benefit amounts appear only inside payroll read (Employee Payroll benefits[] with employee_deduction, employer_contribution)No dependents model (Employee has a partner field)None on payroll, deductions or benefitsPayroll read shows what was deducted, not what was elected
KnitNo plan or enrollment model. employee_deduction carries benefit and deduction type (401k, HEALTH, DENTAL, VISION, HSA, FSA and others), employee/employer contribution, frequency, start/end dateemployee_dependent modelDeduction create, enroll, update and unenroll documented on a subset of payroll systemsPer-app support for the deduction read model not verified
Unified.toBenefit (company-wide plan, per Unified’s model page) and Deduction (employee-level, linked by benefit_id, with coverage_level, amount, frequency, dates)No separate model; Employee relationships[] with is_dependent / is_beneficiary flagsDeduction create/update endpoints exist; among US payroll systems checked, only Paylocity lists themWorkday, Rippling, BambooHR, Dayforce and Paycom integration pages list no Deduction object

Sources for every cell are at the end. “Not verified” means it was not researched for this piece; “not documented” means the vendor’s docs were searched and it was not found.

What each model holds, using Bindbee’s four as the example

Full field reference: benefits data models.

Employer Benefit: the plan catalog. One row per plan the employer offers, whether or not anyone enrolls. Key fields are plan_name, provider_name, benefit_plan_category, payroll_codes and deduction_code. These are how a deduction line on a payroll run matches back to the plan. Unified.to’s Benefit object plays the same role.

Benefit: one employee’s enrollment in one plan. Fields include coverage_tier, employee_contribution, company_contribution and effective_date. This is the record you reconcile against your own enrollment data. Merge’s Benefit and Finch’s enrollments are the closest equivalents; Unified.to’s Deduction and Knit’s employee_deduction carry similar contribution and date fields but are framed as deductions, not enrollments.

Dependent Benefit: a dependent’s coverage under a plan. It points to the dependent and to the employer_benefit (the plan), not to the employee’s enrollment. To find which dependents ride on an employee’s medical enrollment, join both records on employer_benefit. Dependent Benefit carries no money; contributions sit on the employee’s Benefit.

Benefit Coverage: what is covered. Fields include amount, currency, is_employee_covered and covered_dependents. It attaches to the enrollment, with one record per covered person.

Dependent: the person. Fields include relationship, date of birth and is_student, among others. Dependent DOB is often permission-gated in the source system, so expect gaps until the customer grants access.

The enums are normalized: 11 plan categories, 11 coverage tiers and a plan frequency with 11 values. That lets you map “EE+Spouse” from one system and its equivalent from another to the same value.

Connector availability

Benefits read depends on the connector, on every vendor that models it. Bindbee states 102+ HRIS integrations; its public integrations page at docs.bindbee.dev lists 90 HRIS/payroll connector entries today. Only some of those connectors expose benefits models. From the docs (model availability, 1 Oct 2026):

SystemBindbee status: benefits read
WorkdayAll four Supported
BambooHRAll four Supported
UKG ProSupported (Benefit Coverage: Beta)
UKG ReadySupported (Benefit Coverage: Beta)
Oracle HCM (API)Benefit Supported; Dependent Benefit and Benefit Coverage Beta; Employer Benefit not supported
ViventiumBenefit and Employer Benefit Supported; Dependent Benefit Beta
DayforceBenefit, Employer Benefit, Dependent Benefit Beta
SAP SuccessFactorsBenefit, Employer Benefit, Benefit Coverage Beta
PrismHRBenefit, Employer Benefit, Dependent Benefit Beta
Paylocity (API)Benefit model Beta only
ADP Workforce Now (API)Not supported
Paycor (API)Not supported
Paychex (API)Not supported
Rippling (API)Not supported
Workday RaaS (SFTP)Benefit Supported; the other three Beta
SFTP payroll connectors: ADP, Paychex, Paychex Flock, Paycom, Paylocity, Rippling, Oracle, isolvedAll four Supported
Ben-admin SFTP sources: bswift, Ease, Employee Navigator, PlanSourceAll four Supported

When a system’s API connector doesn’t expose benefits, check whether the customer can send an SFTP export instead. Rippling is the clearest case: the Rippling API connector has no benefits read, and the Rippling SFTP connector supports all four models. Reading from ben-admin systems as sources is covered in reading data from bswift, Ease, Employee Navigator and PlanSource.

The same unevenness shows up elsewhere. Unified.to’s per-integration pages list no Benefit or Deduction object for Workday, and no Deduction object for Rippling, BambooHR, Dayforce or Paycom; ADP Workforce Now, Paycor and UKG Ready list Deduction read (list/get). Finch’s Benefits API covers ADP Workforce Now and Workday during Early Access. Merge’s and Knit’s per-integration coverage of their benefits objects was not verified for this piece; check their integration lists by name.

Census is a separate question. In Bindbee, Dependent read is not supported on the Paycor, Paylocity, Paycom, Rippling and SAP SuccessFactors API connectors, and is Beta on Paychex (API). See building a quote-ready census from HRIS data.

Reading enrollments correctly

These notes come from Bindbee’s docs, but most apply to any vendor that models enrollments.

Enrollments accumulate. Bindbee keeps one enrollment per plan year, so an unfiltered read of Benefit returns history. Filter with effective_date_from / effective_date_to for the plan year you care about, or you’ll count last year’s medical election as a second active plan.

curl --request GET \
  --url 'https://api.bindbee.dev/api/hris/v1/benefits?employee_id=<EMPLOYEE_ID>&effective_date_from=2026-01-01&expand=employer_benefit' \
  --header 'Authorization: Bearer <BINDBEE_API_KEY>' \
  --header 'X-Connector-Token: <CONNECTOR_TOKEN>'

Two dates on one enrollment are not the same day. A plan elected during open enrollment carries a start_date at election and an effective_date at the plan-year boundary.

Renewal creates new plan records. An Employer Benefit ID you stored last year won’t resolve this year, so re-read the catalog each plan year.

Amounts are not on the enrollment. If you read only Benefit, you get the contribution and the tier but no insured sums, and nothing tells you they are missing. Read Benefit Coverage for amounts.

Enums are open. An unmapped coverage_tier comes back as the source’s raw string, so handle values outside the 11.

Join through the catalog. Resolve each Benefit to its Employer Benefit to get the plan name, carrier (provider_name) and category. To match payroll, use the catalog’s deduction_code / payroll_codes by ID, not by comparing code strings, and check first, because both fields can be empty.

Check against payroll. Enrollment records say what the employee elected. Payroll deduction lines say what payroll actually took. If you read both, you can catch a missing or wrong deduction before the employee does. On Apideck, payroll read is the only benefits signal, so you see the second half of this check but not the first.

Use raw data for the long tail. In Bindbee, pass include_raw_data to get the source payload next to the normalized record; custom fields can be mapped with JMESPath, and anything outside the unified model is reachable through passthrough. Merge (Professional and Enterprise), Apideck, Knit and Unified.to also list passthrough.

Freshness. Bindbee production connectors sync every 24 hours by default (sync frequency), and webhooks fire after a sync, with a modified_after reconciliation needed because exhausted deliveries are not redelivered. Apideck and Unified.to describe their reads as pass-through to the source at request time (their claim); Knit pushes polled syncs to your webhook, every 24 hours on its Start Up plan. Coverage end dates after a termination are covered in detecting terminations and coverage end dates.

Limits by vendor

Next step

List your customers’ HRIS and payroll systems and check each vendor’s published benefits coverage against that list, system by system. Bindbee publishes a model availability matrix; Unified.to publishes per-integration object lists; Knit publishes supported-app lists per endpoint; Finch lists the Benefits API’s supported systems. For Merge, check its per-integration coverage pages.

Frequently asked

Which unified APIs have an employee-level benefits record?
Bindbee (Benefit), Merge (Benefit) and Finch (Benefits API enrollments, Early Access). Unified.to (Deduction, linked to a plan) and Knit (`employee_deduction`) model it as a deduction rather than an enrollment. Apideck and Kombo have none, as of 1 Oct 2026.
Can a unified API read benefits from ADP Workforce Now?
Bindbee: through ADP's SFTP connector, yes, all four models; through the ADP WFN API connector, no. Finch: the Benefits API (Early Access) starts with ADP WFN. Unified.to: Deduction list/get on ADP WFN. Merge, Knit: not verified for this piece. Apideck: payroll read only, with benefit amounts. Kombo: no benefits model.

Source limits

Documentation comparison as of 1 Oct 2026; nothing verified hands-on. 'Not verified' means it was not researched for this piece; 'not documented' means the vendor's docs were searched and it was not found. Merge's and Knit's per-integration coverage of their benefits objects, Merge's dependents, and Knit's plan name, carrier and coverage tier fields were not verified. The Kombo Q4 2026 roadmap statement appears only on a Bindbee-authored comparison page.

Sources checked

Source Publisher Document date We checked
Benefits data models Bindbee — 2026-10-01
Get Benefits Bindbee — 2026-10-01
Model availability Bindbee — 2026-10-01
Model support reference Bindbee — 2026-10-01
Integrations Bindbee — 2026-10-01
Sync frequency Bindbee — 2026-10-01
Passthrough Bindbee — 2026-10-01
Bindbee pricing Bindbee — 2026-10-01
Bindbee vs Kombo (Bindbee-authored comparison) Bindbee — 2026-10-01
Benefits Merge — 2026-10-01
Employer Benefits Merge — 2026-10-01
Merge pricing Merge — 2026-10-01
Finch Benefits API announcement Finch — 2026-10-01
Finch pricing Finch — 2026-10-01
Kombo OpenAPI Kombo — 2026-10-01
Apideck HRIS API Apideck — 2026-10-01
Apideck HRIS OpenAPI spec (v10.59.1) Apideck — 2026-10-01
Knit developer docs (employee deduction, employee dependent, deduction endpoints) Knit — 2026-10-01
Knit HRIS apps list Knit — 2026-10-01
Unified.to HRIS overview Unified.to — 2026-10-01
Unified.to Benefit model Unified.to — 2026-10-01
Unified.to per-integration pages Unified.to — 2026-10-01

Wrong or out of date? payrolldataspecs@gmail.com — corrections are free. How claims are scored: methodology.