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

# Create Compensation Edition

> `If-Match` carries the `edition` of the slice the range starts in, as read; the response's `ETag` is the edition written.



## OpenAPI

````yaml /api-reference/preview.json put /gb/organizations/{organization_id}/employees/{employee_id}/compensation
openapi: 3.2.0
info:
  title: Intermezzo Global Payroll
  summary: Global Payroll Platform
  description: Intermezzo's global payroll apis, organized by country
  version: '2026-10-07'
  x-logo:
    url: /static/icon.svg
servers:
  - url: https://preview.intermezzo.ai
    description: Preview
security: []
paths:
  /gb/organizations/{organization_id}/employees/{employee_id}/compensation:
    put:
      tags:
        - Great Britain
        - Employees
        - Compensation
      summary: Create Compensation Edition
      description: >-
        `If-Match` carries the `edition` of the slice the range starts in, as
        read; the response's `ETag` is the edition written.
      operationId: gb_employee_compensation_put
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            title: Organization Id
        - name: employee_id
          in: path
          required: true
          schema:
            type: string
            title: Employee Id
        - name: If-Match
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: If-Match
        - name: X-Acting-User
          in: header
          required: false
          schema:
            anyOf:
              - type: string
                minLength: 1
                maxLength: 255
              - type: 'null'
            description: >-
              The person acting through the access credential, recorded as
              `created_by` of what the request writes. Audit only: access is
              checked on the credential.
            title: X-Acting-User
          description: >-
            The person acting through the access credential, recorded as
            `created_by` of what the request writes. Audit only: access is
            checked on the credential.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GBEmployeeCompensationWrite'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GBEmployeeCompensationSatellite'
        '404':
          description: >-
            - `HUB_NOT_FOUND`: Raised when a hub does not exist under the parent
            named in the path.
          content:
            application/json:
              examples:
                HUB_NOT_FOUND:
                  summary: >-
                    Raised when a hub does not exist under the parent named in
                    the path.
                  value:
                    errors:
                      - code: HUB_NOT_FOUND
                        message: >-
                          Raised when a hub does not exist under the parent
                          named in the path.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: >-
            - `HUB_CLOSED`: Raised on a write to a closed hub: it stays
            readable, its satellites take no writes.
          content:
            application/json:
              examples:
                HUB_CLOSED:
                  summary: >-
                    Raised on a write to a closed hub: it stays readable, its
                    satellites take no writes.
                  value:
                    errors:
                      - code: HUB_CLOSED
                        message: >-
                          Raised on a write to a closed hub: it stays readable,
                          its satellites take no writes.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '412':
          description: >-
            - `EDITION_MISMATCH`: Raised when If-Match names an edition other
            than the one the range lies in.
          content:
            application/json:
              examples:
                EDITION_MISMATCH:
                  summary: >-
                    Raised when If-Match names an edition other than the one the
                    range lies in.
                  value:
                    errors:
                      - code: EDITION_MISMATCH
                        message: >-
                          Raised when If-Match names an edition other than the
                          one the range lies in.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            The request failed validation. Type and format errors use the
            generic FIELD_* codes.

            - `PRECONDITION_MALFORMED`: Raised when If-Match is not one quoted
            version number.

            - `RANGE_CROSSES_EDITION`: Raised when a write's range runs past the
            end of the edition it starts in

            - `VALUE_OUT_OF_RANGE`: Raised when a date lies outside the
            satellite's coverage. `min`/`max` are None
          content:
            application/json:
              examples:
                PRECONDITION_MALFORMED:
                  summary: Raised when If-Match is not one quoted version number.
                  value:
                    errors:
                      - code: PRECONDITION_MALFORMED
                        message: Raised when If-Match is not one quoted version number.
                RANGE_CROSSES_EDITION:
                  summary: >-
                    Raised when a write's range runs past the end of the edition
                    it starts in
                  value:
                    errors:
                      - code: RANGE_CROSSES_EDITION
                        message: >-
                          Raised when a write's range runs past the end of the
                          edition it starts in
                VALUE_OUT_OF_RANGE:
                  summary: >-
                    Raised when a date lies outside the satellite's coverage.
                    `min`/`max` are None
                  value:
                    errors:
                      - code: VALUE_OUT_OF_RANGE
                        message: >-
                          Raised when a date lies outside the satellite's
                          coverage. `min`/`max` are None
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '428':
          description: >-
            - `PRECONDITION_REQUIRED`: Raised when a write that needs If-Match
            arrives without it.
          content:
            application/json:
              examples:
                PRECONDITION_REQUIRED:
                  summary: Raised when a write that needs If-Match arrives without it.
                  value:
                    errors:
                      - code: PRECONDITION_REQUIRED
                        message: >-
                          Raised when a write that needs If-Match arrives
                          without it.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerToken: []
components:
  schemas:
    GBEmployeeCompensationWrite:
      properties:
        pay_group_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Pay Group Id
          description: The pay group the employee is paid in
        earnings:
          anyOf:
            - items:
                $ref: '#/components/schemas/AmountEarnings-Input'
              type: array
            - type: 'null'
          title: Earnings
        benefits:
          anyOf:
            - items:
                $ref: '#/components/schemas/Benefits-Input'
              type: array
            - type: 'null'
          title: Benefits
        deductions:
          anyOf:
            - items:
                $ref: '#/components/schemas/Deductions-Input'
              type: array
            - type: 'null'
          title: Deductions
        reimbursements:
          anyOf:
            - items:
                $ref: '#/components/schemas/Reimbursement-Input'
              type: array
            - type: 'null'
          title: Reimbursements
        valid_from:
          type: string
          format: date
          title: Valid From
        valid_to:
          type: string
          format: date
          title: Valid To
      additionalProperties: false
      type: object
      required:
        - valid_from
        - valid_to
      title: GBEmployeeCompensationWrite
    GBEmployeeCompensationSatellite:
      properties:
        pay_group_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Pay Group Id
          description: The pay group the employee is paid in
        earnings:
          anyOf:
            - items:
                $ref: '#/components/schemas/AmountEarnings-Output'
              type: array
            - type: 'null'
          title: Earnings
        benefits:
          anyOf:
            - items:
                $ref: '#/components/schemas/Benefits-Output'
              type: array
            - type: 'null'
          title: Benefits
        deductions:
          anyOf:
            - items:
                $ref: '#/components/schemas/Deductions-Output'
              type: array
            - type: 'null'
          title: Deductions
        reimbursements:
          anyOf:
            - items:
                $ref: '#/components/schemas/Reimbursement-Output'
              type: array
            - type: 'null'
          title: Reimbursements
        edition:
          type: integer
          title: Edition
          readOnly: true
        valid_from:
          type: string
          format: date
          title: Valid From
        valid_to:
          type: string
          format: date
          title: Valid To
        created_at:
          type: string
          format: date-time
          title: Created At
          readOnly: true
        created_by:
          type: string
          title: Created By
          description: >-
            Who wrote the edition: the acting user (`X-Acting-User`, else the
            access credential), `system` for our own writes, or
            `<authority>:<notice>` for a write on an authority's behalf, e.g.
            `hmrc:P6`.
          readOnly: true
      additionalProperties: false
      type: object
      required:
        - edition
        - valid_from
        - valid_to
        - created_at
        - created_by
      title: GBEmployeeCompensationSatellite
    ErrorResponse:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Errors
          description: Errors that occurred
      additionalProperties: false
      type: object
      required:
        - errors
      title: ErrorResponse
      description: >-
        Body of every error response: PayrollExceptions and request validation
        errors.
    AmountEarnings-Input:
      properties:
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: >-
            Caller-owned line key, scoped to (payrun, employee, wage_type).
            Re-send with the same value to patch that line in place. Omit for
            the single default line of the wage type (also patched in place on
            re-send). Use distinct values to carry multiple lines of one wage
            type.
        earning_type:
          type: string
          const: AMOUNT
          title: Earning Type
          default: AMOUNT
        wage_type_code:
          type: string
          title: Wage Type Code
          description: Wage type code from catalog (e.g. UK-E-001)
        amount:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: >-
            Earnings amount (negative values represent period adjustments, e.g.
            leave reductions)
        earning_frequency:
          anyOf:
            - $ref: '#/components/schemas/PayCycle'
            - type: 'null'
          description: If recurring, specify the frequency
          default: MONTH
        is_lumpsum:
          type: boolean
          title: Is Lumpsum
          description: True if onetime. Defaults to False
          default: false
        sacrificed_amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Sacrificed Amount
          description: >-
            Amount of this earning the employee has sacrificed (Type A OpRA).
            Pre-tax. Must be > 0 when set. Wage type must have
            is_salary_sacrifice_allowed=True
      additionalProperties: false
      type: object
      required:
        - wage_type_code
        - amount
      title: AmountEarnings
      description: Fixed-amount earnings (salary, bonus, allowance). Amount + frequency.
    Benefits-Input:
      properties:
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: >-
            Caller-owned line key, scoped to (payrun, employee, wage_type).
            Re-send with the same value to patch that line in place. Omit for
            the single default line of the wage type (also patched in place on
            re-send). Use distinct values to carry multiple lines of one wage
            type.
        wage_type_code:
          type: string
          title: Wage Type Code
          description: Wage type code from catalog (e.g. UK-B-001)
        amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Amount
          description: Amount of benefit
          default: '0.00'
        make_good_amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Make Good Amount
          description: Amount paid by employee for the benefit
          default: '0.00'
        foregone_amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Foregone Amount
          description: If subject to OpRa, amount foregone
          default: '0.00'
        cash_alternative_amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Cash Alternative Amount
          description: >-
            Cash alternative the employee declined in favour of this benefit
            (Type B OpRA). Contributes to BIK higher-of valuation only; does NOT
            reduce gross. Requires is_salary_sacrifice_allowed=True on the wage
            type.
          default: '0.00'
      additionalProperties: false
      type: object
      required:
        - wage_type_code
      title: Benefits
    Deductions-Input:
      properties:
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: >-
            Caller-owned line key, scoped to (payrun, employee, wage_type).
            Re-send with the same value to patch that line in place. Omit for
            the single default line of the wage type (also patched in place on
            re-send). Use distinct values to carry multiple lines of one wage
            type.
        wage_type_code:
          type: string
          title: Wage Type Code
          description: Wage type code from catalog (e.g. UK-D-001)
        amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
        sacrificed_amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Sacrificed Amount
          description: >-
            Portion of this deduction that is pre-tax salary sacrifice (Type A
            OpRA). Must be > 0 and <= amount when set. Wage type must have
            is_salary_sacrifice_allowed=True (validated at service layer).
      additionalProperties: false
      type: object
      required:
        - wage_type_code
        - amount
      title: Deductions
    Reimbursement-Input:
      properties:
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: >-
            Caller-owned line key, scoped to (payrun, employee, wage_type).
            Re-send with the same value to patch that line in place. Omit for
            the single default line of the wage type (also patched in place on
            re-send). Use distinct values to carry multiple lines of one wage
            type.
        wage_type_code:
          type: string
          title: Wage Type Code
          description: Wage type code from catalog (e.g. UK-R-001)
        amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
      additionalProperties: false
      type: object
      required:
        - wage_type_code
        - amount
      title: Reimbursement
    AmountEarnings-Output:
      properties:
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: >-
            Caller-owned line key, scoped to (payrun, employee, wage_type).
            Re-send with the same value to patch that line in place. Omit for
            the single default line of the wage type (also patched in place on
            re-send). Use distinct values to carry multiple lines of one wage
            type.
        earning_type:
          type: string
          const: AMOUNT
          title: Earning Type
          default: AMOUNT
        wage_type_code:
          type: string
          title: Wage Type Code
          description: Wage type code from catalog (e.g. UK-E-001)
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: >-
            Earnings amount (negative values represent period adjustments, e.g.
            leave reductions)
        earning_frequency:
          anyOf:
            - $ref: '#/components/schemas/PayCycle'
            - type: 'null'
          description: If recurring, specify the frequency
          default: MONTH
        is_lumpsum:
          type: boolean
          title: Is Lumpsum
          description: True if onetime. Defaults to False
          default: false
        sacrificed_amount:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Sacrificed Amount
          description: >-
            Amount of this earning the employee has sacrificed (Type A OpRA).
            Pre-tax. Must be > 0 when set. Wage type must have
            is_salary_sacrifice_allowed=True
      additionalProperties: false
      type: object
      required:
        - wage_type_code
        - amount
      title: AmountEarnings
      description: Fixed-amount earnings (salary, bonus, allowance). Amount + frequency.
    Benefits-Output:
      properties:
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: >-
            Caller-owned line key, scoped to (payrun, employee, wage_type).
            Re-send with the same value to patch that line in place. Omit for
            the single default line of the wage type (also patched in place on
            re-send). Use distinct values to carry multiple lines of one wage
            type.
        wage_type_code:
          type: string
          title: Wage Type Code
          description: Wage type code from catalog (e.g. UK-B-001)
        amount:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Amount
          description: Amount of benefit
          default: '0.00'
        make_good_amount:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Make Good Amount
          description: Amount paid by employee for the benefit
          default: '0.00'
        foregone_amount:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Foregone Amount
          description: If subject to OpRa, amount foregone
          default: '0.00'
        cash_alternative_amount:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Cash Alternative Amount
          description: >-
            Cash alternative the employee declined in favour of this benefit
            (Type B OpRA). Contributes to BIK higher-of valuation only; does NOT
            reduce gross. Requires is_salary_sacrifice_allowed=True on the wage
            type.
          default: '0.00'
      additionalProperties: false
      type: object
      required:
        - wage_type_code
      title: Benefits
    Deductions-Output:
      properties:
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: >-
            Caller-owned line key, scoped to (payrun, employee, wage_type).
            Re-send with the same value to patch that line in place. Omit for
            the single default line of the wage type (also patched in place on
            re-send). Use distinct values to carry multiple lines of one wage
            type.
        wage_type_code:
          type: string
          title: Wage Type Code
          description: Wage type code from catalog (e.g. UK-D-001)
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
        sacrificed_amount:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Sacrificed Amount
          description: >-
            Portion of this deduction that is pre-tax salary sacrifice (Type A
            OpRA). Must be > 0 and <= amount when set. Wage type must have
            is_salary_sacrifice_allowed=True (validated at service layer).
      additionalProperties: false
      type: object
      required:
        - wage_type_code
        - amount
      title: Deductions
    Reimbursement-Output:
      properties:
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: >-
            Caller-owned line key, scoped to (payrun, employee, wage_type).
            Re-send with the same value to patch that line in place. Omit for
            the single default line of the wage type (also patched in place on
            re-send). Use distinct values to carry multiple lines of one wage
            type.
        wage_type_code:
          type: string
          title: Wage Type Code
          description: Wage type code from catalog (e.g. UK-R-001)
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
      additionalProperties: false
      type: object
      required:
        - wage_type_code
        - amount
      title: Reimbursement
    ErrorDetail:
      properties:
        code:
          anyOf:
            - $ref: '#/components/schemas/ErrorCode'
            - $ref: '#/components/schemas/PydanticErrorCode'
          title: Code
          description: Unique error code for i18n lookup
        message:
          type: string
          title: Message
          description: English fallback error message
        field:
          anyOf:
            - type: string
            - type: 'null'
          title: Field
          description: Field that caused the error
        params:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Params
          description: Parameters for translation interpolation
      additionalProperties: false
      type: object
      required:
        - code
        - message
      title: ErrorDetail
      description: |-
        Represents an error that occurred during processing.

        Designed for client-side i18n:
        - code: Use this to look up translation (e.g., "ORG_NOT_FOUND")
        - message: English fallback if translation not available
        - field: Field name for form validation highlighting
        - params: Dynamic values for translation interpolation
    PayCycle:
      type: string
      enum:
        - YEAR
        - MONTH
        - WEEK
        - TWO_WEEK
        - FOUR_WEEK
        - QUARTER
        - BIANNUAL
      title: PayCycle
      description: >-
        Employee pay cadence (WEEK, MONTH, etc.).


        The `UpperStrEnum` base keeps members equal to their upper-case names,
        so

        stored payloads and API strings round-trip.
    ErrorCode:
      type: string
      enum:
        - ADDRESS_NOT_FOUND
        - ADDRESS_CREATION_ERROR
        - ADDRESS_UPDATING_ERROR
        - ADDRESS_COUNTRY_CODE_MISMATCH
        - ORG_NOT_FOUND
        - ORG_DUPLICATE_EXTERNAL_REF
        - ORG_HAS_ACTIVE_EMPLOYEES
        - ORG_ALREADY_SHUTDOWN
        - ORG_COUNTRY_CHANGE_NOT_ALLOWED
        - ORG_BELONGS_TO_A_DIFFERENT_COUNTRY
        - COUNTRY_NOT_SUPPORTED
        - CONTACT_NOT_FOUND
        - CONTACT_ACCESS_DENIED
        - WORKSITE_NOT_FOUND
        - BANK_ACCOUNT_NOT_FOUND
        - BANK_ACCOUNT_MISSING_SWIFT
        - BANK_ACCOUNT_MISSING_IBAN
        - BANK_ACCOUNT_INVALID_COMBINATION
        - BANK_ACCOUNT_NOT_ASSOCIATED_WITH_ORG
        - EMPLOYEE_NOT_FOUND
        - EMPLOYEE_ACCESS_DENIED
        - EMPLOYEES_ACCESS_DENIED
        - EMPLOYEES_DO_NOT_BELONG_TO_PAY_GROUP
        - EMPLOYEES_ASSIGNED_TO_PAY_GROUP
        - EMPLOYEE_IN_OPEN_PAYROLL
        - DUPLICATE_EMPLOYEE_IDS
        - PAYROLL_STATUS_NOT_FOUND
        - TASK_STATUS_CHECKER_NOT_FOUND
        - PAYROLL_TASK_INVALID_STATUS
        - CALCULATION_TASK_NOT_FOUND_IN_PAYROLL
        - PAYRUN_ALREADY_EXISTS
        - PAYRUN_NOT_FOUND
        - PAYRUN_NOT_IN_DRAFT_STATUS
        - PAYRUN_NOT_APPROVED
        - PAYRUN_STILL_PROCESSING
        - PAYRUN_MISSING_PAYSLIPS
        - PAYRUN_OPERATION_FAILED
        - PAYRUN_CONTAINS_EMPLOYEES_NOT_IN_PAY_GROUP
        - PAYRUN_EMPTY_PAY_DETAILS
        - PAYRUN_NMW_VIOLATIONS
        - SACRIFICE_NOT_ALLOWED
        - PAY_GROUP_NOT_FOUND
        - ONE_OR_MORE_PAY_GROUP_NOT_FOUND
        - PAY_GROUP_IS_IN_RUNNING_PAYROLL
        - PAY_CALENDAR_NOT_FOUND
        - PAY_PERIOD_UNRESOLVED
        - GB_PRORATION_BASIS_MALFORMED
        - INSURANCE_DATA_NOT_FOUND
        - INSURANCE_OPERATION_FAILED
        - PREFERENCES_NOT_FOUND
        - TAX_IDENTIFIER_NOT_FOUND
        - TAX_DATA_REQUIRED
        - PAYSLIP_OPERATION_FAILED
        - PAYSLIP_PDF_GENERATION_FAILED
        - PAYSLIP_FPS_VALIDATION_FAILED
        - PAYSLIP_FPS_SUBMISSION_FAILED
        - PAYSLIP_FPS_POLLING_FAILED
        - PAYSLIP_NOT_FOUND
        - DOCUMENT_NOT_FOUND
        - DOCUMENT_ACCESS_DENIED
        - DOCUMENT_UPLOAD_FAILED
        - DOCUMENT_DOWNLOAD_FAILED
        - DOCUMENT_DELETION_FAILED
        - DOCUMENT_OPERATION_FAILED
        - DOCUMENT_INVALID_TYPE
        - DOCUMENT_SIZE_EXCEEDED
        - DOCUMENT_UNSUPPORTED_FILE_TYPE
        - DOCUMENT_RATE_LIMIT_EXCEEDED
        - DOCUMENT_TEMPLATE_NOT_FOUND
        - DOCUMENT_TEMPLATE_INVALID_SYNTAX
        - DOCUMENT_TEMPLATE_ALREADY_ACTIVE
        - DOCUMENT_TEMPLATE_OPERATION_FAILED
        - WAGE_TYPE_NOT_FOUND
        - WAGE_TYPE_ALREADY_EXISTS
        - WAGE_TYPE_DRAFT_EXISTS
        - WAGE_TYPE_INVALID_DATE
        - COMPENSATION_EFFECTIVE_DATE_TOO_OLD
        - COMPENSATION_PAY_GROUP_READ_ONLY
        - PENSION_SCHEME_NOT_FOUND
        - PENSION_SCHEME_ALREADY_EXISTS
        - PENSION_SCHEME_INVALID_VALID_FROM
        - PENSION_MEMBERSHIP_NOT_FOUND
        - PENSION_MEMBERSHIP_ALREADY_ACTIVE
        - PENSION_MEMBERSHIP_NOT_ACTIVE
        - PENSION_MEMBERSHIP_INVALID_VALID_FROM
        - PENSION_WAGE_TYPE_OVERRIDE_INCOMPLETE
        - PENSION_WAGE_TYPE_MISMATCH
        - PENSION_RATE_BELOW_MINIMUM
        - PENSION_INVALID_ENTRY_ROUTE
        - PENSION_OPT_IN_TOO_SOON
        - PENSION_JOIN_NOT_ENTITLED
        - PENSION_NO_FUTURE_PAY_PERIOD
        - PENSION_FIXED_AMOUNT_RATE_EXCLUSIVE
        - PENSION_INVALID_STATE_TRANSITION
        - NEST_ALREADY_CONNECTED
        - NEST_EMPLOYER_REFERENCE_MISMATCH
        - NEST_EMPLOYER_REFERENCE_TAKEN
        - NEST_NOT_CONNECTED
        - NEST_SETUP_IN_PROGRESS
        - NEST_SCHEME_NOT_NEST_PROVIDER
        - NEST_SCHEME_MISSING_CONFIG
        - NEST_SCHEME_NOT_API_SUBMISSION
        - NEST_NOT_CONFIGURED
        - NEST_PROVIDER_CONFIG_INVALID
        - NEST_PROVIDER_CONFIG_LOCKED
        - NEST_SETUP_MISSING_DATA
        - NEST_SETUP_UNSUPPORTED
        - NEST_FIRST_EPED_IN_PAST
        - P32_EA_INELIGIBLE
        - P32_RECORD_NOT_FOUND
        - P32_NO_SURPLUS
        - P32_REPAYMENT_EXCEEDS_SURPLUS
        - HMRC_STATUS_NOT_FOUND
        - HMRC_INVALID_STATE_TRANSITION
        - EPS_NOT_FOUND
        - FPS_SUBMISSION_NOT_FOUND
        - FPS_PAYMENT_AFTER_LEAVING_WITHOUT_LEAVING_DATE
        - EPS_DATE_SCHEME_CEASED_IN_FUTURE
        - EPS_FINAL_SUBMISSION_NO_TYPE
        - EPS_DATE_SCHEME_CEASED_WITHOUT_SCHEME_CEASED
        - EPS_RECOVERABLE_AMOUNTS_NO_FIELDS
        - EPS_NO_SECTIONS_PROVIDED
        - P11D_INVALID_TAX_YEAR
        - P11D_OUTSIDE_FILING_WINDOW
        - P11D_NOT_FOUND
        - P11D_DELETE_BLOCKED
        - BACS_SUN_NOT_CONFIGURED
        - BACS_FILE_NOT_FOUND
        - BACS_TASK_NOT_SCHEDULED
        - BACS_TASK_IN_PROGRESS
        - BACS_TASK_FAILED
        - BACS_NO_PAYMENTS
        - BACS_FILE_LATE
        - GB_RTI_ID_DUPLICATE
        - GB_RTI_ID_REUSED_IN_TAX_YEAR
        - GB_PAYROLL_CALCULATION_RESULTS_NOT_READY
        - GB_VALUED_GROUP_NOT_DECLARED
        - GB_PRORATION_INPUT_ERROR
        - GB_UNCLAIMED_SEGMENT
        - GB_SMP_TOP_UP_BASIS_MISSING
        - GB_PRIOR_SLICE_WITHOUT_CURRENT_LINE
        - GB_PRESENCE_FACTOR_NOT_SET
        - GB_CONFLICTING_PRESENCE_FACTOR
        - GB_PENSION_EARNINGS_DEFINITION_UNHANDLED
        - GB_EARNINGS_HISTORY_GAP
        - GB_EARNINGS_HISTORY_MIGRATION_INVALID
        - GB_EARNINGS_HISTORY_RANGE_INVALID
        - GB_AWE_PAY_DAY_COUNT_MISMATCH
        - GB_PERIOD_FIGURES_INCOMPLETE
        - GB_WAGE_TYPE_NIC_CLASS_CONFLICT
        - GB_GROSSUP_FLOW_ORDER
        - REPORT_NOT_FOUND
        - REPORT_ALREADY_EXISTS
        - REPORT_DOCUMENT_MISSING
        - GTN_NO_APPROVED_PAYSLIPS
        - YTD_NO_PAYSLIPS
        - REPORT_EMPLOYEE_DATA_MISSING
        - VARIANCE_REPORT_NOT_FOUND
        - ORG_SCOPED_REPORT_SCOPE_MISMATCH
        - EMPLOYEE_SCOPED_REPORT_SCOPE_MISMATCH
        - FPS_SUMMARY_NO_PAYRUNS
        - P45_NOT_GENERATED
        - P45_EMPLOYEE_NOT_LEAVER
        - P45_MISSING_EMPLOYER_TAX_IDENTIFIER
        - P60_NO_QUALIFYING_EMPLOYEES
        - P60_NOT_GENERATED
        - P60_MISSING_EMPLOYER_TAX_IDENTIFIER
        - P60_NI_CATEGORY_MISMATCH
        - EXB_SUBMISSION_ALREADY_EXISTS
        - EXB_SUBMISSION_NOT_FOUND
        - EXB_OUTSIDE_FILING_WINDOW
        - EXB_INVALID_TAX_YEAR
        - P46_CAR_NOT_FOUND
        - P46_CAR_LOCKED
        - PENSION_REPORT_NOT_FOUND
        - PAYROLL_LIABILITY_REPORT_NO_DATA
        - PAYROLL_LIABILITY_PAY_DATE_TAX_PERIOD_UNRESOLVED
        - ABSENCE_NOT_FOUND
        - ABSENCE_CANCELLED
        - GB_ABSENCE_OVERLAP
        - GB_ABSENCE_COMPULSORY_LEAVE
        - GB_ABSENCE_DUPLICATE_KIT_DAY
        - GB_ABSENCE_EMPLOYEE_COUNTRY_MISMATCH
        - GB_ABSENCE_FACTS_OMITTED
        - GB_ABSENCE_CONTENT_MALFORMED
        - GB_ABSENCE_WRITE_WITHOUT_LOCK
        - GB_ABSENCE_SCHEME_NOT_FOUND
        - GB_ABSENCE_SCHEME_REGIME_IMMUTABLE
        - GB_ABSENCE_SCHEME_TERMS_MALFORMED
        - GB_ABSENCE_SCHEME_TOP_UP_WAGE_TYPE_INVALID
        - GB_ABSENCE_SCHEME_EDITION_BACKDATED
        - GB_ABSENCE_SCHEME_IN_USE
        - GB_ABSENCE_SCHEME_ASSIGNMENT_NOT_FOUND
        - GB_ABSENCE_SCHEME_ASSIGNMENT_UNKNOWN_SCHEME
        - GB_ABSENCE_SCHEME_ASSIGNMENT_REGIME_MISMATCH
        - GB_ABSENCE_SCHEME_ASSIGNMENT_BACKDATED
        - GB_ABSENCE_SCHEME_ASSIGNMENT_INVALID_END
        - GB_ABSENCE_SCHEME_ASSIGNMENT_TARGET_INVALID
        - GB_ABSENCE_SCHEME_NO_TERMS_IN_FORCE
        - GB_ABSENCE_SCHEME_REGIME_MISMATCH
        - GB_SMP_PRESCRIBED_RATE_UNKNOWN
        - GB_SMP_START_TOO_EARLY
        - GB_SMP_EVIDENCE_MISSING
        - GB_SMP_CLAIM_ANCHOR_MISMATCH
        - GB_SMP_STATUTORY_WAGE_TYPE_MISSING
        - GB_SMP_ALLOCATION_PREFERENCE_MALFORMED
        - GB_SMP_PAY_CALENDAR_INCONSISTENT
        - GB_SMP_CURSOR_MALFORMED
        - GB_SMP_TOP_UP_WAGE_TYPE_MISSING
        - GB_SMP_ALLOCATION_MODE_CHANGED
        - GB_SMP_DEFERRED_TOP_UP_STAMPED
        - GB_SMP_PERIOD_GRID_AMBIGUOUS
        - GB_SMP_LINE_META_VERSION_UNKNOWN
        - DEFINITION_EDITION_MISSING
        - DEFINITION_EDITION_GAP
        - HUB_NOT_FOUND
        - HUB_CLOSED
        - HUB_DUPLICATE_EXTERNAL_REF
        - EDITION_MISMATCH
        - PRECONDITION_REQUIRED
        - PRECONDITION_MALFORMED
        - RANGE_CROSSES_EDITION
        - VALUE_OUT_OF_RANGE
        - SATELLITE_INCOMPLETE
      title: ErrorCode
      description: |-
        Centralized error codes for i18n translation.

        Naming convention: {RESOURCE}_{ERROR_TYPE}
        - ORG_NOT_FOUND - Organization not found
    PydanticErrorCode:
      type: string
      enum:
        - FIELD_REQUIRED
        - FIELD_INVALID_TYPE_STRING
        - FIELD_INVALID_TYPE_INT
        - FIELD_INVALID_TYPE_FLOAT
        - FIELD_INVALID_TYPE_BOOL
        - FIELD_INVALID_TYPE_DICT
        - FIELD_INVALID_TYPE_LIST
        - FIELD_STRING_TOO_SHORT
        - FIELD_STRING_TOO_LONG
        - FIELD_STRING_PATTERN_MISMATCH
        - FIELD_VALUE_TOO_SMALL
        - FIELD_VALUE_TOO_LARGE
        - FIELD_INVALID_DATE
        - FIELD_INVALID_DATETIME
        - FIELD_INVALID_TIME
        - FIELD_INVALID_DATE_FORMAT
        - FIELD_INVALID_DATETIME_FORMAT
        - FIELD_INVALID_ENUM_VALUE
        - FIELD_INVALID_EMAIL
        - FIELD_INVALID_URL
        - FIELD_LIST_TOO_SHORT
        - FIELD_LIST_TOO_LONG
        - FIELD_UNKNOWN
        - FIELD_VALIDATION_ERROR
      title: PydanticErrorCode
      description: |-
        Error codes for Pydantic validation errors.

        Maps Pydantic error types to our error codes for i18n.
  securitySchemes:
    BearerToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Get token from Auth0 and paste it here

````

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