openapi: 3.0.0
info:
  version: 10.24.30
  title: HRIS API
  description: "Welcome to the HRIS API.\n\nYou can use this API to access all HRIS API endpoints.\n\n## Base URL\n\nThe base URL for all API requests is `https://unify.apideck.com`\n\n## Headers\n\nCustom headers that are expected as part of the request. Note that [RFC7230](https://tools.ietf.org/html/rfc7230) states header names are case insensitive.\n\n| Name                  | Type    | Required | Description                                                                                                                                                    |\n| --------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| x-apideck-consumer-id | String  | Yes      | The id of the customer stored inside Apideck Vault. This can be a user id, account id, device id or whatever entity that can have integration within your app. |\n| x-apideck-service-id  | String  | No       | Describe the service you want to call (e.g., pipedrive). Only needed when a customer has activated multiple integrations for the same Unified API.             |\n| x-apideck-app-id      | String  | Yes      | The application id of your Unify application. Available at https://app.apideck.com/unify/api-keys.                                                             |\n| Authorization         | String  | Yes      | Bearer <token> KEY                                                                                                                                                 |\n\n## Authorization\n\nYou can interact with the API through the authorization methods below.\n\n<!-- ReDoc-Inject: <security-definitions> -->\n\n## Pagination\n\nAll API resources have support for bulk retrieval via list APIs.  Apideck uses cursor-based pagination via the optional `cursor` and `limit` parameters.\n\nTo fetch the first page of results, call the list API without a `cursor` parameter. Afterwards you can fetch subsequent pages by providing a cursor parameter. You will find the next cursor in the response body in `meta.cursors.next`. If `meta.cursors.next` is `null` you're at the end of the list.\n\nIn the REST API you can also use the `links` from the response for added convenience. Simply call the URL in `links.next` to get the next page of results.\n\n### Query Parameters\n\n| Name   | Type   | Required | Description                                                                                                        |\n| ------ | ------ | -------- | ------------------------------------------------------------------------------------------------------------------ |\n| cursor | String | No       | Cursor to start from. You can find cursors for next & previous pages in the meta.cursors property of the response. |\n| limit  | Number | No       | Number of results to return. Minimum 1, Maximum 200, Default 20                                                    |\n\n### Response Body\n\n| Name                  | Type   | Description                                                        |\n| --------------------- | ------ | ------------------------------------------------------------------ |\n| meta.cursors.previous | String | Cursor to navigate to the previous page of results through the API |\n| meta.cursors.current  | String | Cursor to navigate to the current page of results through the API  |\n| meta.cursors.next     | String | Cursor to navigate to the next page of results through the API     |\n| meta.items_on_page    | Number | Number of items returned in the data property of the response      |\n| links.previous        | String | Link to navigate to the previous page of results through the API   |\n| links.current         | String | Link to navigate to the current page of results through the API    |\n| links.next            | String | Link to navigate to the next page of results through the API       |\n\n⚠️ `meta.cursors.previous`/`links.previous` is not available for all connectors.\n\n## SDKs and API Clients\n\nWe currently offer a [Node.js](https://developers.apideck.com/sdks/node), [PHP](https://developers.apideck.com/sdks/php), [Python](https://developers.apideck.com/sdks/python) and [.NET](https://developers.apideck.com/sdks/dot-net) SDK.\nNeed another SDK? [Request the SDK of your choice](https://requests.apideck.io/request).\n\n## Debugging\n\nBecause of the nature of the abstraction we do in Apideck Unify we still provide the option to the receive raw requests and responses being handled underlying. By including the raw flag `?raw=true` in your requests you can still receive the full request. Please note that this increases the response size and can introduce extra latency.\n\n## Errors\n\nThe API returns standard HTTP response codes to indicate success or failure of the API requests. For errors, we also return a customized error message inside the JSON response. You can see the returned HTTP status codes below.\n\n| Code | Title                | Description                                                                                                                                                                                              |\n| ---- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 200  | OK                   | The request message has been successfully processed, and it has produced a response. The response message varies, depending on the request method and the requested data.                                |\n| 201  | Created              | The request has been fulfilled and has resulted in one or more new resources being created.                                                                                                              |\n| 204  | No Content           | The server has successfully fulfilled the request and that there is no additional content to send in the response payload body.                                                                          |\n| 400  | Bad Request          | The receiving server cannot understand the request because of malformed syntax. Do not repeat the request without first modifying it; check the request for errors, fix them and then retry the request. |\n| 401  | Unauthorized         | The request has not been applied because it lacks valid authentication credentials for the target resource.                                                                                              |\n| 402  | Payment Required     | Subscription data is incomplete or out of date. You'll need to provide payment details to continue.                                                                                                      |\n| 403  | Forbidden            | You do not have the appropriate user rights to access the request. Do not repeat the request.                                                                                                            |\n| 404  | Not Found            | The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.                                                                           |\n| 409  | Conflict             | The request could not be completed due to a conflict with the current state of the target resource.                                                                                                      |\n| 422  | Unprocessable Entity | The server understands the content type of the request entity, and the syntax of the request entity is correct but was unable to process the contained instructions.                                     |\n| 429  | Too Many Requests    | You sent too many requests in a given amount of time (\"rate limit\"). Try again later                                                                                                                     |\n| 5xx  | Server Errors        | Something went wrong with the Unify API. These errors are logged on our side. You can contact our team to resolve the issue.                                                                             |\n\n### Handling errors\n\nThe Unify API and SDKs can produce errors for many reasons, such as a failed requests due to misconfigured integrations, invalid parameters, authentication errors, and network unavailability.\n\n### Error Types\n\n#### RequestValidationError\n\nRequest is not valid for the current endpoint. The response body will include details on the validation error. Check the spelling and types of your attributes, and ensure you are not passing data that is outside of the specification.\n\n#### UnsupportedFiltersError\n\nFilters in the request are valid, but not supported by the connector. Remove the unsupported filter(s) to get a successful response.\n\n#### UnsupportedSortFieldError\n\nSort field (`sort[by]`) in the request is valid, but not supported by the connector. Replace or remove the sort field to get a successful response.\n\n#### InvalidCursorError\n\nPagination cursor in the request is not valid for the current connector. Make sure to use a cursor returned from the API, for the same connector.\n\n#### ConnectorExecutionError\n\nA Unified API request made via one of our downstream connectors returned an unexpected error. The `status_code` returned is proxied through to error response along with their original response via the error detail.\n\n#### UnauthorizedError\n\nWe were unable to authorize the request as made. This can happen for a number of reasons, from missing header params to passing an incorrect authorization token. Verify your Api Key is being set correctly in the authorization header. ie: `Authorization: 'Bearer <API KEY>'`\n\n#### ConnectorCredentialsError\n\nA request using a given connector has not been authorized. Ensure the connector you are trying to use has been configured correctly and been authorized for use.\n\n#### ConnectorDisabledError\n\nA request has been made to a connector that has since been disabled. This may be temporary - You can contact our team to resolve the issue.\n\n#### ConnectorRateLimitError\n\nYou sent too many request to a connector. These rate limits vary from connector to connector. You will need to try again later.\n\n#### RequestLimitError\n\nYou have reached the number of requests included in your Free Tier Subscription. You will not be able to make further requests until you upgrade your subscription. Please reach out to sales@apideck.com to continue making requests.\n\n#### EntityNotFoundError\n\nYou've made a request for a resource or route that does not exist. Verify your path parameters or any identifiers used to fetch this resource.\n\n#### OAuthCredentialsNotFoundError\n\nWhen adding a connector integration that implements OAuth, both a `client_id` and `client_secret` must be provided before any authorizations can be performed. Verify the integration has been configured properly before continuing.\n\n#### IntegrationNotFoundError\n\nThe requested connector integration could not be found associated to your `application_id`. Verify your `application_id` is correct, and that this connector has been added and configured for your application.\n\n#### ConnectionNotFoundError\n\nA valid connection could not be found associated to your `application_id`. Something _may_ have interrupted the authorization flow. You may need to start the connector authorization process again.\n\n#### ConnectionSettingsError\n\nThe connector has required settings that were not supplied. Verify `connection.settings` contains all required settings for the connector to be callable.\n\n#### ConnectorNotFoundError\n\nA request was made for an unknown connector. Verify your `service_id` is spelled correctly, and that this connector is enabled for your provided `unified_api`.\n\n#### OAuthRedirectUriError\n\nA request was made either in a connector authorization flow, or attempting to revoke connector access without a valid `redirect_uri`. This is the url the user should be returned to on completion of process.\n\n#### OAuthInvalidStateError\n\nThe state param is required and is used to ensure the outgoing authorization state has not been altered before the user is redirected back. It also contains required params needed to identify the connector being used. If this has been altered, the authorization will not succeed.\n\n#### OAuthCodeExchangeError\n\nWhen attempting to exchange the authorization code for an `access_token` during an OAuth flow, an error occurred. This may be temporary. You can reattempt authorization or contact our team to resolve the issue.\n\n#### OAuthConnectorError\n\nIt seems something went wrong on the connector side. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### MappingError\n\nThere was an error attempting to retrieve the mapping for a given attribute. We've been notified and are working to fix this issue.\n\n#### ConnectorMappingNotFoundError\n\nIt seems the implementation for this connector is incomplete. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### ConnectorResponseMappingNotFoundError\n\nWe were unable to retrieve the response mapping for this connector. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### ConnectorOperationMappingNotFoundError\n\nConnector mapping has not been implemented for the requested operation. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### ConnectorWorkflowMappingError\n\nThe composite api calls required for this operation have not been mapped entirely. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### ConnectorOperationUnsupportedError\n\nYou're attempting a call that is not supported by the connector. It's likely this operation is supported by another connector, but we're unable to implement for this one.\n\n#### PaginationNotSupportedError\n\nPagination is not yet supported for this connector, try removing limit and/or cursor from the query. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n## API Design\n\n### API Styles and data formats\n\n#### REST API\n\nThe API is organized around [REST](https://restfulapi.net/), providing simple and predictable URIs to access and modify objects. Requests support standard HTTP methods like GET, PUT, POST, and DELETE and standard status codes. JSON is returned by all API responses, including errors. In all API requests, you must set the content-type HTTP header to application/json. All API requests must be made over HTTPS. Calls made over HTTP will fail.\n\n##### Available HTTP methods\n\nThe Apideck API uses HTTP verbs to understand if you want to read (GET), delete (DELETE) or create (POST) an object. When your web application cannot do a POST or DELETE, we provide the ability to set the method through the query parameter \\_method.\n\n```\nPOST /messages\nGET /messages\nGET /messages/{messageId}\nPATCH /messages/{messageId}\nDELETE /messages/{messageId}\n```\n\nResponse bodies are always UTF-8 encoded JSON objects, unless explicitly documented otherwise. For some endpoints and use cases we divert from REST to provide a better developer experience.\n\n### Schema\n\nAll API requests and response bodies adhere to a common JSON format representing individual items, collections of items, links to related items and additional meta data.\n\n### Meta\n\nMeta data can be represented as a top level member named “meta”. Any information may be provided in the meta data. It’s most common use is to return the total number of records when requesting a collection of resources.\n\n### Request IDs\n\nEach API request has an associated request identifier. You can find this value in the response headers, under Request-Id. You can also find request identifiers in the URLs of individual request logs in your Dashboard. If you need to contact us about a specific request, providing the request identifier will ensure the fastest possible resolution.\n\n### Fixed field types\n\n#### Dates\n\nThe dates returned by the API are all represented in UTC (ISO8601 format).\n\nThis example\_`2019-11-14T00:55:31.820Z`\_is defined by the\_ISO 8601\_standard. The\_T\_in the middle separates the year-month-day portion from the hour-minute-second portion. The\_Z\_on the end means UTC, that is, an offset-from-UTC of zero hours-minutes-seconds. The\_Z\_is pronounced \"Zulu\" per military/aviation tradition.\n\nThe ISO 8601 standard is more modern. The formats are wisely designed to be easy to parse by machine as well as easy to read by humans across cultures.\n\n#### Currencies\n\nAll currency codes conform to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n## Support\n\nIf you have problems or need help with your case, you can always reach out to our Support.\n\n## Static IP\n\nSome of the APIs you want to use can require a static IP. Apideck's static IP feature allows you to use Apideck with a fixed IP avoiding the need for you to set up your own infrastructure. This feature is currently available to all Apideck customers.\nTo use this feature, the API Vendor will need to whitelist the associated static IP addresses.\nThe provided static IP addresses are fixed to their specified region and shared by all customers who use this feature.\n\n- EU Central 1: **18.197.244.247**, **18.156.9.3**, **3.65.139.215**\n- Other: upcoming\n\n  More info about our data security can be found at [https://compliance.apideck.com/](https://compliance.apideck.com/)\n\n"
  contact:
    email: hello@apideck.com
    url: https://developers.apideck.com
  x-logo:
    url: https://developers.apideck.com/icon.png
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  x-apideck-api: hris
  x-apideck-sdk-support: true
externalDocs:
  description: Apideck Developer Docs
  url: https://developers.apideck.com
servers:
  - url: https://unify.apideck.com
components:
  parameters:
    applicationId:
      name: x-apideck-app-id
      in: header
      required: true
      description: The ID of your Unify application
      schema:
        type: string
        minLength: 1
      example: dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX
      x-speakeasy-name-override: appId
    companyId:
      description: ID of the company you are acting upon.
      in: path
      name: company_id
      required: true
      schema:
        type: string
    consumerId:
      name: x-apideck-consumer-id
      in: header
      required: true
      description: ID of the consumer which you want to get or push data from
      schema:
        type: string
      example: test-consumer
      x-speakeasy-name-override: consumerId
    cursor:
      name: cursor
      in: query
      description: Cursor to start from. You can find cursors for next/previous pages in the meta.cursors property of the response.
      schema:
        type: string
        nullable: true
    employeeId:
      description: ID of the employee you are acting upon.
      in: path
      name: employee_id
      required: true
      schema:
        type: string
    employeesFilter:
      name: filter
      in: query
      description: Apply filters
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/EmployeesFilter'
    employeesSort:
      name: sort
      in: query
      description: Apply sorting
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/EmployeesSort'
    employeesOneFilter:
      name: filter
      in: query
      description: Apply filters
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/EmployeesOneFilter'
    fields:
      name: fields
      in: query
      description: 'The ''fields'' parameter allows API users to specify the fields they want to include in the API response. If this parameter is not present, the API will return all available fields. If this parameter is present, only the fields specified in the comma-separated string will be included in the response. Nested properties can also be requested by using a dot notation. <br /><br />Example: `fields=name,email,addresses.city`<br /><br />In the example above, the response will only include the fields "name", "email" and "addresses.city". If any other fields are available, they will be excluded.'
      example: id,updated_at
      schema:
        type: string
        nullable: true
    id:
      in: path
      name: id
      schema:
        type: string
      required: true
      description: ID of the record you are acting upon.
    jobId:
      description: ID of the job you are acting upon.
      in: path
      name: job_id
      required: true
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: Number of results to return. Minimum 1, Maximum 200, Default 20
      schema:
        type: integer
        minimum: 1
        maximum: 200
        default: 20
    payrollId:
      description: ID of the payroll you are acting upon.
      in: path
      name: payroll_id
      required: true
      schema:
        type: string
    payrollsFilter:
      name: filter
      in: query
      description: Apply filters
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/PayrollsFilter'
    passThrough:
      name: pass_through
      in: query
      description: 'Optional unmapped key/values that will be passed through to downstream as query parameters. Ie: ?pass_through[search]=leads becomes ?search=leads'
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/PassThroughQuery'
    raw:
      name: raw
      in: query
      description: Include raw response. Mostly used for debugging purposes
      schema:
        type: boolean
        default: false
    serviceId:
      name: x-apideck-service-id
      in: header
      description: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
      schema:
        type: string
      example: salesforce
      x-speakeasy-name-override: serviceId
    timeOffRequestsFilter:
      name: filter
      in: query
      description: Apply filters
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/TimeOffRequestsFilter'
  responses:
    BadRequestResponse:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequestResponse'
    CreateHrisCompanyResponse:
      description: Companies
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateHrisCompanyResponse'
    CreateEmployeeResponse:
      description: Employees
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateEmployeeResponse'
    DeleteHrisCompanyResponse:
      description: Companies
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteHrisCompanyResponse'
    DeleteEmployeeResponse:
      description: Employees
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteEmployeeResponse'
    GetHrisCompaniesResponse:
      description: Companies
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetHrisCompaniesResponse'
    GetHrisCompanyResponse:
      description: Company
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetHrisCompanyResponse'
    GetEmployeeResponse:
      description: Employees
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetEmployeeResponse'
    GetEmployeesResponse:
      description: Employees
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetEmployeesResponse'
    NotFoundResponse:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotFoundResponse'
    NotImplementedResponse:
      description: Not Implemented
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotImplementedResponse'
    PaymentRequiredResponse:
      description: Payment Required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentRequiredResponse'
    UnauthorizedResponse:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnauthorizedResponse'
    UnexpectedErrorResponse:
      description: Unexpected error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnexpectedErrorResponse'
    UnprocessableResponse:
      description: Unprocessable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnprocessableResponse'
    UpdateHrisCompanyResponse:
      description: Companies
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateHrisCompanyResponse'
    UpdateEmployeeResponse:
      description: Employees
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateEmployeeResponse'
    CreateDepartmentResponse:
      description: Departments
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateDepartmentResponse'
    DeleteDepartmentResponse:
      description: Departments
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteDepartmentResponse'
    GetDepartmentResponse:
      description: Departments
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetDepartmentResponse'
    GetDepartmentsResponse:
      description: Departments
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetDepartmentsResponse'
    UpdateDepartmentResponse:
      description: Departments
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateDepartmentResponse'
    GetPayrollsResponse:
      description: Payrolls
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetPayrollsResponse'
    GetPayrollResponse:
      description: Payrolls
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetPayrollResponse'
    GetEmployeePayrollResponse:
      description: Payrolls
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetEmployeePayrollResponse'
    GetEmployeePayrollsResponse:
      description: EmployeePayrolls
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetEmployeePayrollsResponse'
    GetEmployeeSchedulesResponse:
      description: EmployeeSchedules
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetEmployeeSchedulesResponse'
    GetHrisJobsResponse:
      description: Jobs
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetHrisJobsResponse'
    GetHrisJobResponse:
      description: Job
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetHrisJobResponse'
    TooManyRequestsResponse:
      description: Too Many Requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TooManyRequestsResponse'
    CreateTimeOffRequestResponse:
      description: TimeOffRequests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateTimeOffRequestResponse'
    DeleteTimeOffRequestResponse:
      description: TimeOffRequests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteTimeOffRequestResponse'
    GetTimeOffRequestResponse:
      description: TimeOffRequests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetTimeOffRequestResponse'
    GetTimeOffRequestsResponse:
      description: TimeOffRequests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetTimeOffRequestsResponse'
    TimeOffRequest:
      description: TimeOffRequests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TimeOffRequest'
    UpdateTimeOffRequestResponse:
      description: TimeOffRequests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateTimeOffRequestResponse'
  schemas:
    Address:
      type: object
      x-apideck-schema-id: Address
      additionalProperties: false
      x-apideck-weights:
        id: edge-case
        name: edge-case
        type: critical
        line1: high
        line2: low
        line3: edge-case
        line4: edge-case
        line5: edge-case
        street_number: low
        city: high
        string: low
        state: high
        postal_code: high
        country: high
        latitude: low
        longitude: low
        county: edge-case
        contact_name: edge-case
        salutation: edge-case
        phone_number: edge-case
        fax: edge-case
        email: edge-case
        website: edge-case
        row_version: edge-case
      properties:
        id:
          description: Unique identifier for the address.
          type: string
          example: '123'
          nullable: true
        type:
          type: string
          description: The type of address.
          x-apideck-enum-id: addresses.type
          enum:
            - primary
            - secondary
            - home
            - office
            - shipping
            - billing
            - work
            - other
          example: primary
          nullable: true
        string:
          type: string
          description: The address string. Some APIs don't provide structured address data.
          example: 25 Spring Street, Blackburn, VIC 3130
          nullable: true
        name:
          description: The name of the address.
          type: string
          example: HQ US
          nullable: true
        line1:
          type: string
          example: Main street
          description: 'Line 1 of the address e.g. number, street, suite, apt #, etc.'
          nullable: true
        line2:
          type: string
          example: 'apt #'
          description: Line 2 of the address
          nullable: true
        line3:
          type: string
          example: 'Suite #'
          description: Line 3 of the address
          nullable: true
        line4:
          type: string
          example: delivery instructions
          description: Line 4 of the address
          nullable: true
        line5:
          type: string
          example: 'Attention: Finance Dept'
          description: Line 5 of the address
          nullable: true
        street_number:
          type: string
          example: '25'
          description: Street number
          nullable: true
        city:
          type: string
          example: San Francisco
          description: Name of city.
          nullable: true
        state:
          type: string
          example: CA
          description: Name of state
          nullable: true
        postal_code:
          type: string
          example: '94104'
          description: Zip code or equivalent.
          nullable: true
        country:
          type: string
          example: US
          description: country code according to ISO 3166-1 alpha-2.
          nullable: true
        latitude:
          description: Latitude of the address
          type: string
          example: '40.759211'
          nullable: true
        longitude:
          description: Longitude of the address
          type: string
          example: '-73.984638'
          nullable: true
        county:
          type: string
          example: Santa Clara
          description: Address field that holds a sublocality, such as a county
          nullable: true
        contact_name:
          description: Name of the contact person at the address
          type: string
          example: Elon Musk
          nullable: true
        salutation:
          description: Salutation of the contact person at the address
          type: string
          example: Mr
          nullable: true
        phone_number:
          description: Phone number of the address
          type: string
          example: 111-111-1111
          nullable: true
        fax:
          description: Fax number of the address
          type: string
          example: 122-111-1111
          nullable: true
        email:
          description: Email address of the address
          type: string
          example: elon@musk.com
          nullable: true
        website:
          description: Website of the address
          type: string
          example: https://elonmusk.com
          nullable: true
        notes:
          description: Additional notes
          type: string
          title: Notes
          example: Address notes or delivery instructions.
          nullable: true
        row_version:
          $ref: '#/components/schemas/RowVersion'
    BadRequestResponse:
      type: object
      x-apideck-schema-id: BadRequest
      properties:
        status_code:
          type: number
          description: HTTP status code
          example: 400
        error:
          type: string
          description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
          example: Bad Request
        type_name:
          type: string
          description: The type of error returned
          example: RequestValidationError
        message:
          type: string
          description: A human-readable message providing more details about the error.
          example: Invalid Params
          x-speakeasy-error-message: true
        detail:
          anyOf:
            - type: string
              example: Missing property foobar
            - type: object
              x-speakeasy-detail: true
              example:
                missing:
                  - foobar: required
          description: Contains parameter or domain specific information related to the error and why it occurred.
        ref:
          type: string
          description: Link to documentation of error type
          example: https://developers.apideck.com/errors#requestvalidationerror
        downstream_errors:
          type: array
          description: Contains downstream errors returned from the connector. Only present when type_name is ConnectorExecutionError.
          items:
            type: object
            properties:
              message:
                type: string
                description: Error message from the downstream provider
              detail:
                type: string
                description: Additional error details
              code:
                type: string
                description: Error code from the downstream provider
          example:
            - message: Account code '100' has been archived or deleted
              detail: Each line item must reference a valid account
              code: VALIDATION_ERROR
    BankAccount:
      type: object
      x-apideck-schema-id: BankAccount
      additionalProperties: false
      x-apideck-weights:
        account_number: critical
        account_name: medium
        account_type: medium
        iban: high
        bic: medium
        bsb_number: edge-case
        branch_identifier: low
        bank_code: low
        bank_name: medium
        currency: medium
        country: low
      properties:
        bank_name:
          type: string
          title: Bank Name
          description: The name of the bank or financial institution
          example: Chase Bank
          nullable: true
        account_number:
          type: string
          title: Account Number
          description: The bank account number
          example: '123465'
          nullable: true
        account_name:
          type: string
          title: Account Name
          description: The name of the bank account
          example: Main Operating Account
          nullable: true
        account_type:
          type: string
          title: Account Type
          x-apideck-enum-id: bank-accounts.account_type
          enum:
            - bank_account
            - credit_card
            - other
          description: The type of bank account.
          example: credit_card
          nullable: true
        iban:
          type: string
          title: IBAN
          description: International Bank Account Number
          example: GB33BUKB20201555555555
          nullable: true
        bic:
          type: string
          title: BIC/SWIFT Code
          description: Bank Identifier Code / SWIFT Code
          example: CHASUS33
          nullable: true
        routing_number:
          type: string
          title: Routing Number
          description: Bank routing number (US)
          example: '021000021'
          nullable: true
        bsb_number:
          type: string
          title: BSB Number
          description: Bank State Branch number (Australia/New Zealand)
          example: 062-001
          nullable: true
        branch_identifier:
          type: string
          title: Branch Identifier
          description: Bank branch identifier
          example: '001'
          nullable: true
        bank_code:
          type: string
          title: Bank Code
          description: Bank code assigned by central bank
          example: BNH
          nullable: true
        currency:
          $ref: '#/components/schemas/Currency'
        country:
          $ref: '#/components/schemas/Country'
    Benefit:
      type: object
      x-apideck-schema-id: Benefit
      x-apideck-weights:
        name: critical
        employee_deduction: high
        employer_contribution: high
      properties:
        name:
          type: string
          description: The name of the benefit.
          nullable: true
          example: Health Insurance
        employee_deduction:
          type: number
          description: The amount deducted for benefit.
          nullable: true
          example: 142.94
        employer_contribution:
          type: number
          description: The amount of employer contribution.
          nullable: true
          example: 141.14
    Birthday:
      type: string
      title: Birth Date
      description: The date of birth of the person.
      example: '2000-08-12'
      format: date
      nullable: true
    CompanyId:
      type: string
      title: Company ID
      description: The unique identifier of the company.
      example: '23456'
      nullable: true
    CompanyName:
      type: string
      title: Company name
      description: The name of the company.
      example: SpaceX
      nullable: true
    Compensation:
      type: object
      x-apideck-schema-id: Compensation
      x-apideck-weights:
        employee_id: critical
        net_pay: high
        gross_pay: critical
        taxes: high
        deductions: high
        benefits: high
      required:
        - employee_id
      additionalProperties: false
      properties:
        employee_id:
          $ref: '#/components/schemas/IdOrNull'
        net_pay:
          type: number
          description: The employee's net pay. Only available when payroll has been processed
          nullable: true
          example: 2199.93
        gross_pay:
          type: number
          description: The employee's gross pay. Only available when payroll has been processed
          nullable: true
          example: 3000
        taxes:
          type: array
          description: An array of employer and employee taxes for the pay period.
          nullable: true
          items:
            $ref: '#/components/schemas/Tax'
        deductions:
          type: array
          description: An array of employee deductions for the pay period.
          nullable: true
          items:
            $ref: '#/components/schemas/Deduction'
        benefits:
          type: array
          description: An array of employee benefits for the pay period.
          nullable: true
          items:
            $ref: '#/components/schemas/Benefit'
    Country:
      type: string
      example: US
      title: Country Code
      description: Country code according to ISO 3166-1 alpha-2.
      minLength: 2
      maxLength: 2
      nullable: true
    CreateDepartmentResponse:
      type: object
      x-apideck-schema-id: CreateDepartmentResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: workday
        resource:
          type: string
          description: Unified API resource name
          example: Departments
        operation:
          type: string
          description: Operation performed
          example: add
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    CreateEmployeeResponse:
      type: object
      x-apideck-schema-id: CreateEmployeeResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: add
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    CreateHrisCompanyResponse:
      type: object
      x-apideck-schema-id: CreateHrisCompanyResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: undefined
        resource:
          type: string
          description: Unified API resource name
          example: Companies
        operation:
          type: string
          description: Operation performed
          example: add
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    CreateTimeOffRequestResponse:
      type: object
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: bamboohr
        resource:
          type: string
          description: Unified API resource name
          example: time-off-requests
        operation:
          type: string
          description: Operation performed
          example: add
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    CreatedAt:
      type: string
      title: Created at (timestamp)
      description: The date and time when the object was created.
      format: date-time
      example: '2020-09-30T07:43:32.000Z'
      readOnly: true
      nullable: true
    CreatedBy:
      type: string
      title: Created by
      description: The user who created the object.
      example: '12345'
      readOnly: true
      nullable: true
    Currency:
      type: string
      title: Currency
      description: Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
      example: USD
      x-apideck-enum-id: currencies
      x-apideck-enum-coverage-ignore: true
      enum:
        - UNKNOWN_CURRENCY
        - AED
        - AFN
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BOV
        - BRL
        - BSD
        - BTN
        - BWP
        - BYR
        - BZD
        - CAD
        - CDF
        - CHE
        - CHF
        - CHW
        - CLF
        - CLP
        - CNY
        - COP
        - COU
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HRK
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LTL
        - LVL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRO
        - MUR
        - MVR
        - MWK
        - MXN
        - MXV
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SLL
        - SOS
        - SRD
        - SSP
        - STD
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRC
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - USN
        - USS
        - UYI
        - UYU
        - UZS
        - VEF
        - VND
        - VUV
        - WST
        - XAF
        - XAG
        - XAU
        - XBA
        - XBB
        - XBC
        - XBD
        - XCD
        - XDR
        - XOF
        - XPD
        - XPF
        - XPT
        - XTS
        - XXX
        - YER
        - ZAR
        - ZMK
        - ZMW
        - BTC
        - ETH
      x-enum-elements:
        - name: UNKNOWN_CURRENCY
          description: Unknown currency
        - name: AED
          description: United Arab Emirates dirham
        - name: AFN
          description: Afghan afghani
        - name: ALL
          description: Albanian lek
        - name: AMD
          description: Armenian dram
        - name: ANG
          description: Netherlands Antillean guilder
        - name: AOA
          description: Angolan kwanza
        - name: ARS
          description: Argentine peso
        - name: AUD
          description: Australian dollar
        - name: AWG
          description: Aruban florin
        - name: AZN
          description: Azerbaijani manat
        - name: BAM
          description: Bosnia and Herzegovina convertible mark
        - name: BBD
          description: Barbados dollar
        - name: BDT
          description: Bangladeshi taka
        - name: BGN
          description: Bulgarian lev
        - name: BHD
          description: Bahraini dinar
        - name: BIF
          description: Burundian franc
        - name: BMD
          description: Bermudian dollar
        - name: BND
          description: Brunei dollar
        - name: BOB
          description: Boliviano
        - name: BOV
          description: Bolivian Mvdol
        - name: BRL
          description: Brazilian real
        - name: BSD
          description: Bahamian dollar
        - name: BTN
          description: Bhutanese ngultrum
        - name: BWP
          description: Botswana pula
        - name: BYR
          description: Belarusian ruble
        - name: BZD
          description: Belize dollar
        - name: CAD
          description: Canadian dollar
        - name: CDF
          description: Congolese franc
        - name: CHE
          description: WIR Euro
        - name: CHF
          description: Swiss franc
        - name: CHW
          description: WIR Franc
        - name: CLF
          description: Unidad de Fomento
        - name: CLP
          description: Chilean peso
        - name: CNY
          description: Chinese yuan
        - name: COP
          description: Colombian peso
        - name: COU
          description: Unidad de Valor Real
        - name: CRC
          description: Costa Rican colon
        - name: CUC
          description: Cuban convertible peso
        - name: CUP
          description: Cuban peso
        - name: CVE
          description: Cape Verdean escudo
        - name: CZK
          description: Czech koruna
        - name: DJF
          description: Djiboutian franc
        - name: DKK
          description: Danish krone
        - name: DOP
          description: Dominican peso
        - name: DZD
          description: Algerian dinar
        - name: EGP
          description: Egyptian pound
        - name: ERN
          description: Eritrean nakfa
        - name: ETB
          description: Ethiopian birr
        - name: EUR
          description: Euro
        - name: FJD
          description: Fiji dollar
        - name: FKP
          description: Falkland Islands pound
        - name: GBP
          description: Pound sterling
        - name: GEL
          description: Georgian lari
        - name: GHS
          description: Ghanaian cedi
        - name: GIP
          description: Gibraltar pound
        - name: GMD
          description: Gambian dalasi
        - name: GNF
          description: Guinean franc
        - name: GTQ
          description: Guatemalan quetzal
        - name: GYD
          description: Guyanese dollar
        - name: HKD
          description: Hong Kong dollar
        - name: HNL
          description: Honduran lempira
        - name: HRK
          description: Croatian kuna
        - name: HTG
          description: Haitian gourde
        - name: HUF
          description: Hungarian forint
        - name: IDR
          description: Indonesian rupiah
        - name: ILS
          description: Israeli new shekel
        - name: INR
          description: Indian rupee
        - name: IQD
          description: Iraqi dinar
        - name: IRR
          description: Iranian rial
        - name: ISK
          description: Icelandic króna
        - name: JMD
          description: Jamaican dollar
        - name: JOD
          description: Jordanian dinar
        - name: JPY
          description: Japanese yen
        - name: KES
          description: Kenyan shilling
        - name: KGS
          description: Kyrgyzstani som
        - name: KHR
          description: Cambodian riel
        - name: KMF
          description: Comoro franc
        - name: KPW
          description: North Korean won
        - name: KRW
          description: South Korean won
        - name: KWD
          description: Kuwaiti dinar
        - name: KYD
          description: Cayman Islands dollar
        - name: KZT
          description: Kazakhstani tenge
        - name: LAK
          description: Lao kip
        - name: LBP
          description: Lebanese pound
        - name: LKR
          description: Sri Lankan rupee
        - name: LRD
          description: Liberian dollar
        - name: LSL
          description: Lesotho loti
        - name: LTL
          description: Lithuanian litas
        - name: LVL
          description: Latvian lats
        - name: LYD
          description: Libyan dinar
        - name: MAD
          description: Moroccan dirham
        - name: MDL
          description: Moldovan leu
        - name: MGA
          description: Malagasy ariary
        - name: MKD
          description: Macedonian denar
        - name: MMK
          description: Myanmar kyat
        - name: MNT
          description: Mongolian tögrög
        - name: MOP
          description: Macanese pataca
        - name: MRO
          description: Mauritanian ouguiya
        - name: MUR
          description: Mauritian rupee
        - name: MVR
          description: Maldivian rufiyaa
        - name: MWK
          description: Malawian kwacha
        - name: MXN
          description: Mexican peso
        - name: MXV
          description: Mexican Unidad de Inversion
        - name: MYR
          description: Malaysian ringgit
        - name: MZN
          description: Mozambican metical
        - name: NAD
          description: Namibian dollar
        - name: NGN
          description: Nigerian naira
        - name: NIO
          description: Nicaraguan córdoba
        - name: NOK
          description: Norwegian krone
        - name: NPR
          description: Nepalese rupee
        - name: NZD
          description: New Zealand dollar
        - name: OMR
          description: Omani rial
        - name: PAB
          description: Panamanian balboa
        - name: PEN
          description: Peruvian sol
        - name: PGK
          description: Papua New Guinean kina
        - name: PHP
          description: Philippine peso
        - name: PKR
          description: Pakistani rupee
        - name: PLN
          description: Polish złoty
        - name: PYG
          description: Paraguayan guaraní
        - name: QAR
          description: Qatari riyal
        - name: RON
          description: Romanian leu
        - name: RSD
          description: Serbian dinar
        - name: RUB
          description: Russian ruble
        - name: RWF
          description: Rwandan franc
        - name: SAR
          description: Saudi riyal
        - name: SBD
          description: Solomon Islands dollar
        - name: SCR
          description: Seychelles rupee
        - name: SDG
          description: Sudanese pound
        - name: SEK
          description: Swedish krona
        - name: SGD
          description: Singapore dollar
        - name: SHP
          description: Saint Helena pound
        - name: SLL
          description: Sierra Leonean leone
        - name: SOS
          description: Somali shilling
        - name: SRD
          description: Surinamese dollar
        - name: SSP
          description: South Sudanese pound
        - name: STD
          description: São Tomé and Príncipe dobra
        - name: SVC
          description: Salvadoran colón
        - name: SYP
          description: Syrian pound
        - name: SZL
          description: Swazi lilangeni
        - name: THB
          description: Thai baht
        - name: TJS
          description: Tajikstani somoni
        - name: TMT
          description: Turkmenistan manat
        - name: TND
          description: Tunisian dinar
        - name: TOP
          description: Tongan pa'anga
        - name: TRY
          description: Turkish lira
        - name: TTD
          description: Trinidad and Tobago dollar
        - name: TWD
          description: New Taiwan dollar
        - name: TZS
          description: Tanzanian shilling
        - name: UAH
          description: Ukrainian hryvnia
        - name: UGX
          description: Ugandan shilling
        - name: USD
          description: United States dollar
        - name: USN
          description: United States dollar (next day)
        - name: USS
          description: United States dollar (same day)
        - name: UYI
          description: Uruguay Peso en Unidedades Indexadas
        - name: UYU
          description: Uruguyan peso
        - name: UZS
          description: Uzbekistan som
        - name: VEF
          description: Venezuelan bolívar soberano
        - name: VND
          description: Vietnamese đồng
        - name: VUV
          description: Vanuatu vatu
        - name: WST
          description: Samoan tala
        - name: XAF
          description: CFA franc BEAC
        - name: XAG
          description: Silver
        - name: XAU
          description: Gold
        - name: XBA
          description: European Composite Unit
        - name: XBB
          description: European Monetary Unit
        - name: XBC
          description: European Unit of Account 9
        - name: XBD
          description: European Unit of Account 17
        - name: XCD
          description: East Caribbean dollar
        - name: XDR
          description: Special drawing rights (International Monetary Fund)
        - name: XOF
          description: CFA franc BCEAO
        - name: XPD
          description: Palladium
        - name: XPF
          description: CFP franc
        - name: XPT
          description: Platinum
        - name: XTS
          description: Code reserved for testing
        - name: XXX
          description: No currency
        - name: YER
          description: Yemeni rial
        - name: ZAR
          description: South African rand
        - name: ZMK
          description: Zambian kwacha
        - name: ZMW
          description: Zambian kwacha
        - name: BTC
          description: Bitcoin
        - name: ETH
          description: Ether
      nullable: true
    CustomField:
      type: object
      x-apideck-schema-id: CustomField
      additionalProperties: false
      anyOf:
        - required:
            - id
        - required:
            - name
      x-apideck-strict-any-of:
        - required:
            - id
        - required:
            - name
      x-apideck-weights:
        id: critical
        value: critical
        name: medium
        description: edge-case
      properties:
        id:
          title: ID
          description: Unique identifier for the custom field.
          type: string
          example: '2389328923893298'
          nullable: true
        name:
          title: Name
          type: string
          description: Name of the custom field.
          example: employee_level
          nullable: true
        description:
          title: Description
          type: string
          description: More information about the custom field
          example: Employee Level
          nullable: true
        value:
          anyOf:
            - type: string
              example: Uses Salesforce and Marketo
              nullable: true
            - type: number
              example: 10
              nullable: true
            - type: boolean
              example: true
              nullable: true
            - type: object
              example:
                foo: bar
              nullable: true
              additionalProperties: true
            - type: array
              items:
                anyOf:
                  - type: string
                    example: Uses Salesforce and Marketo
                    nullable: true
                  - type: number
                    example: 10
                    nullable: true
                  - type: boolean
                    example: true
                    nullable: true
                  - type: object
                    example:
                      foo: bar
                    nullable: true
                    additionalProperties: true
    CustomMappings:
      type: object
      x-apideck-schema-id: CustomMappings
      description: When custom mappings are configured on the resource, the result is included here.
      nullable: true
      readOnly: true
      additionalProperties: true
    DeceasedOn:
      type: string
      title: Deceased Date
      description: The date the person deceased.
      example: '2000-08-12'
      format: date
      nullable: true
    Deduction:
      type: object
      x-apideck-schema-id: Deduction
      x-apideck-weights:
        name: critical
        amount: critical
      properties:
        name:
          type: string
          description: The name of the deduction.
          example: Company Car
          nullable: true
        amount:
          type: number
          description: The amount deducted.
          example: 10.97
          nullable: true
    DeleteDepartmentResponse:
      type: object
      x-apideck-schema-id: DeleteDepartmentResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: workday
        resource:
          type: string
          description: Unified API resource name
          example: Departments
        operation:
          type: string
          description: Operation performed
          example: delete
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    DeleteEmployeeResponse:
      type: object
      x-apideck-schema-id: DeleteEmployeeResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: delete
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    DeleteHrisCompanyResponse:
      type: object
      x-apideck-schema-id: DeleteHrisCompanyResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: undefined
        resource:
          type: string
          description: Unified API resource name
          example: Companies
        operation:
          type: string
          description: Operation performed
          example: delete
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    DeleteTimeOffRequestResponse:
      type: object
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: bamboohr
        resource:
          type: string
          description: Unified API resource name
          example: time-off-requests
        operation:
          type: string
          description: Operation performed
          example: delete
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    Deleted:
      type: boolean
      title: Deleted
      description: Flag to indicate if the object is deleted.
      example: true
      nullable: true
    Department:
      type: object
      x-apideck-schema-id: Department
      x-apideck-weights:
        id: critical
        parent_id: medium
        name: critical
        code: medium
        description: low
        updated_by: edge-case
        created_by: edge-case
        updated_at: medium
        created_at: medium
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/Id'
        parent_id:
          description: Parent ID
          type: string
          readOnly: true
          nullable: true
          example: '22345'
        name:
          title: Name
          description: Department name
          type: string
          example: R&D
          nullable: true
        code:
          title: Code
          type: string
          example: '2'
          nullable: true
        description:
          title: Description
          type: string
          example: R&D
          nullable: true
        custom_mappings:
          $ref: '#/components/schemas/CustomMappings'
        updated_by:
          $ref: '#/components/schemas/UpdatedBy'
        created_by:
          $ref: '#/components/schemas/CreatedBy'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        pass_through:
          $ref: '#/components/schemas/PassThroughBody'
    DeprecatedDepartment:
      type: string
      title: Department
      description: The department the person is currently in. [Deprecated](https://developers.apideck.com/changelog) in favor of the dedicated department_id and department_name field.
      example: R&D
      nullable: true
      deprecated: true
    Description:
      type: string
      title: Description
      description: A description of the object.
      example: A description
      nullable: true
    Division:
      type: string
      title: Division
      description: The division the person is currently in. Usually a collection of departments or teams or regions.
      example: Europe
      nullable: true
    DownstreamId:
      type: string
      description: The third-party API ID of original entity
      example: '12345'
      nullable: true
      readOnly: true
    Email:
      type: object
      x-apideck-schema-id: Email
      required:
        - email
      additionalProperties: false
      x-apideck-weights:
        email: critical
        type: critical
        id: edge-case
      properties:
        id:
          type: string
          example: '123'
          description: Unique identifier for the email address
          nullable: true
        email:
          type: string
          format: email
          description: Email address
          example: elon@musk.com
          minLength: 1
          nullable: true
        type:
          type: string
          description: Email type
          x-apideck-enum-id: emails.type
          enum:
            - primary
            - secondary
            - work
            - personal
            - billing
            - other
          example: primary
          nullable: true
    Employee:
      type: object
      x-apideck-schema-id: Employee
      x-apideck-weights:
        id: medium
        downstream_id: medium
        first_name: critical
        last_name: critical
        middle_name: medium
        display_name: edge-case
        preferred_name: medium
        initials: low
        salutation: medium
        title: critical
        marital_status: medium
        partner: low
        division: medium
        division_id: low
        department: low
        department_id: critical
        department_name: low
        team: critical
        company_id: critical
        company_name: medium
        employment_start_date: critical
        employment_end_date: critical
        leaving_reason: edge-case
        employee_number: critical
        employment_status: critical
        employment_role: critical
        manager: critical
        ethnicity: critical
        gender: critical
        direct_reports: edge-case
        social_security_number: edge-case
        birthday: critical
        deceased_on: low
        country_of_birth: high
        description: edge-case
        pronouns: medium
        preferred_language: high
        languages: low
        nationalities: high
        photo_url: medium
        timezone: low
        source: edge-case
        source_id: edge-case
        jobs: critical
        record_url: low
        compensations: critical
        works_remote: low
        addresses: critical
        phone_numbers: critical
        emails: critical
        custom_fields: critical
        social_links: edge-case
        bank_accounts: high
        tax_code: edge-case
        tax_id: edge-case
        dietary_preference: edge-case
        food_allergies: edge-case
        tags: low
        probation_period: low
        row_version: edge-case
        deleted: medium
        updated_by: edge-case
        created_by: edge-case
        updated_at: high
        created_at: medium
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/WritableId'
        downstream_id:
          $ref: '#/components/schemas/DownstreamId'
        first_name:
          $ref: '#/components/schemas/FirstName'
        last_name:
          $ref: '#/components/schemas/LastName'
        middle_name:
          $ref: '#/components/schemas/MiddleName'
        display_name:
          title: Display name
          description: The name used to display the employee, often a combination of their first and last names.
          type: string
          example: Technoking
          nullable: true
        preferred_name:
          title: Preferred name
          description: The name the employee prefers to be addressed by, which may be different from their legal name.
          type: string
          example: Elon Musk
          nullable: true
        initials:
          $ref: '#/components/schemas/Initials'
        salutation:
          $ref: '#/components/schemas/Salutation'
        title:
          $ref: '#/components/schemas/Title'
        marital_status:
          title: Marital status
          description: The marital status of the employee.
          type: string
          example: married
          nullable: true
        partner:
          $ref: '#/components/schemas/Person'
        division:
          $ref: '#/components/schemas/Division'
        division_id:
          title: Division ID
          type: string
          description: Unique identifier of the division this employee belongs to.
          example: '12345'
          nullable: true
        department:
          $ref: '#/components/schemas/DeprecatedDepartment'
        department_id:
          title: Department ID
          type: string
          description: Unique identifier of the department ID this employee belongs to.
          example: '12345'
          nullable: true
        department_name:
          title: Department Name
          type: string
          description: Name of the department this employee belongs to.
          example: '12345'
          nullable: true
        team:
          $ref: '#/components/schemas/Team'
        company_id:
          $ref: '#/components/schemas/CompanyId'
        company_name:
          $ref: '#/components/schemas/CompanyName'
        employment_start_date:
          type: string
          title: Employee start date
          description: A Start Date is the date that the employee started working at the company
          example: '2021-10-26'
          nullable: true
        employment_end_date:
          type: string
          title: Employee end date
          description: An End Date is the date that the employee ended working at the company
          example: '2028-10-26'
          nullable: true
        leaving_reason:
          type: string
          description: The reason because the employment ended.
          example: resigned
          x-apideck-enum-id: employees.leaving_reason
          enum:
            - dismissed
            - resigned
            - redundancy
            - retired
            - other
          nullable: true
        employee_number:
          $ref: '#/components/schemas/EmployeeNumber'
        employment_status:
          $ref: '#/components/schemas/EmploymentStatus'
        employment_role:
          x-apideck-weights:
            type: critical
            sub_type: medium
          type: object
          properties:
            type:
              type: string
              title: Employment type
              description: The type of employment relationship the employee has with the organization.
              x-apideck-enum-id: employees.employment_role.type
              enum:
                - contractor
                - employee
                - freelance
                - temp
                - internship
                - other
              nullable: true
            sub_type:
              type: string
              title: Employment sub type
              description: The work schedule of the employee.
              x-apideck-enum-id: employees.employment_role.sub_type
              enum:
                - full_time
                - part_time
                - hourly
                - other
                - not_specified
              nullable: true
        ethnicity:
          type: string
          description: The ethnicity of the employee
          example: African American
          nullable: true
        manager:
          x-apideck-weights:
            id: critical
            name: medium
            first_name: medium
            last_name: medium
            email: medium
            employment_status: low
          additionalProperties: false
          type: object
          properties:
            id:
              $ref: '#/components/schemas/WritableId'
            name:
              title: Manager name
              description: The name of the manager, often a combination of their first and last names.
              type: string
              example: Elon Musk
              nullable: true
            first_name:
              $ref: '#/components/schemas/FirstName'
            last_name:
              $ref: '#/components/schemas/LastName'
            email:
              type: string
              title: Email address
              description: The email address of the manager.
              format: email
              example: elon@musk.com
              nullable: true
            employment_status:
              $ref: '#/components/schemas/EmploymentStatus'
        direct_reports:
          type: array
          title: Direct reports
          description: Direct reports is an array of ids that reflect the individuals in an organizational hierarchy who are directly supervised by this specific employee.
          items:
            type: string
          example: &ref_0
            - a0d636c6-43b3-4bde-8c70-85b707d992f4
            - a98lfd96-43b3-4bde-8c70-85b707d992e6
          nullable: true
        social_security_number:
          $ref: '#/components/schemas/SocialSecurityNumber'
        birthday:
          $ref: '#/components/schemas/Birthday'
        deceased_on:
          $ref: '#/components/schemas/DeceasedOn'
        country_of_birth:
          $ref: '#/components/schemas/Country'
        description:
          $ref: '#/components/schemas/Description'
        gender:
          $ref: '#/components/schemas/Gender'
        pronouns:
          $ref: '#/components/schemas/Pronouns'
        preferred_language:
          $ref: '#/components/schemas/Language'
        languages:
          type: array
          items:
            $ref: '#/components/schemas/Language'
        nationalities:
          type: array
          items:
            $ref: '#/components/schemas/Nationality'
        photo_url:
          $ref: '#/components/schemas/PhotoUrl'
        timezone:
          $ref: '#/components/schemas/Timezone'
        source:
          title: Source
          type: string
          description: When the employee is imported as a new hire, this field indicates what system (e.g. the name of the ATS) this employee was imported from.
          example: lever
          nullable: true
        source_id:
          title: Source ID
          type: string
          description: Unique identifier of the employee in the system this employee was imported from (e.g. the ID in the ATS).
          example: '12345'
          nullable: true
        record_url:
          $ref: '#/components/schemas/RecordUrl'
        jobs:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EmployeeJob'
        compensations:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EmployeeCompensation'
        works_remote:
          title: Remote
          description: Indicates if the employee works from a remote location.
          type: boolean
          example: true
          nullable: true
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/Address'
        phone_numbers:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumber'
        emails:
          type: array
          items:
            $ref: '#/components/schemas/Email'
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
        social_links:
          type: array
          items:
            $ref: '#/components/schemas/SocialLink'
        bank_accounts:
          type: array
          items:
            $ref: '#/components/schemas/BankAccount'
        tax_code:
          title: Tax Code
          type: string
          example: '1111'
          nullable: true
        tax_id:
          title: Tax ID
          type: string
          example: 234-32-0000
          nullable: true
        dietary_preference:
          type: string
          title: Dietary preference
          description: Indicate the employee's dietary preference.
          example: Veggie
          nullable: true
        food_allergies:
          type: array
          title: Food allergies
          description: Indicate the employee's food allergies.
          items:
            type: string
          example: &ref_2
            - No allergies
          nullable: true
        probation_period:
          type: object
          title: Probation period
          properties:
            start_date:
              type: string
              title: Probation start date
              description: The date that the employee started their probation period at the company.
              example: '2021-10-01'
              format: date
              nullable: true
            end_date:
              type: string
              title: Probation end date
              description: The date that the employee ended their probation period at the company.
              example: '2021-11-28'
              format: date
              nullable: true
        tags:
          $ref: '#/components/schemas/Tags'
        custom_mappings:
          $ref: '#/components/schemas/CustomMappings'
        row_version:
          $ref: '#/components/schemas/RowVersion'
        deleted:
          $ref: '#/components/schemas/Deleted'
        updated_by:
          $ref: '#/components/schemas/UpdatedBy'
        created_by:
          $ref: '#/components/schemas/CreatedBy'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        pass_through:
          $ref: '#/components/schemas/PassThroughBody'
    EmployeeCompensation:
      title: compensation
      x-apideck-weights:
        id: critical
        job_id: medium
        rate: high
        payment_unit: medium
        currency: high
        flsa_status: edge-case
        effective_date: low
        payment_frequency: medium
      x-apideck-strict-required:
        - rate
        - currency
        - payment_unit
      type: object
      properties:
        id:
          $ref: '#/components/schemas/IdOrNull'
        job_id:
          type: string
          title: Job ID
          description: The ID of the job to which the compensation belongs.
          example: '12345'
          nullable: true
          readOnly: true
        rate:
          type: number
          title: Rate
          description: The amount paid per payment unit.
          readOnly: false
          nullable: true
          example: 72000
        payment_unit:
          $ref: '#/components/schemas/PaymentUnit'
        currency:
          $ref: '#/components/schemas/Currency'
        flsa_status:
          type: string
          readOnly: false
          nullable: true
          description: The FLSA status for this compensation.
          x-apideck-enum-id: employees.compensations.flsa_status
          enum:
            - exempt
            - salaried-nonexempt
            - nonexempt
            - owner
            - other
        effective_date:
          type: string
          readOnly: false
          nullable: true
          title: Effective date
          description: The date on which a change to an employee's compensation takes effect.
          example: '2020-08-12'
        payment_frequency:
          $ref: '#/components/schemas/PaymentFrequency'
      example: &ref_1
        id: '3404301363494309004'
        job_id: '3490439050957906679'
        rate: 50
        payment_unit: hour
        flsa_status: nonexempt
        effective_date: '2021-06-11'
    EmployeeJob:
      x-apideck-weights:
        id: critical
        employee_id: edge-case
        title: critical
        role: medium
        start_date: high
        end_date: high
        compensation_rate: medium
        currency: medium
        payment_unit: medium
        hired_at: medium
        is_primary: medium
        status: medium
        location: medium
      x-apideck-schema-id: EmployeeJob
      title: job
      type: object
      properties:
        id:
          $ref: '#/components/schemas/IdOrNull'
        employee_id:
          $ref: '#/components/schemas/IdOrNull'
        title:
          $ref: '#/components/schemas/Title'
        role:
          $ref: '#/components/schemas/JobRole'
        start_date:
          type: string
          title: The start date of the job.
          description: The date on which the employee starts working in their current job role.
          example: '2020-08-12'
          format: date
          nullable: true
        end_date:
          type: string
          title: The end date of the job.
          description: The date on which the employee leaves or is expected to leave their current job role.
          example: '2020-08-12'
          format: date
          nullable: true
        compensation_rate:
          type: number
          title: The compensation rate of the job.
          description: The rate of pay for the employee in their current job role.
          example: 72000
          nullable: true
        currency:
          $ref: '#/components/schemas/Currency'
        payment_unit:
          $ref: '#/components/schemas/PaymentUnit'
        hired_at:
          type: string
          title: Hired date
          description: The date on which the employee was hired by the organization
          example: '2020-08-12'
          format: date
          nullable: true
        is_primary:
          title: Primary
          description: Indicates whether this the employee's primary job.
          type: boolean
          example: true
          nullable: true
        is_manager:
          title: Manager
          description: Indicates whether this the employee has a manager role.
          type: boolean
          example: true
          nullable: true
        status:
          type: string
          title: Status
          enum:
            - active
            - inactive
            - other
          x-apideck-enum-id: jobs.status
          description: Indicates the status of the job.
          example: active
          nullable: true
        location:
          $ref: '#/components/schemas/Address'
    EmployeeList:
      type: object
      x-apideck-schema-id: EmployeeList
      x-apideck-weights:
        id: medium
        first_name: critical
        last_name: critical
        updated_at: high
        created_at: medium
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/Id'
        first_name:
          $ref: '#/components/schemas/FirstName'
        last_name:
          $ref: '#/components/schemas/LastName'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
    EmployeeId:
      type: string
      title: Employee ID
      description: ID of the employee
      example: '12345'
      nullable: true
    EmployeeNumber:
      type: string
      title: Employee number
      description: An Employee Number, Employee ID or Employee Code, is a unique number that has been assigned to each individual staff member within a company.
      example: 123456-AB
      nullable: true
    EmployeePayroll:
      type: object
      x-apideck-schema-id: EmployeePayroll
      x-apideck-weights:
        id: critical
        employee_id: critical
        company_id: high
        processed: critical
        processed_date: medium
        check_date: critical
        start_date: critical
        end_date: critical
        totals: high
        compensations: medium
      required:
        - id
        - processed
        - check_date
        - start_date
        - end_date
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/IdOrNull'
        employee_id:
          $ref: '#/components/schemas/EmployeeId'
        company_id:
          $ref: '#/components/schemas/CompanyId'
        processed:
          type: boolean
          description: Whether or not the payroll has been successfully processed. Note that processed payrolls cannot be updated.
          example: false
          nullable: true
        processed_date:
          type: string
          description: The date the payroll was processed.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-08'
          nullable: true
        check_date:
          type: string
          description: The date on which employees will be paid for the payroll.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-08'
          nullable: true
        start_date:
          type: string
          description: The start date, inclusive, of the pay period.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-08'
          nullable: true
        end_date:
          type: string
          description: The end date, inclusive, of the pay period.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-21'
          nullable: true
        totals:
          $ref: '#/components/schemas/PayrollTotals'
        compensations:
          type: array
          description: An array of compensations for the payroll.
          items:
            $ref: '#/components/schemas/Compensation'
    EmployeeSchedules:
      type: object
      x-apideck-schema-id: EmployeeSchedules
      properties:
        employee:
          $ref: '#/components/schemas/Employee'
        schedules:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Schedule'
    EmployeesFilter:
      type: object
      x-apideck-schema-id: EmployeesFilter
      example:
        company_id: '1234'
        email: elon@tesla.com
        first_name: Elon
        last_name: Musk
        title: Manager
        manager_id: '1234'
        employment_status: active
        employee_number: 123456-AB
        department_id: '1234'
        city: San Francisco
        country: US
      properties:
        company_id:
          type: string
          description: Company ID to filter on
          example: '1234'
        email:
          type: string
          description: Email to filter on
          example: elon@tesla.com
        first_name:
          type: string
          description: First Name to filter on
          example: Elon
        title:
          type: string
          description: Job title to filter on
          example: Manager
        last_name:
          type: string
          description: Last Name to filter on
          example: Musk
        manager_id:
          type: string
          description: Manager id to filter on
          example: '1234'
        employment_status:
          type: string
          description: Employment status to filter on
          example: active
          enum:
            - active
            - inactive
            - terminated
            - other
        employee_number:
          type: string
          description: Employee number to filter on
          example: 123456-AB
        department_id:
          type: string
          description: ID of the department to filter on
          example: '1234'
        city:
          type: string
          description: City to filter on
          example: San Francisco
        country:
          type: string
          description: Country to filter on
          example: US
      additionalProperties: false
    EmployeesOneFilter:
      type: object
      x-apideck-schema-id: EmployeesOneFilter
      example:
        company_id: '1234'
      properties:
        company_id:
          type: string
          description: Company ID to filter on
          example: '1234'
      additionalProperties: false
    EmployeesSort:
      type: object
      x-apideck-schema-id: EmployeesSort
      example:
        by: created_at
        direction: desc
      properties:
        by:
          type: string
          x-apideck-enum-id: Employees.sort_by
          description: The field on which to sort the Employees
          enum:
            - first_name
            - last_name
            - created_at
            - updated_at
          example: created_at
        direction:
          $ref: '#/components/schemas/SortDirection'
      additionalProperties: false
    EmploymentStatus:
      type: string
      example: active
      title: Employment status
      description: The employment status of the employee, indicating whether they are currently employed, inactive, terminated, or in another status.
      x-apideck-enum-id: employees.employment_status
      enum:
        - active
        - inactive
        - terminated
        - other
      nullable: true
    FirstName:
      type: string
      title: First name
      description: The first name of the person.
      example: Elon
      nullable: true
    Gender:
      type: string
      x-apideck-enum-id: genders
      title: Gender
      description: The gender represents the gender identity of a person.
      enum:
        - male
        - female
        - unisex
        - other
        - not_specified
      example: male
      nullable: true
    GetDepartmentResponse:
      type: object
      x-apideck-schema-id: GetDepartmentResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: workday
        resource:
          type: string
          description: Unified API resource name
          example: Departments
        operation:
          type: string
          description: Operation performed
          example: one
        data:
          $ref: '#/components/schemas/Department'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetDepartmentsResponse:
      type: object
      x-apideck-schema-id: GetDepartmentsResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: workday
        resource:
          type: string
          description: Unified API resource name
          example: Departments
        operation:
          type: string
          description: Operation performed
          example: all
        data:
          type: array
          items:
            $ref: '#/components/schemas/Department'
        _raw:
          $ref: '#/components/schemas/Raw'
        meta:
          $ref: '#/components/schemas/Meta'
        links:
          $ref: '#/components/schemas/Links'
    GetEmployeePayrollResponse:
      type: object
      x-apideck-schema-id: GetEmployeePayrollResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: undefined
        resource:
          type: string
          description: Unified API resource name
          example: Companies
        operation:
          type: string
          description: Operation performed
          example: one
        data:
          $ref: '#/components/schemas/EmployeePayroll'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetEmployeePayrollsResponse:
      type: object
      x-apideck-schema-id: GetEmployeePayrollsResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: all
        data:
          type: array
          items:
            $ref: '#/components/schemas/EmployeePayroll'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetEmployeeResponse:
      type: object
      x-apideck-schema-id: GetEmployeeResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: one
        data:
          $ref: '#/components/schemas/Employee'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetEmployeeSchedulesResponse:
      type: object
      x-apideck-schema-id: GetEmployeeSchedulesResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: all
        data:
          $ref: '#/components/schemas/EmployeeSchedules'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetEmployeesResponse:
      type: object
      x-apideck-schema-id: GetEmployeesResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: all
        data:
          type: array
          items:
            $ref: '#/components/schemas/Employee'
        _raw:
          $ref: '#/components/schemas/Raw'
        meta:
          $ref: '#/components/schemas/Meta'
        links:
          $ref: '#/components/schemas/Links'
    GetHrisCompaniesResponse:
      type: object
      x-apideck-schema-id: GetHrisCompaniesResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: undefined
        resource:
          type: string
          description: Unified API resource name
          example: Companies
        operation:
          type: string
          description: Operation performed
          example: all
        data:
          type: array
          items:
            $ref: '#/components/schemas/HrisCompany'
        _raw:
          $ref: '#/components/schemas/Raw'
        meta:
          $ref: '#/components/schemas/Meta'
        links:
          $ref: '#/components/schemas/Links'
    GetHrisCompanyResponse:
      type: object
      x-apideck-schema-id: GetHrisCompanyResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: undefined
        resource:
          type: string
          description: Unified API resource name
          example: Companies
        operation:
          type: string
          description: Operation performed
          example: one
        data:
          $ref: '#/components/schemas/HrisCompany'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetHrisJobResponse:
      type: object
      x-apideck-schema-id: GetHrisJobResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: one
        data:
          $ref: '#/components/schemas/HrisJob'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetHrisJobsResponse:
      type: object
      x-apideck-schema-id: GetHrisJobsResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: all
        data:
          $ref: '#/components/schemas/HrisJobs'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetPayrollResponse:
      type: object
      x-apideck-schema-id: GetPayrollResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: undefined
        resource:
          type: string
          description: Unified API resource name
          example: Companies
        operation:
          type: string
          description: Operation performed
          example: one
        data:
          $ref: '#/components/schemas/Payroll'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetPayrollsResponse:
      type: object
      x-apideck-schema-id: GetPayrollsResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: all
        data:
          type: array
          items:
            $ref: '#/components/schemas/Payroll'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetTimeOffRequestResponse:
      type: object
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: bamboohr
        resource:
          type: string
          description: Unified API resource name
          example: time-off-requests
        operation:
          type: string
          description: Operation performed
          example: one
        data:
          $ref: '#/components/schemas/TimeOffRequest'
        _raw:
          $ref: '#/components/schemas/Raw'
    GetTimeOffRequestsResponse:
      type: object
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: bamboohr
        resource:
          type: string
          description: Unified API resource name
          example: time-off-requests
        operation:
          type: string
          description: Operation performed
          example: all
        data:
          type: array
          items:
            $ref: '#/components/schemas/TimeOffRequest'
        _raw:
          $ref: '#/components/schemas/Raw'
        meta:
          $ref: '#/components/schemas/Meta'
        links:
          $ref: '#/components/schemas/Links'
    HrisCompany:
      type: object
      x-apideck-schema-id: HrisCompany
      required:
        - legal_name
      x-apideck-weights:
        id: critical
        legal_name: critical
        subdomain: low
        company_number: high
        updated_at: high
        debtor_id: edge-case
        currency: low
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/Id'
        legal_name:
          type: string
          example: SpaceX
          minLength: 1
          nullable: true
        display_name:
          type: string
          example: SpaceX
          minLength: 1
          nullable: true
        subdomain:
          type: string
          example: company
          minLength: 1
          nullable: true
        status:
          type: string
          example: active
          x-apideck-enum-id: companies.status
          enum:
            - active
            - inactive
            - trial
            - other
        company_number:
          type: string
          title: Company number
          description: An Company Number, Company ID or Company Code, is a unique number that has been assigned to each company.
          example: 123456-AB
          nullable: true
        currency:
          $ref: '#/components/schemas/Currency'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/Address'
        phone_numbers:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumber'
        emails:
          type: array
          items:
            $ref: '#/components/schemas/Email'
        websites:
          type: array
          items:
            $ref: '#/components/schemas/Website'
        debtor_id:
          type: string
          example: '12345'
          minLength: 1
          nullable: true
        custom_mappings:
          $ref: '#/components/schemas/CustomMappings'
        deleted:
          type: boolean
          example: false
          readOnly: true
        updated_by:
          $ref: '#/components/schemas/UpdatedBy'
        created_by:
          $ref: '#/components/schemas/CreatedBy'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        pass_through:
          $ref: '#/components/schemas/PassThroughBody'
    HrisEventType:
      type: string
      enum:
        - '*'
        - hris.employee.created
        - hris.employee.updated
        - hris.employee.terminated
        - hris.employee.deleted
        - hris.company.created
        - hris.company.updated
        - hris.company.deleted
      example: hris.employee.created
    HrisJob:
      type: object
      x-apideck-schema-id: HrisJob
      x-apideck-weights:
        id: critical
        employee_id: critical
        title: critical
        start_date: high
        end_date: high
        employment_status: high
        is_primary: medium
        location: medium
        department: medium
      properties:
        id:
          $ref: '#/components/schemas/IdOrNull'
        employee_id:
          type: string
          description: Id of the employee
          nullable: true
        title:
          $ref: '#/components/schemas/Title'
        start_date:
          type: string
          example: '2020-08-12'
          format: date
          nullable: true
        end_date:
          type: string
          example: '2020-08-12'
          format: date
          nullable: true
        employment_status:
          $ref: '#/components/schemas/EmploymentStatus'
        department:
          type: string
          example: Brussels Office
          description: Department name
          nullable: true
        is_primary:
          title: Primary
          description: Indicates whether this the employee's primary job.
          type: boolean
          example: true
          nullable: true
        location:
          type: object
          additionalProperties: false
          properties:
            name:
              type: string
              example: HQ US
              nullable: true
        custom_mappings:
          $ref: '#/components/schemas/CustomMappings'
    HrisJobs:
      type: object
      x-apideck-schema-id: HrisJobs
      properties:
        employee:
          $ref: '#/components/schemas/Employee'
        jobs:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/HrisJob'
    HrisWebhookEvent:
      allOf:
        - $ref: '#/components/schemas/WebhookEvent'
        - properties:
            event_type:
              $ref: '#/components/schemas/HrisEventType'
          type: object
      x-sdk-exclude: true
    Id:
      type: string
      title: ID
      description: A unique identifier for an object.
      example: '12345'
      readOnly: true
    IdOrNull:
      type: string
      title: ID
      description: A unique identifier for an object.
      example: '12345'
      readOnly: true
      nullable: true
    Initials:
      type: string
      title: Initials
      description: The initials of the person, usually derived from their first, middle, and last names.
      example: EM
      nullable: true
    JobRole:
      type: string
      title: Job role
      description: The position and responsibilities of the person within the organization.
      example: Sales
      nullable: true
    Language:
      type: string
      example: EN
      description: language code according to ISO 639-1. For the United States - EN
      nullable: true
    LastName:
      type: string
      title: Last name
      description: The last name of the person.
      example: Musk
      nullable: true
    Links:
      type: object
      x-apideck-schema-id: Links
      description: Links to navigate to previous or next pages through the API
      properties:
        previous:
          type: string
          description: Link to navigate to the previous page through the API
          example: https://unify.apideck.com/crm/companies?cursor=em9oby1jcm06OnBhZ2U6OjE%3D
          nullable: true
        current:
          type: string
          description: Link to navigate to the current page through the API
          example: https://unify.apideck.com/crm/companies
        next:
          type: string
          description: Link to navigate to the previous page through the API
          example: https://unify.apideck.com/crm/companies?cursor=em9oby1jcm06OnBhZ2U6OjM
          nullable: true
    Meta:
      type: object
      x-apideck-schema-id: Meta
      description: Response metadata
      properties:
        items_on_page:
          type: integer
          description: Number of items returned in the data property of the response
          example: 50
        cursors:
          type: object
          description: Cursors to navigate to previous or next pages through the API
          properties:
            previous:
              type: string
              description: Cursor to navigate to the previous page of results through the API
              example: em9oby1jcm06OnBhZ2U6OjE=
              nullable: true
            current:
              type: string
              description: Cursor to navigate to the current page of results through the API
              example: em9oby1jcm06OnBhZ2U6OjI=
              nullable: true
            next:
              type: string
              description: Cursor to navigate to the next page of results through the API
              example: em9oby1jcm06OnBhZ2U6OjM=
              nullable: true
    MiddleName:
      type: string
      title: Middle name
      description: Middle name of the person.
      example: D.
      nullable: true
    Nationality:
      title: Nationality
      type: string
      example: US
      description: The nationality of the person, represented as a two-letter country code according to ISO 3166-1 alpha-2.
      nullable: true
    NotFoundResponse:
      type: object
      x-apideck-schema-id: NotFound
      properties:
        status_code:
          type: number
          description: HTTP status code
          example: 404
        error:
          type: string
          description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
          example: Not Found
        type_name:
          type: string
          description: The type of error returned
          example: EntityNotFoundError
        message:
          type: string
          description: A human-readable message providing more details about the error.
          example: Unknown Widget
          x-speakeasy-error-message: true
        detail:
          anyOf:
            - type: string
              example: "Could not find widget with id: '123'"
            - type: object
              x-speakeasy-detail: true
              example:
                not_found:
                  entity: widget
                  id: '123'
          description: Contains parameter or domain specific information related to the error and why it occurred.
        ref:
          type: string
          description: Link to documentation of error type
          example: https://developers.apideck.com/errors#entitynotfounderror
    NotImplementedResponse:
      type: object
      x-apideck-schema-id: NotImplemented
      properties:
        status_code:
          type: number
          description: HTTP status code
          example: 501
        error:
          type: string
          description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
          example: Not Implemented
        type_name:
          type: string
          description: The type of error returned
          example: MappingError
        message:
          type: string
          description: A human-readable message providing more details about the error.
          example: Unmapped Attribute
          x-speakeasy-error-message: true
        detail:
          anyOf:
            - type: string
              example: Failed to retrieve Widget tokenUrl from 'components.securitySchemes.OAuth2.flows'
            - type: object
              x-speakeasy-detail: true
          description: Contains parameter or domain specific information related to the error and why it occurred.
        ref:
          type: string
          description: Link to documentation of error type
          example: https://developers.apideck.com/errors#mappingerror
    PassThroughBody:
      type: array
      description: The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
      items:
        type: object
        properties:
          service_id:
            type: string
            description: Identifier for the service to which this pass_through should be applied.
          operation_id:
            type: string
            description: Optional identifier for a workflow operation to which this pass_through should be applied. This is useful for Unify calls that are making more than one downstream request.
          extend_object:
            type: object
            additionalProperties: true
            description: Simple object allowing any properties for direct extension.
          extend_paths:
            type: array
            description: Array of objects for structured data modifications via paths.
            items:
              type: object
              properties:
                path:
                  type: string
                  description: JSONPath string specifying where to apply the value.
                  example: $.nested.property
                value:
                  description: The value to set at the specified path, can be any type.
                  example: &ref_4
                    TaxClassificationRef:
                      value: EUC-99990201-V1-00020000
              required:
                - path
                - value
              additionalProperties: false
        required:
          - service_id
        additionalProperties: false
        writeOnly: true
    PassThroughQuery:
      type: object
      additionalProperties: true
      properties:
        example_downstream_property:
          type: string
          description: All passthrough query parameters are passed along to the connector as is (?pass_through[search]=leads becomes ?search=leads)
      example:
        search: San Francisco
    PaymentFrequency:
      type: string
      title: Payment Frequency
      description: Frequency of employee compensation.
      x-apideck-enum-id: payment_frequency
      enum:
        - weekly
        - biweekly
        - monthly
        - pro-rata
        - other
      example: monthly
      nullable: true
    PaymentRequiredResponse:
      type: object
      x-apideck-schema-id: PaymentRequired
      properties:
        status_code:
          type: number
          description: HTTP status code
          example: 402
        error:
          type: string
          description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
          example: Payment Required
        type_name:
          type: string
          description: The type of error returned
          example: RequestLimitError
        message:
          type: string
          description: A human-readable message providing more details about the error.
          example: Request Limit Reached
          x-speakeasy-error-message: true
        detail:
          type: string
          description: Contains parameter or domain specific information related to the error and why it occurred.
          example: You have reached your limit of 2000
        ref:
          type: string
          description: Link to documentation of error type
          example: https://developers.apideck.com/errors#requestlimiterror
    PaymentUnit:
      type: string
      title: Payment Unit
      description: Unit of measurement for employee compensation.
      x-apideck-enum-id: payment_unit
      enum:
        - hour
        - week
        - month
        - year
        - paycheck
        - other
      example: year
      nullable: true
    Payroll:
      type: object
      x-apideck-schema-id: Payroll
      x-apideck-weights:
        id: critical
        company_id: high
        processed: critical
        processed_date: medium
        check_date: critical
        start_date: critical
        end_date: critical
        totals: high
        compensations: medium
      required:
        - id
        - processed
        - check_date
        - start_date
        - end_date
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/IdOrNull'
        company_id:
          $ref: '#/components/schemas/CompanyId'
        processed:
          type: boolean
          description: Whether or not the payroll has been successfully processed. Note that processed payrolls cannot be updated.
          example: false
          nullable: true
        processed_date:
          type: string
          description: The date the payroll was processed.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-08'
          nullable: true
        check_date:
          type: string
          description: The date on which employees will be paid for the payroll.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-08'
          nullable: true
        start_date:
          type: string
          description: The start date, inclusive, of the pay period.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-08'
          nullable: true
        end_date:
          type: string
          description: The end date, inclusive, of the pay period.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-21'
          nullable: true
        totals:
          $ref: '#/components/schemas/PayrollTotals'
        compensations:
          type: array
          description: An array of compensations for the payroll.
          items:
            $ref: '#/components/schemas/Compensation'
        custom_mappings:
          $ref: '#/components/schemas/CustomMappings'
    PayrollTotals:
      type: object
      description: The overview of the payroll totals.
      x-apideck-schema-id: PayrollTotals
      properties:
        company_debit:
          type: number
          description: The total company debit for the payroll.
          example: 27992.49
          nullable: true
        tax_debit:
          type: number
          description: The total tax debit for the payroll.
          example: 8655.32
          nullable: true
        check_amount:
          type: number
          description: The total check amount for the payroll.
          example: 27966.23
          nullable: true
        net_pay:
          type: number
          description: The net pay amount for the payroll.
          example: 19337.17
          nullable: true
        gross_pay:
          type: number
          description: The gross pay amount for the payroll.
          example: 27966.23
          nullable: true
        employer_taxes:
          type: number
          description: The total amount of employer paid taxes for the payroll.
          example: 2038.93
          nullable: true
        employee_taxes:
          type: number
          description: The total amount of employee paid taxes for the payroll.
          example: 6616.39
          nullable: true
        employer_benefit_contributions:
          type: number
          description: The total amount of company contributed benefits for the payroll.
          example: 0
          nullable: true
        employee_benefit_deductions:
          type: number
          description: The total amount of employee deducted benefits for the payroll.
          example: 0
          nullable: true
    PayrollsFilter:
      type: object
      x-apideck-schema-id: PayrollsFilter
      example:
        start_date: '2022-04-08'
        end_date: '2022-04-21'
      properties:
        start_date:
          type: string
          description: Return payrolls whose pay period is after the start date
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-08'
        end_date:
          type: string
          description: Return payrolls whose pay period is before the end date
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-21'
      additionalProperties: false
    Person:
      type: object
      title: Person
      x-apideck-schema-id: Person
      x-apideck-weights:
        id: low
        first_name: critical
        last_name: critical
        middle_name: low
        gender: medium
        initials: medium
        birthday: low
        deceased_on: low
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/IdOrNull'
        first_name:
          $ref: '#/components/schemas/FirstName'
        last_name:
          $ref: '#/components/schemas/LastName'
        middle_name:
          $ref: '#/components/schemas/MiddleName'
        gender:
          $ref: '#/components/schemas/Gender'
        initials:
          type: string
          title: Initials
          description: Initials of the person
          example: EM
          nullable: true
        birthday:
          type: string
          description: Date of birth
          example: '2000-08-12'
          format: date
          nullable: true
        deceased_on:
          type: string
          description: Date of death
          example: '2000-08-12'
          format: date
          nullable: true
        custom_mappings:
          $ref: '#/components/schemas/CustomMappings'
    PhoneNumber:
      type: object
      x-apideck-schema-id: PhoneNumber
      required:
        - number
      additionalProperties: false
      x-apideck-weights:
        number: critical
        type: critical
        id: edge-case
        country_code: edge-case
        area_code: edge-case
        extension: edge-case
      properties:
        id:
          type: string
          description: Unique identifier of the phone number
          example: '12345'
          nullable: true
        country_code:
          title: Country code
          description: The country code of the phone number, e.g. +1
          type: string
          example: '1'
          nullable: true
        area_code:
          title: Area code
          description: The area code of the phone number, e.g. 323
          type: string
          example: '323'
          nullable: true
        number:
          type: string
          title: Phone number
          description: The phone number
          example: 111-111-1111
          minLength: 1
        extension:
          type: string
          title: Phone extension
          description: The extension of the phone number
          example: '105'
          nullable: true
        type:
          type: string
          description: The type of phone number
          x-apideck-enum-id: phone_numbers.type
          enum:
            - primary
            - secondary
            - home
            - work
            - office
            - mobile
            - assistant
            - fax
            - direct-dial-in
            - personal
            - billing
            - other
          example: primary
          nullable: true
    PhotoUrl:
      type: string
      title: Photo URL
      description: The URL of the photo of a person.
      example: https://unavatar.io/elon-musk
      nullable: true
    Pronouns:
      title: Pronouns
      description: The preferred pronouns of the person.
      type: string
      example: she,her
      nullable: true
    PolicyType:
      type: string
      description: The policy type of the time off request
      example: sick
    RecordUrl:
      type: string
      title: Record URL
      example: https://app.intercom.io/contacts/12345
      nullable: true
    RowVersion:
      type: string
      title: Row version
      description: A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object.
      example: 1-12345
      nullable: true
    Salutation:
      type: string
      description: A formal salutation for the person. For example, 'Mr', 'Mrs'
      example: Mr
      nullable: true
    Schedule:
      type: object
      x-apideck-schema-id: Schedule
      x-apideck-weights:
        id: critical
        start_date: critical
        end_date: critical
        work_pattern: critical
      required:
        - id
        - start_date
        - end_date
        - work_pattern
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/Id'
        start_date:
          type: string
          description: The start date, inclusive, of the schedule period.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-08'
        end_date:
          type: string
          description: The end date, inclusive, of the schedule period.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-21'
        work_pattern:
          type: object
          properties:
            odd_weeks:
              type: object
              properties:
                hours_monday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 8
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_tuesday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 8
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_wednesday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 4
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_thursday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 7.5
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_friday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 4
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_saturday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 0
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_sunday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 0
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
            even_weeks:
              type: object
              properties:
                hours_monday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 8
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_tuesday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 8
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_wednesday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 4
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_thursday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 7.5
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_friday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 4
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_saturday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 0
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
                hours_sunday:
                  type: number
                  format: double
                  pattern: ^(\d{1,2})(\.\d{1,2})?$
                  example: 0
                  minimum: 0
                  maximum: 24
                  nullable: false
                  readOnly: false
    SocialLink:
      type: object
      x-apideck-schema-id: SocialLink
      required:
        - url
      additionalProperties: false
      x-apideck-weights:
        id: edge-case
        url: critical
        type: critical
      properties:
        id:
          description: Unique identifier of the social link
          type: string
          example: '12345'
          nullable: true
        url:
          description: URL of the social link, e.g. https://www.twitter.com/apideck
          type: string
          example: https://www.twitter.com/apideck
          minLength: 1
        type:
          description: Type of the social link, e.g. twitter
          type: string
          example: twitter
          nullable: true
    SocialSecurityNumber:
      type: string
      title: Social Security Number
      description: A unique identifier assigned by the government. This field is considered sensitive information and may be subject to special security and privacy restrictions.
      example: '123456789'
      nullable: true
    SortDirection:
      type: string
      x-apideck-schema-id: SortDirection
      description: The direction in which to sort the results
      x-apideck-enum-id: sort_direction
      enum:
        - asc
        - desc
      default: asc
    Tags:
      type: array
      x-apideck-schema-id: Tags
      items:
        type: string
      example: &ref_3
        - New
      nullable: true
    Tax:
      type: object
      x-apideck-schema-id: Tax
      x-apideck-weights:
        name: high
        employer: high
        amount: high
      properties:
        name:
          type: string
          description: The name of the tax.
          example: CA State Income Tax
          nullable: true
        employer:
          type: boolean
          description: Paid by employer.
          example: false
          nullable: true
        amount:
          type: number
          description: The amount of the tax.
          example: 1.97
          nullable: true
    Team:
      type: object
      x-apideck-schema-id: Team
      description: The team the person is currently in.
      additionalProperties: false
      properties:
        id:
          type: string
          description: The unique identifier of the team.
          example: '1234'
          nullable: true
        name:
          type: string
          description: The name of the team.
          example: Full Stack Engineers
          nullable: true
      nullable: true
    TimeOffRequest:
      type: object
      additionalProperties: false
      x-apideck-weights:
        id: high
        employee_id: high
        policy_id: low
        status: high
        description: medium
        start_date: high
        end_date: high
        request_date: medium
        request_type: medium
        approval_date: medium
        units: medium
        amount: medium
        notes: low
        updated_by: edge-case
        created_by: edge-case
        updated_at: medium
        created_at: medium
        policy_type: edge-case
        day_part: edge-case
      properties:
        id:
          $ref: '#/components/schemas/Id'
        employee_id:
          $ref: '#/components/schemas/EmployeeId'
        policy_id:
          type: string
          title: Policy ID
          description: ID of the policy
          example: '12345'
          nullable: true
        status:
          type: string
          title: Status
          enum:
            - requested
            - approved
            - declined
            - cancelled
            - deleted
            - other
          description: The status of the time off request.
          x-apideck-enum-id: time-off-requests.status
          example: approved
          nullable: true
        description:
          type: string
          title: Description
          description: Description of the time off request.
          example: Enjoying some sun.
          nullable: true
        start_date:
          type: string
          description: The start date of the time off request.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-01'
          nullable: true
        end_date:
          type: string
          description: The end date of the time off request.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-01'
          nullable: true
        request_date:
          type: string
          description: The date the request was made.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-03-21'
          nullable: true
        request_type:
          type: string
          enum:
            - vacation
            - sick
            - personal
            - jury_duty
            - volunteer
            - bereavement
            - other
          description: The type of request
          x-apideck-enum-id: time-off-requests.type
          example: vacation
          nullable: true
        approval_date:
          type: string
          description: The date the request was approved
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-03-21'
          nullable: true
        units:
          type: string
          enum:
            - days
            - hours
            - other
          description: 'The unit of time off requested. Possible values include: `hours`, `days`, or `other`.'
          x-apideck-enum-id: time-off-requests.units
          example: hours
          nullable: true
        amount:
          type: number
          description: The amount of time off requested.
          example: 3.5
          nullable: true
        day_part:
          type: string
          description: The day part of the time off request.
          example: morning
          nullable: true
        notes:
          type: object
          properties:
            employee:
              type: string
              title: Employee note
              example: Relaxing on the beach for a few hours.
              nullable: true
            manager:
              type: string
              title: Manager note
              example: Enjoy!
              nullable: true
        custom_mappings:
          $ref: '#/components/schemas/CustomMappings'
        updated_by:
          $ref: '#/components/schemas/UpdatedBy'
        created_by:
          $ref: '#/components/schemas/CreatedBy'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        pass_through:
          $ref: '#/components/schemas/PassThroughBody'
        policy_type:
          $ref: '#/components/schemas/PolicyType'
    TimeOffRequestsFilter:
      type: object
      example:
        start_date: '2022-04-08'
        end_date: '2022-04-21'
        updated_since: '2020-09-30T07:43:32.000Z'
        employee_id: '1234'
        time_off_request_status: approved
        company_id: '1234'
      properties:
        start_date:
          type: string
          description: Start date of the date range to filter time off requests. When used with end_date, filters for requests within the specified date range.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-08'
        end_date:
          type: string
          description: End date of the date range to filter time off requests. When used with start_date, filters for requests within the specified date range.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '2022-04-21'
        updated_since:
          type: string
          description: Minimum date the time off request was last created or modified
          example: '2020-09-30T07:43:32.000Z'
        employee_id:
          type: string
          description: Employee ID
          example: '1234'
        time_off_request_status:
          type: string
          description: Time off request status to filter on
          example: requested
          enum:
            - requested
            - approved
            - declined
            - cancelled
            - deleted
            - other
        company_id:
          type: string
          description: Company ID
          example: '1234'
      additionalProperties: false
    Timezone:
      title: Timezone
      description: The time zone related to the resource. The value is a string containing a standard time zone identifier, e.g. Europe/London.
      type: string
      example: Europe/London
      nullable: true
    Title:
      type: string
      title: Job title
      description: The job title of the person.
      example: CEO
      nullable: true
    TooManyRequestsResponse:
      type: object
      x-apideck-schema-id: TooManyRequests
      properties:
        status_code:
          type: number
          description: HTTP status code
          example: 429
        error:
          type: string
          description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 6585)
          example: Too Many Requests
        type_name:
          type: string
          description: The type of error returned
          example: ConnectorRateLimitError
        message:
          type: string
          description: A human-readable message providing more details about the error.
          example: Connector Rate Limit Error
          x-speakeasy-error-message: true
        detail:
          type: object
          properties:
            context:
              type: string
            error:
              type: object
              x-speakeasy-detail: true
        ref:
          type: string
          description: Link to documentation of error type
          example: https://developers.apideck.com/errors#connectorratelimiterror
    UnauthorizedResponse:
      type: object
      x-apideck-schema-id: Unauthorized
      properties:
        status_code:
          type: number
          description: HTTP status code
          example: 401
        error:
          type: string
          description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
          example: Unauthorized
        type_name:
          type: string
          description: The type of error returned
          example: UnauthorizedError
        message:
          type: string
          description: A human-readable message providing more details about the error.
          example: Unauthorized Request
          x-speakeasy-error-message: true
        detail:
          anyOf:
            - type: string
              example: Missing authentication
            - type: object
              x-speakeasy-detail: true
              properties:
                type:
                  type: string
                  description: Error type identifier
                  example: refresh_token_connector_error
                message:
                  type: string
                  description: Detailed error message
                  example: Token refresh failed
                debug:
                  type: object
                  description: Debug information including request/response details and OAuth timing metadata
                  properties:
                    request:
                      type: object
                      description: HTTP request details
                    response:
                      type: object
                      description: HTTP response details
                    message:
                      type: string
                      description: Error message from downstream provider or network layer
                    code:
                      type: string
                      description: Error code (e.g., ETIMEDOUT, ECONNREFUSED)
                    credentials_expire_at_ms:
                      type: number
                      description: Unix timestamp (milliseconds) when credentials will be deleted if not refreshed. Only present for non-recoverable errors (401, 400). Credentials are preserved indefinitely for recoverable/network errors.
                      example: 1620172800000
                    retry_after_ms:
                      type: number
                      description: Unix timestamp (milliseconds) when token refresh retry is allowed after cooldown period expires.
                      example: 1620000030000
                    cooldown_remaining_ms:
                      type: number
                      description: Milliseconds remaining in cooldown period before retry is allowed.
                      example: 30000
              example:
                type: refresh_token_connector_error
                message: Token refresh failed with 401 error
                debug:
                  response:
                    statusCode: 401
                    data:
                      error: invalid_grant
                  credentials_expire_at_ms: 1620172800000
                  retry_after_ms: 1620000030000
                  cooldown_remaining_ms: 30000
          description: Contains parameter or domain specific information related to the error and why it occurred.
        ref:
          type: string
          description: Link to documentation of error type
          example: https://developers.apideck.com/errors#unauthorizederror
    UnexpectedErrorResponse:
      type: object
      x-apideck-schema-id: Error
      properties:
        status_code:
          type: number
          description: HTTP status code
          example: 400
        error:
          type: string
          description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
          example: Bad Request
        type_name:
          type: string
          description: The type of error returned
          example: RequestHeadersValidationError
        message:
          type: string
          description: A human-readable message providing more details about the error.
          example: Invalid Params
          x-speakeasy-error-message: true
        detail:
          anyOf:
            - type: string
              example: 'Missing Header: x-apideck-consumer-id'
            - type: object
              x-speakeasy-detail: true
              example:
                missing:
                  - x-apideck-consumer-id: required
          description: Contains parameter or domain specific information related to the error and why it occurred.
        ref:
          type: string
          description: Link to documentation of error type
          example: https://developers.apideck.com/errors#unauthorizederror
    UnifiedId:
      title: UnifiedId
      type: object
      x-apideck-schema-id: Id
      description: A object containing a unique identifier for the resource that was created, updated, or deleted.
      required:
        - id
      properties:
        id:
          title: Id
          description: The unique identifier of the resource
          type: string
          readOnly: true
          example: '12345'
    UnprocessableResponse:
      type: object
      x-apideck-schema-id: Unprocessable
      properties:
        status_code:
          type: number
          description: HTTP status code
          example: 422
        error:
          type: string
          description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
          example: Unprocessable Entity
        type_name:
          type: string
          description: The type of error returned
          example: InvalidStateError
        message:
          type: string
          description: A human-readable message providing more details about the error.
          example: Invalid State
          x-speakeasy-error-message: true
        detail:
          anyOf:
            - type: string
              example: Unprocessable request, please verify your request headers and body.
            - type: object
              x-speakeasy-detail: true
              example:
                error: Unprocessable
                message: Unprocessable request, please verify your request headers and body.
          description: Contains parameter or domain specific information related to the error and why it occurred.
        ref:
          type: string
          description: Link to documentation of error type
          example: https://developers.apideck.com/errors#invalidstateerror
    UpdateDepartmentResponse:
      type: object
      x-apideck-schema-id: UpdateDepartmentResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: workday
        resource:
          type: string
          description: Unified API resource name
          example: Departments
        operation:
          type: string
          description: Operation performed
          example: update
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    UpdateEmployeeResponse:
      type: object
      x-apideck-schema-id: UpdateEmployeeResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: sage-hr
        resource:
          type: string
          description: Unified API resource name
          example: Employees
        operation:
          type: string
          description: Operation performed
          example: update
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    UpdateHrisCompanyResponse:
      type: object
      x-apideck-schema-id: UpdateHrisCompanyResponse
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: undefined
        resource:
          type: string
          description: Unified API resource name
          example: Companies
        operation:
          type: string
          description: Operation performed
          example: update
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    UpdateTimeOffRequestResponse:
      type: object
      required:
        - status_code
        - status
        - service
        - resource
        - operation
        - data
      properties:
        status_code:
          type: integer
          description: HTTP Response Status Code
          example: 200
        status:
          type: string
          description: HTTP Response Status
          example: OK
        service:
          type: string
          description: Apideck ID of service provider
          example: bamboohr
        resource:
          type: string
          description: Unified API resource name
          example: time-off-requests
        operation:
          type: string
          description: Operation performed
          example: update
        data:
          $ref: '#/components/schemas/UnifiedId'
        _raw:
          $ref: '#/components/schemas/Raw'
    UpdatedAt:
      type: string
      title: Updated at (timestamp)
      description: The date and time when the object was last updated.
      format: date-time
      example: '2020-09-30T07:43:32.000Z'
      readOnly: true
      nullable: true
    UpdatedBy:
      type: string
      title: Updated by
      description: The user who last updated the object.
      example: '12345'
      readOnly: true
      nullable: true
    WebhookEvent:
      type: object
      x-apideck-schema-id: WebhookEvent
      properties:
        event_id:
          type: string
          description: Unique reference to this request event
          example: 9755c355-56c3-4a2f-a2da-86ff4411fccb
        unified_api:
          description: Name of Apideck Unified API
          x-apideck-enum-id: unified_api
          enum:
            - accounting
            - ats
            - calendar
            - crm
            - csp
            - customer-support
            - ecommerce
            - email
            - email-marketing
            - expense-management
            - file-storage
            - form
            - hris
            - lead
            - payroll
            - pos
            - procurement
            - project-management
            - script
            - sms
            - spreadsheet
            - team-messaging
            - issue-tracking
            - time-registration
            - transactional-email
            - vault
            - data-warehouse
          example: crm
          type: string
        service_id:
          type: string
          description: Service provider identifier
          example: close
        consumer_id:
          type: string
          example: test_consumer_id
          description: Unique consumer identifier. You can freely choose a consumer ID yourself. Most of the time, this is an ID of your internal data model that represents a user or account in your system (for example account:12345). If the consumer doesn't exist yet, Vault will upsert a consumer based on your ID.
        entity_id:
          type: string
          description: The service provider's ID of the entity that triggered this event
          example: 123456ASDF
        entity_type:
          type: string
          description: The type entity that triggered this event
          example: Company
        entity_url:
          type: string
          description: The url to retrieve entity detail.
          example: https://unify.apideck.com/crm/contacts/123456
        execution_attempt:
          type: number
          description: The current count this request event has been attempted
          example: 2
        occurred_at:
          type: string
          description: ISO Datetime for when the original event occurred
          example: '2021-10-01T03:14:55.419Z'
    Website:
      type: object
      x-apideck-schema-id: Website
      required:
        - url
      additionalProperties: false
      x-apideck-weights:
        url: critical
        type: critical
        id: edge-case
      properties:
        id:
          description: Unique identifier for the website
          type: string
          example: '12345'
          nullable: true
        url:
          description: The website URL
          type: string
          example: http://example.com
          minLength: 1
        type:
          description: The type of website
          type: string
          x-apideck-enum-id: websites.type
          enum:
            - primary
            - secondary
            - work
            - personal
            - other
          example: primary
          nullable: true
    WritableId:
      type: string
      title: ID
      description: A unique identifier for an object.
      example: '12345'
      readOnly: false
      nullable: true
    Raw:
      title: raw
      type: object
      x-apideck-schema-id: Raw
      description: Raw response from the integration when raw=true query param is provided
      nullable: true
      additionalProperties: true
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: |
        To access our API, you need to sign up and obtain your unique API key. Each Unify application is assigned a single API key. You can locate your API key in the Configuration Settings section of your Apideck application. Additionally, your application’s application_id is available on the same page.

        Authenticate your API requests by including your test or live secret API key in the request header.

        - Bearer authorization header: `Authorization: Bearer "YOUR_API_KEY_HERE"`
        - Application id header: `x-apideck-app-id: "YOUR_APP_ID_HERE"`

        You should use the public keys on the SDKs and the secret keys to authenticate API requests.

        **Do not share or include your secret API keys on client side code.** Your API keys carry significant privileges. Please ensure to keep them 100% secure and be sure to not share your secret API keys in areas that are publicly accessible like GitHub.

        Learn how to set the Authorization header inside Postman https://learning.postman.com/docs/postman/sending-api-requests/authorization/#api-key

        Go to Unify to grab your API KEY https://app.apideck.com/unify/api-keys
security:
  - apiKey: []
tags:
  - name: Employees
    description: An Employee represents a worker, including personal details, employment dates, job title, department, manager, compensation, and contact info.
    x-apideck-resource-id: employees
    x-apideck-model:
      $ref: '#/components/schemas/Employee'
  - name: Companies
    description: A Company represents an employing organization, including legal name, display name, addresses, and status.
    x-apideck-resource-id: companies
    x-apideck-model:
      $ref: '#/components/schemas/HrisCompany'
  - name: Departments
    description: A Department represents an organizational unit, including name, code, parent department, and associated employees.
    x-apideck-resource-id: departments
    x-apideck-model:
      $ref: '#/components/schemas/Department'
  - name: Payrolls
    description: A Payroll represents a pay run, including pay period dates, total amounts, status, and linked company.
    x-apideck-resource-id: payrolls
    x-apideck-model:
      $ref: '#/components/schemas/Payroll'
  - name: Employee Payrolls
    description: An Employee Payroll represents an individual's pay details for a period, including gross pay, deductions, taxes, and net pay.
    x-apideck-resource-id: employee-payrolls
    x-apideck-model:
      $ref: '#/components/schemas/EmployeePayroll'
  - name: Employee Schedules
    description: An Employee Schedule represents work time assignments, including schedule entries with start time, end time, and work location.
    x-apideck-resource-id: employee-schedules
    x-apideck-model:
      $ref: '#/components/schemas/EmployeeSchedules'
  - name: Time Off Requests
    description: A Time Off Request represents an absence request, including type (vacation, sick), dates, status, and approval information.
    x-apideck-resource-id: time-off-requests
    x-apideck-model:
      $ref: '#/components/schemas/TimeOffRequest'
paths:
  /hris/employees:
    get:
      tags:
        - Employees
      operationId: employeesAll
      summary: List Employees
      description: Apideck operates as a stateless Unified API, which means that the list endpoint only provides a portion of the employee model. This is due to the fact that most HRIS systems do not readily provide all data in every call. However, you can access the complete employee model through an employee detail call.
      parameters:
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/employeesFilter'
        - $ref: '#/components/parameters/employeesSort'
        - $ref: '#/components/parameters/passThrough'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      x-apideck-gotchas:
        - connector: nmbrs
          description: We keep track of the "List Employees" response for NMBRS virtual webhooks events, which contains fewer fields compared to the "Get Employee" response.
        - connector: ceridian-dayforce
          description: |
            The Ceridian Dayforce "List Employees" endpoint only returns employee IDs by default. To get full employee details, use the "Get Employee" endpoint. For virtual webhook events on Ceridian Dayforce, we monitor the "List Employees" response, which has a very small set of fields in comparison to the "Get Employee" response. This is the reason why we only support `hris.employee.created` events for this connector.
        - connector: hibob
          description: |
            HiBob allows you to define employee fields that aren't included by default on the 'List Employees' response. By using the fields parameter, you can specifically request these properties to be part of your response.
            Additionally, if your Unify plan has the 'Custom Field Mapping' feature, you can map these properties to your responses. Once mapped, they will be included in the custom_mappings property within Unify responses.
            Important to know is that HiBob has permission controls for users to determine which data will be available on their API. This can lead to specific fields not being available (example: `birthday`).
            For getting custom field values, please use the 'Get Employee' (employeesOne) call instead of 'List Employees'.
        - connector: paylocity
          description: For virtual webhook events on Paylocity, we monitor the "List Employees" response, which has a very small set of fields in comparison of the "Get Employee" response.
        - connector: sage-hr
          description: |
            The minimum pagination `limit` is 50, since Sage HR does not support pagination with a lower limit. Pagination for Sage HR only support per 50 limits. Without the employment_status filter it will only return active employees. To fetch terminated employees, you need to include the employment_status filter with the value "terminated".
        - connector: sap-successfactors
          description: The custom fields are mapped only when they are in the personalInfoNav.
        - connector: hr-works
          description: The employment_status supports filtering on 'active'.
        - connector: bamboohr
          description: The employment role field will return "other" for list calls when the employee is terminated. To fetch the correct employment role data, you need to call the employee detail endpoint.
        - connector: rippling
          description: Include pass_through[include_terminated] in the query params to include terminated employees in the response.
        - connector: workday
          description: To avoid request timeouts when fetching all employees, it's recommended to use a limit of 20. Workday can return large amounts of data per employee, and requests exceeding 30 seconds will timeout with an "Endpoint request timed out" error.
        - connector: fourth
          description: |
            The `leaving_reason` field in Fourth is a string and not an enum. We will return `"other"` if there is a leaving reason. You can use `custom_mappings` to get the actual value.
            The `manager.id` field may be empty even when `manager.name` is present. This occurs when the manager is a former employee who is not included in the active employees list. In such cases, the manager's EmployeeID cannot be resolved from the PayrollNumber lookup.
      responses:
        '200':
          $ref: '#/components/responses/GetEmployeesResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source: {}
    post:
      tags:
        - Employees
      operationId: employeesAdd
      summary: Create Employee
      description: Create Employee
      x-apideck-gotchas:
        - connector: hibob
          description: |
            When creating an employee is required by Hibob to include the following Unifiy fields: first_name, last_name, employment_start_date, jobs[0].location.name and an email with a primary type must be provided within the emails field.
            For countries hibob doesn't accept iso code or name values so just the country common name. Example 'United States'
            HiBob API just accepts one compensation, so for the request it will be considered the first one sent in the array and the payment unit is sent yearly by default.
        - connector: humaans-io
          description: |
            When creating an employee in Humaans, it is mandatory to include the following Unify fields: first_name, last_name, title, employment_start_date, jobs[0].location.id. Additionally, within the 'emails' field, you must provide an email with a 'primary' type. Furthermore, if the employee is remote, the primary address city will be used as the remote city, and this value should be valid."
        - connector: nmbrs
          description: |
            When creating an employee, the `employment_role.type` values accepted for NMbrs are `employee`, `contractor` and `freelance`.

            **Important**: Nmbrs requires nationality data (`nationalities` field) for employees with type "payroll". When nationality is not provided:
            - Employees with `employment_role.type: "employee"` are automatically created as "external" type instead of "payroll" to avoid validation errors
            - This may affect payroll processing, benefits eligibility, and reporting in Nmbrs
            - To create employees as "payroll" type, ensure the `nationalities` field contains at least one ISO country code
            - Contractors and freelancers are always created as "external" type regardless of nationality
      parameters:
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
      security:
        - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Employee'
      responses:
        '201':
          $ref: '#/components/responses/CreateEmployeeResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            employee:
              id: '12345'
              first_name: Elon
              last_name: Musk
              middle_name: D.
              display_name: Technoking
              preferred_name: Elon Musk
              initials: EM
              salutation: Mr
              title: CEO
              marital_status: married
              partner:
                first_name: Elon
                last_name: Musk
                middle_name: D.
                gender: male
                initials: EM
                birthday: '2000-08-12'
                deceased_on: '2000-08-12'
              division: Europe
              division_id: '12345'
              department: R&D
              department_id: '12345'
              department_name: '12345'
              team:
                id: '1234'
                name: Full Stack Engineers
              company_id: '23456'
              company_name: SpaceX
              employment_start_date: '2021-10-26'
              employment_end_date: '2028-10-26'
              leaving_reason: resigned
              employee_number: 123456-AB
              employment_status: active
              employment_role:
                type: contractor
                sub_type: full_time
              ethnicity: African American
              manager:
                id: '12345'
                name: Elon Musk
                first_name: Elon
                last_name: Musk
                email: elon@musk.com
                employment_status: active
              direct_reports: *ref_0
              social_security_number: '123456789'
              birthday: '2000-08-12'
              deceased_on: '2000-08-12'
              country_of_birth: US
              description: A description
              gender: male
              pronouns: she,her
              preferred_language: EN
              languages:
                - EN
              nationalities:
                - US
              photo_url: https://unavatar.io/elon-musk
              timezone: Europe/London
              source: lever
              source_id: '12345'
              record_url: https://app.intercom.io/contacts/12345
              jobs:
                - title: CEO
                  role: Sales
                  start_date: '2020-08-12'
                  end_date: '2020-08-12'
                  compensation_rate: 72000
                  currency: USD
                  payment_unit: year
                  hired_at: '2020-08-12'
                  is_primary: true
                  is_manager: true
                  status: active
                  location:
                    id: '123'
                    type: primary
                    string: 25 Spring Street, Blackburn, VIC 3130
                    name: HQ US
                    line1: Main street
                    line2: 'apt #'
                    line3: 'Suite #'
                    line4: delivery instructions
                    line5: 'Attention: Finance Dept'
                    street_number: '25'
                    city: San Francisco
                    state: CA
                    postal_code: '94104'
                    country: US
                    latitude: '40.759211'
                    longitude: '-73.984638'
                    county: Santa Clara
                    contact_name: Elon Musk
                    salutation: Mr
                    phone_number: 111-111-1111
                    fax: 122-111-1111
                    email: elon@musk.com
                    website: https://elonmusk.com
                    notes: Address notes or delivery instructions.
                    row_version: 1-12345
              compensations:
                - *ref_1
              works_remote: true
              addresses:
                - id: '123'
                  type: primary
                  string: 25 Spring Street, Blackburn, VIC 3130
                  name: HQ US
                  line1: Main street
                  line2: 'apt #'
                  line3: 'Suite #'
                  line4: delivery instructions
                  line5: 'Attention: Finance Dept'
                  street_number: '25'
                  city: San Francisco
                  state: CA
                  postal_code: '94104'
                  country: US
                  latitude: '40.759211'
                  longitude: '-73.984638'
                  county: Santa Clara
                  contact_name: Elon Musk
                  salutation: Mr
                  phone_number: 111-111-1111
                  fax: 122-111-1111
                  email: elon@musk.com
                  website: https://elonmusk.com
                  notes: Address notes or delivery instructions.
                  row_version: 1-12345
              phone_numbers:
                - id: '12345'
                  country_code: '1'
                  area_code: '323'
                  number: 111-111-1111
                  extension: '105'
                  type: primary
              emails:
                - id: '123'
                  email: elon@musk.com
                  type: primary
              custom_fields:
                - id: '2389328923893298'
                  name: employee_level
                  description: Employee Level
                  value: Uses Salesforce and Marketo
              social_links:
                - id: '12345'
                  url: https://www.twitter.com/apideck
                  type: twitter
              bank_accounts:
                - bank_name: Chase Bank
                  account_number: '123465'
                  account_name: Main Operating Account
                  account_type: credit_card
                  iban: GB33BUKB20201555555555
                  bic: CHASUS33
                  routing_number: '021000021'
                  bsb_number: 062-001
                  branch_identifier: '001'
                  bank_code: BNH
                  currency: USD
                  country: US
              tax_code: '1111'
              tax_id: 234-32-0000
              dietary_preference: Veggie
              food_allergies: *ref_2
              probation_period:
                start_date: '2021-10-01'
                end_date: '2021-11-28'
              tags: *ref_3
              row_version: 1-12345
              deleted: true
              pass_through:
                - service_id: string
                  operation_id: string
                  extend_object: {}
                  extend_paths:
                    - path: $.nested.property
                      value: *ref_4
  /hris/employees/{id}:
    get:
      tags:
        - Employees
      operationId: employeesOne
      summary: Get Employee
      description: Get Employee
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/fields'
        - $ref: '#/components/parameters/employeesOneFilter'
        - $ref: '#/components/parameters/passThrough'
      security:
        - apiKey: []
      x-apideck-gotchas:
        - connector: hibob
          description: |
            HiBob allows you to define employee fields that aren't included by default on the 'Get Employee' response. By using the fields parameter, you can specifically request these properties to be part of your response.
            Additionally, if your Unify plan has the 'Custom Field Mapping' feature, you can map these properties to your responses. Once mapped, they will be included in the custom_mappings property within Unify responses.
            Important to know is that HiBob has permission controls for users to determine which data will be available on their API. This can lead to specific fields not being available (example: `birthday`).
        - connector: sap-successfactors
          description: The custom fields are mapped only when they are in the personalInfoNav.
        - connector: charliehr
          description: The jobs array compensation data includes only the data related to the first compensation. For more comprehensive compensation data, please refer to the compensations array.
        - connector: sympa
          description: The employment end data and jobs array are only available on the 'Get Employee' response.
        - connector: fourth
          description: |
            The `leaving_reason` field in Fourth is a string and not an enum. We will return `"other"` if there is a leaving reason. You can use `custom_mappings` to get the actual value.
            The `manager.id` field may be empty even when `manager.name` is present. This occurs when the manager is a former employee who is not included in the active employees list. In such cases, the manager's EmployeeID cannot be resolved from the PayrollNumber lookup.
        - connector: liantis
          description: |
            Liantis does not provide name fields such as `first_name`, `last_name`, or `display_name` on the Get Employee response.
            Additionally, the fields returned by the Get Employee endpoint differ from those returned by List Employees, as they use different upstream API endpoints with different data structures.
      responses:
        '200':
          $ref: '#/components/responses/GetEmployeeResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
    patch:
      tags:
        - Employees
      operationId: employeesUpdate
      summary: Update Employee
      description: Update Employee
      x-apideck-gotchas:
        - connector: hibob
          description: Certain fields like address, compensations, and title cannot be updated via the HiBob API.
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
      security:
        - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Employee'
      responses:
        '200':
          $ref: '#/components/responses/UpdateEmployeeResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
            employee:
              id: '12345'
              first_name: Elon
              last_name: Musk
              middle_name: D.
              display_name: Technoking
              preferred_name: Elon Musk
              initials: EM
              salutation: Mr
              title: CEO
              marital_status: married
              partner:
                first_name: Elon
                last_name: Musk
                middle_name: D.
                gender: male
                initials: EM
                birthday: '2000-08-12'
                deceased_on: '2000-08-12'
              division: Europe
              division_id: '12345'
              department: R&D
              department_id: '12345'
              department_name: '12345'
              team:
                id: '1234'
                name: Full Stack Engineers
              company_id: '23456'
              company_name: SpaceX
              employment_start_date: '2021-10-26'
              employment_end_date: '2028-10-26'
              leaving_reason: resigned
              employee_number: 123456-AB
              employment_status: active
              employment_role:
                type: contractor
                sub_type: full_time
              ethnicity: African American
              manager:
                id: '12345'
                name: Elon Musk
                first_name: Elon
                last_name: Musk
                email: elon@musk.com
                employment_status: active
              direct_reports: *ref_0
              social_security_number: '123456789'
              birthday: '2000-08-12'
              deceased_on: '2000-08-12'
              country_of_birth: US
              description: A description
              gender: male
              pronouns: she,her
              preferred_language: EN
              languages:
                - EN
              nationalities:
                - US
              photo_url: https://unavatar.io/elon-musk
              timezone: Europe/London
              source: lever
              source_id: '12345'
              record_url: https://app.intercom.io/contacts/12345
              jobs:
                - title: CEO
                  role: Sales
                  start_date: '2020-08-12'
                  end_date: '2020-08-12'
                  compensation_rate: 72000
                  currency: USD
                  payment_unit: year
                  hired_at: '2020-08-12'
                  is_primary: true
                  is_manager: true
                  status: active
                  location:
                    id: '123'
                    type: primary
                    string: 25 Spring Street, Blackburn, VIC 3130
                    name: HQ US
                    line1: Main street
                    line2: 'apt #'
                    line3: 'Suite #'
                    line4: delivery instructions
                    line5: 'Attention: Finance Dept'
                    street_number: '25'
                    city: San Francisco
                    state: CA
                    postal_code: '94104'
                    country: US
                    latitude: '40.759211'
                    longitude: '-73.984638'
                    county: Santa Clara
                    contact_name: Elon Musk
                    salutation: Mr
                    phone_number: 111-111-1111
                    fax: 122-111-1111
                    email: elon@musk.com
                    website: https://elonmusk.com
                    notes: Address notes or delivery instructions.
                    row_version: 1-12345
              compensations:
                - *ref_1
              works_remote: true
              addresses:
                - id: '123'
                  type: primary
                  string: 25 Spring Street, Blackburn, VIC 3130
                  name: HQ US
                  line1: Main street
                  line2: 'apt #'
                  line3: 'Suite #'
                  line4: delivery instructions
                  line5: 'Attention: Finance Dept'
                  street_number: '25'
                  city: San Francisco
                  state: CA
                  postal_code: '94104'
                  country: US
                  latitude: '40.759211'
                  longitude: '-73.984638'
                  county: Santa Clara
                  contact_name: Elon Musk
                  salutation: Mr
                  phone_number: 111-111-1111
                  fax: 122-111-1111
                  email: elon@musk.com
                  website: https://elonmusk.com
                  notes: Address notes or delivery instructions.
                  row_version: 1-12345
              phone_numbers:
                - id: '12345'
                  country_code: '1'
                  area_code: '323'
                  number: 111-111-1111
                  extension: '105'
                  type: primary
              emails:
                - id: '123'
                  email: elon@musk.com
                  type: primary
              custom_fields:
                - id: '2389328923893298'
                  name: employee_level
                  description: Employee Level
                  value: Uses Salesforce and Marketo
              social_links:
                - id: '12345'
                  url: https://www.twitter.com/apideck
                  type: twitter
              bank_accounts:
                - bank_name: Chase Bank
                  account_number: '123465'
                  account_name: Main Operating Account
                  account_type: credit_card
                  iban: GB33BUKB20201555555555
                  bic: CHASUS33
                  routing_number: '021000021'
                  bsb_number: 062-001
                  branch_identifier: '001'
                  bank_code: BNH
                  currency: USD
                  country: US
              tax_code: '1111'
              tax_id: 234-32-0000
              dietary_preference: Veggie
              food_allergies: *ref_2
              probation_period:
                start_date: '2021-10-01'
                end_date: '2021-11-28'
              tags: *ref_3
              row_version: 1-12345
              deleted: true
              pass_through:
                - service_id: string
                  operation_id: string
                  extend_object: {}
                  extend_paths:
                    - path: $.nested.property
                      value: *ref_4
    delete:
      tags:
        - Employees
      operationId: employeesDelete
      summary: Delete Employee
      description: Delete Employee
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/DeleteEmployeeResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
  /hris/companies:
    get:
      tags:
        - Companies
      operationId: companiesAll
      summary: List Companies
      description: List Companies
      parameters:
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/passThrough'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      x-apideck-gotchas:
        - connector: bamboohr.com
          description: BambooHR only allows access to company data for the currently authorized connection.
      responses:
        '200':
          $ref: '#/components/responses/GetHrisCompaniesResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source: {}
    post:
      tags:
        - Companies
      operationId: companiesAdd
      summary: Create Company
      description: Create Company
      parameters:
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
      security:
        - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HrisCompany'
      responses:
        '201':
          $ref: '#/components/responses/CreateHrisCompanyResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            company:
              legal_name: SpaceX
              display_name: SpaceX
              subdomain: company
              status: active
              company_number: 123456-AB
              currency: USD
              addresses:
                - id: '123'
                  type: primary
                  string: 25 Spring Street, Blackburn, VIC 3130
                  name: HQ US
                  line1: Main street
                  line2: 'apt #'
                  line3: 'Suite #'
                  line4: delivery instructions
                  line5: 'Attention: Finance Dept'
                  street_number: '25'
                  city: San Francisco
                  state: CA
                  postal_code: '94104'
                  country: US
                  latitude: '40.759211'
                  longitude: '-73.984638'
                  county: Santa Clara
                  contact_name: Elon Musk
                  salutation: Mr
                  phone_number: 111-111-1111
                  fax: 122-111-1111
                  email: elon@musk.com
                  website: https://elonmusk.com
                  notes: Address notes or delivery instructions.
                  row_version: 1-12345
              phone_numbers:
                - id: '12345'
                  country_code: '1'
                  area_code: '323'
                  number: 111-111-1111
                  extension: '105'
                  type: primary
              emails:
                - id: '123'
                  email: elon@musk.com
                  type: primary
              websites:
                - id: '12345'
                  url: http://example.com
                  type: primary
              debtor_id: '12345'
              pass_through:
                - service_id: string
                  operation_id: string
                  extend_object: {}
                  extend_paths:
                    - path: $.nested.property
                      value: *ref_4
  /hris/companies/{id}:
    get:
      tags:
        - Companies
      operationId: companiesOne
      summary: Get Company
      description: Get Company
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/GetHrisCompanyResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
    patch:
      tags:
        - Companies
      operationId: companiesUpdate
      summary: Update Company
      description: Update Company
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
      security:
        - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HrisCompany'
      responses:
        '200':
          $ref: '#/components/responses/UpdateHrisCompanyResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
            company:
              legal_name: SpaceX
              display_name: SpaceX
              subdomain: company
              status: active
              company_number: 123456-AB
              currency: USD
              addresses:
                - id: '123'
                  type: primary
                  string: 25 Spring Street, Blackburn, VIC 3130
                  name: HQ US
                  line1: Main street
                  line2: 'apt #'
                  line3: 'Suite #'
                  line4: delivery instructions
                  line5: 'Attention: Finance Dept'
                  street_number: '25'
                  city: San Francisco
                  state: CA
                  postal_code: '94104'
                  country: US
                  latitude: '40.759211'
                  longitude: '-73.984638'
                  county: Santa Clara
                  contact_name: Elon Musk
                  salutation: Mr
                  phone_number: 111-111-1111
                  fax: 122-111-1111
                  email: elon@musk.com
                  website: https://elonmusk.com
                  notes: Address notes or delivery instructions.
                  row_version: 1-12345
              phone_numbers:
                - id: '12345'
                  country_code: '1'
                  area_code: '323'
                  number: 111-111-1111
                  extension: '105'
                  type: primary
              emails:
                - id: '123'
                  email: elon@musk.com
                  type: primary
              websites:
                - id: '12345'
                  url: http://example.com
                  type: primary
              debtor_id: '12345'
              pass_through:
                - service_id: string
                  operation_id: string
                  extend_object: {}
                  extend_paths:
                    - path: $.nested.property
                      value: *ref_4
    delete:
      tags:
        - Companies
      operationId: companiesDelete
      summary: Delete Company
      description: Delete Company
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/DeleteHrisCompanyResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
  /hris/departments:
    get:
      tags:
        - Departments
      operationId: departmentsAll
      summary: List Departments
      description: List Departments
      parameters:
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/passThrough'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      x-apideck-gotchas:
        - connector: humaans-io
          description: Departments are mapped to teams in Humaans. Increase the limit for this API call to 200 to get the most accurate data back. The teams are inferred from number of employees defined by the limit parameter (default 20).
      responses:
        '200':
          $ref: '#/components/responses/GetDepartmentsResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source: {}
    post:
      tags:
        - Departments
      operationId: departmentsAdd
      summary: Create Department
      description: Create Department
      parameters:
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
      security:
        - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Department'
      responses:
        '201':
          $ref: '#/components/responses/CreateDepartmentResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            department:
              name: R&D
              code: '2'
              description: R&D
              pass_through:
                - service_id: string
                  operation_id: string
                  extend_object: {}
                  extend_paths:
                    - path: $.nested.property
                      value: *ref_4
  /hris/departments/{id}:
    get:
      tags:
        - Departments
      operationId: departmentsOne
      summary: Get Department
      description: Get Department
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/GetDepartmentResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
    patch:
      tags:
        - Departments
      operationId: departmentsUpdate
      summary: Update Department
      description: Update Department
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
      security:
        - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Department'
      responses:
        '200':
          $ref: '#/components/responses/UpdateDepartmentResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
            department:
              name: R&D
              code: '2'
              description: R&D
              pass_through:
                - service_id: string
                  operation_id: string
                  extend_object: {}
                  extend_paths:
                    - path: $.nested.property
                      value: *ref_4
    delete:
      tags:
        - Departments
      operationId: departmentsDelete
      summary: Delete Department
      description: Delete Department
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/DeleteDepartmentResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
  /hris/payrolls:
    get:
      tags:
        - Payrolls
      operationId: payrollsAll
      summary: List Payroll
      description: List Payroll
      parameters:
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/payrollsFilter'
        - $ref: '#/components/parameters/passThrough'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/GetPayrollsResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source: {}
  /hris/payrolls/{payroll_id}:
    get:
      tags:
        - Payrolls
      operationId: payrollsOne
      summary: Get Payroll
      description: Get Payroll
      parameters:
        - $ref: '#/components/parameters/payrollId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/GetPayrollResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            payrollId: payroll_id_example
  /hris/payrolls/employees/{employee_id}:
    get:
      tags:
        - Employee Payrolls
      operationId: employeePayrollsAll
      summary: List Employee Payrolls
      description: List payrolls for employee
      parameters:
        - $ref: '#/components/parameters/employeeId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/payrollsFilter'
        - $ref: '#/components/parameters/passThrough'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/GetEmployeePayrollsResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            employeeId: employee_id_example
  /hris/payrolls/employees/{employee_id}/payrolls/{payroll_id}:
    get:
      tags:
        - Employee Payrolls
      operationId: employeePayrollsOne
      summary: Get Employee Payroll
      description: Get payroll for employee
      parameters:
        - $ref: '#/components/parameters/payrollId'
        - $ref: '#/components/parameters/employeeId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/GetEmployeePayrollResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            payrollId: payroll_id_example
            employeeId: employee_id_example
  /hris/schedules/employees/{employee_id}:
    get:
      tags:
        - Employee Schedules
      operationId: employeeSchedulesAll
      summary: List Employee Schedules
      description: List schedules for employee, a schedule is a work pattern, not the actual worked hours, for an employee.
      parameters:
        - $ref: '#/components/parameters/employeeId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/passThrough'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/GetEmployeeSchedulesResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            employeeId: employee_id_example
  /hris/time-off-requests:
    get:
      tags:
        - Time Off Requests
      operationId: timeOffRequestsAll
      summary: List Time Off Requests
      description: List Time Off Requests
      parameters:
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/timeOffRequestsFilter'
        - $ref: '#/components/parameters/passThrough'
        - $ref: '#/components/parameters/fields'
      security:
        - apiKey: []
      x-apideck-gotchas:
        - connector: bamboohr
          description: BambooHR requires start_date and end_date parameters to successfully retrieve time off requests. These optional Unify parameters can be sent as filters[start_date] and filters[end_date]. If there are not present, they are sent to BambooHR with the default values of '1900-01-01' & '2100-12-31' respectively.
        - connector: hr-works
          description: In HR Works the start_date and end_date are required fields and the maximum date interval is one year between start_date and end_date. It doesn't support pagination right now, it can be created as per customer request.
        - connector: kenjo
          description: |
            In Kenjo the start_date and end_date are required fields and the maximum date interval is 92 days. We do not support Processed, inApproval and CancelledAfterProcessed filters from Kenjo.
        - connector: payfit
          description: |
            In Payfit the start_date parameter is supported only and will provide data of that specific month only. This endpoint is only available for French companies.
        - connector: people-hr
          description: |
            In PeopleHR, it is mandatory to provide the employee_id in the filter.
        - connector: charliehr
          description: |
            For CharlieHR, when filtering by start_date, the end_date parameter is required. Omitting end_date will result in no data being returned.
      responses:
        '200':
          $ref: '#/components/responses/GetTimeOffRequestsResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source: {}
    post:
      tags:
        - Time Off Requests
      operationId: timeOffRequestsAdd
      summary: Create Time Off Request
      description: Create Time Off Request
      parameters:
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
      security:
        - apiKey: []
      x-apideck-gotchas:
        - connector: people-hr
          description: |
            In PeopleHR, day_part value should be AM or PM. It is mandatory to provide the employee_id in the request body.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimeOffRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateTimeOffRequestResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            timeOffRequest:
              employee_id: '12345'
              policy_id: '12345'
              status: approved
              description: Enjoying some sun.
              start_date: '2022-04-01'
              end_date: '2022-04-01'
              request_date: '2022-03-21'
              request_type: vacation
              approval_date: '2022-03-21'
              units: hours
              amount: 3.5
              day_part: morning
              notes:
                employee: Relaxing on the beach for a few hours.
                manager: Enjoy!
              pass_through:
                - service_id: string
                  operation_id: string
                  extend_object: {}
                  extend_paths:
                    - path: $.nested.property
                      value: *ref_4
              policy_type: sick
  /hris/time-off-requests/employees/{employee_id}/time-off-requests/{id}:
    get:
      tags:
        - Time Off Requests
      operationId: timeOffRequestsOne
      summary: Get Time Off Request
      description: Get Time Off Request
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/fields'
        - $ref: '#/components/parameters/employeeId'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/GetTimeOffRequestResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
            employeeId: employee_id_example
    patch:
      tags:
        - Time Off Requests
      operationId: timeOffRequestsUpdate
      summary: Update Time Off Request
      description: Update Time Off Request
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/employeeId'
      security:
        - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimeOffRequest'
      responses:
        '200':
          $ref: '#/components/responses/UpdateTimeOffRequestResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
            employeeId: employee_id_example
            timeOffRequest:
              employee_id: '12345'
              policy_id: '12345'
              status: approved
              description: Enjoying some sun.
              start_date: '2022-04-01'
              end_date: '2022-04-01'
              request_date: '2022-03-21'
              request_type: vacation
              approval_date: '2022-03-21'
              units: hours
              amount: 3.5
              day_part: morning
              notes:
                employee: Relaxing on the beach for a few hours.
                manager: Enjoy!
              pass_through:
                - service_id: string
                  operation_id: string
                  extend_object: {}
                  extend_paths:
                    - path: $.nested.property
                      value: *ref_4
              policy_type: sick
    delete:
      tags:
        - Time Off Requests
      operationId: timeOffRequestsDelete
      summary: Delete Time Off Request
      description: Delete Time Off Request
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/consumerId'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/serviceId'
        - $ref: '#/components/parameters/raw'
        - $ref: '#/components/parameters/employeeId'
      security:
        - apiKey: []
      responses:
        '200':
          $ref: '#/components/responses/DeleteTimeOffRequestResponse'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '402':
          $ref: '#/components/responses/PaymentRequiredResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '422':
          $ref: '#/components/responses/UnprocessableResponse'
        default:
          $ref: '#/components/responses/UnexpectedErrorResponse'
      x-apideck-api: hris
      x-codeSamples:
        - lang: TypeScript
          label: Node
          source:
            id: id_example
            employeeId: employee_id_example
x-webhooks:
  x-sdk-exclude: true
  x-speakeasy-ignore: true
  EmployeeCreated:
    post:
      summary: Employee Created
      description: Event broadcast when an employee has been created.
      operationId: employeeCreated
      x-apideck-event-type: hris.employee.created
      parameters:
        - name: x-apideck-event-type
          in: header
          required: true
          description: The type of event that was triggered
          schema:
            $ref: '#/components/schemas/HrisEventType'
        - name: x-apideck-signature
          in: header
          required: true
          description: HMAC SHA-256 signature of the request body, used to verify the webhook came from Apideck
          schema:
            type: string
          example: 2c3b38f1a9b3349afe38829713dcd9722f47dec3ce8906ad93ce803a33f2a8a3
        - name: x-apideck-idempotency-key
          in: header
          required: true
          description: A unique identifier for the webhook event, can be used to prevent duplicate processing
          schema:
            type: string
          example: e91dea5d-8ff6-4099-8b33-d3162fb4a042
      tags:
        - Webhook Events
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payload:
                  $ref: '#/components/schemas/HrisWebhookEvent'
            example:
              payload:
                event_type: hris.employee.created
                unified_api: hris
                service_id: bamboo
                consumer_id: test_user_id
                event_id: d290f1ee-6c54-4b01-90e6-d701748f0851
                entity_id: 123456ASDF
                entity_url: https://unify.apideck.com/hris/employees/123456ASDF
                entity_type: employee
                occurred_at: '2020-01-01T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
      security: []
  EmployeeUpdated:
    post:
      summary: Employee Updated
      description: Event broadcast when an employee has been updated.
      operationId: employeeUpdated
      x-apideck-event-type: hris.employee.updated
      parameters:
        - name: x-apideck-event-type
          in: header
          required: true
          description: The type of event that was triggered
          schema:
            $ref: '#/components/schemas/HrisEventType'
        - name: x-apideck-signature
          in: header
          required: true
          description: HMAC SHA-256 signature of the request body, used to verify the webhook came from Apideck
          schema:
            type: string
          example: 2c3b38f1a9b3349afe38829713dcd9722f47dec3ce8906ad93ce803a33f2a8a3
        - name: x-apideck-idempotency-key
          in: header
          required: true
          description: A unique identifier for the webhook event, can be used to prevent duplicate processing
          schema:
            type: string
          example: e91dea5d-8ff6-4099-8b33-d3162fb4a042
      tags:
        - Webhook Events
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payload:
                  $ref: '#/components/schemas/HrisWebhookEvent'
            example:
              payload:
                event_type: hris.employee.updated
                unified_api: hris
                service_id: bamboo
                consumer_id: test_user_id
                event_id: d290f1ee-6c54-4b01-90e6-d701748f0851
                entity_id: 123456ASDF
                entity_url: https://unify.apideck.com/hris/employees/123456ASDF
                entity_type: employee
                occurred_at: '2020-01-01T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
      security: []
  EmployeeTerminated:
    post:
      summary: Employee Terminated
      description: Event broadcast when an employee has been terminated.
      operationId: employeeTerminated
      x-apideck-event-type: hris.employee.terminated
      parameters:
        - name: x-apideck-event-type
          in: header
          required: true
          description: The type of event that was triggered
          schema:
            $ref: '#/components/schemas/HrisEventType'
        - name: x-apideck-signature
          in: header
          required: true
          description: HMAC SHA-256 signature of the request body, used to verify the webhook came from Apideck
          schema:
            type: string
          example: 2c3b38f1a9b3349afe38829713dcd9722f47dec3ce8906ad93ce803a33f2a8a3
        - name: x-apideck-idempotency-key
          in: header
          required: true
          description: A unique identifier for the webhook event, can be used to prevent duplicate processing
          schema:
            type: string
          example: e91dea5d-8ff6-4099-8b33-d3162fb4a042
      tags:
        - Webhook Events
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payload:
                  $ref: '#/components/schemas/HrisWebhookEvent'
            example:
              payload:
                event_type: hris.employee.terminated
                unified_api: hris
                service_id: bamboo
                consumer_id: test_user_id
                event_id: d290f1ee-6c54-4b01-90e6-d701748f0851
                entity_id: 123456ASDF
                entity_url: https://unify.apideck.com/hris/employees/123456ASDF
                entity_type: employee
                occurred_at: '2020-01-01T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
      security: []
  EmployeeDeleted:
    post:
      summary: Employee Deleted
      description: Event broadcast when an employee has been deleted.
      operationId: employeeDeleted
      x-apideck-event-type: hris.employee.deleted
      parameters:
        - name: x-apideck-event-type
          in: header
          required: true
          description: The type of event that was triggered
          schema:
            $ref: '#/components/schemas/HrisEventType'
        - name: x-apideck-signature
          in: header
          required: true
          description: HMAC SHA-256 signature of the request body, used to verify the webhook came from Apideck
          schema:
            type: string
          example: 2c3b38f1a9b3349afe38829713dcd9722f47dec3ce8906ad93ce803a33f2a8a3
        - name: x-apideck-idempotency-key
          in: header
          required: true
          description: A unique identifier for the webhook event, can be used to prevent duplicate processing
          schema:
            type: string
          example: e91dea5d-8ff6-4099-8b33-d3162fb4a042
      tags:
        - Webhook Events
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payload:
                  $ref: '#/components/schemas/HrisWebhookEvent'
            example:
              payload:
                event_type: hris.employee.deleted
                unified_api: hris
                service_id: bamboo
                consumer_id: test_user_id
                event_id: d290f1ee-6c54-4b01-90e6-d701748f0851
                entity_id: 123456ASDF
                entity_url: https://unify.apideck.com/hris/employees/123456ASDF
                entity_type: employee
                occurred_at: '2020-01-01T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
      security: []
  CompanyCreated:
    post:
      summary: Company Created
      description: Event broadcast when a company has been created.
      operationId: companyCreated
      x-apideck-event-type: hris.company.created
      parameters:
        - name: x-apideck-event-type
          in: header
          required: true
          description: The type of event that was triggered
          schema:
            $ref: '#/components/schemas/HrisEventType'
        - name: x-apideck-signature
          in: header
          required: true
          description: HMAC SHA-256 signature of the request body, used to verify the webhook came from Apideck
          schema:
            type: string
          example: 2c3b38f1a9b3349afe38829713dcd9722f47dec3ce8906ad93ce803a33f2a8a3
        - name: x-apideck-idempotency-key
          in: header
          required: true
          description: A unique identifier for the webhook event, can be used to prevent duplicate processing
          schema:
            type: string
          example: e91dea5d-8ff6-4099-8b33-d3162fb4a042
      tags:
        - Webhook Events
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payload:
                  $ref: '#/components/schemas/HrisWebhookEvent'
            example:
              payload:
                event_type: hris.company.created
                unified_api: hris
                service_id: bamboo
                consumer_id: test_user_id
                event_id: d290f1ee-6c54-4b01-90e6-d701748f0851
                entity_id: 123456ASDF
                entity_url: https://unify.apideck.com/hris/companies/123456ASDF
                entity_type: company
                occurred_at: '2020-01-01T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
      security: []
  CompanyUpdated:
    post:
      summary: Company Updated
      description: Event broadcast when a company has been updated.
      operationId: companyUpdated
      x-apideck-event-type: hris.company.updated
      parameters:
        - name: x-apideck-event-type
          in: header
          required: true
          description: The type of event that was triggered
          schema:
            $ref: '#/components/schemas/HrisEventType'
        - name: x-apideck-signature
          in: header
          required: true
          description: HMAC SHA-256 signature of the request body, used to verify the webhook came from Apideck
          schema:
            type: string
          example: 2c3b38f1a9b3349afe38829713dcd9722f47dec3ce8906ad93ce803a33f2a8a3
        - name: x-apideck-idempotency-key
          in: header
          required: true
          description: A unique identifier for the webhook event, can be used to prevent duplicate processing
          schema:
            type: string
          example: e91dea5d-8ff6-4099-8b33-d3162fb4a042
      tags:
        - Webhook Events
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payload:
                  $ref: '#/components/schemas/HrisWebhookEvent'
            example:
              payload:
                event_type: hris.company.updated
                unified_api: hris
                service_id: bamboo
                consumer_id: test_user_id
                event_id: d290f1ee-6c54-4b01-90e6-d701748f0851
                entity_id: 123456ASDF
                entity_url: https://unify.apideck.com/hris/companies/123456ASDF
                entity_type: company
                occurred_at: '2020-01-01T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
      security: []
  CompanyDeleted:
    post:
      summary: Company Deleted
      description: Event broadcast when a company has been deleted.
      operationId: companyDeleted
      x-apideck-event-type: hris.company.deleted
      parameters:
        - name: x-apideck-event-type
          in: header
          required: true
          description: The type of event that was triggered
          schema:
            $ref: '#/components/schemas/HrisEventType'
        - name: x-apideck-signature
          in: header
          required: true
          description: HMAC SHA-256 signature of the request body, used to verify the webhook came from Apideck
          schema:
            type: string
          example: 2c3b38f1a9b3349afe38829713dcd9722f47dec3ce8906ad93ce803a33f2a8a3
        - name: x-apideck-idempotency-key
          in: header
          required: true
          description: A unique identifier for the webhook event, can be used to prevent duplicate processing
          schema:
            type: string
          example: e91dea5d-8ff6-4099-8b33-d3162fb4a042
      tags:
        - Webhook Events
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payload:
                  $ref: '#/components/schemas/HrisWebhookEvent'
            example:
              payload:
                event_type: hris.company.deleted
                unified_api: hris
                service_id: bamboo
                consumer_id: test_user_id
                event_id: d290f1ee-6c54-4b01-90e6-d701748f0851
                entity_id: 123456ASDF
                entity_url: https://unify.apideck.com/hris/companies/123456ASDF
                entity_type: company
                occurred_at: '2020-01-01T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
      security: []
