Zenefits API Integration

These are the list of integration use cases supported by Knit for Zenefits API as part of the HRIS category


Applications

  • ID: get_applications
  • Operation: read
  • Entities: application
  • Summary: The Applications API endpoint allows you to retrieve information about your application(s) from the Zenefits platform. It requires an Authorization header with a Bearer token for access. The response includes details such as application fields, IDs, and URLs. The endpoint returns a list of applications with their respective fields, including zenexpense policy types and days to wait before termination. The response also includes metadata about the request and any potential errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Authorized User Information

  • ID: get_authorized_user_information
  • Operation: read
  • Entities: company, scope, person
  • Summary: The Get Authorized User Information API returns details about the currently authorized user. It requires an Authorization header with a Bearer token. The response includes information about the user's company, person details, OAuth scopes, token expiration, and whether the token is uninstalled. The company and person fields can be null if the app is uninstalled.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Companies Information Retrieval

  • ID: get_companies_information
  • Operation: read
  • Entities: location, company, department
  • Summary: This API endpoint retrieves information about companies. It requires an authorization header with a bearer token. Optional query parameters include 'name' to filter by the common name of the company and 'includes' to specify additional information such as departments, locations, or company banks. The response includes detailed information about each company, including legal name, address, EIN, logo URL, and references to related entities such as departments and locations.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Company Bank Accounts

  • ID: get_company_bank_accounts
  • Operation: read
  • Entities: bank account, bank, company
  • Summary: The Company Bank Accounts API retrieves information about a company's bank accounts. It requires a company ID as a path parameter and an authorization bearer token in the headers. The response includes details such as account number, account type (checking or savings), bank name, company reference, and routing number. The response is structured with meta information and may include a URL for the next set of results if pagination is applicable.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Retrieve Company Employees Information

  • ID: get_company_employees_information
  • Operation: read
  • Entities: company, person
  • Summary: This API endpoint retrieves information about all employees of a specified company. The request requires an authorization header with a bearer token and a path parameter for the company ID. Optional query parameters can be used to filter the results by fields such as first name, last name, and employment status. The response includes detailed information about each employee, including their personal and work details, employment status, and administrative roles. The response is paginated, and a 'next_url' is provided for retrieving subsequent pages of results.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Company Installations

  • ID: get_company_installations
  • Operation: read
  • Entities: company, application, person subscription
  • Summary: The Company Installations API returns information about the installations for companies who have added your application. It supports various query parameters such as 'fields' for custom fields, 'company' for referencing the company, 'application' for referencing the application, 'person_subscriptions' for referencing person subscriptions, and 'status' for filtering by installation status. The response includes details about the application, company, fields, person subscriptions, and installation status.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Company Locations

  • ID: get_company_locations
  • Operation: read
  • Entities: location, company, people
  • Summary: This API endpoint retrieves a list of locations for a specified company. The request requires an Authorization header with a Bearer token and a path parameter for the company_id. The response includes details about each location such as city, country, name, phone, state, street address, and zip code. It also provides references to the company and people associated with each location. The response is structured with a data object containing an array of location objects, each with its own set of attributes.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Custom Field Values

  • ID: get_custom_field_values
  • Operation: read
  • Entities: value, custom field, person
  • Summary: The Custom Field Values API endpoint retrieves information about a person's custom field answers. It requires the person_id as a path parameter and an Authorization header with a Bearer token. The response includes details about each custom field value, such as the custom field URL, value, person URL, and the ID of the custom field value. The response is structured as a list of custom field values with pagination support.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Custom Fields

  • ID: get_custom_fields
  • Operation: read
  • Entities: company, custom field, person
  • Summary: The Custom Fields API endpoint allows you to retrieve information about a company's custom fields. It supports filtering by the name of the custom field and pagination with a default limit of 20 records per page. The response includes details such as the name, type, help text, and visibility settings of each custom field. The API requires an Authorization header with a Bearer token for access.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Departments

  • ID: get_departments
  • Operation: read
  • Entities: department
  • Summary: The Departments API endpoint retrieves a list of departments for a specified company. The request requires an Authorization header with a Bearer token and a path parameter for the company ID. Optional query parameters include 'includes' to include related objects, 'company' to filter by company ID, and 'name' to filter by department name. The response includes details about each department, such as the company reference, department ID, name, and people associated with the department. The response is structured with meta information and includes a status code and potential error message.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Employee Bank Accounts

  • ID: get_employee_bank_accounts
  • Operation: read
  • Entities: account, bank, person
  • Summary: The Employee Bank Accounts API retrieves information about an employee's bank accounts using their person ID. The API requires an Authorization header with a Bearer token for authentication. The endpoint URL includes a path parameter for the person ID. The response includes details such as account number, account type, bank name, routing number, and paycheck distribution details. It also indicates if the account is a salary or primary account and its priority in paycheck distribution. The response is structured with meta information and can include pagination details.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Employee by ID

  • ID: get_employee_by_id
  • Operation: read
  • Entities: company, person
  • Summary: The Get Employee by ID API endpoint allows you to retrieve detailed information about a specific employee from the Zenefits platform. It requires an Authorization header with a Bearer token for access and path parameters for the company ID and the employee ID. Optional query parameters can be used to filter employees by status, department, and include specific fields in the response. The response includes a comprehensive set of employee details such as personal information, employment details, and administrative roles. The endpoint returns a single employee object with fields like banks, city, company, department, and more. The response also includes metadata about the request and any potential errors.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Employee Historical Employment Information

  • ID: get_employee_historical_employment_information
  • Operation: read
  • Entities: employment, compensation, person
  • Summary: This API endpoint retrieves historical employment information for a specific employee identified by the person_id. It requires an Authorization header with a Bearer token. The response includes details such as annual salary, compensation type, employment type, hire date, termination date, and whether the employment is active. Optional query parameters include 'includes' to expand related data and 'person' to filter by person ID. The response is a JSON object containing an array of employment records, each with detailed employment attributes.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Get Flows Information

  • ID: get_flows_information
  • Operation: read
  • Entities: company, flow, person
  • Summary: The Get Flows Information API endpoint retrieves information about the flows completed by people who have added your application. It requires an authorization header with a bearer token and a path parameter for the subscription ID. Optional query parameters include fields, company, application, person, person_subscriptions, and type, which can filter the results based on custom fields, company reference, application reference, person reference, person subscription reference, and flow type respectively. The response includes details about each flow, such as application, company, fields, person, person subscription, and type, along with meta information like next_url, object, and status.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Labor Group Types

  • ID: get_labor_group_types
  • Operation: read
  • Entities: labor group type, labor group
  • Summary: The Labor Group Types API endpoint provides information about a company's labor group types. It requires an authorization header with a bearer token. The response includes a list of labor group types, each with an ID, URL, name, and associated labor groups. The response also includes metadata about the request and any errors encountered.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Labor Groups Information Retrieval

  • ID: get_labor_groups_information
  • Operation: read
  • Entities: labor group type, person, labor group
  • Summary: This API endpoint retrieves information about a company's labor groups based on a specified labor group type ID. The request requires an authorization header with a bearer token and a path parameter for the labor group type ID. Optional query parameters include 'assigned_members' to filter by specific member IDs and 'type' to filter by labor group type ID. The response includes details about each labor group, such as its ID, name, code, and associated labor group type. It also lists assigned members, indicating whether each member is primarily associated with the labor group.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Person Subscriptions

  • ID: get_person_subscriptions
  • Operation: read
  • Entities: company installation, subscription, person
  • Summary: The Person Subscriptions API endpoint retrieves information about the subscriptions for people in the company where your integration was added. It supports optional query parameters such as 'includes' to include related objects like company_install or person, 'company_install' to filter by specific company installation ID, 'person' to filter by specific person ID, and 'status' to filter by subscription status. The response includes details about each subscription, such as company_install reference, custom fields, flows reference, person reference, and subscription status.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Time Durations

  • ID: get_time_durations
  • Operation: read
  • Entities: activity, person, time duration
  • Summary: The Time Durations API endpoint provides information about a person's time and attendance (T&A) hours. It returns details such as the person for whom the time duration is logged, the type of activity (e.g., work, meal_break), the state of the time duration (e.g., effective, overridden), and the validity status (e.g., valid, exceeds_maximum). The API supports various query parameters to filter results, including person ID, activity type, state, valid status, date, and approval status. The response includes detailed information about each time duration, such as the number of hours logged, the start and end times, whether the duration is overnight, and approval details. The response is structured as a list of time duration objects, each containing information about the person, activity, state, validity, hours, date, start and end times, overnight status, approval status, approver details, and labor group IDs.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Vacation Requests

  • ID: get_vacation_requests
  • Operation: read
  • Entities: vacation type, vacation request, person
  • Summary: The Vacation Requests API endpoint allows users to retrieve information about employees' PTO vacation requests. The API supports filtering by various query parameters such as status, vacation type, start and end dates, creator, and person. The response includes details about each vacation request, such as status, vacation type, start and end dates, creator, hours requested, approval date, reason, and denial reason if applicable. The API requires an Authorization header with a Bearer token for access.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Vacation Types

  • ID: get_vacation_types
  • Operation: read
  • Entities: vacation type, company, vacation request
  • Summary: The Vacation Types API endpoint provides information about a company's PTO vacation types. It supports filtering by status and company ID. The response includes details such as the status, name, associated company, vacation requests, and what account the vacation type counts towards. The API requires an Authorization header with a Bearer token. The response contains a list of vacation types, each with its own URL, status, name, and associated company details.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Set Flow Custom Fields

  • ID: post_set_flow_custom_fields
  • Operation: write
  • Entities: flow, field, subscription
  • Summary: The 'Set Flow Custom Fields' API allows you to update custom fields for a specific flow in Zenefits. This is useful for applications that need to store data that varies per flow, such as an initial hire credit in an expense management application. The API requires a POST request to the specified endpoint with a subscription ID in the path, and a JSON body containing the custom field data. The request must include authorization via a Bearer token. A successful request returns a 204 status with no content, while a bad request returns a 400 status.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Set Installation Custom Fields

  • ID: post_set_installation_custom_fields
  • Operation: write
  • Entities: installation, company, field
  • Summary: The 'Set Installation Custom Fields' API allows updating Zenefits with custom data specific to a company's installation. This data can include policy types and options for applications like expense management. The API requires a POST request to the specified endpoint with the installation ID in the path, and a JSON body containing the policy type and options. Authorization is required via a Bearer token. A successful request returns a 204 status with no content, while a 400 status indicates a bad request.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Set Installation Status

  • ID: post_set_installation_status
  • Operation: write
  • Entities: company, status, application
  • Summary: The 'Set Installation Status' API updates Zenefits when your application is ready to begin working for a company. It requires a POST request to the specified endpoint with the installation ID in the path and a JSON body containing the 'status' field. The status indicates the stage of the application installation lifecycle, with possible values being 'initializing', 'not_enrolled', 'ok', and 'enrolling'. The API requires 'Content-Type' and 'Authorization' headers. A successful update returns a 204 status with an empty result, while a bad request returns a 400 status with an empty result.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Set Subscription Custom Fields

  • ID: post_set_subscription_custom_fields
  • Operation: write
  • Entities: field, subscription, person
  • Summary: The 'Set Subscription Custom Fields' API allows updating custom fields for a person's subscription in Zenefits. This is useful for applications that need to store custom data that varies per subscription but remains consistent across different flows. For instance, an expense management application can use this API to set specific policies and approval options for a person. The API requires a POST request to the specified endpoint with the subscription ID in the path, and a JSON body containing the fields 'zenexpense_approval_needed' and 'zenexpense_policy'. The request must include headers for 'Content-Type' as 'application/json' and an 'Authorization' bearer token. A successful request returns a 204 status with an empty result, while a bad request returns a 400 status with an empty result.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Set Subscription Status

  • ID: post_set_subscription_status
  • Operation: write
  • Entities: status change, account, person subscription
  • Summary: The Set Subscription Status API updates the status of a person's subscription in Zenefits. It requires the subscription ID as a path parameter and the status as a body parameter. The status can be 'ok', 'not_enrolled', or 'disabled'. The API uses a POST method and requires authorization via a Bearer token. The response indicates success with a 204 status code or a bad request with a 400 status code.
  • Input Fields: Input Fields
  • Output Fields: Output Fields

Triggering a New Flow

  • ID: post_triggering_a_new_flow
  • Operation: write
  • Entities: company, flow, subscription
  • Summary: The 'Triggering a New Flow' API allows you to initiate a new flow to collect additional information or notify a user outside of the standard flow types such as hiring, onboarding, or termination. This API requires a POST request to the endpoint 'https://api.zenefits.com/platform/flows/' with headers including 'Content-Type' set to 'application/json' and an 'Authorization' bearer token. The request body must include 'flow_type' as a mandatory field and either 'subscription' or 'install'. The response will include details about the triggered flow, including URLs and meta information about the person, company, and application involved in the flow.
  • Input Fields: Input Fields
  • Output Fields: Output Fields