Payslip data model
View field support, webhooks, and list parameters for each integration on the Supported Integrations page.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
user_id | string | No | the employee (reference to HrisEmployee) |
company_id | string | No | (reference to HrisCompany) |
payment_reference | string | No | |
payment_type | enum | No | Values: DIRECT, CHEQUE, CASH |
paid_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
start_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
end_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
currency | string | No | |
gross_amount | number | No | |
net_amount | number | No | |
details | HrisPayslipDetail[] | No | |
details[].type | enum | No | Values: EARNING_SALARY, EARNING_OVERTIME, EARNING_TIP, EARNING_BONUS, EARNING_COMMISSION, EARNING_ADJUSTMENT, EARNING, PRETAX_DEDUCTION, PRETAX_DEDUCTION_HEALTH_INSURANCE, PRETAX_DEDUCTION_RETIREMENT, PRETAX_DEDUCTION_HRA, TAX_FEDERAL, TAX_REGION, TAX_LOCAL, POSTTAX_BENEFIT, POSTTAX_GARNISHMENT, REIMBURSEMENT, EARNING_REGULAR, EARNING_DOUBLE_OVERTIME, EARNING_PTO, EARNING_SICK, EARNING_HOLIDAY, EARNING_SEVERANCE, EARNING_REIMBURSEMENT, TAX_SOCIAL_SECURITY, TAX_MEDICARE, TAX_UNEMPLOYMENT, TAX_EMPLOYER, PRETAX_DEDUCTION_HSA, PRETAX_DEDUCTION_FSA, PRETAX_DEDUCTION_DEPENDENT_CARE, PRETAX_DEDUCTION_COMMUTER, PRETAX_DEDUCTION_DENTAL, PRETAX_DEDUCTION_VISION, POSTTAX_DEDUCTION, POSTTAX_RETIREMENT_ROTH, POSTTAX_LOAN_REPAYMENT, EMPLOYER_CONTRIBUTION, PENSION, EARNING_CASH_IN_LIEU |
details[].name | string | No | |
details[].description | string | No | |
details[].amount | number | Yes | |
details[].employee_amount | number | No | |
details[].company_amount | number | No | |
details[].hours | number | No | |
details[].rate_amount | number | No | pay rate for hourly/unit-based lines |
details[].ytd_amount | number | No | year-to-date amount for this line |
details[].is_pre_tax | boolean | No | |
details[].is_employer | boolean | No | true when this line is paid by the employer (employer tax or contribution) |
details[].paycode_id | string | No | the hris_paycode for this line |
details[].benefit_id | string | No | |
details[].deduction_id | string | No | |
details[].original_type | string | No | integration pay-code label before normalization |
deduction | object | No | The ID (and optionally name) of the employee deduction (if this detail represents a deduction) |
deduction.id | string | No | |
deduction.created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
deduction.updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
deduction.user_id | string | No | employee ID (reference to HrisEmployee) |
deduction.company_id | string | No | (reference to HrisCompany) |
deduction.benefit_id | string | No | |
deduction.amount | number | No | percentage or absolute amount (employee's portion) |
deduction.type | enum | No | Values: FIXED, PERCENTAGE |
deduction.coverage_level | enum | No | Level selected by employee (e.g. "FAMILY", "EMPLOYEE_ONLY", or other) Values: EMPLOYEE_ONLY, EMPLOYEE_SPOUSE, EMPLOYEE_CHILD, EMPLOYEE_CHILDREN, EMPLOYEE_FAMILY, FAMILY, OTHER |
deduction.frequency | enum | No | Frequency for this deduction (should always be set, matches IHrisBenefit.frequency) Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY |
deduction.start_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
deduction.end_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
deduction.is_active | boolean | No | |
deduction.notes | string | No | |
deduction.employer_amount | number | No | percentage or absolute amount (employer's portion/match) |
deduction.employer_type | enum | No | Values: PERCENTAGE, FIXED |
deduction.max_amount | number | No | annual maximum employee amount (always money) |
deduction.paycode_id | string | No | the hris_paycode (deduction code) this deduction uses |
deduction.garnishment_type | enum | No | set when this deduction is a court-ordered garnishment Values: CHILD_SUPPORT, TAX_LEVY, STUDENT_LOAN, CREDITOR, BANKRUPTCY, OTHER |
payroll_id | string | No | the hris_payroll (pay run) this payslip belongs to |
group_id | string | No | the pay group (hris_group of type PAY_GROUP) (reference to HrisGroup) |
type | enum | No | Values: REGULAR, OFF_CYCLE, BONUS, CORRECTION, TERMINATION, CONTRACTOR |
hours | number | No | total hours paid on this payslip |
employee_tax_amount | number | No | total taxes withheld from the employee |
employer_tax_amount | number | No | total employer-paid taxes |
deduction_amount | number | No | total employee deductions (pre and post-tax) |
employer_contribution_amount | number | No | total employer benefit contributions |
gross_ytd_amount | number | No | year-to-date gross pay as of this payslip |
net_ytd_amount | number | No | year-to-date net pay as of this payslip |
Are we missing anything? Let us know