> ## 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 members whose enrolment information is outstanding

> Lists every member who has not been given their enrolment information, worst first: failed sends, then overdue, then still due. The information is due within six weeks of the enrolment date (TPR detailed guidance 5 and 10), and a failed send means it was never given, so the member's opt-out period has not started. Returns nothing for an organisation that has declared it issues the information itself. Paginated: follow paginationToken until it is absent, rather than treating a short page as the last.



## OpenAPI

````yaml /api-reference/specs/pension-v2.json get /auto-enrolment/enrolment-information/outstanding
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:
  /auto-enrolment/enrolment-information/outstanding:
    get:
      tags:
        - Auto-enrolment
      summary: List members whose enrolment information is outstanding
      description: >-
        Lists every member who has not been given their enrolment information,
        worst first: failed sends, then overdue, then still due. The information
        is due within six weeks of the enrolment date (TPR detailed guidance 5
        and 10), and a failed send means it was never given, so the member's
        opt-out period has not started. Returns nothing for an organisation that
        has declared it issues the information itself. Paginated: follow
        paginationToken until it is absent, rather than treating a short page as
        the last.
      operationId: GetOutstandingEnrolmentInformation
      parameters:
        - name: asOfDate
          in: query
          schema:
            type: string
            format: date
        - name: pageSize
          in: query
          description: Members per page, 1 to 100. Defaults to 50.
          schema:
            type: integer
            description: Members per page, 1 to 100. Defaults to 50.
            format: int32
        - name: paginationToken
          in: query
          description: The paginationToken from the previous page. Omit for the first page.
          schema:
            type: string
            description: >-
              The paginationToken from the previous page. Omit for the first
              page.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/EnrolmentInformationDutyListModelResponseBody
        '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:
    EnrolmentInformationDutyListModelResponseBody:
      required:
        - message
      type: object
      properties:
        message:
          $ref: '#/components/schemas/MessageWithTokenResponse'
        content:
          $ref: >-
            #/components/schemas/EnrolmentInformationDutyListModelContentResponse
        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`.
    EnrolmentInformationDutyListModelContentResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/EnrolmentInformationDutyListModel'
        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
    EnrolmentInformationDutyListModel:
      required:
        - items
        - totalCount
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/EnrolmentInformationDutyModel'
          description: |-
            The members on this page, worst first: the send failed, then the six
            weeks have run out, then still in time.
          nullable: true
        paginationToken:
          type: string
          description: >-
            Deprecated: the same value as `content.metadata.paginationToken`.
            Read that; this will be removed.
          nullable: true
          deprecated: true
        totalCount:
          type: integer
          description: |-
            How many members are outstanding in total, across every page. What a
            screen shows as "N still to send", and what tells the reader whether
            the first page is the whole job or the start of it.
          format: int32
      additionalProperties: false
      description: One page of the members still owed their enrolment information.
    EnrolmentInformationDutyModel:
      required:
        - dueBy
        - employeeId
        - enrolmentDate
        - isAutoEnrolled
        - isScheduled
        - status
      type: object
      properties:
        employeeId:
          type: string
          nullable: true
        firstName:
          type: string
          description: Who this is. Absent only when the snapshot has not arrived yet.
          nullable: true
        lastName:
          type: string
          nullable: true
        enrolmentDate:
          type: string
          description: The date the six weeks are counted from (TPR DG5/DG10).
          format: date
        dueBy:
          type: string
          description: >-
            The last day the information can be given without breaching the
            duty.
          format: date
        status:
          type: string
          description: >-
            "Failed" (the send failed, so it was never given), "Overdue" (the
            six

            weeks have run out) or "Due" (still inside them).
          nullable: true
        isAutoEnrolled:
          type: boolean
          description: >-
            Whether this membership came from automatic enrolment. That cohort
            holds

            the statutory opt-out right, whose clock does not start until the

            information is given, so they are the ones to chase first.
        lastAttemptedAt:
          type: string
          format: date-time
          nullable: true
        lastAttemptError:
          type: string
          nullable: true
        lastAttemptStatus:
          enum:
            - Sending
            - Sent
            - Failed
          type: string
          description: >-
            What the last attempt is doing now: "Sending", "Sent" or "Failed".

            A member stays on this list until the letter is confirmed delivered,
            so

            "Sending" is how a send already on its way is told apart from one

            nobody has started. Absent when nothing has been tried.
          nullable: true
        isScheduled:
          type: boolean
          description: >-
            Flow will send this one itself when the pay run that enrolled the
            member

            is finalised, so nobody needs to act on it. Still listed, because
            the

            information has not been given yet and the six weeks are still
            running.
        sentDate:
          type: string
          description: >-
            The day the information was given, on a member whose duty is met.
            Null

            on every outstanding one. This is the date the member's opt-out
            period

            runs from (TPR detailed guidance 7, paragraphs 17-18).
          format: date
          nullable: true
        sentBy:
          type: string
          description: >-
            Who gave it: the person who sent it, or the system when Flow sent it
            as

            part of enrolling the member.
          nullable: true
      additionalProperties: false
      description: >-
        A member who has not been given their enrolment information, and how
        long

        the employer has left to give it.

````

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