Thatch for Platforms is a set of APIs and embeddable components, enabling you to effortlessly bring ICHRA (Individual Coverage Health Reimbursement Arrangement) benefits to your customers.
Thatch for Platforms is only available to specific partners. Get in touch with us at platforms@thatch.com to set up an account.
List employee payroll deductions
employer_id required | string Example: employer_id=empl_01j9w59xh2p5d03z0zxgcv2vag Employer ID |
page[number] | integer <int32> >= 1 Default: 1 Page number |
page[size] | integer <int32> [ 1 .. 1000 ] Default: 20 Number of items per page. Must be between 1 and 1,000 (inclusive). Defaults to 20. |
periods[start_after] | string <date> Example: periods[start_after]=2024-01-01 Periods starting on or after date, in ISO 8601 format |
periods[end_before] | string <date> Example: periods[end_before]=2024-01-01 Periods ending on or before date, in ISO 8601 format |
{- "data": [
- {
- "employee_id": "employee_01j85kpd8yxkabyrm83d3h2ya3",
- "periods": [
- {
- "start_date": "2024-05-01",
- "end_date": "2024-05-31",
- "deductions": [
- {
- "amount": {
- "amount": 1099,
- "currency_code": "USD"
}, - "type": "s125_pretax",
- "applied_correction": {
- "amount": 1099,
- "currency_code": "USD"
}
}
]
}
]
}
], - "pagination": {
- "total_records": 25,
- "current_page": 1,
- "total_pages": 3,
- "next_page": 2,
- "prev_page": 0
}
}
Employees work for employers, both of which are managed by partners. Employees enrolled in plans are also represented in Thatch as member objects.
Create an employee
employer_id required | string Employer ID |
first_name required | string Employee's first name |
last_name required | string Employee's last name |
date_of_birth required | string <date> Employee's date of birth in YYYY-MM-DD format |
zip required | string Employee's five-digit ZIP code |
personal_email | string Employee's personal email address, either a personal or work email address must be set |
work_email | string Employee's work email address, either a personal or work email address must be set |
employment_subtype | string Enum: "part_time" "full_time" Employee's employment subtype |
pay_type | string Enum: "yearly" "quarterly" "monthly" "semi_monthly" "bi_weekly" "weekly" "daily" "hourly" "fixed" "salary" Employee's pay type |
pay_rate | number <float> Pay rate in case the employee is paid hourly |
start_date | string <date> Employee's start date in YYYY-MM-DD format |
end_date | string <date> Employee's end date in YYYY-MM-DD format |
Array of objects | |
object Set of key-value pairs that you can attach to an API resource. This can be useful for storing additional information about the resource in a structured format. Individual keys can be unset by posting an empty string value ( |
{- "personal_email": "string",
- "work_email": "string",
- "employer_id": "string",
- "first_name": "string",
- "last_name": "string",
- "employment_subtype": "part_time",
- "pay_type": "yearly",
- "pay_rate": 0.1,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "date_of_birth": "2019-08-24",
- "zip": "90210",
- "dependents": [
- {
- "relationship": "spouse",
- "date_of_birth": "2019-08-24"
}
], - "metadata": {
- "key": "value"
}
}
{- "id": "employee_01j85kpd8yxkabyrm83d3h2ya3",
- "employer_id": "empl_01j2j3smtwx656y2tbqm7ty6gr",
- "personal_email": "ana.diaz@gmail.test",
- "work_email": "ana.diaz@acme.test",
- "first_name": "Ana",
- "last_name": "Diaz",
- "enrollment_events": [
- {
- "type": "open_enrollment",
- "subtype": "renewal",
- "plan_year": 2024,
- "start_date": "2024-11-01",
- "end_date": "2024-11-30",
- "status": "active"
}
], - "member_id": "mbr_01j85kpd8yxkabyrm83d3h2ya3",
- "date_of_birth": "1989-07-15",
- "zip": "94103",
- "dependents": [
- {
- "relationship": "spouse",
- "date_of_birth": "2012-04-04"
}
], - "metadata": {
- "key": "value"
}
}
Get an employee
id required | string Employee ID |
{- "id": "employee_01j85kpd8yxkabyrm83d3h2ya3",
- "employer_id": "empl_01j2j3smtwx656y2tbqm7ty6gr",
- "personal_email": "ana.diaz@gmail.test",
- "work_email": "ana.diaz@acme.test",
- "first_name": "Ana",
- "last_name": "Diaz",
- "enrollment_events": [
- {
- "type": "open_enrollment",
- "subtype": "renewal",
- "plan_year": 2024,
- "start_date": "2024-11-01",
- "end_date": "2024-11-30",
- "status": "active"
}
], - "member_id": "mbr_01j85kpd8yxkabyrm83d3h2ya3",
- "date_of_birth": "1989-07-15",
- "zip": "94103",
- "dependents": [
- {
- "relationship": "spouse",
- "date_of_birth": "2012-04-04"
}
], - "metadata": {
- "key": "value"
}
}
List employees
employer_id | string ID of the employee's employer |
page[number] | integer <int32> >= 1 Default: 1 Page number |
page[size] | integer <int32> [ 1 .. 1000 ] Default: 20 Number of items per page. Must be between 1 and 1,000 (inclusive). Defaults to 20. |
{- "data": [
- {
- "id": "employee_01j85kpd8yxkabyrm83d3h2ya3",
- "employer_id": "empl_01j2j3smtwx656y2tbqm7ty6gr",
- "personal_email": "ana.diaz@gmail.test",
- "work_email": "ana.diaz@acme.test",
- "first_name": "Ana",
- "last_name": "Diaz",
- "enrollment_events": [
- {
- "type": "open_enrollment",
- "subtype": "renewal",
- "plan_year": 2024,
- "start_date": "2024-11-01",
- "end_date": "2024-11-30",
- "status": "active"
}
], - "member_id": "mbr_01j85kpd8yxkabyrm83d3h2ya3",
- "date_of_birth": "1989-07-15",
- "zip": "94103",
- "dependents": [
- {
- "relationship": "spouse",
- "date_of_birth": "2012-04-04"
}
], - "metadata": {
- "key": "value"
}
}
], - "pagination": {
- "total_records": 25,
- "current_page": 1,
- "total_pages": 3,
- "next_page": 2,
- "prev_page": 0
}
}
Update an employee
id required | string Employee ID |
personal_email | string Employee's personal email address, either a personal or work email address must be set |
work_email | string Employee's work email address, either a personal or work email address must be set |
first_name | string Employee's first name |
last_name | string Employee's last name |
employment_subtype | string Enum: "part_time" "full_time" Employee's employment subtype |
pay_type | string Enum: "yearly" "quarterly" "monthly" "semi_monthly" "bi_weekly" "weekly" "daily" "hourly" "fixed" "salary" Employee's pay type |
pay_rate | number <float> Pay rate in case the employee is paid hourly |
start_date | string <date> Employee's start date in YYYY-MM-DD format |
end_date | string <date> Employee's end date in YYYY-MM-DD format |
date_of_birth | string <date> Employee's date of birth in YYYY-MM-DD format |
zip | string Employee's five-digit ZIP code |
Array of objects | |
object Set of key-value pairs that you can attach to an API resource. This can be useful for storing additional information about the resource in a structured format. Individual keys can be unset by posting an empty string value ( |
{- "personal_email": "string",
- "work_email": "string",
- "first_name": "string",
- "last_name": "string",
- "employment_subtype": "part_time",
- "pay_type": "yearly",
- "pay_rate": 0.1,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "date_of_birth": "2019-08-24",
- "zip": "90210",
- "dependents": [
- {
- "relationship": "spouse",
- "date_of_birth": "2019-08-24"
}
], - "metadata": {
- "key": "value"
}
}
{- "id": "employee_01j85kpd8yxkabyrm83d3h2ya3",
- "employer_id": "empl_01j2j3smtwx656y2tbqm7ty6gr",
- "personal_email": "ana.diaz@gmail.test",
- "work_email": "ana.diaz@acme.test",
- "first_name": "Ana",
- "last_name": "Diaz",
- "enrollment_events": [
- {
- "type": "open_enrollment",
- "subtype": "renewal",
- "plan_year": 2024,
- "start_date": "2024-11-01",
- "end_date": "2024-11-30",
- "status": "active"
}
], - "member_id": "mbr_01j85kpd8yxkabyrm83d3h2ya3",
- "date_of_birth": "1989-07-15",
- "zip": "94103",
- "dependents": [
- {
- "relationship": "spouse",
- "date_of_birth": "2012-04-04"
}
], - "metadata": {
- "key": "value"
}
}
Employers onboard into a platform through
employer onboarding sessions. After creating a session, provide the claim_url
to the
onboarding iframe in your app.
Create an employer onboarding session
employer required | string ID of the employer to create an onboarding session for |
{- "employer": "empl_01j2j3smtwx656y2tbqm7ty6gr"
}
{- "employer": "empl_01j2j3smtwx656y2tbqm7ty6gr",
- "expires_at": "2024-09-11T12:50:46Z"
}
Create an employer
address_line1 required | string Employer's address (line 1) |
business_type required | string Enum: "c_corp" "s_corp" "llc" "llp" "partnership" "sole_proprietorship" "non_profit" Employer's business type |
city required | string Employer's city |
ein required | string Employer's EIN (Employer Identification Number) |
email required | string Email address for the employer's administrator |
name required | string Employer's legal business name |
state required | string Enum: "AK" "AL" "AR" "AZ" "CA" "CO" "CT" "DC" "DE" "FL" "GA" "HI" "IA" "ID" "IL" "IN" "KS" "KY" "LA" "MA" "MD" "ME" "MI" "MN" "MO" "MS" "MT" "NC" "ND" "NE" "NH" "NJ" "NM" "NV" "NY" "OH" "OK" "OR" "PA" "RI" "SC" "SD" "TN" "TX" "UT" "VA" "VT" "WA" "WI" "WV" "WY" Employer's state |
zip required | string Employer's ZIP code, with optional +4 |
dba | string Employer's DBA (Doing Business As) name, if different from the employer's legal business name |
address_line2 | string Employer's address (line 2) |
phone_number | string Employer's phone number |
object Set of key-value pairs that you can attach to an API resource. This can be useful for storing additional information about the resource in a structured format. Individual keys can be unset by posting an empty string value ( |
{- "email": "admin@employer.test",
- "name": "Acme Corp",
- "business_type": "c_corp",
- "ein": "12-3456789",
- "dba": "",
- "address_line1": "123 Main St",
- "address_line2": "",
- "city": "San Francisco",
- "state": "CA",
- "zip": "94108",
- "phone_number": "415-555-1212",
- "metadata": {
- "key": "value"
}
}
{- "id": "empl_01j2j3smtwx656y2tbqm7ty6gr",
- "name": "Acme Corp",
- "business_type": "c_corp",
- "ein": "12-3456789",
- "dba": "string",
- "address_line1": "123 Main St",
- "address_line2": "string",
- "city": "San Francisco",
- "state": "CA",
- "zip": "94108",
- "phone_number": "+14152370005",
- "metadata": {
- "key": "value"
}
}
Get an employer
id required | string Employer ID |
{- "id": "empl_01j2j3smtwx656y2tbqm7ty6gr",
- "name": "Acme Corp",
- "business_type": "c_corp",
- "ein": "12-3456789",
- "dba": "string",
- "address_line1": "123 Main St",
- "address_line2": "string",
- "city": "San Francisco",
- "state": "CA",
- "zip": "94108",
- "phone_number": "+14152370005",
- "metadata": {
- "key": "value"
}
}
List employers
page[number] | integer <int32> >= 1 Default: 1 Page number |
page[size] | integer <int32> [ 1 .. 1000 ] Default: 20 Number of items per page. Must be between 1 and 1,000 (inclusive). Defaults to 20. |
{- "data": [
- {
- "id": "empl_01j2j3smtwx656y2tbqm7ty6gr",
- "name": "Acme Corp",
- "business_type": "c_corp",
- "ein": "12-3456789",
- "dba": "string",
- "address_line1": "123 Main St",
- "address_line2": "string",
- "city": "San Francisco",
- "state": "CA",
- "zip": "94108",
- "phone_number": "+14152370005",
- "metadata": {
- "key": "value"
}
}
], - "pagination": {
- "total_records": 25,
- "current_page": 1,
- "total_pages": 3,
- "next_page": 2,
- "prev_page": 0
}
}
Update an employer
id required | string Employer ID |
object Set of key-value pairs that you can attach to an API resource. This can be useful for storing additional information about the resource in a structured format. Individual keys can be unset by posting an empty string value ( | |||
|
{- "metadata": {
- "key": "value"
}
}
{- "id": "empl_01j2j3smtwx656y2tbqm7ty6gr",
- "name": "Acme Corp",
- "business_type": "c_corp",
- "ein": "12-3456789",
- "dba": "string",
- "address_line1": "123 Main St",
- "address_line2": "string",
- "city": "San Francisco",
- "state": "CA",
- "zip": "94108",
- "phone_number": "+14152370005",
- "metadata": {
- "key": "value"
}
}
Get an enrollment
id required | string Example: enrlmt_01j7h53qgy8m2q1f7563hbvpqj Enrollment ID |
{- "id": "enrlmt_01j7h53qgy8m2q1f7563hbvpqj",
- "member_id": "mbr_01j7h53qa133q71z25n7a3w0n4",
- "coverage_types": [
- "medical",
- "dental",
- "vision"
], - "status": "completed",
- "status_events": [
- {
- "status": "completed",
- "timestamp": "2024-11-01T00:00:00Z"
}
], - "plan_id": "mdpln_01j7h53nf2j0hc5a235b6xmxn4",
- "plan_code": "standard",
- "premium": {
- "amount": 1099,
- "currency_code": "USD"
}, - "broker": {
- "name": "Thatch Health Insurance Services LLC",
- "npn": "20782309"
}, - "enrollment_coverages": [
- {
- "first_name": "Ana",
- "last_name": "Diaz",
- "relationship": "self",
- "date_of_birth": "1990-01-02",
- "gender": "female",
- "start_date": "2024-05-01",
- "end_date": "2024-12-31"
}
]
}
List enrollments
page[number] | integer <int32> >= 1 Default: 1 Page number |
page[size] | integer <int32> [ 1 .. 1000 ] Default: 20 Number of items per page. Must be between 1 and 1,000 (inclusive). Defaults to 20. |
member_id | string Example: member_id=mbr_01j7h53qa133q71z25n7a3w0n4 Member ID |
status | string Enum: "in_member_cart" "member_confirmed" "submission_processing" "carrier_processing" "completed" "canceled" Example: status=completed Enrollment status |
{- "data": [
- {
- "id": "enrlmt_01j7h53qgy8m2q1f7563hbvpqj",
- "member_id": "mbr_01j7h53qa133q71z25n7a3w0n4",
- "coverage_types": [
- "medical",
- "dental",
- "vision"
], - "status": "completed",
- "status_events": [
- {
- "status": "completed",
- "timestamp": "2024-11-01T00:00:00Z"
}
], - "plan_id": "mdpln_01j7h53nf2j0hc5a235b6xmxn4",
- "plan_code": "standard",
- "premium": {
- "amount": 1099,
- "currency_code": "USD"
}, - "broker": {
- "name": "Thatch Health Insurance Services LLC",
- "npn": "20782309"
}, - "enrollment_coverages": [
- {
- "first_name": "Ana",
- "last_name": "Diaz",
- "relationship": "self",
- "date_of_birth": "1990-01-02",
- "gender": "female",
- "start_date": "2024-05-01",
- "end_date": "2024-12-31"
}
]
}
], - "pagination": {
- "total_records": 25,
- "current_page": 1,
- "total_pages": 3,
- "next_page": 2,
- "prev_page": 0
}
}
Members represent employees enrolled in plans. Thatch creates member objects automatically, but you can retrieve them (for example, to aid in supporting an enrolled employee.
{- "id": "mbr_01j85kpd8yxkabyrm83d3h2ya3",
- "employee_id": "employee_01j7h53r7gpd0q0wtx4pcfcska",
- "first_name": "Ana",
- "last_name": "Diaz",
- "address_line1": "123 Main St",
- "address_line2": "string",
- "city": "San Francisco",
- "state": "CA",
- "zip": "94108",
- "date_of_birth": "1989-07-15"
}
List members
page[number] | integer <int32> >= 1 Default: 1 Page number |
page[size] | integer <int32> [ 1 .. 1000 ] Default: 20 Number of items per page. Must be between 1 and 1,000 (inclusive). Defaults to 20. |
{- "data": [
- {
- "id": "mbr_01j85kpd8yxkabyrm83d3h2ya3",
- "employee_id": "employee_01j7h53r7gpd0q0wtx4pcfcska",
- "first_name": "Ana",
- "last_name": "Diaz",
- "address_line1": "123 Main St",
- "address_line2": "string",
- "city": "San Francisco",
- "state": "CA",
- "zip": "94108",
- "date_of_birth": "1989-07-15"
}
], - "pagination": {
- "total_records": 25,
- "current_page": 1,
- "total_pages": 3,
- "next_page": 2,
- "prev_page": 0
}
}