openapi: 3.0.3 info: title: Zeal Companies Employees API description: 'Zeal is an embedded payroll-as-a-service platform. This representative OpenAPI describes the core surfaces of the Zeal API used to build payroll products: onboarding companies, employees, and contractors; running pay runs (employee checks) and contractor payments; managing pay schedules, tax parameters, reports, funding, and webhooks. All requests are authenticated with a Bearer API key and scoped by a companyID. Use a test API key against Test Mode (no money moves) before switching to a live key.' termsOfService: https://www.zeal.com/terms contact: name: Zeal Support url: https://docs.zeal.com email: support@zeal.com version: '1.0' servers: - url: https://api.zeal.com description: Zeal API (test or live selected by API key) security: - bearerAuth: [] tags: - name: Employees paths: /employees: post: operationId: createEmployee tags: - Employees summary: Create an employee requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateEmployeeRequest' responses: '200': description: The created employee. content: application/json: schema: $ref: '#/components/schemas/Employee' get: operationId: getEmployees tags: - Employees summary: Get employees parameters: - $ref: '#/components/parameters/companyID' responses: '200': description: A list of employees. content: application/json: schema: type: object properties: employees: type: array items: $ref: '#/components/schemas/Employee' put: operationId: updateEmployeeInformation tags: - Employees summary: Update employee information requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Employee' responses: '200': description: The updated employee. content: application/json: schema: $ref: '#/components/schemas/Employee' /employees/onboarding: get: operationId: generateEmployeeOnboardingLink tags: - Employees summary: Generate an employee onboarding link parameters: - $ref: '#/components/parameters/companyID' - name: employeeID in: query required: true schema: type: string responses: '200': description: A hosted onboarding link for the employee. content: application/json: schema: $ref: '#/components/schemas/OnboardLink' /taxes/employee/setup: post: operationId: setEmployeeTaxParameters tags: - Employees summary: Set employee tax parameters requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeTaxParameters' responses: '200': description: The saved tax parameters. content: application/json: schema: $ref: '#/components/schemas/EmployeeTaxParameters' /taxes/employee/definitions: get: operationId: getEmployeeTaxParameterDefinitions tags: - Employees summary: Get employee tax parameter definitions parameters: - $ref: '#/components/parameters/companyID' - name: employeeID in: query required: true schema: type: string responses: '200': description: The tax parameter definitions required for the employee. content: application/json: schema: type: object components: schemas: OnboardLink: type: object properties: url: type: string format: uri expiration: type: string format: date-time CreateEmployeeRequest: type: object required: - companyID - first_name - last_name properties: companyID: type: string first_name: type: string last_name: type: string email: type: string default_pay_rate: type: number Employee: type: object properties: id: type: string companyID: type: string first_name: type: string last_name: type: string email: type: string onboarded: type: boolean EmployeeTaxParameters: type: object properties: companyID: type: string employeeID: type: string parameters: type: object parameters: companyID: name: companyID in: query required: true description: The Zeal companyID identifying the employer account. schema: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: 'Provide your Zeal API key as a Bearer token: `Authorization: Bearer `. Use a test key for Test Mode and a live key for production. Requests are additionally scoped by a companyID passed in the body or query.'