openapi: 3.0.3 info: title: Zeal Companies Employee Check 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: Employee Check paths: /employeeCheck: post: operationId: createEmployeeCheck tags: - Employee Check summary: Create an employee check description: Create a paycheck (employee check) for a reporting period. Zeal calculates gross-to-net, employee and employer taxes, and deductions. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateEmployeeCheckRequest' responses: '200': description: The created employee check(s). content: application/json: schema: type: object properties: checks: type: array items: $ref: '#/components/schemas/EmployeeCheck' get: operationId: getEmployeeChecksByEmployee tags: - Employee Check summary: Get employee checks by employee parameters: - $ref: '#/components/parameters/companyID' - name: employeeID in: query required: true schema: type: string responses: '200': description: A list of employee checks. content: application/json: schema: type: object properties: checks: type: array items: $ref: '#/components/schemas/EmployeeCheck' put: operationId: updateEmployeeCheck tags: - Employee Check summary: Update an employee check requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeCheck' responses: '200': description: The updated employee check. content: application/json: schema: $ref: '#/components/schemas/EmployeeCheck' delete: operationId: deleteEmployeeCheck tags: - Employee Check summary: Delete an employee check parameters: - $ref: '#/components/parameters/companyID' - name: employeeCheckID in: query required: true schema: type: string responses: '200': description: Deletion result. content: application/json: schema: type: object /employeeCheck/bulk: post: operationId: createBulkEmployeeChecks tags: - Employee Check summary: Create bulk employee checks requestBody: required: true content: application/json: schema: type: object properties: companyID: type: string checks: type: array items: $ref: '#/components/schemas/CreateEmployeeCheckRequest' responses: '200': description: The created employee checks. content: application/json: schema: type: object /paystub: get: operationId: downloadPaystubPdf tags: - Employee Check summary: Download a paystub PDF parameters: - $ref: '#/components/parameters/companyID' - name: employeeCheckID in: query required: true schema: type: string responses: '200': description: The paystub PDF. content: application/pdf: schema: type: string format: binary components: schemas: Shift: type: object properties: time: type: string format: date-time hourly_wage: type: number hours: type: number wage_type: type: string CreateEmployeeCheckRequest: type: object required: - companyID - employeeID - reportingPeriodID properties: companyID: type: string employeeID: type: string reportingPeriodID: type: string check_date: type: string format: date shifts: type: array items: $ref: '#/components/schemas/Shift' EmployeeCheck: type: object properties: employeeCheckID: type: string employeeID: type: string reportingPeriodID: type: string check_date: type: string format: date gross_pay: type: number net_pay: type: number status: type: string enum: - pending - pre-processed - processed - failed 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.'