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

# Change an organisation's wording for one email

> A JSON Merge Patch (RFC 7396): leave a field out to keep it, send `null` to clear it (the email then uses the inherited wording), send text to change it. Plain text only, with the placeholders the email lists, written `{{like.this}}`. `enabled: false` switches off an email that can be switched off (`canBeSwitchedOff`; 400 `email_cannot_be_switched_off` otherwise), `true` switches it back on, `null` follows the account (or, for the account, sends it). Send every field as `null` to go back to the standard wording. Every save is kept as a version (see the revisions operation). Applies to this organisation only. Refused wording answers 400 with one `validationIssues` entry per thing to fix, and nothing is saved. Emails sent after the save carry it. API tokens cannot change or preview an organisation's emails (403 `email_settings_need_a_person`).



## OpenAPI

````yaml /api-reference/specs/notification.json patch /organisations/{organisationId}/email-settings/{eventType}
openapi: 3.0.1
info:
  title: Email wording API
  description: >-
    The wording of the emails we send for you: payslips, P45s, P60s, pension
    enrolment letters, report-ready and webhook alerts, and, for your whole
    account, the sign-in emails. Set it once for your account, or for one
    organisation; each field falls back on its own to the account's, then the
    standard wording. Report-ready and webhook alerts can be switched off.
    Preview the real email, and go back to any saved version. Your brand,
    statutory content and links always stay.
  version: v1
servers:
  - url: https://api.sandbox.flowpayroll.ai/v1/notification-settings
security:
  - X-Auth-Token: []
paths:
  /organisations/{organisationId}/email-settings/{eventType}:
    patch:
      tags:
        - Organisation emails
      summary: Change an organisation's wording for one email
      description: >-
        A JSON Merge Patch (RFC 7396): leave a field out to keep it, send `null`
        to clear it (the email then uses the inherited wording), send text to
        change it. Plain text only, with the placeholders the email lists,
        written `{{like.this}}`. `enabled: false` switches off an email that can
        be switched off (`canBeSwitchedOff`; 400 `email_cannot_be_switched_off`
        otherwise), `true` switches it back on, `null` follows the account (or,
        for the account, sends it). Send every field as `null` to go back to the
        standard wording. Every save is kept as a version (see the revisions
        operation). Applies to this organisation only. Refused wording answers
        400 with one `validationIssues` entry per thing to fix, and nothing is
        saved. Emails sent after the save carry it. API tokens cannot change or
        preview an organisation's emails (403 `email_settings_need_a_person`).
      operationId: PatchOrganisationEmailSetting
      parameters:
        - name: organisationId
          in: path
          required: true
          schema:
            type: string
          description: >-
            The organisation to act on. It must be the one selected with
            `X-Org-Id`: a request naming two different organisations is refused
            with 403.
        - name: eventType
          in: path
          required: true
          schema:
            type: string
            enum:
              - PayslipGeneratedEvent
              - P45GeneratedEvent
              - P60GeneratedEvent
              - EmployeePensionEnrolmentEvent
              - ReportReadyEvent
              - WebhookEndpointFailingEvent
              - WebhookEndpointDisabledEvent
          description: >-
            The email, by the event name its webhook delivery events carry, as
            listed by the list operation: PayslipGeneratedEvent,
            P45GeneratedEvent, P60GeneratedEvent, EmployeePensionEnrolmentEvent,
            ReportReadyEvent, WebhookEndpointFailingEvent,
            WebhookEndpointDisabledEvent.
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/EmailWordingPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/EmailWordingPatch'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailWordingSettingsResponseResponseBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponseBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponseBody'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponseBody'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponseBody'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponseBody'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponseBody'
      security:
        - X-Auth-Token: []
          X-Org-Id: []
components:
  schemas:
    EmailWordingPatch:
      type: object
      description: 'Absent: keep. null: clear and inherit. Text: set.'
      properties:
        subject:
          type: string
          nullable: true
        heading:
          type: string
          nullable: true
        intro:
          type: string
          nullable: true
        closing:
          type: string
          nullable: true
        buttonLabel:
          type: string
          nullable: true
        enabled:
          type: boolean
          nullable: true
          description: 'false: switch the email off. true: on. null: follow the account.'
      additionalProperties: false
    EmailWordingSettingsResponseResponseBody:
      type: object
      required:
        - message
      properties:
        message:
          $ref: '#/components/schemas/MessageWithTokenResponse'
        validationIssues:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssue'
          nullable: true
        content:
          $ref: '#/components/schemas/EmailWordingSettingsResponseContentResponse'
      additionalProperties: false
    ObjectResponseBody:
      type: object
      required:
        - message
      properties:
        message:
          $ref: '#/components/schemas/MessageWithTokenResponse'
        validationIssues:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssue'
          nullable: true
      additionalProperties: false
    MessageWithTokenResponse:
      type: object
      required:
        - text
        - token
      properties:
        text:
          type: string
        token:
          type: string
        tokenArguments:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssueArgument'
          nullable: true
      additionalProperties: false
    ValidationIssue:
      type: object
      required:
        - field
        - reason
        - reasonToken
      properties:
        field:
          type: string
        reason:
          type: string
        reasonToken:
          type: string
        reasonTokenArguments:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssueArgument'
          nullable: true
      additionalProperties: false
    EmailWordingSettingsResponseContentResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/EmailWordingSettingsResponse'
        metadata:
          $ref: '#/components/schemas/ContentMetadataResponse'
      additionalProperties: false
    ValidationIssueArgument:
      type: object
      required:
        - name
      properties:
        name:
          type: string
        value: {}
      additionalProperties: false
    EmailWordingSettingsResponse:
      type: object
      required:
        - eventType
        - level
        - audience
        - enabled
        - canBeSwitchedOff
        - wording
        - inherited
        - standard
        - placeholders
        - hasButton
        - locked
      properties:
        eventType:
          type: string
        level:
          type: string
          enum:
            - Organisation
            - Account
        audience:
          type: string
          enum:
            - Employees
            - AppUsers
            - Administrators
        enabled:
          type: boolean
        canBeSwitchedOff:
          type: boolean
        wording:
          $ref: '#/components/schemas/EmailWording'
        inherited:
          $ref: '#/components/schemas/EmailWording'
        standard:
          $ref: '#/components/schemas/EmailWording'
        placeholders:
          type: array
          items:
            $ref: '#/components/schemas/WordingPlaceholderResponse'
        hasButton:
          type: boolean
        locked:
          type: array
          items:
            type: string
        updatedDate:
          type: string
          format: date-time
          nullable: true
        updatedBy:
          type: string
          nullable: true
        standardFromAddress:
          type: string
          nullable: true
      additionalProperties: false
    ContentMetadataResponse:
      type: object
      required:
        - dateFormat
        - dateTimeFormat
      properties:
        dateFormat:
          type: string
        dateTimeFormat:
          type: string
        paginationToken:
          type: string
          nullable: true
      additionalProperties: false
    EmailWording:
      type: object
      properties:
        subject:
          type: string
          nullable: true
        heading:
          type: string
          nullable: true
        intro:
          type: string
          nullable: true
        closing:
          type: string
          nullable: true
        buttonLabel:
          type: string
          nullable: true
      additionalProperties: false
    WordingPlaceholderResponse:
      type: object
      required:
        - key
      properties:
        key:
          type: string
        sample:
          type: string
          nullable: true
      additionalProperties: false
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      description: Your access token (raw token, no Bearer prefix)
      name: X-Auth-Token
      in: header
    X-Org-Id:
      type: apiKey
      description: >-
        The organisation to act on. Required only when your credentials can
        reach more than one organisation; optional for a single organisation.
      name: X-Org-Id
      in: header

````

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