UKG

UKG Pro HCM API

The UKG Pro HCM API provides programmatic access to human capital management data including employees, personnel actions, benefits, payroll, performance, and organizational structure. Uses Basic Authentication with service account credentials and tenant-specific API keys. Enables integrations with HR systems, payroll processors, benefits administrators, and workforce analytics platforms.

Documentation

Specifications

Examples

📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-employee-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-employee-job-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-pay-rate-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-benefits-election-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-department-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-location-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-pay-statement-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-direct-deposit-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-personnel-change-request-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-personnel-change-response-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-employee-list-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/examples/pro-hcm-employee-id-list-example.json

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-employee-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-employee-job-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-pay-rate-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-benefits-election-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-department-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-location-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-pay-statement-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-direct-deposit-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-personnel-change-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-personnel-change-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-employee-list-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-schema/pro-hcm-employee-id-list-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-employee-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-employee-job-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-pay-rate-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-benefits-election-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-department-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-location-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-pay-statement-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-direct-deposit-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-personnel-change-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-personnel-change-response-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-employee-list-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/ukg/refs/heads/main/json-structure/pro-hcm-employee-id-list-structure.json

Other Resources

OpenAPI Specification

ukg-pro-hcm-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: UKG Pro HCM API
  description: >-
    The UKG Pro HCM API provides programmatic access to human capital management
    data including employees, personnel actions, benefits, payroll, performance,
    and organizational structure. Supports REST-based web services with Basic
    Authentication and API key authorization, enabling integrations with HR systems,
    payroll processors, benefits administrators, and analytics platforms.
    Base URL for US tenants is https://service.ultipro.com.
  version: '2.0'
  contact:
    name: UKG Developer Support
    url: https://developer.ukg.com
  termsOfService: https://www.ukg.com/legal/terms
  x-generated-from: documentation
servers:
- url: https://service.ultipro.com
  description: UKG Pro HCM API (US)
- url: https://service.ultipro.ca
  description: UKG Pro HCM API (Canada)
security:
- basicAuth: []
tags:
- name: Employees
  description: Employee records and demographic data
- name: Personnel Actions
  description: Job changes, status changes, and employment actions
- name: Benefits
  description: Benefits enrollment and plan information
- name: Payroll
  description: Payroll data and check history
- name: Performance
  description: Performance reviews and goals
- name: Organization
  description: Departments, locations, and cost centers
- name: Time
  description: Time and attendance records
paths:
  /personnel/v2/employee-ids:
    get:
      operationId: listEmployeeIds
      summary: UKG Pro HCM List Employee IDs
      description: Retrieve a list of all employee identifiers accessible to the authenticated service account.
      tags:
      - Employees
      parameters:
      - name: per_page
        in: query
        schema:
          type: integer
        description: Number of results per page
        example: 100
      - name: page
        in: query
        schema:
          type: integer
        description: Page number
        example: 1
      responses:
        '200':
          description: Successful response with list of employee IDs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeIdList'
              examples:
                listEmployeeIds200Example:
                  summary: Default listEmployeeIds 200 response
                  x-microcks-default: true
                  value:
                    employeeIds:
                    - example-value
                    total: 1
                    page: 1
        '401':
          description: Unauthorized - invalid credentials
        '403':
          description: Forbidden - insufficient permissions
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /personnel/v2/employees:
    get:
      operationId: listEmployees
      summary: UKG Pro HCM List Employees
      description: Retrieve employee records with demographic and employment information.
      tags:
      - Employees
      parameters:
      - name: per_page
        in: query
        schema:
          type: integer
        description: Number of results per page
        example: 25
      - name: page
        in: query
        schema:
          type: integer
        description: Page number for pagination
        example: 1
      - name: employeeId
        in: query
        schema:
          type: string
        description: Filter by specific employee ID
        example: EMP001
      responses:
        '200':
          description: List of employee records
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeList'
              examples:
                listEmployees200Example:
                  summary: Default listEmployees 200 response
                  x-microcks-default: true
                  value:
                    employees:
                    - {}
                    total: 1
                    page: 1
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /personnel/v2/employees/{employeeId}:
    get:
      operationId: getEmployee
      summary: UKG Pro HCM Get Employee
      description: Retrieve detailed information for a specific employee.
      tags:
      - Employees
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
        description: Employee identifier
        example: EMP001
      responses:
        '200':
          description: Employee details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employee'
              examples:
                getEmployee200Example:
                  summary: Default getEmployee 200 response
                  x-microcks-default: true
                  value:
                    employeeId: example-value
                    firstName: example-value
                    lastName: example-value
                    email: [email protected]
                    employmentStatus: Active
                    hireDate: '2026-01-15'
                    departmentId: example-value
                    locationId: example-value
                    jobTitle: example-value
                    managerId: example-value
        '404':
          description: Employee not found
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /personnel/v2/employees/{employeeId}/jobs:
    get:
      operationId: getEmployeeJobs
      summary: UKG Pro HCM Get Employee Jobs
      description: Retrieve job history and current job assignment for an employee.
      tags:
      - Employees
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
        description: Employee identifier
        example: EMP001
      responses:
        '200':
          description: Employee job assignment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeJob'
              examples:
                getEmployeeJobs200Example:
                  summary: Default getEmployeeJobs 200 response
                  x-microcks-default: true
                  value:
                    employeeId: example-value
                    jobCode: example-value
                    jobTitle: example-value
                    departmentId: example-value
                    positionId: example-value
                    flsaStatus: Exempt
                    employmentType: Full-Time
                    effectiveDate: '2026-01-15'
        '404':
          description: Employee not found
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /personnel/v2/employees/{employeeId}/pay-rates:
    get:
      operationId: getEmployeePayRates
      summary: UKG Pro HCM Get Employee Pay Rates
      description: Retrieve current and historical pay rates for an employee.
      tags:
      - Payroll
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
        description: Employee identifier
        example: EMP001
      responses:
        '200':
          description: Pay rate information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayRate'
              examples:
                getEmployeePayRates200Example:
                  summary: Default getEmployeePayRates 200 response
                  x-microcks-default: true
                  value:
                    employeeId: example-value
                    payType: Salary
                    basePay: 1.0
                    payCurrency: example-value
                    payFrequency: Weekly
                    effectiveDate: '2026-01-15'
        '404':
          description: Employee not found
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /personnel/v2/employees/{employeeId}/benefits-elections:
    get:
      operationId: getEmployeeBenefitsElections
      summary: UKG Pro HCM Get Employee Benefits Elections
      description: Retrieve active benefits elections for a specific employee.
      tags:
      - Benefits
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
        description: Employee identifier
        example: EMP001
      responses:
        '200':
          description: Benefits enrollment data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenefitsElection'
              examples:
                getEmployeeBenefitsElections200Example:
                  summary: Default getEmployeeBenefitsElections 200 response
                  x-microcks-default: true
                  value:
                    employeeId: example-value
                    planId: example-value
                    planName: example-value
                    benefitType: Medical
                    enrollmentStatus: Active
                    coverageTier: example-value
                    employeeContribution: 1.0
                    effectiveDate: '2026-01-15'
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /personnel/v2/employees/{employeeId}/direct-deposits:
    get:
      operationId: getEmployeeDirectDeposits
      summary: UKG Pro HCM Get Employee Direct Deposits
      description: Retrieve direct deposit banking information for an employee.
      tags:
      - Payroll
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
        description: Employee identifier
        example: EMP001
      responses:
        '200':
          description: Direct deposit accounts
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DirectDeposit'
              examples:
                getEmployeeDirectDeposits200Example:
                  summary: Default getEmployeeDirectDeposits 200 response
                  x-microcks-default: true
                  value:
                  - accountId: example-value
                    bankName: example-value
                    accountType: Checking
                    depositType: Amount
                    depositAmount: 1.0
                    priority: 1
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /personnel/v2/change-requests:
    post:
      operationId: createPersonnelChangeRequest
      summary: UKG Pro HCM Create Personnel Change Request
      description: Submit a personnel action change request such as a job change, status change, or compensation adjustment.
      tags:
      - Personnel Actions
      requestBody:
        required: true
        description: Personnel change request details
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PersonnelChangeRequest'
            examples:
              createPersonnelChangeRequestRequestExample:
                summary: Default createPersonnelChangeRequest request
                x-microcks-default: true
                value:
                  employeeId: example-value
                  actionType: Job Change
                  effectiveDate: '2026-01-15'
                  reason: example-value
                  newDepartmentId: example-value
                  newJobTitle: example-value
                  newPayRate: 1.0
      responses:
        '201':
          description: Change request created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonnelChangeResponse'
              examples:
                createPersonnelChangeRequest201Example:
                  summary: Default createPersonnelChangeRequest 201 response
                  x-microcks-default: true
                  value:
                    requestId: example-value
                    status: Pending
                    submittedAt: '2026-01-15T10:30:00Z'
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /org/v2/departments:
    get:
      operationId: listDepartments
      summary: UKG Pro HCM List Departments
      description: Retrieve a list of all departments in the organization.
      tags:
      - Organization
      parameters:
      - name: per_page
        in: query
        schema:
          type: integer
        description: Number of results per page
        example: 100
      responses:
        '200':
          description: List of departments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Department'
              examples:
                listDepartments200Example:
                  summary: Default listDepartments 200 response
                  x-microcks-default: true
                  value:
                  - departmentId: example-value
                    departmentName: example-value
                    parentDepartmentId: example-value
                    managerId: example-value
                    costCenterId: example-value
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /org/v2/locations:
    get:
      operationId: listLocations
      summary: UKG Pro HCM List Locations
      description: Retrieve a list of all work locations in the organization.
      tags:
      - Organization
      parameters:
      - name: per_page
        in: query
        schema:
          type: integer
        description: Number of results per page
        example: 100
      responses:
        '200':
          description: List of locations
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Location'
              examples:
                listLocations200Example:
                  summary: Default listLocations 200 response
                  x-microcks-default: true
                  value:
                  - locationId: example-value
                    locationName: example-value
                    address: example-value
                    city: example-value
                    stateProvince: example-value
                    country: example-value
                    postalCode: example-value
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /payroll/v1/pay-statements:
    get:
      operationId: listPayStatements
      summary: UKG Pro HCM List Pay Statements
      description: Retrieve pay statement history for employees.
      tags:
      - Payroll
      parameters:
      - name: employeeId
        in: query
        schema:
          type: string
        description: Filter by employee ID
        example: EMP001
      - name: startDate
        in: query
        schema:
          type: string
          format: date
        description: Start date for pay statement range
        example: '2026-01-01'
      - name: endDate
        in: query
        schema:
          type: string
          format: date
        description: End date for pay statement range
        example: '2026-03-31'
      responses:
        '200':
          description: List of pay statements
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PayStatement'
              examples:
                listPayStatements200Example:
                  summary: Default listPayStatements 200 response
                  x-microcks-default: true
                  value:
                  - statementId: example-value
                    employeeId: example-value
                    payPeriodStart: '2026-01-15'
                    payPeriodEnd: '2026-01-15'
                    payDate: '2026-01-15'
                    grossPay: 1.0
                    netPay: 1.0
                    federalTaxWithheld: 1.0
                    stateTaxWithheld: 1.0
                    socialSecurityTax: 1.0
                    medicareTax: 1.0
                    currency: example-value
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Basic authentication with service account credentials plus US-API-Key header
  schemas:
    EmployeeIdList:
      type: object
      description: Paginated list of employee identifiers
      properties:
        employeeIds:
          type: array
          items:
            type: string
          description: Array of employee identifiers
          example: EMP001
        total:
          type: integer
          description: Total number of employees
          example: 1
        page:
          type: integer
          description: Current page number
          example: 1
    Employee:
      type: object
      description: Employee record with demographic and employment information
      properties:
        employeeId:
          type: string
          description: Unique employee identifier
          example: EMP001
        firstName:
          type: string
          description: Employee first name
          example: Jane
        lastName:
          type: string
          description: Employee last name
          example: Smith
        email:
          type: string
          format: email
          description: Work email address
          example: [email protected]
        employmentStatus:
          type: string
          description: Current employment status
          example: Active
          enum:
          - Active
          - Inactive
          - Terminated
          - Leave
        hireDate:
          type: string
          format: date
          description: Original hire date
          example: '2022-06-01'
        departmentId:
          type: string
          description: Department identifier
          example: DEPT-HR
        locationId:
          type: string
          description: Work location identifier
          example: LOC-NYC
        jobTitle:
          type: string
          description: Current job title
          example: Senior HR Analyst
        managerId:
          type: string
          description: Manager employee identifier
          example: EMP042
    EmployeeList:
      type: object
      description: Paginated list of employee records
      properties:
        employees:
          type: array
          items:
            $ref: '#/components/schemas/Employee'
          example: example-value
        total:
          type: integer
          description: Total number of records
          example: 1
        page:
          type: integer
          description: Current page
          example: 1
    EmployeeJob:
      type: object
      description: Employee job assignment and classification details
      properties:
        employeeId:
          type: string
          description: Employee identifier
          example: EMP001
        jobCode:
          type: string
          description: Job code or position code
          example: JOB-HRANA
        jobTitle:
          type: string
          description: Job title
          example: HR Analyst
        departmentId:
          type: string
          description: Department identifier
          example: EMP001
        positionId:
          type: string
          description: Position identifier
          example: POS-00123
        flsaStatus:
          type: string
          description: FLSA classification
          example: Exempt
          enum:
          - Exempt
          - Non-Exempt
        employmentType:
          type: string
          description: Employment type
          example: Full-Time
          enum:
          - Full-Time
          - Part-Time
          - Contractor
          - Temporary
        effectiveDate:
          type: string
          format: date
          description: Effective date of current assignment
          example: '2026-01-15'
    PayRate:
      type: object
      description: Employee pay rate information
      properties:
        employeeId:
          type: string
          description: Employee identifier
          example: EMP001
        payType:
          type: string
          description: Pay type
          example: Salary
          enum:
          - Salary
          - Hourly
          - Commission
        basePay:
          type: number
          format: double
          description: Base pay amount
          example: 75000.00
        payCurrency:
          type: string
          description: Currency code
          example: USD
        payFrequency:
          type: string
          description: Pay frequency
          example: Bi-Weekly
          enum:
          - Weekly
          - Bi-Weekly
          - Semi-Monthly
          - Monthly
        effectiveDate:
          type: string
          format: date
          description: Effective date of pay rate
          example: '2026-01-15'
    BenefitsElection:
      type: object
      description: Employee benefits enrollment information
      properties:
        employeeId:
          type: string
          description: Employee identifier
          example: EMP001
        planId:
          type: string
          description: Benefits plan identifier
          example: PLAN-MED-001
        planName:
          type: string
          description: Benefits plan name
          example: Medical Plan - PPO
        benefitType:
          type: string
          description: Type of benefit
          example: Medical
          enum:
          - Medical
          - Dental
          - Vision
          - Life
          - Disability
          - 401k
          - HSA
          - FSA
        enrollmentStatus:
          type: string
          description: Enrollment status
          example: Active
          enum:
          - Active
          - Waived
          - Terminated
        coverageTier:
          type: string
          description: Coverage tier
          example: Employee + Spouse
        employeeContribution:
          type: number
          format: double
          description: Employee contribution amount per pay period
          example: 1.0
        effectiveDate:
          type: string
          format: date
          description: Coverage effective date
          example: '2026-01-15'
    DirectDeposit:
      type: object
      description: Employee direct deposit banking information
      properties:
        accountId:
          type: string
          description: Account identifier
          example: EMP001
        bankName:
          type: string
          description: Bank name
          example: First National Bank
        accountType:
          type: string
          description: Account type
          example: Checking
          enum:
          - Checking
          - Savings
        depositType:
          type: string
          description: Deposit distribution type
          example: Remainder
          enum:
          - Amount
          - Percentage
          - Remainder
        depositAmount:
          type: number
          format: double
          description: Deposit amount or percentage
          example: 1.0
        priority:
          type: integer
          description: Processing priority order
          example: 1
    PersonnelChangeRequest:
      type: object
      description: Request for a personnel action change
      required:
      - employeeId
      - actionType
      - effectiveDate
      properties:
        employeeId:
          type: string
          description: Employee identifier
          example: EMP001
        actionType:
          type: string
          description: Type of personnel action
          example: Job Change
          enum:
          - Job Change
          - Pay Change
          - Status Change
          - Department Transfer
          - Termination
          - Leave of Absence
        effectiveDate:
          type: string
          format: date
          description: Effective date of the change
          example: '2026-06-01'
        reason:
          type: string
          description: Reason for the change
          example: Promotion
        newDepartmentId:
          type: string
          description: New department identifier (for transfers)
          example: EMP001
        newJobTitle:
          type: string
          description: New job title (for job changes)
          example: example-value
        newPayRate:
          type: number
          format: double
          description: New pay rate amount (for pay changes)
          example: 1.0
    PersonnelChangeResponse:
      type: object
      description: Response from a personnel change request submission
      properties:
        requestId:
          type: string
          description: Change request identifier
          example: CHG-2026-00123
        status:
          type: string
          description: Processing status
          example: Pending
          enum:
          - Pending
          - Approved
          - Rejected
          - Completed
        submittedAt:
          type: string
          format: date-time
          description: Submission timestamp
          example: '2026-01-15T10:30:00Z'
    Department:
      type: object
      description: Organizational department
      properties:
        departmentId:
          type: string
          description: Department identifier
          example: DEPT-HR
        departmentName:
          type: string
          description: Department name
          example: Human Resources
        parentDepartmentId:
          type: string
          description: Parent department identifier
          example: EMP001
        managerId:
          type: string
          description: Department manager employee ID
          example: EMP001
        costCenterId:
          type: string
          description: Associated cost center
          example: CC-100
    Location:
      type: object
      description: Work location
      properties:
        locationId:
          type: string
          description: Location identifier
          example: LOC-NYC
        locationName:
          type: string
          description: Location name
          example: New York Office
        address:
          type: string
          description: Street address
          example: 123 Main Street
        city:
          type: string
          description: City
          example: New York
        stateProvince:
          type: string
          description: State or province
          example: NY
        country:
          type: string
          description: Country code
          example: US
        postalCode:
          type: string
          description: Postal or ZIP code
          example: '10001'
    PayStatement:
      type: object
      description: Employee pay statement for a single pay period
      properties:
        statementId:
          type: string
          description: Pay statement identifier
          example: EMP001
        employeeId:
          type: string
          description: Employee identifier
          example: EMP001
        payPeriodStart:
          type: string
          format: date
          description: Pay period start date
          example: '2026-01-15'
        payPeriodEnd:
          type: string
          format: date
          description: Pay period end date
          example: '2026-01-15'
        payDate:
          type: string
          format: date
          description: Check or deposit date
          example: '2026-01-15'
        grossPay:
          type: number
          format: double
          description: Gross pay amount
          example: 1.0
        netPay:
          type: number
          format: double
          description: Net pay amount
          example: 1.0
        federalTaxWithheld:
          type: number
          format: double
          description: Federal income tax withheld
          example: 1.0
        stateTaxWithheld:
          type: number
          format: double
          description: State income tax withheld
          example: 1.0
        socialSecurityTax:
          type: number
          format: double
          description: Social Security tax withheld
          example: 1.0
        medicareTax:
          type: number
          format: double
          description: Medicare tax withheld
          example: 1.0
        currency:
          type: string
          description: Currency code
          example: USD