Kombo Unified HRIS API API

Unified endpoints to access all the HR concepts you might need.

OpenAPI Specification

kombo-unified-hris-api-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Kombo AI Apply Unified HRIS API API
  version: 1.0.0
  description: Endpoints for AI-powered job application features.
servers:
- url: https://api.kombo.dev/v1
  description: Kombo EU API
- url: https://api.us.kombo.dev/v1
  description: Kombo US API
security:
- ApiKey: []
tags:
- name: Unified HRIS API
  description: Unified endpoints to access all the HR concepts you might need.
paths:
  /hris/provisioning-groups/{group_id}/diff:
    post:
      operationId: PostHrisProvisioningGroupsGroupIdDiff
      summary: Get provisioning diff
      description: Get the list of users to provision, deprovision, and optionally update based on the users you've already provisioned in your system.
      tags:
      - Unified HRIS API
      parameters:
      - in: header
        name: X-Integration-Id
        schema:
          type: string
        description: ID of the integration you want to interact with.
        example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28
        required: true
      - name: group_id
        in: path
        required: true
        description: ID of the provisioning group (currently only `default` is allowed).
        schema:
          $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdDiffParameterGroupId'
        examples:
          example1:
            value: n39n320clr8c5amf8v83nbch
      requestBody:
        description: POST /hris/provisioning-groups/:group_id/diff Request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdDiffRequestBody'
            examples:
              example1:
                value:
                  provisioned_users:
                  - origin_id: your_id_123
                    email: johndoe@example.com
                  options:
                    employee_fields:
                    - id
                    - first_name
                    - last_name
      responses:
        '200':
          description: POST /hris/provisioning-groups/:group_id/diff Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdDiffPositiveResponse'
        default:
          $ref: '#/components/responses/ErrorResponseHRIS'
  /hris/provisioning-groups/{group_id}/setup-links:
    post:
      operationId: PostHrisProvisioningGroupsGroupIdSetupLinks
      summary: Create provisioning setup link (deprecated)
      description: "Create a new link that can be passed to the Kombo Connect SDK to open the provisioning setup UI.\n\n<Warning>\n  **This endpoint is deprecated!**\n\n  Please use the [Create Setup Flow link endpoint](/v1/post-integrations-integration-id-setup-link) instead. It supports the full Setup Flow (including filtering, field mapping, and any other enabled steps) and works for any integration category, not just HRIS.\n</Warning>"
      tags:
      - Unified HRIS API
      parameters:
      - in: header
        name: X-Integration-Id
        schema:
          type: string
        description: ID of the integration you want to interact with.
        example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28
        required: true
      - name: group_id
        in: path
        required: true
        description: ID of the provisioning group (currently only `default` is allowed).
        schema:
          $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId'
        examples:
          example1:
            value: n39n320clr8c5amf8v83nbch
      requestBody:
        description: POST /hris/provisioning-groups/:group_id/setup-links Request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody'
            examples:
              example1:
                value:
                  language: en
      responses:
        '200':
          description: POST /hris/provisioning-groups/:group_id/setup-links Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksPositiveResponse'
              examples:
                example1:
                  value:
                    status: success
                    data:
                      url: https://connect.kombo.dev/v1/setup?token=GinuMJCpUQ9xdpLmD2ocw8qdiK3qiPCizDCv754EXri2vAX4
                      expires_at: '2023-10-11T12:00:00.000Z'
        default:
          $ref: '#/components/responses/ErrorResponseHRIS'
  /hris/employees:
    get:
      operationId: GetHrisEmployees
      summary: Get employees
      description: 'Retrieve all employees.


        <Note>Not interested in most fields? You can use our [our Scopes feature](/scopes) to customize what data points are synced.</Note>


        Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`'
      tags:
      - Unified HRIS API
      parameters:
      - in: header
        name: X-Integration-Id
        schema:
          type: string
        description: ID of the integration you want to interact with.
        example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28
        required: true
      - name: cursor
        in: query
        required: false
        description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterCursor'
      - name: page_size
        in: query
        required: false
        description: The number of results to return per page. Maximum is 250.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterPageSize'
      - name: updated_after
        in: query
        required: false
        description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged.


          If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.


          For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).


          For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.


          | Path | Added/Removed | Linked Record |

          | --- | --- | --- |

          | `employments` | ✓ Yes | ✓ Yes |

          | `time_off_balances` | ✓ Yes | ✓ Yes |

          | `manager` | n/a | ✓ Yes |

          | `group_memberships` | ✓ Yes | ✗ No |

          | `legal_entity` | n/a | ✓ Yes |

          | `work_location` | n/a | ✓ Yes |


          _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._'
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterUpdatedAfter'
      - name: include_deleted
        in: query
        required: false
        description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterIncludeDeleted'
      - name: ignore_unsupported_filters
        in: query
        required: false
        description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterIgnoreUnsupportedFilters'
      - name: ids
        in: query
        required: false
        description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterIds'
      - name: remote_ids
        in: query
        required: false
        description: Filter by a comma-separated list of remote IDs.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterRemoteIds'
      - name: employment_status
        in: query
        required: false
        description: '**(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** Filter by the `employment_status` field.'
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatus'
      - name: employment_statuses
        in: query
        required: false
        description: "Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, `LEAVE` \n* `ACTIVE`: the employee is **actively employed** \n* `PENDING`: the employee is **not actively employed yet** (but they signed their contract or are part of an onboarding process) \n* `INACTIVE`: a full-time employee is no longer employed, or, for a contract worker when their contract runs out \n* `LEAVE`: the employee is still employed but **currently on leave** (note that not all HR systems support this status — use our absences API for detailed information) \n \n\nLeave this blank to get results matching all values."
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatuses'
      - name: group_ids
        in: query
        required: false
        description: Filter by a comma-separated list of group IDs. We will only return employees that are members of _any_ of the groups.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterGroupIds'
      - name: legal_entity_ids
        in: query
        required: false
        description: Filter by a comma-separated list of legal entity IDs. We will only return employees that are members of _any_ of the legal entities.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterLegalEntityIds'
      - name: work_location_ids
        in: query
        required: false
        description: Filter by a comma-separated list of work location IDs. We will only return employees who are at _any_ of the work locations.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterWorkLocationIds'
      - name: work_emails
        in: query
        required: false
        description: Filter by a comma-separated list of work emails. We will only return employees who have _any_ of the work emails. The format of the emails is case-insensitive.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterWorkEmails'
      - name: personal_emails
        in: query
        required: false
        description: Filter by a comma-separated list of personal emails. We will only return employees who have _any_ of the personal emails. The format of the emails is case-insensitive.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterPersonalEmails'
      - name: custom_fields
        in: query
        required: false
        description: A JSON string with a single key-value pair like {"fieldKey":"fieldValue"} to filter employees by a specific custom field value. Note that the value must be a string, number, boolean or null and the key must be a valid custom field key. Custom fields with a value of type array or object are not supported.
        schema:
          $ref: '#/components/schemas/GetHrisEmployeesParameterCustomFields'
      responses:
        '200':
          description: GET /hris/employees Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHrisEmployeesPositiveResponse'
              examples:
                example1:
                  value:
                    status: success
                    data:
                      next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=
                      results:
                      - id: 26vafvWSRmbhNcxJYqjCzuJg
                        remote_id: '32'
                        employee_number: '3243422'
                        first_name: John
                        last_name: Doe
                        nationality: French
                        display_full_name: John Doe
                        job_title: Integrations Team Lead
                        work_email: john.doe@acme.com
                        personal_email: john@doe.me
                        mobile_phone_number: 801-555-4687
                        ssn: 555-32-6395
                        tax_id: 12 345 678 901
                        gender: MALE
                        ethnicity: BLACK_AFRICAN_AMERICAN
                        marital_status: MARRIED
                        employment_status: INACTIVE
                        employment_type: FULL_TIME
                        weekly_hours: 40
                        avatar: https://resources.bamboohr.com/images/photo_person_150x150.png
                        work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53
                        legal_entity_id: xB32bied320csBSsl3XWdlw33
                        manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo
                        home_address:
                          city: Berlin
                          country: DE
                          raw: 'Sonnenallee 63

                            12045 Berlin

                            Germany'
                          state: Berlin
                          street_1: Sonnenallee 63
                          street_2: null
                          zip_code: '12045'
                        bank_accounts:
                        - account_number: '1234567890'
                          bank_name: Commerzbank
                          bic: COBADEFFXXX
                          domestic_bank_routing:
                            number: '34567890'
                            type: DE_BANKLEITZAHL
                          holder_name: John Doe
                          iban: DE12345678901234567890
                        date_of_birth: '1986-01-01T00:00:00.000Z'
                        start_date: '2020-04-07T00:00:00.000Z'
                        termination_date: '2022-05-20T00:00:00.000Z'
                        remote_created_at: '2020-04-07T12:32:01.000Z'
                        changed_at: '2022-08-07T14:01:29.196Z'
                        remote_deleted_at: null
                        custom_fields: {}
                        integration_fields: []
                        remote_data: null
                        employments:
                        - id: 12vpXR7BeqYNWDShXRgsonnm
                          remote_id: '859'
                          employee_id: 26vafvWSRmbhNcxJYqjCzuJg
                          job_title: Social Media Marketer
                          pay_rate: 85000
                          pay_period: YEAR
                          pay_frequency: SEMIMONTHLY
                          employment_type: FULL_TIME
                          pay_currency: EUR
                          effective_date: '2021-01-30T00:00:00.000Z'
                          changed_at: '2022-08-07T14:01:29.196Z'
                          remote_deleted_at: null
                          remote_data: null
                          custom_fields: {}
                          integration_fields: []
                        time_off_balances:
                        - id: FuyRuk5NqP3qTcThED3ymTuE
                          remote_id: '124123'
                          employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j
                          type_id: BQJaBxRCiqN46G27VTegvkEr
                          balance: 14
                          balance_unit: DAYS
                          changed_at: '2022-08-07T14:01:29.196Z'
                          remote_deleted_at: null
                          used: 3
                          used_unit: DAYS
                          remote_data: null
                        manager:
                          first_name: John
                          last_name: Doe
                          display_full_name: John Doe
                          id: 26vafvWSRmbhNcxJYqjCzuJg
                          employee_number: '3243422'
                          work_email: john.doe@acme.com
                          remote_id: '32'
                          employment_status: INACTIVE
                          termination_date: '2022-05-20T00:00:00.000Z'
                        groups:
                        - id: 4B9bKBpX5tnwjiG93TAqF7ci
                          remote_id: '49'
                          name: Customer Success
                          type: TEAM
                        legal_entity:
                          id: 4B9bKBpX5tnwjiG93TAqF7ci
                          remote_id: '49'
                          name: ACME Inc.
                          address:
                            city: Berlin
                            country: DE
                            raw: 'Sonnenallee 63

                              12045 Berlin, Berlin

                              Germany'
                            state: Berlin
                            street_1: Sonnenallee 63
                            street_2: null
                            zip_code: '12045'
                        teams:
                        - id: 4B9bKBpX5tnwjiG93TAqF7ci
                          remote_id: '49'
                          name: Customer Success
                          type: TEAM
                        work_location:
                          id: 22st2Ji8XpncEYEak8mvQgQF
                          remote_id: '1348'
                          name: Kombo HQ
                          address:
                            city: Berlin
                            country: DE
                            raw: 'Sonnenallee 63

                              12045 Berlin, Berlin

                              Germany'
                            state: Berlin
                            street_1: Sonnenallee 63
                            street_2: null
                            zip_code: '12045'
                          type: OFFICE
                          changed_at: '2022-08-07T14:01:29.196Z'
                          remote_deleted_at: '2022-08-07T14:01:29.196Z'
                          remote_data: null
        default:
          $ref: '#/components/responses/ErrorResponseHRIS'
    post:
      operationId: PostHrisEmployees
      summary: '[DEPRECATED] Create employee'
      description: "Create a new employee.\n\n<Warning>\n  We are deprecating this endpoint in favor of the new [create employee form](/hris/features/create-employee) endpoint.\n</Warning>\n\n<Note>\n  This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](/scopes).\n</Note>\n\n### Example Request Body\n\n```json\n{\n  \"first_name\": \"John\",\n  \"last_name\": \"Doe\",\n  \"work_email\": \"john.doe@acme.com\",\n  \"gender\": \"MALE\",\n  \"date_of_birth\": \"1986-01-01\",\n  \"start_date\": \"2020-04-07\",\n  \"job_title\": \"Integrations Team Lead\",\n  \"home_address\": {\n    \"city\": \"Berlin\",\n    \"country\": \"DE\",\n    \"state\": \"Berlin\",\n    \"street_1\": \"Sonnenallee 63\",\n    \"zip_code\": \"12045\"\n  }\n}\n```"
      tags:
      - Unified HRIS API
      parameters:
      - in: header
        name: X-Integration-Id
        schema:
          type: string
        description: ID of the integration you want to interact with.
        example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28
        required: true
      requestBody:
        description: POST /hris/employees Request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostHrisEmployeesRequestBody'
            examples:
              example1:
                value:
                  first_name: John
                  last_name: Doe
                  work_email: john.doe@acme.com
                  gender: MALE
                  date_of_birth: '1986-01-01'
                  start_date: '2020-04-07'
                  job_title: Integrations Team Lead
                  home_address:
                    city: Berlin
                    country: DE
                    state: Berlin
                    street_1: Sonnenallee 63
                    zip_code: '12045'
      responses:
        '200':
          description: POST /hris/employees Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHrisEmployeesPositiveResponse'
              examples:
                example1:
                  value:
                    status: success
                    data:
                      id: 26vafvWSRmbhNcxJYqjCzuJg
                      remote_id: '32'
                      employee_number: '3243422'
                      first_name: John
                      last_name: Doe
                      nationality: French
                      display_full_name: John Doe
                      job_title: Integrations Team Lead
                      work_email: john.doe@acme.com
                      personal_email: john@doe.me
                      mobile_phone_number: 801-555-4687
                      ssn: 555-32-6395
                      tax_id: 12 345 678 901
                      gender: MALE
                      ethnicity: BLACK_AFRICAN_AMERICAN
                      marital_status: MARRIED
                      employment_status: INACTIVE
                      employment_type: FULL_TIME
                      weekly_hours: 40
                      avatar: https://resources.bamboohr.com/images/photo_person_150x150.png
                      work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53
                      legal_entity_id: xB32bied320csBSsl3XWdlw33
                      manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo
                      home_address:
                        city: Berlin
                        country: DE
                        raw: 'Sonnenallee 63

                          12045 Berlin

                          Germany'
                        state: Berlin
                        street_1: Sonnenallee 63
                        street_2: null
                        zip_code: '12045'
                      bank_accounts:
                      - account_number: '1234567890'
                        bank_name: Commerzbank
                        bic: COBADEFFXXX
                        domestic_bank_routing:
                          number: '34567890'
                          type: DE_BANKLEITZAHL
                        holder_name: John Doe
                        iban: DE12345678901234567890
                      date_of_birth: '1986-01-01T00:00:00.000Z'
                      start_date: '2020-04-07T00:00:00.000Z'
                      termination_date: '2022-05-20T00:00:00.000Z'
                      remote_created_at: '2020-04-07T12:32:01.000Z'
                      changed_at: '2022-08-07T14:01:29.196Z'
                      remote_deleted_at: null
                      custom_fields: {}
                      integration_fields: []
                      remote_data: null
                    warnings:
                    - message: This is an example warning!
        default:
          $ref: '#/components/responses/ErrorResponseHRIS'
  /hris/employees/form:
    get:
      operationId: GetHrisEmployeesForm
      summary: Get employee form
      description: "Get the form for creating an employee. This form can be rendered dynamically on your frontend to allow your customers to create employees in their HRIS.\n\nFollow our [create employee guide here](/hris/features/create-employee) to learn how this form is generated and how you can use it.\n\n### Example Form\n```json\n{\n  \"properties\": {\n    \"firstName\": {\n      \"type\": \"text\",\n      \"label\": \"First Name\",\n      \"required\": true,\n      \"description\": \"Employee's first name\",\n      \"unified_key\": \"first_name\",\n      \"min_length\": 1,\n      \"max_length\": 100\n    },\n    \"startDate\": {\n      \"type\": \"date\",\n      \"label\": \"Start Date\",\n      \"required\": true,\n      \"description\": \"Employee's start date\",\n      \"unified_key\": \"start_date\"\n    },\n    \"workLocation\": {\n      \"type\": \"object\",\n      \"label\": \"Work Location\",\n      \"required\": false,\n      \"description\": \"Employee's work location\",\n      \"unified_key\": null,\n      \"properties\": {\n        \"site\": {\n          \"type\": \"single_select\",\n          \"label\": \"Site\",\n          \"required\": true,\n          \"description\": \"Employee's site\",\n          \"unified_key\": null,\n          \"options\": {\n            \"type\": \"inline\",\n            \"entries\": [\n              {\n                \"label\": \"Site 1\",\n                \"id\": \"FXrER44xubBqA9DLgZ3PFNNx\",\n                \"unified_value\": \"1\",\n                \"remote_id\": \"site_1\"\n              },\n              {\n                \"label\": \"Site 2\",\n                \"id\": \"2rv75UKT2XBoQXsUb9agiTUm\",\n                \"unified_value\": \"2\",\n                \"remote_id\": \"site_2\"\n              }\n            ]\n          }\n        },\n        \"keyNumbers\": {\n          \"type\": \"array\",\n          \"label\": \"Key Numbers\",\n          \"required\": false,\n          \"description\": \"Employee's key numbers\",\n          \"unified_key\": null,\n          \"min_items\": 2,\n          \"max_items\": 5,\n          \"item_type\": {\n            \"type\": \"number\",\n            \"label\": \"Key Number\",\n            \"required\": false,\n            \"description\": \"The number of the keys which belong to the employee\",\n            \"unified_key\": null,\n            \"min\": 0,\n            \"max\": 99\n          }\n        }\n      }\n    }\n  }\n}\n```"
      tags:
      - Unified HRIS API
      parameters:
      - in: header
        name: X-Integration-Id
        schema:
          type: string
        description: ID of the integration you want to interact with.
        example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28
        required: true
      responses:
        '200':
          description: GET /hris/employees/form Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHrisEmployeesFormPositiveResponse'
              examples:
                example1:
                  value:
                    status: success
                    data:
                      properties:
                        firstName:
                          label: First Name
                          required: true
                          description: Employee's first name
                          unified_key: first_name
                          type: text
                          min_length: 1
                          max_length: 100
                          reg_exp: null
                        startDate:
                          label: Start Date
                          required: true
                          description: Employee's start date
                          unified_key: start_date
                          type: date
                        workLocation:
                          label: Work Location
                          required: false
                          description: Employee's work location
                          unified_key: null
                          type: object
                          properties:
                            site:
                              label: Site
                              required: true
                              description: Employee's site
                              unified_key: null
                              type: single_select
                              options:
                                type: inline
                                entries:
                                - id: FXrER44xubBqA9DLgZ3PFNNx
                                  label: Site 1
                                  unified_value: '1'
                                  remote_id: site_1
                                - id: 2rv75UKT2XBoQXsUb9agiTUm
                                  label: Site 2
                                  unified_value: '2'
                                  remote_id: site_2
                            keyNumbers:
                              label: Key Numbers
                              required: false
                              description: Employee's key numbers
                              unified_key: null
                              type: array
                              item_type:
                                label: Key Number
                                required: false
                                description: The number of the keys which belong to the employee
                                unified_key: null
                                type: number
                                min: 0
                                max: 99
                              min_items: 2
                              max_items: 5
                    warnings:
                    - message: This is an example warning!
        default:
          $ref: '#/components/responses/ErrorResponseHRIS'
    post:
      operationId: PostHrisEmployeesForm
      summary: Create employee with form
      description: "Create an employee, based on the form schema.\n\n<Note>\n  This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](/scopes).\n</Note>\n\n### Example Request Body\n\n```json\n{\n  \"properties\": {\n    \"firstName\": \"John\",\n    \"startDate\": \"2025-01-01\",\n    \"workLocation\": {\n      \"site\": \"8e422bf8cav\",\n      \"keyNumbers\": [\n        142,\n        525,\n        63\n      ]\n    }\n  }\n}\n```"
      tags:
      - Unified HRIS API
      parameters:
      - in: header
        name: X-Integration-Id
        schema:
          type: string
        description: ID of the integration you want to interact with.
        example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28
        required: true
      requestBody:
        description: POST /hris/employees/form Request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostHrisEmployeesFormRequestBody'
            examples:
              example1:
                value:
                  properties:
                    firstName: John
                    startDate: '2025-01-01'
                    workLocation:
                      site: 8e422bf8cav
                      keyNumbers:
                      - 142
                      - 525
                      - 63
      responses:
        '200':
          description: POST /hris/employees/form Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHrisEmployeesFormPositiveResponse'
              examples:
                example1:
                  value:
                    status: success
                    data:
                      id: 26vafvWSRmbhNcxJYqjCzuJg
                      remote_id: '12345'
                      prehire:
                        remote_id: null
                    warnings:
                    - message: This is an example warning!
        default:
          $ref: '#/components/responses/ErrorResponseHRIS'
  /hris/employees/{employee_id}:
    patch:
      operationId: PatchHrisEmployeesEmployeeId
      summary: Update employee
      description: "Update an employee.\n\n<Note>\n  This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](/scopes).\n</Note>\n\n### Example Request Body\n\n```json\n{\n  \"employee_id\": \"BkgfzSr5muN9cUTMD4wDQFn4\",\n  \"first_name\": \"John\",\n  \"last_name\": \"Doe\",\n  \"work_email\": \"john.doe@acme.com\",\n  \"ssn\": \"555-32-6395\",\n  \"tax_id\": \"12 345 678 901\",\n  \"gender\": \"MALE\",\n  \"marital_status\": \"MARRIED\",\n  \"date_of_birth\": \"1986-01-01\",\n  \"start_date\": \"2020-04-07\",\n  \"termination_date\": \"2022-05-20\",\n  \"job_title\": \"In

# --- truncated at 32 KB (530 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kombo/refs/heads/main/openapi/kombo-unified-hris-api-api-openapi.yml