Skip to main content

Thatch for Platforms API

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.

Deductions

Payroll deductions track the costs of plan premiums to employees.

List employee payroll deductions

List employee payroll deductions

Authorizations:
Bearer
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Employees

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

Create an employee

Authorizations:
Bearer
Request Body schema: application/json
required
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 ("") to them. All keys can be unset by posting an empty object value ({}) to metadata.

Responses

Request samples

Content type
application/json
{
  • "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": [
    ],
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "member_id": "mbr_01j85kpd8yxkabyrm83d3h2ya3",
  • "date_of_birth": "1989-07-15",
  • "zip": "94103",
  • "dependents": [
    ],
  • "metadata": {
    }
}

Get an employee

Get an employee

Authorizations:
Bearer
path Parameters
id
required
string

Employee ID

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "member_id": "mbr_01j85kpd8yxkabyrm83d3h2ya3",
  • "date_of_birth": "1989-07-15",
  • "zip": "94103",
  • "dependents": [
    ],
  • "metadata": {
    }
}

List employees

List employees

Authorizations:
Bearer
query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update an employee

Update an employee

Authorizations:
Bearer
path Parameters
id
required
string

Employee ID

Request Body schema: application/json
required
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 ("") to them. All keys can be unset by posting an empty object value ({}) to metadata.

Responses

Request samples

Content type
application/json
{
  • "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": [
    ],
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "member_id": "mbr_01j85kpd8yxkabyrm83d3h2ya3",
  • "date_of_birth": "1989-07-15",
  • "zip": "94103",
  • "dependents": [
    ],
  • "metadata": {
    }
}

Employer onboarding sessions

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

Create an employer onboarding session

Authorizations:
Bearer
Request Body schema: application/json
required
employer
required
string

ID of the employer to create an onboarding session for

Responses

Request samples

Content type
application/json
{
  • "employer": "empl_01j2j3smtwx656y2tbqm7ty6gr"
}

Response samples

Content type
application/json
{}

Employers

Platforms onboard employers into Thatch, and have employees enrolled in plans.

Create an employer

Create an employer

Authorizations:
Bearer
Request Body schema: application/json
required
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 ("") to them. All keys can be unset by posting an empty object value ({}) to metadata.

Responses

Request samples

Content type
application/json
{
  • "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": {
    }
}

Response samples

Content type
application/json
{
  • "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": {
    }
}

Get an employer

Get an employer

Authorizations:
Bearer
path Parameters
id
required
string

Employer ID

Responses

Response samples

Content type
application/json
{
  • "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": {
    }
}

List employers

List employers

Authorizations:
Bearer
query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update an employer

Update an employer

Authorizations:
Bearer
path Parameters
id
required
string

Employer ID

Request Body schema: application/json
required
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 ("") to them. All keys can be unset by posting an empty object value ({}) to metadata.

property name*
additional property
string

Responses

Request samples

Content type
application/json
{
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "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": {
    }
}

Enrollments

Enrollments use member objects to track employee coverage status.

Get an enrollment

Get an enrollment

Authorizations:
Bearer
path Parameters
id
required
string
Example: enrlmt_01j7h53qgy8m2q1f7563hbvpqj

Enrollment ID

Responses

Response samples

Content type
application/json
{
  • "id": "enrlmt_01j7h53qgy8m2q1f7563hbvpqj",
  • "member_id": "mbr_01j7h53qa133q71z25n7a3w0n4",
  • "coverage_types": [
    ],
  • "status": "completed",
  • "status_events": [
    ],
  • "plan_id": "mdpln_01j7h53nf2j0hc5a235b6xmxn4",
  • "plan_code": "standard",
  • "premium": {
    },
  • "broker": {
    },
  • "enrollment_coverages": [
    ]
}

List enrollments

List enrollments

Authorizations:
Bearer
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Members

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.

Get a member

Get a member

Authorizations:
Bearer
path Parameters
id
required
string

Member ID

Responses

Response samples

Content type
application/json
{
  • "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

List members

Authorizations:
Bearer
query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}