> ## 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.

# Update auto-enrolment settings

> Sets the organisation's auto-enrolment mode.



## OpenAPI

````yaml /api-reference/specs/pension-v2.json put /organisation/pension-default/auto-enrolment-settings
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:
  /organisation/pension-default/auto-enrolment-settings:
    put:
      tags:
        - Organisation defaults
      summary: Update auto-enrolment settings
      description: Sets the organisation's auto-enrolment mode.
      operationId: PutAutoEnrolmentSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutAutoEnrolmentSettingsRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/OrganisationPensionDefaultModelResponseBody
        '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:
    PutAutoEnrolmentSettingsRequest:
      required:
        - autoEnrolmentMode
      type: object
      properties:
        autoEnrolmentMode:
          enum:
            - None
            - Manual
            - Automatic
          type: string
          nullable: true
        sendEnrolmentLetterOnAutoEnrolment:
          type: boolean
          description: >-
            Optional. When omitted/null the organisation's current value is left
            unchanged.

            True makes Flow email the enrolment letter as part of automatically

            enrolling somebody, which is the cohort that holds the statutory

            opt-out right and so the one whose letter date decides refunds.
          nullable: true
        employerIssuesEnrolmentInformation:
          type: boolean
          description: >-
            Optional. When omitted/null the organisation's current value is left
            unchanged.

            True is the employer declaring that THEY give workers the enrolment

            information, by post or their own systems, rather than relying on

            Flow's email. It is a statement about their own compliance with the

            information duty, so the caller is recorded against it; who and when

            are stamped by the service and are not accepted from the request.
          nullable: true
        reEnrolRecentOptOuts:
          type: boolean
          description: >-
            Optional. When omitted/null the organisation's current value is left
            unchanged.

            True re-enrols workers who opted out or ceased membership at their
            own

            request in the 12 months before the automatic re-enrolment date,
            which

            TPR DG11 para 30 leaves to the employer to decide. False (the
            default)

            excludes them from that cycle; either way they are assessed again at
            the

            next one.
          nullable: true
      additionalProperties: false
    OrganisationPensionDefaultModelResponseBody:
      required:
        - message
      type: object
      properties:
        message:
          $ref: '#/components/schemas/MessageWithTokenResponse'
        content:
          $ref: '#/components/schemas/OrganisationPensionDefaultModelContentResponse'
        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`.
    OrganisationPensionDefaultModelContentResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/OrganisationPensionDefaultModel'
        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
    OrganisationPensionDefaultModel:
      required:
        - organisationId
      type: object
      properties:
        organisationId:
          type: string
          nullable: true
        defaultPensionGroupId:
          type: string
          nullable: true
        defaultPensionGroup:
          $ref: '#/components/schemas/PensionGroupV2'
        defaultPostponementStartDateDefinition:
          $ref: '#/components/schemas/PostponementValueModel'
        defaultPostponementEligibilityDateDefinition:
          $ref: '#/components/schemas/PostponementValueModel'
        autoEnrolmentMode:
          enum:
            - None
            - Manual
            - Automatic
          type: string
          nullable: true
        sendEnrolmentLetterOnAutoEnrolment:
          type: boolean
          description: >-
            Whether Flow emails the enrolment letter when it automatically
            enrols

            somebody. False is the meaningful answer here, not an absent field,
            so

            it is always written.
        employerIssuesEnrolmentInformation:
          type: boolean
          description: >-
            Whether the employer has declared that they give workers the
            enrolment

            information themselves. Drives what the provider is told about the

            information duty, alongside the letters Flow can evidence sending.
        reEnrolRecentOptOuts:
          type: boolean
          description: >-
            Whether this employer re-enrols workers who left the scheme at their
            own

            request in the 12 months before the automatic re-enrolment date. TPR

            DG11 para 30 leaves that choice to the employer; false is the answer

            for everyone who has not made it, so it is always written.
        enrolmentInformationDeclaredBy:
          type: string
          description: Who made that declaration, and when. Absent until one is made.
          nullable: true
        enrolmentInformationDeclaredDate:
          type: string
          format: date
          nullable: true
      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
    PostponementValueModel:
      required:
        - frequency
        - value
      type: object
      properties:
        value:
          type: integer
          format: int32
        frequency:
          enum:
            - Days
            - Weeks
            - Months
          type: string
          nullable: true
      additionalProperties: false

````

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