> ## Documentation Index
> Fetch the complete documentation index at: https://developer.payrollintegrations.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Pay Categories

> Returns a paginated list of pay categories

export const PaginationInfo = ({defaultSortField, sortFields = [], maxLimit = 100, defaultLimit = 20}) => {
  return <>
      <div class="border-b pb-2.5 border-gray-100 dark:border-gray-800 w-full">
      <h4>Pagination & Sorting</h4>
      </div>

      {(maxLimit || defaultLimit) && <ResponseField name="Limit">
        <ul>
          {defaultLimit && <li>Default: {defaultLimit}</li>}
          {maxLimit && <li>Maximum: {maxLimit}</li>}
        </ul>
      </ResponseField>}

      <ResponseField name="Sort Fields">
        <ul>
            {sortFields.map(field => {
    if (field == defaultSortField || sortFields.length == 1) {
      return <li key={field}> <code>{field} (Default)</code> </li>;
    } else {
      return <li key={field}> <code>{field}</code> </li>;
    }
  })}
        </ul>
      </ResponseField>
    </>;
};

<PaginationInfo defaultSortField="category" sortFields={["category", "classification", "subcategory"]} />


## OpenAPI

````yaml api-reference/openapi.demo.json GET /v1/employer-identifiers/{employer_identifier}/pay-categories
openapi: 3.0.3
info:
  title: Payroll Integrations Public API
  version: 1.0.0
  description: Public API for Payroll Integrations platform
  license:
    name: MIT
servers:
  - url: https://demo1-api.payrollintegrationsdemo.com
    description: Demo
  - url: https://demo2-api.payrollintegrationsdemo.com
    description: Demo
  - url: https://demo3-api.payrollintegrationsdemo.com
    description: Demo
security: []
tags:
  - name: auth
  - name: employer-identifiers
  - name: meta
  - name: payroll-connections
  - name: payroll-platforms
  - name: roles
  - name: users
  - name: webhooks
paths:
  /v1/employer-identifiers/{employer_identifier}/pay-categories:
    get:
      tags:
        - employer-identifiers
      description: Returns a paginated list of pay categories
      operationId: get_v1_employer_identifiers_employer_identifier_pay_categories
      parameters:
        - name: employer_identifier
          in: path
          required: true
          schema:
            description: ID of the employer identifier.
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: ID of the employer identifier.
          example: 00000000-0000-0000-0000-000000000000
        - name: limit
          in: query
          required: false
          schema:
            description: Maximum number of records to return
            type: integer
            minimum: 1
            maximum: 4294967295
          description: Maximum number of records to return
        - name: offset
          in: query
          required: false
          schema:
            description: Number of records to skip from the beginning
            type: integer
            minimum: 0
            maximum: 4294967295
          description: Number of records to skip from the beginning
        - name: sort
          in: query
          required: false
          schema:
            description: >-
              Comma-separated list of fields to sort by. Prefix with - for
              descending order
            type: string
            pattern: ^(-?\w{1,100})(?:,(-?\w{1,100})){0,2}$
          description: >-
            Comma-separated list of fields to sort by. Prefix with - for
            descending order
      responses:
        '200':
          description: Pay categories retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPayCategoryDef'
              example:
                data:
                  - category: AFTERTAX
                    categoryDisplayName: Post Tax 401(k)
                    classification: EMPLOYEE_DEDUCTION
                    subcategory: AFTER_TAX
                    subcategoryDisplayName: After Tax
                    deprecated: false
                  - category: AFTERTAX
                    categoryDisplayName: Post Tax 401(k)
                    classification: EMPLOYEE_DEDUCTION
                    subcategory: AFTER_TAX_CATCHUP
                    subcategoryDisplayName: After Tax Catchup
                    deprecated: false
                  - category: LOAN
                    categoryDisplayName: 401(k) Loans
                    classification: EMPLOYEE_DEDUCTION
                    subcategory: 401K_LOAN
                    subcategoryDisplayName: 401k Loan
                    deprecated: false
                  - category: MATCH
                    categoryDisplayName: Match
                    classification: EMPLOYER_PAID_BENEFIT
                    subcategory: MATCH
                    subcategoryDisplayName: Match
                    deprecated: false
                  - category: PRETAX
                    categoryDisplayName: Pretax 401(k)
                    classification: EMPLOYEE_DEDUCTION
                    subcategory: 401K_PRETAX
                    subcategoryDisplayName: 401k Pretax
                    deprecated: false
                  - category: PRETAX
                    categoryDisplayName: Pretax 401(k)
                    classification: EMPLOYEE_DEDUCTION
                    subcategory: 401K_CATCHUP
                    subcategoryDisplayName: 401k Catchup
                    deprecated: false
                  - category: PRETAX
                    categoryDisplayName: Pretax 401(k)
                    classification: EMPLOYEE_DEDUCTION
                    subcategory: PRETAX_SUPER_CATCHUP
                    subcategoryDisplayName: Pretax Super Catchup
                    deprecated: false
                  - category: PROFIT_SHARING
                    categoryDisplayName: Profit Sharing
                    classification: EARNING
                    subcategory: PROFIT_SHARING
                    subcategoryDisplayName: Profit Sharing
                    deprecated: false
                  - category: ROTH
                    categoryDisplayName: Roth 401(k)
                    classification: EMPLOYEE_DEDUCTION
                    subcategory: ROTH
                    subcategoryDisplayName: Roth
                    deprecated: false
                  - category: ROTH
                    categoryDisplayName: Roth 401(k)
                    classification: EMPLOYEE_DEDUCTION
                    subcategory: ROTH_CATCHUP
                    subcategoryDisplayName: Roth Catchup
                    deprecated: false
                  - category: SAFE_HARBOR_MATCH
                    categoryDisplayName: Safe Harbor Match
                    classification: EMPLOYER_PAID_BENEFIT
                    subcategory: SAFE_HARBOR_MATCH
                    subcategoryDisplayName: Safe Harbor Match
                    deprecated: false
                  - category: SAFE_HARBOR_NON_ELECTIVE
                    categoryDisplayName: Safe Harbor Non-Elective
                    classification: EMPLOYER_PAID_BENEFIT
                    subcategory: SAFE_HARBOR_NON_ELECTIVE
                    subcategoryDisplayName: Safe Harbor Non-Elective
                    deprecated: false
                meta:
                  currentCount: 12
                  filters: {}
                  limit: 20
                  offset: 0
                  sort: category
                  totalCount: 12
          headers:
            Link:
              schema:
                type: string
                pattern: >-
                  ^(?:<[^>]+>;\s*rel="(?:self|first|last|prev|next)"(?:,\s+<[^>]+>;\s*rel="(?:self|first|last|prev|next)")*)$
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Invalid or missing token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            WWW-Authenticate:
              schema:
                description: Authentication challenge (Bearer)
                type: string
              description: Authentication challenge (Bearer)
        '403':
          description: Insufficient permissions or access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            Retry-After:
              schema:
                description: Number of seconds to wait before retrying
                type: string
              description: Number of seconds to wait before retrying
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    ListPayCategoryDef:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              category:
                description: The technical identifier of the pay category.
                type: string
              categoryDisplayName:
                description: >-
                  The benefit provider specific display name for the pay
                  category.
                type: string
              classification:
                description: >-
                  Describes the operation that the pay code performs on the
                  paycheck.
                type: string
              subcategory:
                description: The technical identifier of the pay subcategory.
                type: string
              subcategoryDisplayName:
                description: >-
                  The benefit provider specific display name for the pay
                  subcategory.
                type: string
              deprecated:
                description: >-
                  Whether the pay subcategory is deprecated and should no longer
                  be used for new mappings.
                type: boolean
            required:
              - category
              - categoryDisplayName
              - classification
              - subcategory
              - subcategoryDisplayName
              - deprecated
            additionalProperties: false
        meta:
          type: object
          properties:
            currentCount:
              description: Number of results in current page
              type: integer
              minimum: 0
              maximum: 4294967295
            filters:
              description: Applied filters with field names and operators
              type: object
              additionalProperties:
                type: object
                properties:
                  eq:
                    type: string
                  ne:
                    type: string
                  gt:
                    type: string
                  gte:
                    type: string
                  lt:
                    type: string
                  lte:
                    type: string
                  in:
                    type: array
                    items:
                      type: string
                  not_in:
                    type: array
                    items:
                      type: string
                  like:
                    type: string
                  not_like:
                    type: string
                  contains:
                    type: string
                  not_contains:
                    type: string
                  empty:
                    type: string
                  not_empty:
                    type: string
                additionalProperties: false
            limit:
              description: Maximum number of results per page
              type: integer
              minimum: 0
              maximum: 4294967295
            offset:
              description: Number of results to skip
              type: integer
              minimum: 0
              maximum: 4294967295
            sort:
              description: Sort order
              type: string
              pattern: ^(-?\w{1,100})(?:,(-?\w{1,100})){0,2}$
            totalCount:
              description: Total number of results
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - currentCount
            - filters
            - limit
            - offset
            - sort
            - totalCount
          additionalProperties: false
      required:
        - data
        - meta
      additionalProperties: false
    ErrorResponse:
      type: object
      properties:
        message:
          description: Human-readable error message
          type: string
        errors:
          description: Array of specific error details
          type: array
          items:
            type: string
      required:
        - message
        - errors
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer token obtained from the /v1/auth/token endpoint. Send as:
        Authorization: Bearer <token>.

````