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



## OpenAPI

````yaml /api-reference/preview.json post /organizations/{organization_id}/employees
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers: []
security: []
paths:
  /organizations/{organization_id}/employees:
    post:
      tags:
        - Core
        - Employees
      summary: Create Employees
      operationId: create_employees_organizations__organization_id__employees_post
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            anyOf:
              - type: string
              - type: string
                format: uuid
            title: Organization Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/EmployeeRequest'
              title: Employees
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EmployeeResponse'
                title: >-
                  Response Create Employees Organizations  Organization Id 
                  Employees Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - BearerToken: []
components:
  schemas:
    EmployeeRequest:
      properties:
        employee_data:
          oneOf:
            - $ref: '#/components/schemas/DEEmployee'
            - $ref: '#/components/schemas/GBEmployee'
          title: Employee Data
          description: Country-specific employee data based on employment country
          discriminator:
            propertyName: employment_country
            mapping:
              DE:
                $ref: '#/components/schemas/DEEmployee'
              GB:
                $ref: '#/components/schemas/GBEmployee'
        bank_accounts:
          anyOf:
            - items:
                $ref: '#/components/schemas/BankAccountRequest'
              type: array
            - type: 'null'
          title: Bank Accounts
          description: List of bank accounts associated with the employee
        pay_group_id:
          anyOf:
            - type: string
            - type: string
              format: uuid
            - type: 'null'
          title: Pay Group Id
          description: Pay group ID for the employee
      additionalProperties: true
      type: object
      required:
        - employee_data
      title: EmployeeRequest
      description: Discriminated union of country-specific employee requests.
    EmployeeResponse:
      properties:
        id:
          type: string
          title: Id
          description: Unique employee identifier
        organization_id:
          type: string
          title: Organization Id
          description: Employee's organization
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
          description: Employee record creation timestamp
        updated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Updated At
          description: Employee record last update timestamp
        employee_data:
          oneOf:
            - $ref: '#/components/schemas/DEEmployeeResponse'
            - $ref: '#/components/schemas/GBEmployeeResponse'
          title: Employee Data
          description: Country-specific employee data with IDs and timestamps
          discriminator:
            propertyName: employment_country
            mapping:
              DE:
                $ref: '#/components/schemas/DEEmployeeResponse'
              GB:
                $ref: '#/components/schemas/GBEmployeeResponse'
        bank_accounts:
          items:
            $ref: '#/components/schemas/BankAccountResponse'
          type: array
          title: Bank Accounts
          description: Employee bank accounts
        pay_group_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Pay Group Id
          description: Pay group ID for the employee
      type: object
      required:
        - id
        - organization_id
        - created_at
        - updated_at
        - employee_data
        - bank_accounts
      title: EmployeeResponse
      description: Employee response model with metadata fields.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    DEEmployee:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: 'EN: External reference | DE: Externe Referenz'
        start_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Start Date
          description: 'EN: Employment start date | DE: Beschäftigungsbeginn'
        end_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: End Date
          description: 'EN: Employment end date | DE: Beschäftigungsende'
        birth_date:
          type: string
          format: date
          title: Birth Date
        birth_place:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Place
        birth_country:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Country
        personal_email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Personal Email
        work_email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Work Email
        phone_numbers:
          anyOf:
            - items:
                $ref: '#/components/schemas/payroll__gb__schema__employee__Phones'
              type: array
            - type: 'null'
          title: Phone Numbers
          description: 'EN: Phone numbers | DE: Telefonnummern'
        personal_data:
          anyOf:
            - $ref: '#/components/schemas/DEPersonalData'
            - type: 'null'
          description: 'EN: Personal data | DE: Personaldaten'
        related_persons:
          anyOf:
            - $ref: '#/components/schemas/DERelatedPersonsRequest'
            - type: 'null'
          description: 'EN: Family details | DE: Familiendaten'
        job_details:
          anyOf:
            - $ref: '#/components/schemas/payroll__de__schema__employee__JobDetails'
            - type: 'null'
          description: 'EN: Job details | DE: Beschäftigungsdetails'
        insurance_details:
          anyOf:
            - $ref: >-
                #/components/schemas/payroll__de__schema__employee__InsuranceDetails
            - type: 'null'
          description: 'EN: Insurance details | DE: Versicherungsdetails'
        tax_details:
          anyOf:
            - $ref: '#/components/schemas/DETaxDetails'
            - type: 'null'
          description: 'EN: Tax data | DE: Steuerdaten'
      additionalProperties: true
      type: object
      required:
        - birth_date
      title: DEEmployee
      description: Schema for German employee data.
    GBEmployee:
      properties:
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        external_ref:
          anyOf:
            - type: string
              maxLength: 20
              minLength: 1
            - type: 'null'
          title: External Ref
          description: 'EN: External reference | DE: Externe Referenz'
        start_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Start Date
          description: 'EN: Employment start date | DE: Beschäftigungsbeginn'
        end_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: End Date
          description: 'EN: Employment end date | DE: Beschäftigungsende'
        birth_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Birth Date
        birth_place:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Place
        birth_country:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Country
        personal_email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Personal Email
        work_email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Work Email
        phone_numbers:
          anyOf:
            - items:
                $ref: '#/components/schemas/payroll__gb__schema__employee__Phones'
              type: array
            - type: 'null'
          title: Phone Numbers
          description: List of phone numbers
        personal_data:
          anyOf:
            - $ref: '#/components/schemas/GBPersonalData'
            - type: 'null'
          description: 'EN: Personal data | DE: Personaldaten'
        related_persons:
          anyOf:
            - $ref: '#/components/schemas/GBRelatedPersonsRequest'
            - type: 'null'
          description: 'EN: Family details | DE: Familiendaten'
        job_details:
          anyOf:
            - $ref: '#/components/schemas/payroll__gb__schema__employee__JobDetails'
            - type: 'null'
          description: 'EN: Job details | DE: Beschäftigungsdetails'
        insurance_details:
          anyOf:
            - $ref: >-
                #/components/schemas/payroll__gb__schema__employee__InsuranceDetails
            - type: 'null'
          description: 'EN: Insurance details | DE: Versicherungsdetails'
        tax_details:
          anyOf:
            - $ref: '#/components/schemas/GBTaxDetails'
            - type: 'null'
          description: 'EN: Tax data | DE: Steuerdaten'
      additionalProperties: true
      type: object
      title: GBEmployee
      description: Schema for UK employee data.
    BankAccountRequest:
      properties:
        financial_institution_name:
          type: string
          title: Financial Institution Name
          examples:
            - Deutsche Bank
            - Lloyds Bank
        account_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Account Number
          examples:
            - 'DE: DE89370400440532013000'
            - 'GB: 31926819'
        routing_number:
          anyOf:
            - type: string
              maxLength: 9
              minLength: 9
            - type: 'null'
          title: Routing Number
          examples:
            - 'DE: 370400440'
            - 'GB: 226073523'
        iban:
          anyOf:
            - type: string
              maxLength: 34
              title: IBAN
            - type: 'null'
          title: Iban
          examples:
            - 'DE: DE89370400440532013000'
            - 'GB: GB29NWBK60161331926819'
        swift_code:
          anyOf:
            - type: string
              maxLength: 11
              minLength: 8
              pattern: '[A-Z0-9]{4}[A-Z]{2}[A-Z0-9]{2}(:?[A-Z0-9]{3})?'
              title: BIC
            - type: 'null'
          title: Swift Code
          examples:
            - 'DE: COBADEFFXXX'
            - 'GB: NWBK6016'
        account_details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Account Details
        is_active:
          type: boolean
          title: Is Active
          default: true
        is_primary:
          type: boolean
          title: Is Primary
          default: false
      additionalProperties: true
      type: object
      required:
        - financial_institution_name
      title: BankAccountRequest
      description: Schema for creating bank accounts
    DEEmployeeResponse:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        external_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: External Ref
          description: 'EN: External reference | DE: Externe Referenz'
        start_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Start Date
          description: 'EN: Employment start date | DE: Beschäftigungsbeginn'
        end_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: End Date
          description: 'EN: Employment end date | DE: Beschäftigungsende'
        birth_date:
          type: string
          format: date
          title: Birth Date
        birth_place:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Place
        birth_country:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Country
        personal_email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Personal Email
        work_email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Work Email
        phone_numbers:
          anyOf:
            - items:
                $ref: '#/components/schemas/payroll__gb__schema__employee__Phones'
              type: array
            - type: 'null'
          title: Phone Numbers
          description: 'EN: Phone numbers | DE: Telefonnummern'
        personal_data:
          anyOf:
            - $ref: '#/components/schemas/DEPersonalDataResponse'
            - type: 'null'
        related_persons:
          anyOf:
            - $ref: '#/components/schemas/DERelatedPersonsResponse'
            - type: 'null'
        job_details:
          anyOf:
            - $ref: >-
                #/components/schemas/payroll__de__schema__employee__JobDetailsResponse
            - type: 'null'
        insurance_details:
          anyOf:
            - $ref: >-
                #/components/schemas/payroll__de__schema__employee__InsuranceDetailsResponse
            - type: 'null'
        tax_details:
          anyOf:
            - $ref: '#/components/schemas/DETaxDetailsResponse'
            - type: 'null'
        previous_employee_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Previous Employee Id
          description: Previous employee identifier
        next_employee_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Employee Id
          description: Next employee identifier
      additionalProperties: true
      type: object
      required:
        - birth_date
        - personal_data
        - related_persons
        - job_details
        - insurance_details
        - tax_details
      title: DEEmployeeResponse
    GBEmployeeResponse:
      properties:
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        external_ref:
          type: string
          title: External Ref
          description: 'EN: External reference | DE: Externe Referenz'
        start_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Start Date
          description: 'EN: Employment start date | DE: Beschäftigungsbeginn'
        end_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: End Date
          description: 'EN: Employment end date | DE: Beschäftigungsende'
        birth_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Birth Date
        birth_place:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Place
        birth_country:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Country
        personal_email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Personal Email
        work_email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Work Email
        phone_numbers:
          anyOf:
            - items:
                $ref: '#/components/schemas/payroll__gb__schema__employee__Phones'
              type: array
            - type: 'null'
          title: Phone Numbers
          description: List of phone numbers
        personal_data:
          anyOf:
            - $ref: '#/components/schemas/GBPersonalDataResponse'
            - type: 'null'
        related_persons:
          anyOf:
            - $ref: '#/components/schemas/GBRelatedPersonsResponse'
            - type: 'null'
        job_details:
          anyOf:
            - $ref: >-
                #/components/schemas/payroll__gb__schema__employee__JobDetailsResponse
            - type: 'null'
        insurance_details:
          anyOf:
            - $ref: >-
                #/components/schemas/payroll__gb__schema__employee__InsuranceDetailsResponse
            - type: 'null'
        tax_details:
          anyOf:
            - $ref: '#/components/schemas/GBTaxDetailsResponse'
            - type: 'null'
      type: object
      required:
        - external_ref
        - personal_data
        - related_persons
        - job_details
        - insurance_details
        - tax_details
      title: GBEmployeeResponse
    BankAccountResponse:
      properties:
        financial_institution_name:
          type: string
          title: Financial Institution Name
          examples:
            - Deutsche Bank
            - Lloyds Bank
        account_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Account Number
          examples:
            - 'DE: DE89370400440532013000'
            - 'GB: 31926819'
        routing_number:
          anyOf:
            - type: string
              maxLength: 9
              minLength: 9
            - type: 'null'
          title: Routing Number
          examples:
            - 'DE: 370400440'
            - 'GB: 226073523'
        iban:
          anyOf:
            - type: string
              title: IBAN
            - type: 'null'
          title: Iban
          examples:
            - 'DE: DE89370400440532013000'
            - 'GB: GB29NWBK60161331926819'
        swift_code:
          anyOf:
            - type: string
              title: BIC
            - type: 'null'
          title: Swift Code
          examples:
            - 'DE: COBADEFFXXX'
            - 'GB: NWBK6016'
        account_details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Account Details
        is_active:
          type: boolean
          title: Is Active
          default: true
        is_primary:
          type: boolean
          title: Is Primary
          default: false
        id:
          type: string
          title: Id
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      additionalProperties: true
      type: object
      required:
        - financial_institution_name
        - id
        - created_at
        - updated_at
      title: BankAccountResponse
      description: Schema for bank account responses
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    payroll__gb__schema__employee__Phones:
      properties:
        phone_number:
          type: string
          format: phone
          title: Phone Number
        phone_type:
          $ref: '#/components/schemas/payroll__gb__schema__employee__PhoneType'
        is_primary:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Primary
          description: Is this the primary phone number for the employee?
          default: false
      additionalProperties: true
      type: object
      required:
        - phone_number
        - phone_type
      title: Phones
    DEPersonalData:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        employee_name:
          $ref: '#/components/schemas/DEName'
          description: 'EN: Employee name | DE: Mitarbeitername'
        gender:
          anyOf:
            - $ref: '#/components/schemas/DEGender'
            - type: 'null'
          description: 'EN: Gender | DE: Geschlecht)'
        marital_status:
          anyOf:
            - $ref: '#/components/schemas/MaritalStatus'
            - type: 'null'
          description: 'EN: Marital status | DE: Familienstand'
        nationality:
          anyOf:
            - type: string
            - type: 'null'
          title: Nationality
          description: 'EN: Nationality | DE: Staatsangehörigkeit'
          examples:
            - German
        residence_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Residence Address
          description: 'EN: Residence address | DE: Wohnadresse'
          examples:
            - Taigschuster 11, 82380 Peissenberg, Germany
        status_indicator:
          anyOf:
            - $ref: '#/components/schemas/StatusIndicator'
            - type: 'null'
          description: 'EN: Employee status indicator | DE: Statuskennzeichen'
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      required:
        - employee_name
      title: DEPersonalData
      description: >-
        Schema for personal data of a German employee. Change tracked personal
        data.
    DERelatedPersonsRequest:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        persons:
          items:
            $ref: '#/components/schemas/DEFamilyDetails'
          type: array
          title: Persons
          description: Array of family members
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      required:
        - persons
      title: DERelatedPersonsRequest
      description: >-
        Schema for German related persons collection with array-level temporal
        fields.
    payroll__de__schema__employee__JobDetails:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        job_type:
          anyOf:
            - $ref: '#/components/schemas/DEJobType'
            - type: 'null'
          description: 'EN: Employment type | DE: Beschäftigungsart'
        employment_status:
          anyOf:
            - $ref: '#/components/schemas/DEEmployeeType'
            - type: 'null'
          description: 'EN: Employee type | DE: Mitarbeitertyp'
        is_seasonal_worker:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Seasonal Worker
          description: 'EN: Is seasonal worker? | DE: Ist Saisonarbeitnehmer?'
          default: false
        job_title:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Title
          description: 'EN: Job title | DE: Berufsbezeichnung'
        job_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Description
          description: 'EN: Job description | DE: Stellenbeschreibung'
        school_education:
          anyOf:
            - $ref: '#/components/schemas/SchoolEducation'
            - type: 'null'
          description: >-
            EN: School education | DE: Höchster allgemeinbildender
            Schulabschluss
        professional_education:
          anyOf:
            - $ref: '#/components/schemas/VocationalEducation'
            - type: 'null'
          description: >-
            EN: Professional education | DE:Höchster berufsbildender
            Ausbildungsabschluss
        occupation_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Occupation Code
          description: 'EN: Occupation code  | DE: Tätigkeitsschlüssel'
        contracted_weekly_hours:
          anyOf:
            - type: integer
            - type: 'null'
          title: Contracted Weekly Hours
          description: >-
            EN: Contracted weekly hours | DE: Vertraglich vereinbarte
            Wochenstunden
          default: 40
        contracted_weekdays:
          anyOf:
            - items:
                $ref: '#/components/schemas/Weekday'
              type: array
            - type: 'null'
          title: Contracted Weekdays
          description: 'EN: Contracted weekdays | DE: Vertraglich vereinbarte Wochentage'
        contracted_to_other_company:
          type: boolean
          title: Contracted To Other Company
          description: 'EN: Contracted to another company | DE: Vertrag mit anderem'
          default: false
        worksite_id:
          anyOf:
            - type: string
            - type: string
              format: uuid
            - type: 'null'
          title: Worksite Id
          description: 'EN: Work location | DE: Arbeitsort'
        department:
          anyOf:
            - type: string
            - type: 'null'
          title: Department
          description: 'EN: Department | DE: Abteilung'
        other_jobs:
          anyOf:
            - items:
                $ref: '#/components/schemas/MultipleJobDetails-Input'
              type: array
            - type: 'null'
          title: Other Jobs
          description: 'EN: Other jobs | DE: Andere Beschäftigungen'
        valid_from:
          type: string
          format: date
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      title: JobDetails
      description: |-
        Schema for job-related data of a German employee.
        Supports both standalone and integrated requests.
    payroll__de__schema__employee__InsuranceDetails:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        insurance_number:
          anyOf:
            - type: string
              description: >-
                German Versicherungsnummer (12 chars:
                region-birthdate-name-serial-check). Validates according to VKVV
                § 2. See: https://www.gesetze-im-internet.de/vkvv/__2.html
              examples:
                - 12345678A123
                - 29041275B507
            - type: 'null'
          title: Insurance Number
          description: 'EN: Health insurance number | DE: Versicherungsnummer'
        contribution_group:
          anyOf:
            - type: string
              maxLength: 4
              minLength: 4
            - type: 'null'
          title: Contribution Group
          description: 'EN: Contribution group | DE: Beitragsgruppe'
        person_group:
          anyOf:
            - $ref: '#/components/schemas/PersonGroup'
            - type: 'null'
          description: 'EN: Person group | DE: Personengruppe'
        insurance_provider:
          anyOf:
            - type: string
            - type: 'null'
          title: Insurance Provider
          description: 'EN: Health insurance provider | DE: Krankenkasse'
        alternate_collection_agency:
          anyOf:
            - type: string
            - type: 'null'
          title: Alternate Collection Agency
          description: 'EN: Alternate collection agency | DE: Einzugsstelle'
        private_insurance_health_monthly:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Private Insurance Health Monthly
          description: >-
            EN:Private health insurance monthly|DE:Private Krankenversicherung
            monatlich
          default: '0'
        private_insurance_care_monthly:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Private Insurance Care Monthly
          description: >-
            EN: Private care insurance monthly | DE: Private Pflegeversicherung
            monatlich
          default: '0'
        care_insurance_children:
          anyOf:
            - type: integer
              maximum: 5
              minimum: 0
            - type: 'null'
          title: Care Insurance Children
          description: 'EN: Children for care insurance | DE: Kinder für Pflegeversicherung'
          default: 0
        u1_exempt:
          anyOf:
            - type: boolean
            - type: 'null'
          title: U1 Exempt
          description: 'EN: U1 exemption | DE: U1 Befreiung'
        u2_exempt:
          anyOf:
            - type: boolean
            - type: 'null'
          title: U2 Exempt
          description: 'EN: U2 exemption | DE: U2 Befreiung'
        uv_risk_tariff:
          anyOf:
            - items:
                $ref: '#/components/schemas/RiskTariff-Input'
              type: array
            - type: 'null'
          title: Uv Risk Tariff
          description: 'EN: UV risk tariff details | DE: UV-Risikotarifdetails'
        pension_details:
          anyOf:
            - $ref: '#/components/schemas/PensionDetails'
            - type: 'null'
          description: >-
            EN: Pension details for Annex 04a validation | DE: Rentendetails für
            Anlage 04a-Prüfung
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
        birth_date_context:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Birth Date Context
      additionalProperties: true
      type: object
      title: InsuranceDetails
    DETaxDetails:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        tax_id:
          type: string
          maxLength: 11
          minLength: 11
          title: Tax Id
          description: 'Steuerliche Identifikationsnummer (11 digits) - ELSTAM: steuerid'
        tax_class:
          $ref: '#/components/schemas/TaxClassType'
          description: 'Steuerklasse (1-6) - ELSTAM: steuerklasse'
        child_allowances:
          anyOf:
            - type: number
              multipleOf: 0.5
              maximum: 9
              minimum: 0
            - type: string
              pattern: >-
                ^(?!^[-+.]*$)[+-]?0*(?:\d{0,1}|(?=[\d.]{1,3}0*$)\d{0,1}\.\d{0,1}0*$)
          title: Child Allowances
          description: 'Kinderfreibeträge - ELSTAM: kinderfreibetrag'
          default: '0.0'
        church_confession:
          anyOf:
            - $ref: '#/components/schemas/ChurchTaxConfession'
            - type: 'null'
          description: 'Konfession für Kirchensteuer - ELSTAM: kirchensteuer'
        church_confession_partner:
          anyOf:
            - $ref: '#/components/schemas/ChurchTaxConfession'
            - type: 'null'
          description: 'Konfession des Partners - ELSTAM: kirchensteuer_partner'
        factor_procedure:
          type: boolean
          title: Factor Procedure
          description: Faktorverfahren
          default: false
        factor:
          anyOf:
            - type: integer
              maximum: 999
              minimum: 0
            - type: 'null'
          title: Factor
          description: Factor Percent as Integer (0-999)
        tax_allowance_amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Tax Allowance Amount
          description: 'Steuerfreibetrag - ELSTAM: freibetrag monat'
        additional_taxable_amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Additional Taxable Amount
          description: 'Hinzurechnungsbetrag - ELSTAM: hinzurechnungsbetrag monat'
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'Gültig ab Datum - ELSTAM: gueltig_ab'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
        church_member:
          type: boolean
          title: Church Member
          description: Kirchensteuerpflichtig
          default: false
        church_tax_state:
          anyOf:
            - $ref: '#/components/schemas/payroll__de__payroll_types__DEStates'
            - type: 'null'
          description: Bundesland for church tax
      additionalProperties: true
      type: object
      required:
        - tax_id
        - tax_class
      title: DETaxDetails
      description: >-
        German-specific tax data with comprehensive validation aligned with
        ELSTAM API
    GBPersonalData:
      properties:
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        employee_name:
          type: string
          title: Employee Name
          description: Employee name
          examples:
            - Hans Mueller
            - John Smith
        gender:
          anyOf:
            - $ref: '#/components/schemas/GBGender'
            - type: 'null'
          description: Gender
        marital_status:
          anyOf:
            - $ref: '#/components/schemas/MaritalStatus'
            - type: 'null'
          description: Marital status
        nationality:
          anyOf:
            - type: string
            - type: 'null'
          title: Nationality
          description: Nationality
          examples:
            - German
            - British
        birth_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Birth Date
          description: Birth date
        residence_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Residence Address
          description: Residence address
          examples:
            - Taigschuster 11, 82380 Peissenberg, Germany
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
      additionalProperties: true
      type: object
      required:
        - employee_name
      title: GBPersonalData
      description: Schema for personal data of UK employee. Change tracked personal data.
    GBRelatedPersonsRequest:
      properties:
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        persons:
          items:
            $ref: '#/components/schemas/GBFamilyDetails'
          type: array
          title: Persons
          description: Array of related persons
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: alid from date
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: Valid to date
      additionalProperties: true
      type: object
      required:
        - persons
      title: GBRelatedPersonsRequest
      description: Schema for related persons collection with array-level temporal fields.
    payroll__gb__schema__employee__JobDetails:
      properties:
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        job_type:
          anyOf:
            - $ref: '#/components/schemas/GBJobType'
            - type: 'null'
          description: Employment type
        job_title:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Title
          description: Job title
          examples:
            - Software Engineer
        job_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Description
          description: Job description
        contracted_weekly_hours:
          anyOf:
            - type: integer
            - type: 'null'
          title: Contracted Weekly Hours
          description: Contracted weekly hours
          default: 40
        worksite_id:
          anyOf:
            - type: string
            - type: string
              format: uuid
            - type: 'null'
          title: Worksite Id
          description: Work location
        department:
          anyOf:
            - type: string
            - type: 'null'
          title: Department
          description: Department
        contracted_weekdays:
          anyOf:
            - items:
                $ref: '#/components/schemas/Weekday'
              type: array
              maxItems: 7
              minItems: 1
            - type: 'null'
          title: Contracted Weekdays
          description: Contracted working days of the week
        worker_type:
          $ref: '#/components/schemas/WorkerType'
          description: UK employment status (employee, worker, director)
          default: EMPLOYEE
        director_since:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Director Since
          description: Date appointed as director (None if not a director)
        pay_basis:
          $ref: '#/components/schemas/PayBasis'
          description: How pay and hours are determined
          default: SALARIED
        apprenticeship:
          anyOf:
            - $ref: '#/components/schemas/Apprenticeship'
            - type: 'null'
          description: Apprenticeship details (None = not an apprentice)
        p45_issued:
          type: boolean
          title: P45 Issued
          description: >-
            True once a P45 has been issued for this employment
            (post-cessation). Drives the weekly NIC earnings period for post-P45
            payments. Distinct from the inbound-starter
            p45_gross_pay/p45_tax_amount on GBTaxDetails, which carry a new
            joiner's prior-employer figures.
          default: false
        valid_from:
          type: string
          format: date
          title: Valid From
          description: Valid from date
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: Valid to date
      additionalProperties: true
      type: object
      title: JobDetails
      description: |-
        Schema for job-related data of a UK employee.
        Supports both standalone and integrated requests.
    payroll__gb__schema__employee__InsuranceDetails:
      properties:
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        insurance_number:
          anyOf:
            - type: string
              maxLength: 9
              minLength: 9
            - type: 'null'
          title: Insurance Number
          description: 'EN: Health insurance number | DE: Versicherungsnummer'
        insurance_category:
          $ref: '#/components/schemas/NICCategory'
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      required:
        - insurance_category
      title: InsuranceDetails
    GBTaxDetails:
      properties:
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        rti_id:
          anyOf:
            - type: string
              maxLength: 35
              minLength: 1
            - type: 'null'
          title: Rti Id
          description: >-
            RTI Payroll ID — unique identifier for this employee in HMRC
            submissions
        tax_code:
          $ref: '#/components/schemas/TaxCode-Input'
          description: HMRC Tax code (e.g., '1257L', 'K475', 'BR')
        student_loan_type:
          anyOf:
            - $ref: '#/components/schemas/StudentLoanPlanType'
            - type: 'null'
          description: Student loan type
        postgraduate_loan:
          type: boolean
          title: Postgraduate Loan
          description: Postgraduate loan?
          default: false
        p45_gross_pay:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: P45 Gross Pay
          description: P45 gross pay
          default: '0.00'
        p45_tax_amount:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: P45 Tax Amount
          description: P45 tax amount
          default: '0.00'
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
      additionalProperties: true
      type: object
      required:
        - tax_code
      title: GBTaxDetails
    DEPersonalDataResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        id:
          type: integer
          title: Id
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        employee_name:
          $ref: '#/components/schemas/DEName'
        gender:
          anyOf:
            - $ref: '#/components/schemas/DEGender'
            - type: 'null'
        marital_status:
          anyOf:
            - $ref: '#/components/schemas/MaritalStatus'
            - type: 'null'
        nationality:
          anyOf:
            - type: string
            - type: 'null'
          title: Nationality
        residence_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Residence Address
        status_indicator:
          anyOf:
            - $ref: '#/components/schemas/StatusIndicator'
            - type: 'null'
          description: 'EN: Employee status indicator | DE: Statuskennzeichen'
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
        - employee_name
      title: DEPersonalDataResponse
      description: Response model for personal data with metadata fields.
    DERelatedPersonsResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        id:
          type: integer
          title: Id
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        persons:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Persons
          description: Array of related persons
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
        - persons
      title: DERelatedPersonsResponse
      description: Response model for related persons collection with metadata fields.
    payroll__de__schema__employee__JobDetailsResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        id:
          anyOf:
            - type: string
            - type: string
              format: uuid
          title: Id
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        job_type:
          anyOf:
            - $ref: '#/components/schemas/DEJobType'
            - type: 'null'
        employment_status:
          anyOf:
            - $ref: '#/components/schemas/DEEmployeeType'
            - type: 'null'
        is_seasonal_worker:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Seasonal Worker
        job_title:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Title
        job_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Description
        school_education:
          anyOf:
            - $ref: '#/components/schemas/SchoolEducation'
            - type: 'null'
        professional_education:
          anyOf:
            - $ref: '#/components/schemas/VocationalEducation'
            - type: 'null'
        occupation_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Occupation Code
        contracted_weekly_hours:
          anyOf:
            - type: integer
            - type: 'null'
          title: Contracted Weekly Hours
          default: 40
        contracted_weekdays:
          anyOf:
            - items:
                $ref: '#/components/schemas/Weekday'
              type: array
            - type: 'null'
          title: Contracted Weekdays
        contracted_to_other_company:
          type: boolean
          title: Contracted To Other Company
          description: 'EN: Contracted to another company | DE: Vertrag mit anderem'
          default: false
        worksite_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Worksite Id
        department:
          anyOf:
            - type: string
            - type: 'null'
          title: Department
        other_jobs:
          anyOf:
            - items:
                $ref: '#/components/schemas/MultipleJobDetails-Output'
              type: array
            - type: 'null'
          title: Other Jobs
        valid_from:
          type: string
          format: date
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
      title: JobDetailsResponse
      description: Response model for job details with metadata fields.
    payroll__de__schema__employee__InsuranceDetailsResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        id:
          anyOf:
            - type: string
            - type: string
              format: uuid
          title: Id
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        insurance_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Insurance Number
        contribution_group:
          anyOf:
            - type: string
            - type: 'null'
          title: Contribution Group
        person_group:
          anyOf:
            - $ref: '#/components/schemas/PersonGroup'
            - type: 'null'
        insurance_provider:
          anyOf:
            - type: string
            - type: 'null'
          title: Insurance Provider
        alternate_collection_agency:
          anyOf:
            - type: string
            - type: 'null'
          title: Alternate Collection Agency
        private_insurance_health_monthly:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Private Insurance Health Monthly
          description: >-
            EN:Private health insurance monthly|DE:Private Krankenversicherung
            monatlich
          default: '0'
        private_insurance_care_monthly:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Private Insurance Care Monthly
          description: >-
            EN: Private care insurance monthly | DE: Private Pflegeversicherung
            monatlich
          default: '0'
        care_insurance_children:
          anyOf:
            - type: integer
            - type: 'null'
          title: Care Insurance Children
          default: 0
        u1_exempt:
          anyOf:
            - type: boolean
            - type: 'null'
          title: U1 Exempt
          default: false
        u2_exempt:
          anyOf:
            - type: boolean
            - type: 'null'
          title: U2 Exempt
          default: false
        uv_risk_tariff:
          anyOf:
            - items:
                $ref: '#/components/schemas/RiskTariff-Output'
              type: array
            - type: 'null'
          title: Uv Risk Tariff
        pension_details:
          anyOf:
            - $ref: '#/components/schemas/PensionDetails'
            - type: 'null'
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
      title: InsuranceDetailsResponse
      description: Response model for insurance details with metadata fields.
    DETaxDetailsResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        id:
          anyOf:
            - type: string
            - type: string
              format: uuid
          title: Id
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        tax_id:
          type: string
          maxLength: 11
          minLength: 11
          title: Tax Id
        tax_class:
          $ref: '#/components/schemas/TaxClassType'
        child_allowances:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*(?:\d{0,1}|(?=[\d.]{1,3}0*$)\d{0,1}\.\d{0,1}0*$)
          title: Child Allowances
          default: '0.0'
        church_confession:
          anyOf:
            - $ref: '#/components/schemas/ChurchTaxConfession'
            - type: 'null'
        church_confession_partner:
          anyOf:
            - $ref: '#/components/schemas/ChurchTaxConfession'
            - type: 'null'
          description: 'Konfession des Partners - ELSTAM: kirchensteuer_partner'
        factor_procedure:
          type: boolean
          title: Factor Procedure
          default: false
        factor:
          anyOf:
            - type: integer
            - type: 'null'
          title: Factor
        tax_allowance_amount:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Tax Allowance Amount
          default: '0.00'
        additional_taxable_amount:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Additional Taxable Amount
          default: '0.00'
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'Gültig ab Datum - ELSTAM: gueltig_ab'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
        church_member:
          type: boolean
          title: Church Member
          default: false
        church_tax_state:
          anyOf:
            - $ref: '#/components/schemas/payroll__de__payroll_types__DEStates'
            - type: 'null'
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
        - tax_id
        - tax_class
      title: DETaxDetailsResponse
      description: Response model for tax details with metadata fields.
    GBPersonalDataResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
        updated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Updated At
        id:
          type: integer
          title: Id
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        employee_name:
          type: string
          title: Employee Name
          description: Employee name
        gender:
          anyOf:
            - $ref: '#/components/schemas/GBGender'
            - type: 'null'
          description: Gender
        marital_status:
          anyOf:
            - $ref: '#/components/schemas/MaritalStatus'
            - type: 'null'
          description: Marital status
        nationality:
          anyOf:
            - type: string
            - type: 'null'
          title: Nationality
          description: Nationality
        birth_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Birth Date
          description: Birth date
        residence_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Residence Address
          description: Residence address
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
        - employee_name
      title: GBPersonalDataResponse
      description: Response model for personal data with metadata fields.
    GBRelatedPersonsResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
        updated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Updated At
        id:
          type: integer
          title: Id
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        persons:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Persons
          description: Array of related persons
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
        - persons
      title: GBRelatedPersonsResponse
      description: Response model for related persons collection with metadata fields.
    payroll__gb__schema__employee__JobDetailsResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
        updated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Updated At
        id:
          anyOf:
            - type: string
            - type: string
              format: uuid
          title: Id
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        job_type:
          anyOf:
            - $ref: '#/components/schemas/GBJobType'
            - type: 'null'
        job_title:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Title
        job_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Description
        contracted_weekly_hours:
          anyOf:
            - type: integer
            - type: 'null'
          title: Contracted Weekly Hours
          default: 40
        worksite_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Worksite Id
        department:
          anyOf:
            - type: string
            - type: 'null'
          title: Department
        contracted_weekdays:
          anyOf:
            - items:
                $ref: '#/components/schemas/Weekday'
              type: array
            - type: 'null'
          title: Contracted Weekdays
        worker_type:
          $ref: '#/components/schemas/WorkerType'
          default: EMPLOYEE
        director_since:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Director Since
        pay_basis:
          $ref: '#/components/schemas/PayBasis'
          default: SALARIED
        apprenticeship:
          anyOf:
            - $ref: '#/components/schemas/Apprenticeship'
            - type: 'null'
        p45_issued:
          type: boolean
          title: P45 Issued
          description: >-
            True once a P45 has been issued for this employment
            (post-cessation). Drives the weekly NIC earnings period for post-P45
            payments. Distinct from the inbound-starter
            p45_gross_pay/p45_tax_amount on GBTaxDetails, which carry a new
            joiner's prior-employer figures.
          default: false
        valid_from:
          type: string
          format: date
          title: Valid From
          description: Valid from date
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: Valid to date
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
      title: JobDetailsResponse
      description: Response model for job details with metadata fields.
    payroll__gb__schema__employee__InsuranceDetailsResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
        updated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Updated At
        id:
          anyOf:
            - type: string
            - type: string
              format: uuid
          title: Id
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        insurance_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Insurance Number
        insurance_category:
          $ref: '#/components/schemas/NICCategory'
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
          description: 'EN: Valid from date | DE: Gültig ab Datum'
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
          description: 'EN: Valid to date | DE: Gültig bis Datum'
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
        - insurance_category
      title: InsuranceDetailsResponse
      description: Response model for insurance details with metadata fields.
    GBTaxDetailsResponse:
      properties:
        employee_id:
          type: string
          title: Employee Id
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
        updated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Updated At
        id:
          anyOf:
            - type: string
            - type: string
              format: uuid
          title: Id
        employment_country:
          type: string
          const: GB
          title: Employment Country
          default: GB
        rti_id:
          type: string
          title: Rti Id
        tax_code:
          $ref: '#/components/schemas/TaxCode-Output'
        student_loan_type:
          anyOf:
            - $ref: '#/components/schemas/StudentLoanPlanType'
            - type: 'null'
        postgraduate_loan:
          type: boolean
          title: Postgraduate Loan
          default: false
        p45_gross_pay:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: P45 Gross Pay
          default: '0.00'
        p45_tax_amount:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: P45 Tax Amount
          default: '0.00'
        valid_from:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid From
        valid_to:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Valid To
      additionalProperties: true
      type: object
      required:
        - employee_id
        - created_at
        - updated_at
        - id
        - rti_id
        - tax_code
      title: GBTaxDetailsResponse
      description: Response model for tax details with metadata fields.
    payroll__gb__schema__employee__PhoneType:
      type: string
      enum:
        - mobile
        - home
        - work
      title: PhoneType
    DEName:
      properties:
        family_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Family Name
        given_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Given Name
        family_name_prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Family Name Prefix
        given_name_suffix:
          anyOf:
            - type: string
            - type: 'null'
          title: Given Name Suffix
        birth_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Name
        birth_family_name_prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Family Name Prefix
        birth_given_name_suffix:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Given Name Suffix
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
      additionalProperties: true
      type: object
      title: DEName
    DEGender:
      type: string
      enum:
        - M
        - W
        - D
      title: DEGender
      description: Legally recognized genders in Germany.
    MaritalStatus:
      type: string
      enum:
        - Single
        - Married
      title: MaritalStatus
    StatusIndicator:
      type: string
      enum:
        - managing_partner_gmbh_ug
        - proprietor_spouse
        - proprietor_life_partner
        - proprietor_biological_child
        - proprietor_adopted_child
        - proprietor_grandchild
      title: StatusIndicator
      description: >-
        Employee status indicators for DSME reporting (KENNZSTA field).


        Based on SGB IV § 28 a Abs. 3, BE SpiO vom 18.03.2020 TOP 3, BE SpiO
        vom16.03.2023 Top 4
    DEFamilyDetails:
      properties:
        dependent_name:
          anyOf:
            - $ref: '#/components/schemas/DEName'
            - type: 'null'
          description: 'EN: Dependent name | DE: Name des Angehörigen'
        dependent_birth_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Dependent Birth Date
          description: 'EN: Dependent date of birth | DE: Geburtsdatum des Angehörigen'
        relationship_proof:
          anyOf:
            - type: string
              minLength: 1
              format: uri
            - type: 'null'
          title: Relationship Proof
      additionalProperties: true
      type: object
      title: DEFamilyDetails
      description: Schema for individual German family member without temporal fields.
    DEJobType:
      type: string
      enum:
        - Full Time Indefinite Term
        - Full Time Fixed Term
        - Part Time Indefinite Term
        - Part Time Fixed Term
      title: DEJobType
      description: Employment types recognized in Germany.
    DEEmployeeType:
      type: string
      enum:
        - Employee
        - Mini Jobber
        - Midi Jobber
        - Apprentice
        - Intern
        - Werkstudent
        - Temporary Worker
      title: DEEmployeeType
      description: Employee types recognized in Germany.
    SchoolEducation:
      type: string
      enum:
        - Ohne Schulabschluss
        - Haupt-/Volksschulabschluss
        - Mittlere Reife oder gleichwertiger Abschluss
        - Abitur / Fachabitur
        - Abschluss unbekannt
      title: SchoolEducation
      description: Highest school education completed. 6th digit in Tagesschlüssel.
    VocationalEducation:
      type: string
      enum:
        - Ohne beruflichen Ausbildungsabschluss
        - Abschluss einer anerkannten Berufsausbildung
        - Meister-/Techniker- oder gleichwertiger Fachschulabschluss
        - Bachelor
        - Diplom/Magister/Master/Staatsexamen
        - Promotion
        - Abschluss unbekannt
      title: VocationalEducation
      description: Highest vocational education completed. 7th digit in Tagesschlüssel.
    Weekday:
      type: string
      enum:
        - Monday
        - Tuesday
        - Wednesday
        - Thursday
        - Friday
        - Saturday
        - Sunday
      title: Weekday
      description: Days of the week.
    MultipleJobDetails-Input:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        employer_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Employer Name
          description: 'EN: Employer name | DE: Arbeitgebername'
        employment_start_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Employment Start Date
          description: 'EN: Employment start date | DE: Beschäftigungsbeginn'
        monthly_gross_income:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Monthly Gross Income
          description: 'EN: Monthly gross income | DE: Monatliches Bruttogehalt'
      additionalProperties: true
      type: object
      title: MultipleJobDetails
      description: Schema for multiple job-related data of a German employee.
    PersonGroup:
      type: integer
      enum:
        - 101
        - 102
        - 103
        - 104
        - 105
        - 106
        - 107
        - 108
        - 109
        - 110
        - 111
        - 112
        - 113
        - 114
        - 116
        - 117
        - 118
        - 119
        - 120
        - 121
        - 122
        - 123
        - 124
        - 127
        - 190
        - 140
        - 141
        - 142
        - 143
        - 144
        - 149
        - 150
        - 203
        - 204
        - 207
        - 208
        - 209
        - 210
        - 301
        - 302
        - 303
        - 304
        - 305
        - 306
        - 307
      title: PersonGroup
      description: >-
        An IntEnum representing the key numbers ('Schlüsselzahlen') for person
        groups

        in German social insurance notifications (DEÜV).
    RiskTariff-Input:
      properties:
        tariff_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Tariff Code
          description: 'EN: UV risk tariff code | DE: UV-Risikotarifcode'
        tariff_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tariff Description
          description: 'EN: UV risk tariff description | DE: UV-Risikotarifbeschreibung'
        tariff_percentage:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Tariff Percentage
          description: 'EN: UV risk tariff percentage | DE: UV-Risikotarifprozentsatz'
          default: '0'
      additionalProperties: true
      type: object
      title: RiskTariff
      description: Schema for UV risk tariff details of a German employee.
    PensionDetails:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        received_mining_adjustment_payments:
          type: boolean
          title: Received Mining Adjustment Payments
          description: >-
            EN: Receipt of adjustment payments for dismissed mining employees |
            DE: Anpassungsgeld-Bezug
          default: false
        pension_type:
          anyOf:
            - $ref: '#/components/schemas/PensionType'
            - type: 'null'
          description: >-
            EN: Type of pension received (due to age) | DE: Art der Rente (wegen
            Alters)
        pension_start_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Pension Start Date
          description: >-
            EN: Pension start date according to pension notice | DE:
            Rentenbeginn laut Rentenbescheid
        waiver_declaration_status:
          $ref: '#/components/schemas/WaiverDeclarationStatus'
          description: >-
            EN: Waiver of pension insurance exemption declaration | DE:
            Verzichtserklärung Versicherungsfreiheit RV
          default: default
        waiver_receipt_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Waiver Receipt Date
          description: >-
            EN: Date employer received waiver declaration | DE: Eingang
            Verzichtserklärung beim Arbeitgeber
        waiver_validity_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Waiver Validity Date
          description: 'EN: Date from which waiver is valid | DE: Verzicht gültig ab'
      additionalProperties: true
      type: object
      title: PensionDetails
      description: >-
        Pension details for German employees according to Annex 04a
        specification.

        Required for extended plausibility checks of employed pensioners.
    TaxClassType:
      type: string
      enum:
        - '1'
        - '2'
        - '3'
        - '4'
        - '5'
        - '6'
      title: TaxClassType
      description: Steuerklasse (STKL)
    ChurchTaxConfession:
      type: string
      enum:
        - AK
        - EV
        - FA
        - FB
        - FG
        - FM
        - FR
        - FS
        - IB
        - IH
        - IL
        - IS
        - IW
        - JD
        - JH
        - LT
        - RF
        - RK
        - NA
        - KEINE
      title: ChurchTaxConfession
      description: German church tax confessions as defined in ELSTAM API
    payroll__de__payroll_types__DEStates:
      type: string
      enum:
        - Baden-Württemberg
        - Bayern
        - Berlin
        - Brandenburg
        - Bremen
        - Hamburg
        - Hessen
        - Mecklenburg-Vorpommern
        - Niedersachsen
        - Nordrhein-Westfalen
        - Rheinland-Pfalz
        - Saarland
        - Sachsen
        - Sachsen-Anhalt
        - Schleswig-Holstein
        - Thüringen
      title: DEStates
      description: German states (Bundesländer) with their official names
    GBGender:
      type: string
      enum:
        - M
        - F
      title: GBGender
      description: Legally recognized genders in Germany.
    GBFamilyDetails:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: 'EN: Dependent name | DE: Name des Angehörigen'
        birth_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Birth Date
        relationship:
          anyOf:
            - type: string
            - type: 'null'
          title: Relationship
        emergency_contact:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Emergency Contact
          default: false
      additionalProperties: true
      type: object
      title: GBFamilyDetails
      description: Schema for individual related person without temporal fields.
    GBJobType:
      type: string
      enum:
        - Full Time Indefinite Term
        - Full Time Fixed Term
        - Part Time Indefinite Term
        - Part Time Fixed Term
      title: GBJobType
      description: Employment types recognized in Germany.
    WorkerType:
      type: string
      enum:
        - EMPLOYEE
        - WORKER
        - DIRECTOR
      title: WorkerType
      description: UK employment status per gov.uk/employment-status.
    PayBasis:
      type: string
      enum:
        - SALARIED
        - HOURLY
      title: PayBasis
      description: How the worker's pay and hours are determined.
    Apprenticeship:
      properties:
        start_date:
          type: string
          format: date
          title: Start Date
          description: Start date of current apprenticeship agreement
        expected_end_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Expected End Date
          description: Expected end date (informational)
        level:
          type: integer
          maximum: 7
          minimum: 2
          title: Level
          description: UK apprenticeship level (2-7)
      additionalProperties: true
      type: object
      required:
        - start_date
        - level
      title: Apprenticeship
      description: Apprenticeship details for NMW rate determination.
    NICCategory:
      type: string
      enum:
        - A
        - B
        - C
        - D
        - E
        - F
        - H
        - I
        - J
        - K
        - L
        - M
        - 'N'
        - S
        - V
        - X
        - Z
      title: NICCategory
      description: NIC Letter Categories
    TaxCode-Input:
      properties:
        original_code:
          type: string
          title: Original Code
        personal_allowance:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Personal Allowance
          default: '0'
        prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Prefix
        prefix_meaning:
          anyOf:
            - type: string
            - type: 'null'
          title: Prefix Meaning
        suffix:
          anyOf:
            - type: string
            - type: 'null'
          title: Suffix
        suffix_meaning:
          anyOf:
            - type: string
            - type: 'null'
          title: Suffix Meaning
        emergency:
          type: boolean
          title: Emergency
          default: false
        region:
          $ref: '#/components/schemas/Region'
          default: England/NI
      type: object
      required:
        - original_code
      title: TaxCode
      description: Represents a parsed UK HMRC tax code
    StudentLoanPlanType:
      type: string
      enum:
        - Plan1
        - Plan2
        - Plan4
      title: StudentLoanPlanType
      description: Types of student loan plans
    MultipleJobDetails-Output:
      properties:
        employment_country:
          type: string
          const: DE
          title: Employment Country
          default: DE
        employer_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Employer Name
          description: 'EN: Employer name | DE: Arbeitgebername'
        employment_start_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Employment Start Date
          description: 'EN: Employment start date | DE: Beschäftigungsbeginn'
        monthly_gross_income:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Monthly Gross Income
          description: 'EN: Monthly gross income | DE: Monatliches Bruttogehalt'
      additionalProperties: true
      type: object
      title: MultipleJobDetails
      description: Schema for multiple job-related data of a German employee.
    RiskTariff-Output:
      properties:
        tariff_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Tariff Code
          description: 'EN: UV risk tariff code | DE: UV-Risikotarifcode'
        tariff_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tariff Description
          description: 'EN: UV risk tariff description | DE: UV-Risikotarifbeschreibung'
        tariff_percentage:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Tariff Percentage
          description: 'EN: UV risk tariff percentage | DE: UV-Risikotarifprozentsatz'
          default: '0'
      additionalProperties: true
      type: object
      title: RiskTariff
      description: Schema for UV risk tariff details of a German employee.
    TaxCode-Output:
      properties:
        original_code:
          type: string
          title: Original Code
        personal_allowance:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Personal Allowance
          default: '0'
        prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Prefix
        prefix_meaning:
          anyOf:
            - type: string
            - type: 'null'
          title: Prefix Meaning
        suffix:
          anyOf:
            - type: string
            - type: 'null'
          title: Suffix
        suffix_meaning:
          anyOf:
            - type: string
            - type: 'null'
          title: Suffix Meaning
        emergency:
          type: boolean
          title: Emergency
          default: false
        region:
          $ref: '#/components/schemas/Region'
          default: England/NI
      type: object
      required:
        - original_code
      title: TaxCode
      description: Represents a parsed UK HMRC tax code
    PensionType:
      type: string
      enum:
        - full_old_age_pension_eu_eea_sva
        - full_pension_civil_service
        - partial_old_age_pension
        - partial_pension_civil_service
        - full_old_age_pension_non_eu
        - full_pension_reduced_earning_capacity
      title: PensionType
      description: |-
        Pension types according to Annex 04a specification for extended checks.
        Priority order is important - higher listed types take precedence.
    WaiverDeclarationStatus:
      type: string
      enum:
        - default
        - 'yes'
        - 'no'
      title: WaiverDeclarationStatus
      description: Status of pension insurance exemption waiver declaration.
    Region:
      type: string
      enum:
        - England/NI
        - Scotland
        - Wales
      title: Region
      description: UK Tax Regions
  securitySchemes:
    BearerToken:
      type: oauth2
      flows:
        password:
          scopes:
            read:all: Read all
            write:all: Write all
            read:health_check: Read health check
            write:health_check: Write health check
            read:wage_types: Read wage types
            write:wage_types: Write wage types
          tokenUrl: >-
            https://auth-preview.intermezzo.ai/authorize?audience=api-preview.intermezzo.ai

````