Leapsome payroll API

The payroll API from Leapsome — 2 operation(s) for payroll.

OpenAPI Specification

leapsome-payroll-api-openapi.yml Raw ↑
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