Leapsome payroll API
The payroll API from Leapsome — 2 operation(s) for payroll.
Documentation
Documentation
https://api.leapsome.com/v1/api-docs/
Documentation
https://api.leapsome.com/scim/v1/api-docs/
The payroll API from Leapsome — 2 operation(s) for payroll.
openapi: 3.0.1
info:
version: 1.0.1
title: Leapsome absences payroll API
contact:
name: Support
url: https://leapsome.zendesk.com
description: The Content API enables you to export some raw data from Leapsome for usage within your own systems and beyond what the Leapsome application offers natively. Usage is restricted to a maximum of 20 requests per second when making requests in parallel. If you exceed this limit, you will receive a 429 status code.
servers:
- url: https://api.leapsome.com/v1
tags:
- name: payroll
paths:
/payroll-cycles:
get:
summary: List payroll cycles
description: Get a paginated list of payroll cycles with optional filtering by name or status. Returns payroll cycle details including dates, status, and compensation configuration. Requires permission to manage payroll policies.
operationId: listPayrollCycles
security:
- bearerAuth: []
tags:
- payroll
parameters:
- name: name
in: query
required: false
description: Filter by payroll cycle name (partial match, case-insensitive)
schema:
type: string
- name: status
in: query
required: false
description: Filter by payroll cycle status
schema:
type: string
enum:
- draft
- active
- completed
- archived
- name: offset
in: query
required: false
description: Number of results to skip
schema:
type: integer
minimum: 0
default: 0
- name: limit
in: query
required: false
description: Maximum number of results to return
schema:
type: integer
minimum: 1
maximum: 1000
default: 100
responses:
'200':
description: A list of payroll cycles
content:
application/json:
schema:
$ref: '#/components/schemas/PayrollCycleList'
'401':
description: Authorization failed. Token is missing or invalid.
'403':
description: Insufficient permissions. Permission to manage payroll policies is required.
/payroll-cycles/{payrollCycleId}/participants:
get:
summary: List payroll cycle participants
description: Get participants for a specific payroll cycle with optional filtering by username (email) or employee ID. Requires permission to manage payroll policies.
operationId: listPayrollCycleParticipants
security:
- bearerAuth: []
tags:
- payroll
parameters:
- name: payrollCycleId
in: path
required: true
description: ID of the payroll cycle
schema:
type: string
pattern: ^[0-9a-f]{24}$
- name: username
in: query
required: false
description: Filter by employee email address
schema:
type: string
format: email
- name: employeeId
in: query
required: false
description: Filter by Leapsome employee ID
schema:
type: string
pattern: ^[0-9a-f]{24}$
- name: offset
in: query
required: false
description: Number of results to skip
schema:
type: integer
minimum: 0
default: 0
- name: limit
in: query
required: false
description: Maximum number of results to return
schema:
type: integer
minimum: 1
maximum: 1000
default: 100
responses:
'200':
description: A list of payroll cycle participants
content:
application/json:
schema:
$ref: '#/components/schemas/PayrollCycleParticipantList'
'401':
description: Authorization failed. Token is missing or invalid.
'403':
description: Insufficient permissions. Permission to manage payroll policies is required.
'404':
description: Payroll cycle not found.
components:
schemas:
PayrollCycleList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PayrollCycle'
meta:
type: object
properties:
page:
type: integer
description: Current page number
pageSize:
type: integer
description: Number of items per page
totalCount:
type: integer
description: Total number of payroll cycles
PayrollCycleParticipantList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PayrollCycleParticipant'
meta:
type: object
properties:
page:
type: integer
description: Current page number
pageSize:
type: integer
description: Number of items per page
totalCount:
type: integer
description: Total number of participants
PayrollCycle:
type: object
properties:
id:
type: string
pattern: ^[0-9a-f]{24}$
example: 58d55e3ffdc2eb20547edd0a
description: Payroll cycle ID
name:
type: string
example: Q1 2024 Payroll
description: Name of the payroll cycle
status:
type: string
enum:
- open
- pendingApproval
- approved
- overdue
- future
- reopened
example: open
description: Current status of the payroll cycle
startAt:
type: string
format: date-time
description: Start date of the payroll period
endAt:
type: string
format: date-time
description: End date of the payroll period
customPeriodStartAt:
type: string
format: date-time
description: Start date of the custom period
customPeriodEndAt:
type: string
format: date-time
description: End date of the custom period
reviewStartAt:
type: string
format: date-time
description: Start date of the review period
approvalStartAt:
type: string
format: date-time
description: Start date of the approval period
approvedAt:
type: string
format: date-time
description: Date when the payroll cycle was approved
approvedBy:
type: string
pattern: ^[0-9a-f]{24}$
description: User ID of the user who approved the payroll cycle
prorateType:
type: string
enum:
- weekly
- biWeekly
- semiMonthly
- thirtyDays
- actualNumberOfMonthDays
example: weekly
description: Type of prorate used for the payroll cycle
compensations:
type: object
properties:
salaryTypeCustomName:
type: string
description: Custom name for the salary type
baseSalaryCustomName:
type: string
description: Custom name for the base salary
salaryPerHourCustomName:
type: string
description: Custom name for the salary per hour
compensableTimeCustomName:
type: string
description: Custom name for the compensable time
hoursWorkedCustomName:
type: string
description: Custom name for the hours worked
paidAbsencesCustomName:
type: string
description: Custom name for the paid absences
createdAt:
type: string
format: date-time
description: When the payroll cycle was created
updatedAt:
type: string
format: date-time
description: When the payroll cycle was last updated
PayrollCycleParticipant:
type: object
properties:
id:
type: string
pattern: ^[0-9a-f]{24}$
example: 58d55e3ffdc2eb20547edd0a
description: Payroll cycle participant ID
name:
type: string
example: John Doe
description: Name of the participant
email:
type: string
format: email
example: jane.doe@example.com
description: Email address of the participant
compensations:
type: array
items:
type: object
properties:
name:
type: string
description: Name of the compensation
amount:
type: number
description: Amount of the compensation
amountType:
type: string
enum:
- fixed
- variable
description: Type of the compensation
recurrence:
type: string
enum:
- monthly
- every3Months
- every6Months
- every12Months
description: Recurrence of the compensation
comment:
type: string
description: Comment for the compensation
effectiveAt:
type: string
format: date-time
description: Effective date of the compensation
validUntil:
type: string
format: date-time
description: Valid until date of the compensation
salaryInfoPeriods:
type: array
items:
type: object
properties:
currency:
type: string
salary:
type: number
description: Salary for the period
salaryRemunerationPeriod:
type: string
enum:
- year
- month
- hour
description: Remuneration period of the salary
compensationType:
type: string
enum:
- fixed
- hourly
description: Type of the compensation
baseSalary:
type: number
description: Base salary for the period
isActiveParticipant:
type: boolean
description: Whether the participant is active in the payroll cycle
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT