> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Payslips

> Payslips

<Warning>**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.</Warning>

Retrieve all payslips for all employees, across all time.


## OpenAPI

````yaml GET /hris/payslips
openapi: 3.1.0
info:
  title: Kombo API
  version: 1.0.0
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: General
  - name: Kombo Connect
    description: >-
      Endpoints for Kombo Connect, our end-user-facing flow for setting up new
      integrations.
  - name: Unified HRIS API
    description: Unified endpoints to access all the HR concepts you might need.
  - name: Unified ATS API
    description: Unified endpoints to access all the ATS concepts you might need.
  - name: Unified ATS (Assessment & Background Check) API
    description: >-
      Unified endpoints to operate Assessments and Background Checks for many
      applicant tracking systems.
  - name: Unified LMS API
    description: Unified endpoints to access all the LMS concepts you might need.
  - name: AI Apply
    description: Endpoints for AI-powered job application features.
  - name: Custom Endpoints
    description: Custom integration-specific endpoints.
paths:
  /hris/payslips:
    get:
      tags:
        - Unified HRIS API
      summary: Payslips
      description: >-
        Payslips




        <Warning>**Closed Beta Feature:** This endpoint is currently in closed
        beta. We're testing it with selected customers before its public
        release. If you're interested in learning more or getting early access,
        please reach out.</Warning>




        Retrieve all payslips for all employees, across all time.
      operationId: GetHrisPayslips
      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/GetHrisPayslipsParameterCursor'
        - name: page_size
          in: query
          required: false
          description: The number of results to return per page. Maximum is 250.
          schema:
            $ref: '#/components/schemas/GetHrisPayslipsParameterPageSize'
        - 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, only changes to the returned record itself are
            considered.
          schema:
            $ref: '#/components/schemas/GetHrisPayslipsParameterUpdatedAfter'
        - 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/GetHrisPayslipsParameterIncludeDeleted'
        - 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/GetHrisPayslipsParameterIgnoreUnsupportedFilters
        - name: ids
          in: query
          required: false
          description: >-
            Filter by a comma-separated list of IDs such as
            `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
          schema:
            $ref: '#/components/schemas/GetHrisPayslipsParameterIds'
        - name: remote_ids
          in: query
          required: false
          description: Filter by a comma-separated list of remote IDs.
          schema:
            $ref: '#/components/schemas/GetHrisPayslipsParameterRemoteIds'
        - name: legal_entity_ids
          in: query
          required: false
          description: Filter by a comma-separated list of legal entity IDs.
          schema:
            $ref: '#/components/schemas/GetHrisPayslipsParameterLegalEntityIds'
        - name: cost_center_ids
          in: query
          required: false
          description: Filter by a comma-separated list of cost center IDs.
          schema:
            $ref: '#/components/schemas/GetHrisPayslipsParameterCostCenterIds'
        - name: employee_ids
          in: query
          required: false
          description: Filter by a comma-separated list of employee IDs.
          schema:
            $ref: '#/components/schemas/GetHrisPayslipsParameterEmployeeIds'
        - name: payrun_ids
          in: query
          required: false
          description: Filter by a comma-separated list of payrun IDs.
          schema:
            $ref: '#/components/schemas/GetHrisPayslipsParameterPayrunIds'
      responses:
        '200':
          description: GET /hris/payslips Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHrisPayslipsPositiveResponse'
              examples:
                example1:
                  value:
                    status: success
                    data:
                      next: >-
                        eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=
                      results:
                        - id: E4q8YceHEtPWeGwBAEcd9xPs
                          remote_id: '300000331094861'
                          employee:
                            id: 26vafvWSRmbhNcxJYqjCzuJg
                            remote_id: '32'
                            first_name: John
                            last_name: Doe
                            display_full_name: John Doe
                            work_email: john.doe@acme.com
                            remote_deleted_at: null
                          currency: EUR
                          pay_run:
                            id: HdyE3KNfcbNzXFRqwW1Wh2eP
                            remote_id: '300000092871122'
                            start_date: '2026-01-01T00:00:00.000Z'
                            end_date: '2026-01-31T00:00:00.000Z'
                            pay_date: '2026-01-23T00:00:00.000Z'
                            status:
                              remote_label: 'Completed: Complete'
                              unified_type: COMPLETED
                            legal_entity_id: 3Y6vdh2SPujGVx8oj4g8hdUu
                          totals:
                            gross_pay: 5400
                            net_pay: 4483.81
                            paid_amount: 2709.26
                          line_items:
                            - name: Gehalt
                              amount: 4400
                            - name: Fahrgeld
                              amount: 50
                            - name: Privatfahrten
                              amount: 500
                            - name: Whg/Arbeit
                              amount: 279
                            - name: Whg/Arbeit
                              amount: 171
                            - name: bAV AG-Zus
                              amount: 30
                            - name: Betr.AV.AN
                              amount: 200
                            - name: Betr.AV.AN
                              amount: -200
                            - name: Lohnsteuer
                              amount: -332.16
                            - name: Kichensteuer
                              amount: -26.57
                            - name: RV-Beitrag
                              amount: -489.09
                            - name: AV-Beitrag
                              amount: -68.37
                            - name: Privatfahrten
                              amount: -500
                            - name: Whg/Arbeit
                              amount: -279
                            - name: Whg/Arbeit
                              amount: -171
                            - name: Nettoabzug BAV
                              amount: -200
                            - name: AG-Zuschuss zur PV
                              amount: 104.63
                            - name: Gesamtbeitrag zur PV
                              amount: -209.25
                            - name: AG-Anteil zur freiw. KV
                              amount: 519.93
                            - name: Gesamtbeitr.z.freiw. KV
                              amount: -1039.86
                          changed_at: '2026-01-23T12:32:01.000Z'
                          remote_deleted_at: null
                          remote_data: null
        default:
          $ref: '#/components/responses/ErrorResponseHRIS'
components:
  schemas:
    GetHrisPayslipsParameterCursor:
      type: string
      description: >-
        An optional cursor string used for pagination. This can be retrieved
        from the `next` property of the previous page response.
    GetHrisPayslipsParameterPageSize:
      type: integer
      format: int64
      minimum: 1
      maximum: 250
      default: 100
      description: The number of results to return per page. Maximum is 250.
    GetHrisPayslipsParameterUpdatedAfter:
      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, only changes to the returned record itself are
        considered.
      type: string
      format: date-time
      pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$
      externalDocs:
        url: >-
          https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
    GetHrisPayslipsParameterIncludeDeleted:
      type: string
      enum:
        - 'true'
        - 'false'
      default: 'false'
      description: >-
        By default, deleted entries are not returned. Use the `include_deleted`
        query param to include deleted entries too.
    GetHrisPayslipsParameterIgnoreUnsupportedFilters:
      type: string
      enum:
        - 'true'
        - 'false'
      default: 'false'
      description: >-
        When set to `true`, filters targeting fields not supported by this
        integration will be ignored instead of filtering out all results.
    GetHrisPayslipsParameterIds:
      type: string
      description: >-
        Filter by a comma-separated list of IDs such as
        `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
    GetHrisPayslipsParameterRemoteIds:
      type: string
      description: Filter by a comma-separated list of remote IDs.
    GetHrisPayslipsParameterLegalEntityIds:
      type: string
      description: Filter by a comma-separated list of legal entity IDs.
    GetHrisPayslipsParameterCostCenterIds:
      type: string
      description: Filter by a comma-separated list of cost center IDs.
    GetHrisPayslipsParameterEmployeeIds:
      type: string
      description: Filter by a comma-separated list of employee IDs.
    GetHrisPayslipsParameterPayrunIds:
      type: string
      description: Filter by a comma-separated list of payrun IDs.
    GetHrisPayslipsPositiveResponse:
      type: object
      properties:
        status:
          type: string
          const: success
        data:
          type: object
          properties:
            next:
              type:
                - string
                - 'null'
              description: >-
                Cursor string that can be passed to the `cursor` query parameter
                to get the next page. If this is `null`, then there are no more
                pages.
            results:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: >-
                      The globally unique ID of this object generated by Kombo.
                      We recommend using this as a stable primary key for
                      syncing.
                  remote_id:
                    type: string
                    description: >-
                      The raw ID of the object in the remote system. We don't
                      recommend using this as a primary key on your side as it
                      might sometimes be compromised of multiple identifiers if
                      a system doesn't provide a clear primary key.
                  employee:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          The globally unique ID of this object generated by
                          Kombo. We recommend using this as a stable primary key
                          for syncing.
                      remote_id:
                        type: string
                        description: >-
                          The raw ID of the object in the remote system. We
                          don't recommend using this as a primary key on your
                          side as it might sometimes be compromised of multiple
                          identifiers if a system doesn't provide a clear
                          primary key.
                      first_name:
                        type:
                          - string
                          - 'null'
                        description: The employee’s first name.
                      last_name:
                        type:
                          - string
                          - 'null'
                        description: The employee’s last name.
                      display_full_name:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The employee’s full name, including any middle names.
                          Not all HR systems provide an explicit display name,
                          so we recommend falling back to `first_name` and
                          `last_name`.
                      work_email:
                        type:
                          - string
                          - 'null'
                        pattern: >-
                          ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$
                        description: >-
                          The employee’s work email address. If the email
                          address is invalid, we will set this to `null`.
                      remote_deleted_at:
                        description: >-
                          The date and time the object was deleted in the remote
                          system. Objects are automatically marked as deleted
                          when Kombo can't retrieve them from the remote system
                          anymore. Kombo will also anonymize entries 14 days
                          after they disappear.
                        type:
                          - string
                          - 'null'
                        format: date-time
                        externalDocs:
                          url: >-
                            https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                    required:
                      - id
                      - remote_id
                      - first_name
                      - last_name
                      - display_full_name
                      - remote_deleted_at
                    description: The employee that the payslip is for.
                    examples:
                      - id: 26vafvWSRmbhNcxJYqjCzuJg
                        remote_id: '32'
                        first_name: John
                        last_name: Doe
                        display_full_name: John Doe
                        work_email: john.doe@acme.com
                        remote_deleted_at: null
                  currency:
                    type:
                      - string
                      - 'null'
                    description: >-
                      The currency that the employee is paid in. Returned in
                      [ISO 4217 currency
                      codes](https://www.iso.org/iso-4217-currency-codes.html).
                  pay_run:
                    type: object
                    properties:
                      id:
                        type: string
                        description: >-
                          The globally unique ID of this object generated by
                          Kombo. We recommend using this as a stable primary key
                          for syncing.
                      remote_id:
                        type: string
                        description: >-
                          The raw ID of the object in the remote system. We
                          don't recommend using this as a primary key on your
                          side as it might sometimes be compromised of multiple
                          identifiers if a system doesn't provide a clear
                          primary key.
                      start_date:
                        description: The start date of the pay run.
                        type: string
                        format: date-time
                        externalDocs:
                          url: >-
                            https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                      end_date:
                        description: The end date of the pay run.
                        type: string
                        format: date-time
                        externalDocs:
                          url: >-
                            https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                      pay_date:
                        description: The date the pay run was processed.
                        type: string
                        format: date-time
                        externalDocs:
                          url: >-
                            https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                      status:
                        type: object
                        properties:
                          remote_label:
                            type: string
                            description: >-
                              The label of the payroll status how it appears in
                              the remote system.
                          unified_type:
                            type:
                              - string
                              - 'null'
                            enum:
                              - PENDING
                              - PROCESSING
                              - FAILED
                              - SKIPPED
                              - ROLLED_BACK
                              - COMPLETED_WITH_WARNINGS
                              - COMPLETED
                            description: >-
                              The unified type, how Kombo categorizes this
                              label.
                        required:
                          - remote_label
                          - unified_type
                      legal_entity_id:
                        type:
                          - string
                          - 'null'
                        minLength: 24
                        maxLength: 24
                        pattern: ^[1-9A-HJ-NP-Za-km-z]+$
                        description: >-
                          The Kombo ID of the employee’s legal entity. The ID
                          can be used to retrieve the legal entity from the `get
                          legal entities` endpoint.
                    required:
                      - id
                      - remote_id
                      - start_date
                      - end_date
                      - pay_date
                      - status
                      - legal_entity_id
                  totals:
                    type: object
                    properties:
                      gross_pay:
                        type:
                          - number
                          - 'null'
                        format: double
                        description: The gross pay of the payslip.
                      net_pay:
                        type:
                          - number
                          - 'null'
                        format: double
                        description: The net pay of the payslip.
                      paid_amount:
                        type:
                          - number
                          - 'null'
                        format: double
                        description: The paid amount of the payslip.
                    required:
                      - gross_pay
                      - net_pay
                      - paid_amount
                  line_items:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: The name of the line item.
                        amount:
                          type: number
                          format: double
                          description: The amount of the line item.
                      required:
                        - name
                        - amount
                  changed_at:
                    description: >-
                      The timestamp when this specific record was last modified.
                      This field only updates when properties directly on this
                      record change, NOT when related or nested models change.
                      For filtering that considers nested data changes, use the
                      `updated_after` parameter which will return records when
                      either the record itself OR its related models have been
                      updated.
                    type: string
                    format: date-time
                    externalDocs:
                      url: >-
                        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                  remote_deleted_at:
                    description: >-
                      The date and time the object was deleted in the remote
                      system. Objects are automatically marked as deleted when
                      Kombo can't retrieve them from the remote system anymore.
                      Kombo will also anonymize entries 14 days after they
                      disappear.
                    type:
                      - string
                      - 'null'
                    format: date-time
                    externalDocs:
                      url: >-
                        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                  remote_data:
                    type:
                      - object
                      - 'null'
                    additionalProperties: true
                    description: >-
                      Includes the data fetched from the remote system.

                      Please be aware that including this in you scope config
                      might violate other

                      scopes that are set.


                      Remote data always has the endpoint path that we got the
                      data from as the

                      top level key. For example, it could look like: `{
                      "/companies": { ... }}`


                      This is not available on all plans. Reach out to Kombo if
                      you need it.
                required:
                  - id
                  - remote_id
                  - employee
                  - currency
                  - pay_run
                  - totals
                  - line_items
                  - changed_at
                  - remote_deleted_at
                  - remote_data
                examples:
                  - id: E4q8YceHEtPWeGwBAEcd9xPs
                    remote_id: '300000331094861'
                    employee:
                      id: 26vafvWSRmbhNcxJYqjCzuJg
                      remote_id: '32'
                      first_name: John
                      last_name: Doe
                      display_full_name: John Doe
                      work_email: john.doe@acme.com
                      remote_deleted_at: null
                    currency: EUR
                    pay_run:
                      id: HdyE3KNfcbNzXFRqwW1Wh2eP
                      remote_id: '300000092871122'
                      start_date: '2026-01-01T00:00:00.000Z'
                      end_date: '2026-01-31T00:00:00.000Z'
                      pay_date: '2026-01-23T00:00:00.000Z'
                      status:
                        remote_label: 'Completed: Complete'
                        unified_type: COMPLETED
                      legal_entity_id: 3Y6vdh2SPujGVx8oj4g8hdUu
                    totals:
                      gross_pay: 5400
                      net_pay: 4483.81
                      paid_amount: 2709.26
                    line_items:
                      - name: Gehalt
                        amount: 4400
                      - name: Fahrgeld
                        amount: 50
                      - name: Privatfahrten
                        amount: 500
                      - name: Whg/Arbeit
                        amount: 279
                      - name: Whg/Arbeit
                        amount: 171
                      - name: bAV AG-Zus
                        amount: 30
                      - name: Betr.AV.AN
                        amount: 200
                      - name: Betr.AV.AN
                        amount: -200
                      - name: Lohnsteuer
                        amount: -332.16
                      - name: Kichensteuer
                        amount: -26.57
                      - name: RV-Beitrag
                        amount: -489.09
                      - name: AV-Beitrag
                        amount: -68.37
                      - name: Privatfahrten
                        amount: -500
                      - name: Whg/Arbeit
                        amount: -279
                      - name: Whg/Arbeit
                        amount: -171
                      - name: Nettoabzug BAV
                        amount: -200
                      - name: AG-Zuschuss zur PV
                        amount: 104.63
                      - name: Gesamtbeitrag zur PV
                        amount: -209.25
                      - name: AG-Anteil zur freiw. KV
                        amount: 519.93
                      - name: Gesamtbeitr.z.freiw. KV
                        amount: -1039.86
                    changed_at: '2026-01-23T12:32:01.000Z'
                    remote_deleted_at: null
                    remote_data: null
          required:
            - next
            - results
          examples:
            - next: >-
                eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=
              results:
                - id: E4q8YceHEtPWeGwBAEcd9xPs
                  remote_id: '300000331094861'
                  employee:
                    id: 26vafvWSRmbhNcxJYqjCzuJg
                    remote_id: '32'
                    first_name: John
                    last_name: Doe
                    display_full_name: John Doe
                    work_email: john.doe@acme.com
                    remote_deleted_at: null
                  currency: EUR
                  pay_run:
                    id: HdyE3KNfcbNzXFRqwW1Wh2eP
                    remote_id: '300000092871122'
                    start_date: '2026-01-01T00:00:00.000Z'
                    end_date: '2026-01-31T00:00:00.000Z'
                    pay_date: '2026-01-23T00:00:00.000Z'
                    status:
                      remote_label: 'Completed: Complete'
                      unified_type: COMPLETED
                    legal_entity_id: 3Y6vdh2SPujGVx8oj4g8hdUu
                  totals:
                    gross_pay: 5400
                    net_pay: 4483.81
                    paid_amount: 2709.26
                  line_items:
                    - name: Gehalt
                      amount: 4400
                    - name: Fahrgeld
                      amount: 50
                    - name: Privatfahrten
                      amount: 500
                    - name: Whg/Arbeit
                      amount: 279
                    - name: Whg/Arbeit
                      amount: 171
                    - name: bAV AG-Zus
                      amount: 30
                    - name: Betr.AV.AN
                      amount: 200
                    - name: Betr.AV.AN
                      amount: -200
                    - name: Lohnsteuer
                      amount: -332.16
                    - name: Kichensteuer
                      amount: -26.57
                    - name: RV-Beitrag
                      amount: -489.09
                    - name: AV-Beitrag
                      amount: -68.37
                    - name: Privatfahrten
                      amount: -500
                    - name: Whg/Arbeit
                      amount: -279
                    - name: Whg/Arbeit
                      amount: -171
                    - name: Nettoabzug BAV
                      amount: -200
                    - name: AG-Zuschuss zur PV
                      amount: 104.63
                    - name: Gesamtbeitrag zur PV
                      amount: -209.25
                    - name: AG-Anteil zur freiw. KV
                      amount: 519.93
                    - name: Gesamtbeitr.z.freiw. KV
                      amount: -1039.86
                  changed_at: '2026-01-23T12:32:01.000Z'
                  remote_deleted_at: null
                  remote_data: null
      required:
        - status
        - data
  responses:
    ErrorResponseHRIS:
      description: The standard error response with the error codes for the HRIS use case.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: object
                properties:
                  code:
                    type:
                      - string
                      - 'null'
                    enum:
                      - PLATFORM.RATE_LIMIT_EXCEEDED
                      - PLATFORM.CONCURRENCY_LIMIT_EXCEEDED
                      - PLATFORM.INTEGRATION_NOT_FOUND
                      - PLATFORM.INPUT_INVALID
                      - PLATFORM.UNKNOWN_ERROR
                      - PLATFORM.IP_NOT_WHITELISTED
                      - PLATFORM.AUTHENTICATION_INVALID
                      - PLATFORM.TASK_TIMED_OUT
                      - INTEGRATION.PERMISSION_MISSING
                      - INTEGRATION.AUTHENTICATION_INVALID
                      - INTEGRATION.QA_FAILED
                      - INTEGRATION.SETUP_SYNC_PENDING
                      - INTEGRATION.SETUP_INCOMPLETE
                      - INTEGRATION.INACTIVE
                      - INTEGRATION.MODEL_NOT_AVAILABLE
                      - INTEGRATION.MODEL_DISABLED
                      - INTEGRATION.ACTION_NOT_AVAILABLE
                      - INTEGRATION.ACTION_DISABLED
                      - REMOTE.SERVICE_UNAVAILABLE
                      - REMOTE.RATE_LIMIT_EXCEEDED
                      - REMOTE.INPUT_INVALID
                      - REMOTE.UNKNOWN_HTTP_ERROR
                      - HRIS.STAFFING_ENTITY_CLOSED
                      - HRIS.EMPLOYEE_ALREADY_EXISTS
                    example: HRIS.EMPLOYEE_ALREADY_EXISTS
                    description: >-
                      Some errors include an error code that can be used to
                      identify their cause. See the [Error Handling
                      Docs](https://docs.kombo.dev/guides/errors) for more
                      information. For your error handling logic please use the
                      error `code` instead of other properties (e.g. message,
                      http status code, ...).
                  title:
                    type:
                      - string
                      - 'null'
                    description: A static, human-readable label.
                  message:
                    type: string
                    description: >-
                      A dynamic, detailed description of what went wrong in this
                      specific instance.
                  log_url:
                    type:
                      - string
                      - 'null'
                    format: uri
                    description: >-
                      The log page in the Kombo UI lists every interaction with
                      full details. If you need assistance, share that link with
                      our support team.
                required:
                  - code
                  - title
                  - message
                  - log_url
                description: Error details with structured code for programmatic handling.
            required:
              - status
              - error
          examples:
            Error Response:
              description: >-
                When building error handling logic, always use the `code` field
                to identify specific error types programmatically. See the
                complete list of error codes in the
                [docs](https://docs.kombo.dev/guides/errors).
              value:
                status: error
                error:
                  code: INTEGRATION.MODEL_NOT_AVAILABLE
                  title: >-
                    This data model isn't supported for the selected
                    integration.
                  message: >-
                    The "employees" model is not yet available for Greenhouse.
                    Please reach out to Kombo if you need this functionality.
                  log_url: https://app.kombo.dev/my-prod/logs?interactionId=123456
            Minimal Error Response:
              description: >-
                The "message" is always required while other fields can also be
                `null`. See the [docs](https://docs.kombo.dev/guides/errors) for
                more information.
              value:
                status: error
                error:
                  code: null
                  title: null
                  message: The message is always in the response.
                  log_url: null
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      description: >-
        Create an API key on the [Secrets](https://app.kombo.dev/secrets) page
        in the Kombo dashboard.

````