## Update employee `employees.update(employee_id, **kwargs) -> EmployeeUpdateResponse` **patch** `/v1/employees/{employee_id}` Updates employee personal, contact, address, and employment fields. This endpoint currently supports email, phone, gender, address, employee_class, start_date, and compensation_type. effective_date is required and applies to employee_class and compensation_type when those fields are included in the request. ### Parameters - `employee_id: String` Unique employee identifier (empl_*) - `effective_date: Date` Past or present date applied to each tracked employment field included in this request - `address: { city, state, street_1, 3 more}` Employee's residential address - `city: String` City name - `state: String` Two-letter state code - `street_1: String` Primary street address - `zip_code: String` ZIP code - `country: String` Country code - `street_2: String` Secondary street address - `compensation_type: :Salary | :Hourly` * `Salary` - Salary * `Hourly` - Hourly - `:Salary` - `:Hourly` - `email: String` Email address - `employee_class: EmployeeClass` * `Full Time` - Full Time * `Part Time` - Part Time * `Temporary` - Temporary * `Intern` - Intern * `Seasonal` - Seasonal * `Individual Contractor` - Individual Contractor - `:"Full Time"` - `:"Part Time"` - `:Temporary` - `:Intern` - `:Seasonal` - `:"Individual Contractor"` - `gender: :Male | :Female | :Transgender | 2 more` * `Male` - Male * `Female` - Female * `Transgender` - Transgender * `Non-binary` - Non Binary * `Prefer not to respond` - Prefer Not To Respond - `:Male` - `:Female` - `:Transgender` - `:"Non-binary"` - `:"Prefer not to respond"` - `phone: String` Phone number - `start_date: Date` Employment start date ### Returns - `class EmployeeUpdateResponse` Response containing a single employee resource. - `data: Employee` - `id: String` Unique employee identifier with 'empl_' prefix - `classification_effective_date: Date` Date the employee's current classification took effect - `compensation_type: :Salary | :Hourly` * `Salary` - Salary * `Hourly` - Hourly - `:Salary` - `:Hourly` - `compensation_type_effective_date: Date` Date the employee's current compensation type took effect - `created_at: Time` Timestamp when the employee was created - `date_of_birth: Date` Date of birth (YYYY-MM-DD) - `deductions: Array[{ benefit_name, deduction_amount_in_cents, deduction_category, 4 more}]` Payroll deductions from the most recent statement period. Replaced when a new statement is generated. - `benefit_name: String` Name of the benefit plan - `deduction_amount_in_cents: Integer` Employee deduction amount in cents - `deduction_category: String` Deduction category (reserved for future use) - `frequency: :weekly | :bi_weekly | :semi_monthly | :monthly` * `weekly` - Weekly * `bi_weekly` - Bi Weekly * `semi_monthly` - Semi Monthly * `monthly` - Monthly - `:weekly` - `:bi_weekly` - `:semi_monthly` - `:monthly` - `period_end_date: Date` Period end date (YYYY-MM-DD) - `period_start_date: Date` Period start date (YYYY-MM-DD) - `tax_classification: :Unknown | :"Pre-tax" | :"Post-tax"` * `Unknown` - Unknown * `Pre-tax` - Pre Tax * `Post-tax` - Post Tax - `:Unknown` - `:"Pre-tax"` - `:"Post-tax"` - `email: String` Email address - `employee_class: EmployeeClass` * `Full Time` - Full Time * `Part Time` - Part Time * `Temporary` - Temporary * `Intern` - Intern * `Seasonal` - Seasonal * `Individual Contractor` - Individual Contractor - `:"Full Time"` - `:"Part Time"` - `:Temporary` - `:Intern` - `:Seasonal` - `:"Individual Contractor"` - `employer_id: String` Unique identifier of the employer this employment is with (empr_*) - `first_name: String` Employee's legal first name - `last_name: String` Employee's legal last name - `member_id: String` Unique member identifier with 'mbr_' prefix - `phone: String` Phone number (10-digit US domestic string) - `start_date: Date` Employee's start date with the employer - `status: :active | :terminated` Employee status (active or terminated) - `:active` - `:terminated` - `updated_at: Time` Timestamp when the employee was last updated - `address: { address_line_1, city, state, 2 more}` Employee's residential address - `address_line_1: String` Primary street address - `city: String` City name - `state: String` Two-letter state code (e.g., CA, NY) - `zipcode: String` ZIP code (5 or 9 digit) - `address_line_2: String` Secondary street address (apt, suite, etc.) - `employer_name: String` Name of the employer this employment is with - `gender: String` Gender identity, if provided - `reference_id: String` Partner-assigned reference ID for the employee - `suffix: String` Name suffix (e.g., Jr., Sr., III) - `termination_date: Date` Employee's termination date, if terminated ### Example ```ruby require "vitable_connect" vitable_connect = VitableConnect::Client.new( api_key: "My API Key", environment: "environment_1" # defaults to "production" ) employee = vitable_connect.employees.update("empl_abc123def456", effective_date: "2023-03-01") puts(employee) ``` #### Response ```json { "data": { "id": "id", "classification_effective_date": "2019-12-27", "compensation_type": "Salary", "compensation_type_effective_date": "2019-12-27", "created_at": "2019-12-27T18:11:19.117Z", "date_of_birth": "2019-12-27", "deductions": [ { "benefit_name": "benefit_name", "deduction_amount_in_cents": 0, "deduction_category": "deduction_category", "frequency": "weekly", "period_end_date": "2019-12-27", "period_start_date": "2019-12-27", "tax_classification": "Unknown" } ], "email": "dev@stainless.com", "employee_class": "Full Time", "employer_id": "employer_id", "first_name": "first_name", "last_name": "last_name", "member_id": "member_id", "phone": "phone", "start_date": "2019-12-27", "status": "active", "updated_at": "2019-12-27T18:11:19.117Z", "address": { "address_line_1": "address_line_1", "city": "city", "state": "state", "zipcode": "zipcode", "address_line_2": "address_line_2" }, "employer_name": "employer_name", "gender": "gender", "reference_id": "reference_id", "suffix": "suffix", "termination_date": "2019-12-27" } } ```