Benefit data model

Company-wide benefit plans available to employees.

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
namestringNoe.g. "401(k) Plan"
descriptionstringNoe.g. "Company 401(k) retirement plan"
company_idstringNo(reference to HrisCompany)
typeenumNoValues: RETIREMENT, HEALTH, DENTAL, VISION, LIFE, HSA, FSA, SHORT_TERM_DISABILITY, LONG_TERM_DISABILITY, WORKERS_COMP, HOUSING_STIPEND, EMPLOYER_TAX_CONTRIBUTION, GARNISHMENT, LOAN_REPAYMENT, CHARITABLE_CONTRIBUTION, OTHER, RETIREMENT_ROTH, COMMUTER, DEPENDENT_CARE, PENSION
taxenumNoTax describes the tax treatment of the benefit Values: PRE_TAX, POST_TAX, TAXABLE, NON_TAXABLE, TAX
frequencyenumNoFrequency that costs accrue for this benefit. For insurance/benefits, usually "MONTHLY". For compensation, matches pay cycle (WEEKLY, BIWEEKLY, etc). Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY
is_activebooleanNo
employer_contribution_typeenumNoValues: PERCENTAGE, FIXED
employer_contribution_amountnumberNopercentage or money
employer_contribution_max_amountnumberNoalways money
coverage_levelenumNoValues: EMPLOYEE_ONLY, EMPLOYEE_SPOUSE, EMPLOYEE_CHILD, EMPLOYEE_CHILDREN, EMPLOYEE_FAMILY, FAMILY, OTHER
currencystringNo

TypeScript

TypeScript
export type HrisBenefit = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	name?: string; // e.g. "401(k) Plan"
	description?: string; // e.g. "Company 401(k) retirement plan"
	company_id?: string; // (reference to HrisCompany)
	type?: 'RETIREMENT' | 'HEALTH' | 'DENTAL' | 'VISION' | 'LIFE' | 'HSA' | 'FSA' | 'SHORT_TERM_DISABILITY' | 'LONG_TERM_DISABILITY' | 'WORKERS_COMP' | 'HOUSING_STIPEND' | 'EMPLOYER_TAX_CONTRIBUTION' | 'GARNISHMENT' | 'LOAN_REPAYMENT' | 'CHARITABLE_CONTRIBUTION' | 'OTHER' | 'RETIREMENT_ROTH' | 'COMMUTER' | 'DEPENDENT_CARE' | 'PENSION';
	tax?: 'PRE_TAX' | 'POST_TAX' | 'TAXABLE' | 'NON_TAXABLE' | 'TAX'; // Tax describes the tax treatment of the benefit
	frequency?: 'ONE_TIME' | 'DAY' | 'QUARTER' | 'YEAR' | 'HOUR' | 'MONTH' | 'WEEK' | 'BIWEEKLY' | 'SEMIMONTHLY'; // Frequency that costs accrue for this benefit. For insurance/benefits, usually "MONTHLY". For compensation, matches pay cycle (WEEKLY, BIWEEKLY, etc).
	is_active?: boolean;
	employer_contribution_type?: 'PERCENTAGE' | 'FIXED';
	employer_contribution_amount?: number; // percentage or money
	employer_contribution_max_amount?: number; // always money
	coverage_level?: 'EMPLOYEE_ONLY' | 'EMPLOYEE_SPOUSE' | 'EMPLOYEE_CHILD' | 'EMPLOYEE_CHILDREN' | 'EMPLOYEE_FAMILY' | 'FAMILY' | 'OTHER';
	currency?: string;
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodHrisBenefit = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	name: z.string().optional().describe("e.g. "401(k) Plan""),
	description: z.string().optional().describe("e.g. "Company 401(k) retirement plan""),
	company_id: z.string().optional().describe("(reference to HrisCompany)"),
	type: z.enum("RETIREMENT", "HEALTH", "DENTAL", "VISION", "LIFE", "HSA", "FSA", "SHORT_TERM_DISABILITY", "LONG_TERM_DISABILITY", "WORKERS_COMP", "HOUSING_STIPEND", "EMPLOYER_TAX_CONTRIBUTION", "GARNISHMENT", "LOAN_REPAYMENT", "CHARITABLE_CONTRIBUTION", "OTHER", "RETIREMENT_ROTH", "COMMUTER", "DEPENDENT_CARE", "PENSION").optional(),
	tax: z.enum("PRE_TAX", "POST_TAX", "TAXABLE", "NON_TAXABLE", "TAX").optional().describe("Tax describes the tax treatment of the benefit"),
	frequency: z.enum("ONE_TIME", "DAY", "QUARTER", "YEAR", "HOUR", "MONTH", "WEEK", "BIWEEKLY", "SEMIMONTHLY").optional().describe("Frequency that costs accrue for this benefit. For insurance/benefits, usually "MONTHLY". For compensation, matches pay cycle (WEEKLY, BIWEEKLY, etc)."),
	is_active: z.boolean().optional(),
	employer_contribution_type: z.enum("PERCENTAGE", "FIXED").optional(),
	employer_contribution_amount: z.number().optional().describe("percentage or money"),
	employer_contribution_max_amount: z.number().optional().describe("always money"),
	coverage_level: z.enum("EMPLOYEE_ONLY", "EMPLOYEE_SPOUSE", "EMPLOYEE_CHILD", "EMPLOYEE_CHILDREN", "EMPLOYEE_FAMILY", "FAMILY", "OTHER").optional(),
	currency: z.string().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class HrisBenefitType(str, Enum):
	RETIREMENT = 'RETIREMENT'
	HEALTH = 'HEALTH'
	DENTAL = 'DENTAL'
	VISION = 'VISION'
	LIFE = 'LIFE'
	HSA = 'HSA'
	FSA = 'FSA'
	SHORT_TERM_DISABILITY = 'SHORT_TERM_DISABILITY'
	LONG_TERM_DISABILITY = 'LONG_TERM_DISABILITY'
	WORKERS_COMP = 'WORKERS_COMP'
	HOUSING_STIPEND = 'HOUSING_STIPEND'
	EMPLOYER_TAX_CONTRIBUTION = 'EMPLOYER_TAX_CONTRIBUTION'
	GARNISHMENT = 'GARNISHMENT'
	LOAN_REPAYMENT = 'LOAN_REPAYMENT'
	CHARITABLE_CONTRIBUTION = 'CHARITABLE_CONTRIBUTION'
	OTHER = 'OTHER'
	RETIREMENT_ROTH = 'RETIREMENT_ROTH'
	COMMUTER = 'COMMUTER'
	DEPENDENT_CARE = 'DEPENDENT_CARE'
	PENSION = 'PENSION'

@dataclasses.dataclass
class HrisBenefitTax(str, Enum):
	PRE_TAX = 'PRE_TAX'
	POST_TAX = 'POST_TAX'
	TAXABLE = 'TAXABLE'
	NON_TAXABLE = 'NON_TAXABLE'
	TAX = 'TAX'

@dataclasses.dataclass
class HrisBenefitFrequency(str, Enum):
	ONE_TIME = 'ONE_TIME'
	DAY = 'DAY'
	QUARTER = 'QUARTER'
	YEAR = 'YEAR'
	HOUR = 'HOUR'
	MONTH = 'MONTH'
	WEEK = 'WEEK'
	BIWEEKLY = 'BIWEEKLY'
	SEMIMONTHLY = 'SEMIMONTHLY'

@dataclasses.dataclass
class HrisBenefitEmployer_contribution_type(str, Enum):
	PERCENTAGE = 'PERCENTAGE'
	FIXED = 'FIXED'

@dataclasses.dataclass
class HrisBenefitCoverage_level(str, Enum):
	EMPLOYEE_ONLY = 'EMPLOYEE_ONLY'
	EMPLOYEE_SPOUSE = 'EMPLOYEE_SPOUSE'
	EMPLOYEE_CHILD = 'EMPLOYEE_CHILD'
	EMPLOYEE_CHILDREN = 'EMPLOYEE_CHILDREN'
	EMPLOYEE_FAMILY = 'EMPLOYEE_FAMILY'
	FAMILY = 'FAMILY'
	OTHER = 'OTHER'

@dataclasses.dataclass
class HrisBenefit:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""e.g. "401(k) Plan""""
	name: Optional[str]
	"""e.g. "Company 401(k) retirement plan""""
	description: Optional[str]
	"""(reference to HrisCompany)"""
	company_id: Optional[str]
	type: Optional[HrisBenefitType]
	"""Tax describes the tax treatment of the benefit"""
	tax: Optional[HrisBenefitTax]
	"""Frequency that costs accrue for this benefit. For insurance/benefits, usually "MONTHLY". For compensation, matches pay cycle (WEEKLY, BIWEEKLY, etc)."""
	frequency: Optional[HrisBenefitFrequency]
	is_active: Optional[bool]
	employer_contribution_type: Optional[HrisBenefitEmployer_contribution_type]
	"""percentage or money"""
	employer_contribution_amount: Optional[int]
	"""always money"""
	employer_contribution_max_amount: Optional[int]
	coverage_level: Optional[HrisBenefitCoverage_level]
	currency: Optional[str]
Are we missing anything? Let us know
Was this page helpful?