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

# List pension schemes

> Returns every pension scheme in your organisation, each with its provider and groups embedded.



## OpenAPI

````yaml /api-reference/specs/pension-v2.json get /pension-schema/organisation
openapi: 3.0.4
info:
  title: FlowPayroll Pension API
  version: v2
servers:
  - url: https://api.sandbox.flowpayroll.ai/v2/pension
security: []
tags:
  - name: Pension providers
    description: >-
      Look up the pension providers available to your organisation. Providers
      are set up in the product, so the API exposes them read-only.
  - name: Pension schemes
    description: >-
      Your organisation's arrangements with providers. Scheme endpoints use the
      /pension-schema path.
  - name: Pension groups
    description: >-
      Contribution rule sets within a scheme: pension type, contribution basis,
      and employee and employer factors.
  - name: Employee enrolment
    description: >-
      Associate employees with pension groups, remove associations, and send
      enrolment letters.
  - name: Pension information
    description: >-
      An employee's full pension picture in one call: composition, latest
      assessment, and postponement.
  - name: Auto-enrolment
    description: >-
      Assessment results per pay run, employees with outstanding or no
      auto-enrolment, and a stateless assessment preview.
  - name: Postponement
    description: Defer auto-enrolment per employee, overriding the organisation defaults.
  - name: Organisation defaults
    description: >-
      The organisation's default pension group, postponement definitions, and
      auto-enrolment mode.
  - name: Pension calculations
    description: >-
      Per-period contribution amounts, the contributions CSV, and provider
      export files.
  - name: Provider submissions
    description: >-
      Send a completed pay run to its connected pension provider, approve the
      payment, and read back what the provider reported: opt-outs, stopped
      contributions, refunds and schedules.
paths:
  /pension-schema/organisation:
    get:
      tags:
        - Pension schemes
      summary: List pension schemes
      description: >-
        Returns every pension scheme in your organisation, each with its
        provider and groups embedded.
      operationId: GetPensionSchemes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FullPensionSchemeListResponseBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponseBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponseBody'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponseBody'
components:
  schemas:
    FullPensionSchemeListResponseBody:
      required:
        - message
      type: object
      properties:
        message:
          $ref: '#/components/schemas/MessageWithTokenResponse'
        content:
          $ref: '#/components/schemas/FullPensionSchemeListContentResponse'
        validationIssues:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssue'
          nullable: true
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          description: >-
            Deprecated: the same issues as `validationIssues` (`reasonText` is
            `reason`, `reasonId` is `reasonToken`, `reasonParameters` is
            `reasonTokenArguments`). Read `validationIssues`; this will be
            removed.
          nullable: true
          readOnly: true
          deprecated: true
        metadata:
          allOf:
            - $ref: '#/components/schemas/ContentMetadataResponse'
          description: >-
            Deprecated: the same values as `content.metadata`. Read that; this
            will be removed.
          deprecated: true
      additionalProperties: false
      description: >-
        The response envelope every FlowPayroll API answers with: a `message`,
        the

        `content`, and any `validationIssues`. `errors` and the top-level

        `metadata` are deprecated copies of `validationIssues` and

        `content.metadata`, and will be removed.
    ObjectResponseBody:
      required:
        - message
      type: object
      properties:
        message:
          $ref: '#/components/schemas/MessageWithTokenResponse'
        content:
          $ref: '#/components/schemas/ObjectContentResponse'
        validationIssues:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssue'
          nullable: true
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          description: >-
            Deprecated: the same issues as `validationIssues` (`reasonText` is
            `reason`, `reasonId` is `reasonToken`, `reasonParameters` is
            `reasonTokenArguments`). Read `validationIssues`; this will be
            removed.
          nullable: true
          readOnly: true
          deprecated: true
        metadata:
          allOf:
            - $ref: '#/components/schemas/ContentMetadataResponse'
          description: >-
            Deprecated: the same values as `content.metadata`. Read that; this
            will be removed.
          deprecated: true
      additionalProperties: false
      description: >-
        The response envelope every FlowPayroll API answers with: a `message`,
        the

        `content`, and any `validationIssues`. `errors` and the top-level

        `metadata` are deprecated copies of `validationIssues` and

        `content.metadata`, and will be removed.
    MessageWithTokenResponse:
      required:
        - token
      type: object
      properties:
        text:
          type: string
          nullable: true
        token:
          type: string
          description: >-
            Stable snake_case key for the message, for clients that translate
            it.
          nullable: true
        tokenArguments:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssueArgument'
          nullable: true
        textId:
          type: string
          description: >-
            Deprecated: the same value as `token`. Read that; this will be
            removed.
          nullable: true
          readOnly: true
          deprecated: true
        textParameters:
          type: array
          items:
            $ref: '#/components/schemas/Pair'
          description: >-
            Deprecated: the same values as `tokenArguments`. Read that; this
            will be removed.
          nullable: true
          readOnly: true
          deprecated: true
      additionalProperties: false
      description: >-
        What happened, as English `text` and a stable `token` to translate from.

        `textId` and `textParameters` are deprecated copies of `token` and
        `tokenArguments`.
    FullPensionSchemeListContentResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/FullPensionScheme'
          nullable: true
        metadata:
          $ref: '#/components/schemas/ContentMetadataResponse'
      additionalProperties: false
    ValidationIssue:
      type: object
      properties:
        field:
          type: string
          nullable: true
        reason:
          type: string
          nullable: true
        reasonToken:
          type: string
          nullable: true
        reasonTokenArguments:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssueArgument'
          nullable: true
      additionalProperties: false
    Error:
      type: object
      properties:
        field:
          type: string
          nullable: true
        reasonText:
          type: string
          nullable: true
        reasonId:
          type: string
          nullable: true
        reasonParameters:
          type: array
          items:
            $ref: '#/components/schemas/Pair'
          nullable: true
      additionalProperties: false
      description: >-
        Deprecated: an entry of the old `errors` list. Read `validationIssues`
        instead.
      deprecated: true
    ContentMetadataResponse:
      type: object
      properties:
        dateFormat:
          type: string
          nullable: true
        dateTimeFormat:
          type: string
          nullable: true
        paginationToken:
          type: string
          nullable: true
      additionalProperties: false
    ObjectContentResponse:
      type: object
      properties:
        data:
          nullable: true
        metadata:
          $ref: '#/components/schemas/ContentMetadataResponse'
      additionalProperties: false
    ValidationIssueArgument:
      type: object
      properties:
        name:
          type: string
          nullable: true
        value:
          nullable: true
      additionalProperties: false
    Pair:
      type: object
      properties:
        key:
          type: string
          nullable: true
        value:
          type: string
          nullable: true
      additionalProperties: false
      description: >-
        Deprecated: a key and value of the old `textParameters` and
        `reasonParameters`.
      deprecated: true
    FullPensionScheme:
      required:
        - createdBy
        - createdDate
        - groups
        - id
        - name
        - organisationId
        - pensionProviderId
        - updatedBy
        - updatedDate
      type: object
      properties:
        id:
          type: string
          nullable: true
        organisationId:
          type: string
          nullable: true
        pensionProviderId:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        paymentSource:
          type: string
          nullable: true
        lastReEnrolmentDate:
          type: string
          format: date
          nullable: true
        dutyStartDate:
          type: string
          format: date
          nullable: true
        externalReferenceId:
          type: string
          nullable: true
        contributionDueDateOffsetDays:
          type: integer
          description: >-
            How many days after an earnings period ends the contributions are
            due

            at this provider.
                        

            The due date on a contribution schedule belongs to the provider,

            and it has to match what the provider holds or the submission is

            refused. Once the provider is connected its own published schedule
            is

            used and this is ignored; set it when there is no connection, so the

            file carries the agreed date rather than the date employees were

            paid.
          format: int32
          nullable: true
        employeeIdentifierField:
          enum:
            - NationalInsuranceNumber
            - PayrollId
            - EmployeeCode
            - EmployeeId
          type: string
          nullable: true
        createdBy:
          type: string
          nullable: true
        createdDate:
          type: string
          nullable: true
        updatedBy:
          type: string
          nullable: true
        updatedDate:
          type: string
          nullable: true
        groups:
          type: array
          items:
            $ref: '#/components/schemas/PensionGroupV2'
          nullable: true
        pensionProvider:
          $ref: '#/components/schemas/PensionProviderV2'
      additionalProperties: false
    PensionGroupV2:
      required:
        - basis
        - createdBy
        - createdDate
        - employeeFactor
        - employerFactor
        - id
        - isDefault
        - name
        - nationalInsuranceSavingsFactor
        - organisationId
        - pensionSchemaId
        - pensionType
        - updatedBy
        - updatedDate
      type: object
      properties:
        id:
          type: string
          nullable: true
        organisationId:
          type: string
          description: >-
            Deprecated: a pension group always belongs to the organisation in
            the access token. Rely on the `organisationId` of the enclosing
            resource where one is present, or on the organisation the request
            was authenticated as.
          nullable: true
          deprecated: true
        pensionSchemaId:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        isDefault:
          type: boolean
        pensionType:
          enum:
            - ReliefAtSource
            - SalarySacrifice
            - NetPayArrangement
          type: string
          nullable: true
        isSalarySacrifice:
          type: boolean
          description: >-
            Deprecated: derived field, true only when `pensionType` is
            `SalarySacrifice`. Rely on `pensionType`, which also distinguishes
            `ReliefAtSource` from `NetPayArrangement`.
          readOnly: true
          deprecated: true
        basis:
          enum:
            - Pensionable
            - QualifyingEarnings
          type: string
          nullable: true
        employeeFactor:
          type: number
          format: float
        employerFactor:
          type: number
          format: float
        nationalInsuranceSavingsFactor:
          type: number
          format: float
        contributionType:
          enum:
            - Percentage
            - FixedAmount
          type: string
          nullable: true
        employeeFixedAmount:
          type: number
          format: double
          nullable: true
        employerFixedAmount:
          type: number
          format: double
          nullable: true
        externalReferenceId:
          type: string
          nullable: true
        createdBy:
          type: string
          nullable: true
        createdDate:
          type: string
          format: date-time
        updatedBy:
          type: string
          nullable: true
        updatedDate:
          type: string
          format: date-time
      additionalProperties: false
    PensionProviderV2:
      required:
        - id
        - name
        - record_end
        - record_start
        - slug
      type: object
      properties:
        id:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        slug:
          type: string
          nullable: true
        paymentSourceRequired:
          type: boolean
          nullable: true
        exportSupported:
          type: boolean
          description: "Whether a completed pay run produces an export file for schemes on\r\nthis provider. False for a provider the employer deals with\r\nthemselves: the run still assesses, enrols and calculates, but\r\nnothing is written for them to download or send."
        record_start:
          type: string
          format: date-time
        record_end:
          type: string
          format: date-time
      additionalProperties: false

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.