Keka HR Core HR API

The Core HR API from Keka HR — 14 operation(s) for core hr.

OpenAPI Specification

keka-core-hr-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Keka HR Assets Core HR API
  description: REST API for the Keka HR and payroll platform covering employee records, attendance, leave, payroll, expense management, performance, recruitment, professional services automation, helpdesk, background verification, and rewards.
  version: v1
  contact:
    url: https://developers.keka.com/
  license:
    name: Keka Terms of Service
    url: https://www.keka.com/terms-of-service
servers:
- url: https://{tenant}.keka.com/api/v1
  description: Keka HR API
  variables:
    tenant:
      default: your-company
      description: Your Keka tenant subdomain
security:
- oauth2:
  - kekaapi
tags:
- name: Core HR
paths:
  /api/v1/hris/employees:
    get:
      operationId: get_all_employees
      summary: Get all employees
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>This API is used for fetching details of all employees.</p>

        <h2 id="enumerated-values">Enumerated Values</h2>

        <div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>TimeType</th>

        <th>WorkerType</th>

        <th>MaritalStatus</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 - None  <br />1 - FullTime  <br />2 - PartTime</td>

        <td>0 - None  <br />1 - Permanent  <br />2 - Contingent</td>

        <td>0 - None  <br />1- Single  <br />2 - Married  <br />3 - Widowed  <br />4 - Separated</td>

        </tr>

        </tbody>

        </table>

        </div><div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>Gender</th>

        <th>EmploymentStatus</th>

        <th>AccountStatus</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 - NotSpecified  <br />1 - Male  <br />2 - Female  <br />3 - Nonbinary  <br />4 - PreferNotToRespond</td>

        <td>0 - Working  <br />1- Relieved</td>

        <td>0 - NotRegistered  <br />1 - Registered  <br />2 - Disabled</td>

        </tr>

        </tbody>

        </table>

        </div><div class="click-to-expand-wrapper is-table-wrapper"><table>

        '
    post:
      operationId: create_employee
      summary: Create employee
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>This API is used for creating a new Employee record.</p>

        <h2 id="enumerated-values">Enumerated Values</h2>

        <div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>TimeType</th>

        <th>WorkerType</th>

        <th>MaritalStatus</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 - None  <br />1 - FullTime  <br />2 - PartTime</td>

        <td>0 - None  <br />1 - Permanent  <br />2 - Contingent</td>

        <td>0 - None  <br />1- Single  <br />2 - Married  <br />3 - Widowed  <br />4 - Separated</td>

        </tr>

        </tbody>

        </table>

        </div><div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>Gender</th>

        <th>EmploymentStatus</th>

        <th>AccountStatus</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 - NotSpecified  <br />1 - Male  <br />2 - Female  <br />3 - Nonbinary  <br />4 - PreferNotToRespond</td>

        <td>0 - Working  <br />1- Relieved</td>

        <td>0 - NotRegistered  <br />1 - Registered  <br />2 - Disabled</td>

        </tr>

        </tbody>

        </table>

        </div><div class="click-to-expand-wrapper is-table-wrapper"><table>

        <th'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                EmployeeNumber: '1234'
                DisplayName: Shubham Test
                FirstName: Shubham
                LastName: Test
                Email: shubhtest@test.com
                Gender: Male
                DateOfBirth: 09-08-1999
                DateJoined: 01-09-2021
                department: f5b7e125-d39c-4630-a332-6c97a265f953
                BusinessUnit: db76d978-8722-4e9a-9415-94f5bb523810
                JobTitle: f3f9425a-fdee-499d-8d1f-5966697e6125
                Location: 9fe494f8-dbf8-447e-9af0-c71370f4e94e
  /api/v1/hris/employees/8d04399f-8057-4b0d-ab0f-d9b9a5fb0376/personaldetails:
    put:
      operationId: update_employee_personal_details
      summary: Update Employee Personal Details
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>Update Employee personal details</p>

        '
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                currentAddress:
                  addressLine1: 404, Brut Residence
                  addressLine2: Nr. Thomas Bakery
                  countryCode: IN
                  city: Manchester
                  state: North London
                  zip: M1 1AD
                displayName: Erling Haaland
                firstName: Erling
                lastName: Haaland
                gender: 0
                dateOfBirth: '1998-01-03T00:00:00'
                middleName: Brut
                workPhone: '9822134561'
                personalEmail: earling.haaland@yopmail.com
                maritalStatus: 0
                marriageDate: '2023-03-31T00:00:00'
                relations:
                - relationType: 2
                  gender: 1
                  firstName: Brut
                  lastName: Haaland
                  displayName: Brut Haaland
                  email: brut@yopmail.com
                  dateOfBirth: '1988-07-24T00:00:00'
                  profession: Footballer
                  mobile: '9999888864'
                bloodGroup: 8
  /api/v1/hris/employees/8d04399f-8057-4b0d-ab0f-d9b9a5fb0376/jobdetails:
    put:
      operationId: update_employee_job_details
      summary: Update Employee Job Details
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>Update employee job details</p>

        '
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                location: d62a9b17-5973-4995-83fc-4952707b6d47
                jobTitle: 4a896b29-1935-4046-a6e4-eaef2aa7dfe1
                reportingManager: 7dd7e7ed-be39-47f3-beab-d498b940fd98
                attendanceNumber: KEKATTD12
                timeType: 0
  /api/v1/hris/employees/{id}:
    get:
      operationId: get_an_employee
      summary: Get an employee
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>This API is used for fetching data of a specific employee by passing the employee ID as a URI parameter.</p>

        <h2 id="enumerated-values">Enumerated Values</h2>

        <div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>TimeType</th>

        <th>WorkerType</th>

        <th>MaritalStatus</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 - None  <br />1 - FullTime  <br />2 - PartTime</td>

        <td>0 - None  <br />1 - Permanent  <br />2 - Contingent</td>

        <td>0 - None  <br />1- Single  <br />2 - Married  <br />3 - Widowed  <br />4 - Separated</td>

        </tr>

        </tbody>

        </table>

        </div><div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>Gender</th>

        <th>EmploymentStatus</th>

        <th>AccountStatus</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 - NotSpecified  <br />1 - Male  <br />2 - Female  <br />3 - Nonbinary  <br />4 - PreferNotToRespond</td>

        <td>0 - Working  <br />1- Relieved</td>

        <td>0 - NotRegistered  <br />1 - Registered  <br />2 - Disabled</td>

        </tr>

        </tbody>

        </table>

        </div><div class="c'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /api/v1/hris/employees/updatefields:
    get:
      operationId: get_all_update_fields
      summary: Get All Update Fields
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
  /api/v1/hris/groups:
    get:
      operationId: get_all_groups
      summary: Get all groups
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>This API is used for fetching list of all groups.</p>

        <h2 id="enumerated-values">Enumerated Values</h2>

        <div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>SystemGroupType</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 = None  <br />1 = BusinessUnit  <br />2 = Department  <br />3 = OrgLocation  <br />4 = CostCenter  <br />5 = Paygroup  <br />6 = ProjectTeam  <br />7 = Team,  <br />8 = ClientTeam  <br />9 = Segment</td>

        </tr>

        </tbody>

        </table>

        </div>'
  /api/v1/hris/grouptypes:
    get:
      operationId: get_all_group_types
      summary: Get all group types
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>This API is used for fetching list of all group types.</p>

        <h2 id="enumerated-values">Enumerated Values</h2>

        <div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>SystemGroupType</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 = None  <br />1 = BusinessUnit  <br />2 = Department  <br />3 = OrgLocation  <br />4 = CostCenter  <br />5 = Paygroup  <br />6 = ProjectTeam  <br />7 = Team,  <br />8 = ClientTeam  <br />9 = Segment</td>

        </tr>

        </tbody>

        </table>

        </div>'
  /api/v1/hris/departments:
    get:
      operationId: get_all_departments
      summary: Get All Departments
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
  /api/v1/hris/locations:
    get:
      operationId: get_all_locations
      summary: Get all locations
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>This API is used for fetching list of all locations.</p>

        <h2 id="enumerated-values">Enumerated Values</h2>

        <div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>SystemGroupType</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 = None  <br />1 = BusinessUnit  <br />2 = Department  <br />3 = OrgLocation  <br />4 = CostCenter  <br />5 = Paygroup  <br />6 = ProjectTeam  <br />7 = Team,  <br />8 = ClientTeam  <br />9 = Segment</td>

        </tr>

        </tbody>

        </table>

        </div>'
  /api/v1/hris/jobtitles:
    get:
      operationId: get_all_job_titles
      summary: Get all job titles
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>This API is used for fetching list of all locations.</p>

        <h2 id="enumerated-values">Enumerated Values</h2>

        <div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>SystemGroupType</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 = None  <br />1 = BusinessUnit  <br />2 = Department  <br />3 = OrgLocation  <br />4 = CostCenter  <br />5 = Paygroup  <br />6 = ProjectTeam  <br />7 = Team,  <br />8 = ClientTeam  <br />9 = Segment</td>

        </tr>

        </tbody>

        </table>

        </div>'
  /api/v1/hris/currencies:
    get:
      operationId: get_all_currencies
      summary: Get all currencies
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>This API is used for fetching list of all currencies.</p>

        <h2 id="enumerated-values">Enumerated Values</h2>

        <div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>SystemGroupType</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 = None  <br />1 = BusinessUnit  <br />2 = Department  <br />3 = OrgLocation  <br />4 = CostCenter  <br />5 = Paygroup  <br />6 = ProjectTeam  <br />7 = Team,  <br />8 = ClientTeam  <br />9 = Segment</td>

        </tr>

        </tbody>

        </table>

        </div>'
  /api/v1/hris/noticeperiods:
    get:
      operationId: get_all_noticeperiods
      summary: Get All Noticeperiods
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
  /api/v1/hris/exitreasons:
    get:
      operationId: get_all_exitreasons
      summary: Get All Exitreasons
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
  /api/v1/hris/employees/bb3175e4-4cdb-425f-b034-b49069d53d6e/exitrequest:
    post:
      operationId: create_an_exit_request
      summary: Create an Exit Request
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      description: '<p>Create an exist request for an employee</p>

        <div class="click-to-expand-wrapper is-table-wrapper"><table>

        <thead>

        <tr>

        <th>Exit Type</th>

        </tr>

        </thead>

        <tbody>

        <tr>

        <td>0 - None  <br />1 - Employee Resignation  <br />2- Company Action</td>

        </tr>

        </tbody>

        </table>

        </div>'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                exitType: 1
                exitReason: 4ce57402-db60-418e-a0b5-69c4a5fecfd0
                resignationDate: '2024-10-01T00:00:00'
                lastWorkingDate: '2024-12-01T00:00:00'
                isOkToRehire: true
                comments: Comments example 1234
    put:
      operationId: update_exit_request_for_employee
      summary: Update Exit Request for Employee
      tags:
      - Core HR
      responses:
        '200':
          description: Successful response
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                exitType: 1
                exitReason: 4ce57402-db60-418e-a0b5-69c4a5fecfd0
                resignationDate: '2024-10-01T00:00:00'
                lastWorkingDate: '2024-12-01T00:00:00'
                isOkToRehire: true
                comments: Comments example 1234
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 client credentials flow
      flows:
        clientCredentials:
          tokenUrl: https://login.keka.com/connect/token
          scopes:
            kekaapi: Access to Keka HR API