Keka HR Payroll API

The Payroll API from Keka HR — 11 operation(s) for payroll.

Operations 12

GET /api/v1/payroll/salarycomponents Get Salary components #
GET /api/v1/payroll/paygroups Get all pay groups #
GET /api/v1/payroll/paygroups/{payGroupId}/paycycles Get all pay cycles #
GET /api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/payregister Get pay register #
GET /api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches Get all pay batches #
GET /api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches/{payBatchId}/payments Get all batch payments #
PUT /api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches/{payBatchId}/payments Update the payment status #
GET /api/v1/time/payroll/paygrades Get all Pay Grades #
GET /api/v1/payroll/payband Get All Pay Bands #
GET /api/v1/payroll/salaries Get all Employee Salaries #
GET /api/v1/payroll/employees/fnf Get all employee FnF details #
GET /get-all-bonus-types Get all Bonus Types #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/keka-payroll-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

keka-payroll-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Keka HR Payroll 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: Payroll
paths:
  /api/v1/payroll/salarycomponents:
    get:
      operationId: get_salary_components
      summary: Get Salary components
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
      description: This API is used for fetching list of all salary components.
  /api/v1/payroll/paygroups:
    get:
      operationId: get_all_pay_groups
      summary: Get all pay groups
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
      description: This API is used for fetching list of all pay groups.
  /api/v1/payroll/paygroups/{payGroupId}/paycycles:
    get:
      operationId: get_all_pay_cycles
      summary: Get all pay cycles
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
      description: 'This API is used for fetching list of all pay cycles in a pay group.


        Enumerated Values


        PayrollRunStatus

        RemunerationType

        PaymentStatus


        0 = Pending

        1 = Finalized

        3 = Partial

        0 = Monthly

        1 = Daily

        2 = Hourly

        0 = UnPaid

        1 = Paid


        EmployeePayrollCycleRunStatus


        0 = SalaryOnHold = 0

        1 = PaymentOnHold

        3 = Skipped

        6 = SalaryVoid

        7 = PaymentVoid

        8 = ExecutedAsSalary

        9 = ExecutedAsArrear

        10 = FinalSettlement

        11 = FinalSettlementVoid

        12 = ReleasePayment

        13 = FinalSettlementPaymentVoid

        14 = AlreadyPaid

        15 = FinalSettlementAlreadyPaid

        16 ='
      parameters:
      - name: payGroupId
        in: path
        required: true
        schema:
          type: string
  /api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/payregister:
    get:
      operationId: get_pay_register
      summary: Get pay register
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
      description: 'This API is used for fetching pay register for a given pay cycle.


        Enumerated Values


        PayrollRunStatus

        RemunerationType

        PaymentStatus


        0 = Pending

        1 = Finalized

        3 = Partial

        0 = Monthly

        1 = Daily

        2 = Hourly

        0 = UnPaid

        1 = Paid


        EmployeePayrollCycleRunStatus


        0 = SalaryOnHold = 0

        1 = PaymentOnHold

        3 = Skipped

        6 = SalaryVoid

        7 = PaymentVoid

        8 = ExecutedAsSalary

        9 = ExecutedAsArrear

        10 = FinalSettlement

        11 = FinalSettlementVoid

        12 = ReleasePayment

        13 = FinalSettlementPaymentVoid

        14 = AlreadyPaid

        15 = FinalSettlementAlreadyPaid

        16 = Fin'
      parameters:
      - name: payGroupId
        in: path
        required: true
        schema:
          type: string
      - name: payCycleId
        in: path
        required: true
        schema:
          type: string
  /api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches:
    get:
      operationId: get_all_pay_batches
      summary: Get all pay batches
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
      description: 'This API is used for fetching list of all pay batches in a pay group.


        Enumerated Values


        PayrollRunStatus

        RemunerationType

        PaymentStatus


        0 = Pending

        1 = Finalized

        3 = Partial

        0 = Monthly

        1 = Daily

        2 = Hourly

        0 = UnPaid

        1 = Paid


        EmployeePayrollCycleRunStatus


        0 = SalaryOnHold = 0

        1 = PaymentOnHold

        3 = Skipped

        6 = SalaryVoid

        7 = PaymentVoid

        8 = ExecutedAsSalary

        9 = ExecutedAsArrear

        10 = FinalSettlement

        11 = FinalSettlementVoid

        12 = ReleasePayment

        13 = FinalSettlementPaymentVoid

        14 = AlreadyPaid

        15 = FinalSettlementAlreadyPaid

        16 ='
      parameters:
      - name: payGroupId
        in: path
        required: true
        schema:
          type: string
      - name: payCycleId
        in: path
        required: true
        schema:
          type: string
  /api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches/{payBatchId}/payments:
    get:
      operationId: get_all_batch_payments
      summary: Get all batch payments
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
      description: 'This API is used for fetching batch payments against against a batch ID,.


        Enumerated Values


        PayrollRunStatus

        RemunerationType

        PaymentStatus


        0 = Pending

        1 = Finalized

        3 = Partial

        0 = Monthly

        1 = Daily

        2 = Hourly

        0 = UnPaid

        1 = Paid


        EmployeePayrollCycleRunStatus


        0 = SalaryOnHold = 0

        1 = PaymentOnHold

        3 = Skipped

        6 = SalaryVoid

        7 = PaymentVoid

        8 = ExecutedAsSalary

        9 = ExecutedAsArrear

        10 = FinalSettlement

        11 = FinalSettlementVoid

        12 = ReleasePayment

        13 = FinalSettlementPaymentVoid

        14 = AlreadyPaid

        15 = FinalSettlementAlreadyPaid'
      parameters:
      - name: payGroupId
        in: path
        required: true
        schema:
          type: string
      - name: payCycleId
        in: path
        required: true
        schema:
          type: string
      - name: payBatchId
        in: path
        required: true
        schema:
          type: string
    put:
      operationId: update_the_payment_status
      summary: Update the payment status
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
      description: 'This API is used for updating payment status for a given batch ID. Only 100 bulk transactions will be allowed for a particular batch.


        Enumerated Values


        PayrollRunStatus

        RemunerationType

        PaymentStatus


        0 = Pending

        1 = Finalized

        3 = Partial

        0 = Monthly

        1 = Daily

        2 = Hourly

        0 = UnPaid

        1 = Paid


        EmployeePayrollCycleRunStatus


        0 = SalaryOnHold = 0

        1 = PaymentOnHold

        3 = Skipped

        6 = SalaryVoid

        7 = PaymentVoid

        8 = ExecutedAsSalary

        9 = ExecutedAsArrear

        10 = FinalSettlement

        11 = FinalSettlementVoid

        12 = ReleasePayment

        13 = FinalSettlementPaymentVoid

        14'
      parameters:
      - name: payGroupId
        in: path
        required: true
        schema:
          type: string
      - name: payCycleId
        in: path
        required: true
        schema:
          type: string
      - name: payBatchId
        in: path
        required: true
        schema:
          type: string
  /api/v1/time/payroll/paygrades:
    get:
      operationId: get_all_pay_grades
      summary: Get all Pay Grades
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
  /api/v1/payroll/payband:
    get:
      operationId: get_all_pay_bands
      summary: Get All Pay Bands
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
  /api/v1/payroll/salaries:
    get:
      operationId: get_all_employee_salaries
      summary: Get all Employee Salaries
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
  /api/v1/payroll/employees/fnf:
    get:
      operationId: get_all_employee_fnf_details
      summary: Get all employee FnF details
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
  /get-all-bonus-types:
    get:
      operationId: get_all_bonus_types
      summary: Get all Bonus Types
      tags:
      - Payroll
      responses:
        '200':
          description: Successful response
      description: Get all bonus types
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