Skip to content
Get started

Create employee

employers.employees.create(stremployer_id, EmployeeCreateParams**kwargs) -> Employee
post/v1/employers/{employer_id}/employees

Creates a new employee for a specific employer. Requires personal information (name, DOB, SSN) and employment details (start date). Note: SSN can only be specified at creation time and cannot be updated later. Returns the created employee with assigned ID.

ParametersExpand Collapse
employer_id: str
date_of_birth: Union[null, null]

Date of birth (YYYY-MM-DD)

formatdate
email: str

Email address

formatemail
first_name: str

Employee's legal first name

maxLength100
minLength1
last_name: str

Employee's legal last name

maxLength100
minLength1
sex: Sex
  • Male - Male
  • Female - Female
  • Other - Other
  • Unknown - Unknown
Accepts one of the following:
"Male"
"Female"
"Other"
"Unknown"
ssn: str

Social Security Number (XXX-XX-XXXX or XXXXXXXXX). Only accepted on create.

maxLength11
minLength9
start_date: Union[null, null]

Employment start/hire date

formatdate
address: Optional[Address]

Employee's residential address

city: str

City name

state: str

Two-letter state code

maxLength2
minLength2
street_1: str

Primary street address

zip_code: str

ZIP code

country: Optional[str]

Country code

street_2: Optional[str]

Secondary street address

employee_class: Optional[EmployeeClass]
  • Full Time - Full Time
  • Part Time - Part Time
  • Temporary - Temporary
  • Intern - Intern
  • Seasonal - Seasonal
  • Individual Contractor - Individual Contractor
Accepts one of the following:
"Full Time"
"Part Time"
"Temporary"
"Intern"
"Seasonal"
"Individual Contractor"
gender: Optional[str]

Gender identity

phone: Optional[str]

Phone number

suffix: Optional[str]

Name suffix (Jr., Sr., III)

maxLength10
ReturnsExpand Collapse
class Employee:

Serializer for Employee entity in public API responses.

Note: Employee is in the company module but exposed via account public API. Contains nested MemberEntity with personal identity information.

id: str

Unique employee identifier with 'empl_' prefix

active: bool

Whether the employee is currently active

created_at: datetime

Timestamp when the employee was created

formatdate-time
employer_id: str

ID of the employer this employee works for (empr_*)

member: Member

Nested member entity containing personal identity information.

Matches MemberEntity from account module domain.

id: str

Unique member identifier with 'mbr_' prefix

date_of_birth: date

Member's date of birth (YYYY-MM-DD)

formatdate
first_name: str

Member's legal first name

last_name: str

Member's legal last name

sex: Sex
  • Male - Male
  • Female - Female
  • Other - Other
  • Unknown - Unknown
Accepts one of the following:
"Male"
"Female"
"Other"
"Unknown"
email: Optional[str]

Email address for communications

formatemail
gender: Optional[str]

Gender identity, if provided

phone: Optional[str]

Phone number

suffix: Optional[str]

Name suffix (e.g., Jr., Sr., III)

start_date: date

Employee's start/hire date with the employer

formatdate
updated_at: datetime

Timestamp when the employee was last updated

formatdate-time
address: Optional[Address]

Nested address for employee.

city: str

City name

state: str

Two-letter state code

street_1: str

Primary street address

zip_code: str

ZIP code

country: Optional[str]

Country code

street_2: Optional[str]

Secondary street address

employee_class: Optional[EmployeeClass]
  • Full Time - Full Time
  • Part Time - Part Time
  • Temporary - Temporary
  • Intern - Intern
  • Seasonal - Seasonal
  • Individual Contractor - Individual Contractor
Accepts one of the following:
"Full Time"
"Part Time"
"Temporary"
"Intern"
"Seasonal"
"Individual Contractor"
termination_date: Optional[date]

Employee's termination date, if terminated

formatdate
Create employee
from datetime import date
from vitable_connect_api import VitableConnectAPI

client = VitableConnectAPI(
    api_key="My API Key",
)
employee = client.employers.employees.create(
    employer_id="empr_abc123def456",
    date_of_birth=date.fromisoformat("2019-12-27"),
    email="dev@stainless.com",
    first_name="x",
    last_name="x",
    sex="Male",
    ssn="xxxxxxxxx",
    start_date=date.fromisoformat("2019-12-27"),
)
print(employee.id)
{
  "id": "id",
  "active": true,
  "created_at": "2019-12-27T18:11:19.117Z",
  "employer_id": "employer_id",
  "member": {
    "id": "id",
    "date_of_birth": "2019-12-27",
    "first_name": "first_name",
    "last_name": "last_name",
    "sex": "Male",
    "email": "dev@stainless.com",
    "gender": "gender",
    "phone": "phone",
    "suffix": "suffix"
  },
  "start_date": "2019-12-27",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "address": {
    "city": "city",
    "state": "state",
    "street_1": "street_1",
    "zip_code": "zip_code",
    "country": "country",
    "street_2": "street_2"
  },
  "employee_class": "Full Time",
  "termination_date": "2019-12-27"
}
Returns Examples
{
  "id": "id",
  "active": true,
  "created_at": "2019-12-27T18:11:19.117Z",
  "employer_id": "employer_id",
  "member": {
    "id": "id",
    "date_of_birth": "2019-12-27",
    "first_name": "first_name",
    "last_name": "last_name",
    "sex": "Male",
    "email": "dev@stainless.com",
    "gender": "gender",
    "phone": "phone",
    "suffix": "suffix"
  },
  "start_date": "2019-12-27",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "address": {
    "city": "city",
    "state": "state",
    "street_1": "street_1",
    "zip_code": "zip_code",
    "country": "country",
    "street_2": "street_2"
  },
  "employee_class": "Full Time",
  "termination_date": "2019-12-27"
}