Employer Onboarding
Set up an employer from scratch — create the company, configure eligibility, and import employees.
This guide walks you through onboarding a new employer in three steps: create the employer, set an eligibility policy, and import employees via census sync. By the end, your employer will be fully configured and employees will be processing for benefits eligibility.
Before you begin, make sure you have a valid API key. See Authentication for details.
Step 1: Create an Employer
Section titled “Step 1: Create an Employer”Create a new employer by sending their company details to the API.
curl -X POST https://api.vitablehealth.com/v1/employers \ -H "Authorization: Bearer $VITABLE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Bean Works Coffee", "legal_name": "Bean Works Coffee LLC", "ein": "00-0000000", "email": "admin@beanworks.example.com", "phone_number": "+15555550100", "reference_id": "your-internal-id-123", "address": { "address_line_1": "123 Main Street", "city": "Austin", "state": "TX", "zipcode": "78701" } }'The reference_id field lets you map this employer to your own internal identifier. It is optional but recommended.
See the Create Employer endpoint for the full request and response schema.
Step 2: Create an Eligibility Policy
Section titled “Step 2: Create an Eligibility Policy”An eligibility policy defines which employees qualify for benefits and how long they must wait.
curl -X POST https://api.vitablehealth.com/v1/employers/{employer_id}/benefit-eligibility-policies \ -H "Authorization: Bearer $VITABLE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "classification": "All", "waiting_period": "1st of the following month" }'Classification options: Full time, Part time, All
Waiting period options: 1st of the following month, 30 days, 60 days, None
Webhook: After successful creation, you will receive an employer.eligibility_policy_created event. See the Webhooks Events page for payload details.
For a deeper understanding of how policies affect eligibility evaluation, see the Eligibility Policies concept page.
See the Create Eligibility Policy endpoint for the full request and response schema.
Step 3: Import Employees
Section titled “Step 3: Import Employees”Submit your employee roster using census sync. This is an asynchronous operation — the request is validated immediately and employees are processed in the background.
curl -X POST https://api.vitablehealth.com/v1/employers/{employer_id}/census-sync \ -H "Authorization: Bearer $VITABLE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "employees": [ { "first_name": "Maria", "last_name": "Garcia", "date_of_birth": "1990-05-15", "email": "maria@beanworks.example.com", "phone": "5555550101", "reference_id": "emp-001", "start_date": "2024-01-15", "employee_class": "Full time" }, { "first_name": "James", "last_name": "Chen", "date_of_birth": "1985-11-22", "email": "james@beanworks.example.com", "phone": "5555550102", "reference_id": "emp-002" } ] }'Required fields per employee: first_name, last_name, date_of_birth, email, phone
Optional fields: reference_id, address, start_date, employee_class, compensation_type
Limits: Minimum 1 employee, maximum 5,000. Each reference_id must be unique within the payload.
Response: 202 Accepted with an accepted_at timestamp confirming the sync was queued.
See the Submit Census Sync endpoint for the full request and response schema.
What Happens Next
Section titled “What Happens Next”After your census sync is accepted, Vitable processes employees asynchronously:
- Each employee is validated and created (or matched to an existing record)
- Eligibility is evaluated against your employer’s policy
- For each employee who qualifies, an
employee.eligibility_grantedwebhook fires
If the employer has no eligibility policy, all employees are granted eligibility immediately. If a policy exists with a waiting period, eligibility is granted when the waiting period expires.
For details on how employees are matched across syncs, see the Census Sync concept page.
Troubleshooting
Section titled “Troubleshooting”- 422 when creating eligibility policy: You already have an active policy for this employer. Archive the existing one first, then create the new one.
- No
employee.eligibility_grantedwebhooks after census sync: If the employer has an eligibility policy with a waiting period, eligibility is not granted immediately — events fire when the waiting period expires. Also verify your webhook endpoint is configured and reachable via the Webhooks section. - Census sync returns 400: Check that all employees have the required fields (
first_name,last_name,date_of_birth,email,phone) and thatreference_idvalues are unique within the payload.
What’s Next
Section titled “What’s Next”Proceed to Employee Enrollment to set up the embedded benefits experience for your employees.
Related API Endpoints
Section titled “Related API Endpoints”POST /v1/employers— Create an employerPOST /v1/employers/{id}/benefit-eligibility-policies— Create an eligibility policyPOST /v1/employers/{id}/census-sync— Submit a census syncGET /v1/employers/{id}/employees— List employees for an employer