Skip to main content
If your platform runs payroll on Check, this page maps Check’s API objects onto the Prescience census schema field by field. The short version: Check natively stores every field the census API requires, so the integration is a data-mapping exercise against records you already hold.
The Prescience Partner API is fully compatible with Check-powered payroll platforms. Names, email, date of birth, ZIP, hire date, and employment status all come straight off Check’s Employee object; legal name, address, and contact details come off Company. Check’s employee.* webhooks give you real-time census-sync triggers, and its benefits API carries employer HSA contributions through payroll with IRS limits enforced.
Check also runs an established third-party benefits integration program (health insurance and retirement providers attach deductions to Check payrolls today), so this integration shape is well-trodden on their side. See Check’s benefits documentation.

Employee field mapping

Each census member submitted to PUT /groups/{groupId}/census maps from Check as follows. Field references come from Check’s Employee object.
Prescience fieldCheck sourceNotes
externalIdEmployee.idCheck’s em_... ID is the natural stable identifier.
firstNameEmployee.first_nameRequired in Check.
lastNameEmployee.last_nameRequired in Check.
emailEmployee.emailRequired in Check. Required by Prescience before enrollment, not for quoting.
dobEmployee.dobYYYY-MM-DD, same format both sides. Optional in Check’s schema, so validate population before submitting (see gaps below).
zipEmployee.residence.postal_codeOptional at creation in Check, but payroll-ready employees have a residence since it drives tax withholding.
hireDateEmployee.start_dateRequired in Check.
statusEmployee.active and Employee.termination_dateactive: true maps to active; a set termination_date maps to terminated.
employmentTypePartialContractors are a separate Check object (exclude them, or submit as contractor). Full-time vs part-time is not in Check; source it from your app layer.
sexAtBirthNot in CheckSource from your app layer. Optional for quoting.
dependents[]Not in CheckSource from your app layer. See gaps below.

Company field mapping

For POST /groups, from Check’s Company object:
Prescience fieldCheck sourceNotes
companyNameCompany.trade_nameThe DBA name.
legalEntityNameCompany.legal_nameMatches IRS records on the Check side.
domainCompany.website
einYour app layerThe FEIN is submitted to Check at company enrollment, but Check does not document reading the value back. Pass it from your own records. Optional at group creation.
addressCompany.addressline1, city, state, postal_code are required in Check.
contactCompany.email, Company.phoneCheck holds the payroll administrator’s contact.

What Check does not model

Three census fields live in your application layer rather than in Check. Every benefits provider integrating with Check-powered platforms collects these the same way.
  1. Dependents. Check has no dependents object. Collect spouse and child records (relationship, name, date of birth) in your enrollment UI and include them as dependents[]. Quoting works without them, but premiums for covered dependents only price correctly when they are present.
  2. Sex at birth. Not on Check’s employee object. Optional in our schema.
  3. Full-time vs part-time. Check classifies pay (hourly, salaried) on earnings, not employment class on the employee. Source employmentType from your own HRIS data.
Also note: dob and residence are optional in Check’s schema. Both are required for quoting, so validate them before calling PUT /census. The endpoint returns per-row errors for anything missing, so a dry-run submission doubles as a completeness check.

Census sync triggers

Subscribe to Check’s webhook events and forward changes to the census endpoints described in Census sync:
Check eventPrescience call
employee.createdPOST /groups/{groupId}/members
employee.updatedPATCH /groups/{groupId}/members/{memberId}
employee.updated with a new termination_datePATCH .../members/{memberId} with status: "terminated" (and cobra: true where applicable)
employee.deletedPATCH .../members/{memberId} with status: "terminated"
company.updatedPATCH /groups/{groupId}
Check has no dedicated termination event; terminations surface as employee.updated with termination_date set, so inspect that field in your employee.updated handler.

HSA contributions through payroll

The Diamond plan has a $0 employee premium, so there are no per-paycheck premium deductions to configure. Employer HSA contributions can flow through Check directly: create an hsa benefit with company_contribution_amount set and no employee contribution. Check enforces IRS annual limits, including catch-up contributions, on its side.

Sandbox parity

Check’s sandbox and the Prescience test mode compose cleanly: point your Check sandbox employee data at our test-mode endpoints with a psk_test_ key, and the full census, quote, and enrollment flow runs end to end with no live money movement on either side. See Environments.