> ## 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 Employee Job Details

> Create new job details for an employee.



## OpenAPI

````yaml /api-reference/preview.json post /organizations/{organization_id}/employees/{employee_id}/job-details
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers: []
security: []
paths:
  /organizations/{organization_id}/employees/{employee_id}/job-details:
    post:
      tags:
        - Core
        - Employees
        - Job
      summary: Create Employee Job Details
      description: Create new job details for an employee.
      operationId: >-
        create_employee_job_details_organizations__organization_id__employees__employee_id__job_details_post
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            anyOf:
              - type: string
              - type: string
                format: uuid
            title: Organization Id
        - name: employee_id
          in: path
          required: true
          schema:
            anyOf:
              - type: string
              - type: string
                format: uuid
            title: Employee Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: >-
                    #/components/schemas/payroll__de__schema__employee__JobDetails
                - $ref: >-
                    #/components/schemas/payroll__gb__schema__employee__JobDetails
              discriminator:
                propertyName: employment_country
                mapping:
                  DE:
                    $ref: >-
                      #/components/schemas/payroll__de__schema__employee__JobDetails
                  GB:
                    $ref: >-
                      #/components/schemas/payroll__gb__schema__employee__JobDetails
              title: Job Details
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: >-
                      #/components/schemas/payroll__de__schema__employee__JobDetailsResponse
                  - $ref: >-
                      #/components/schemas/payroll__gb__schema__employee__JobDetailsResponse
                discriminator:
                  propertyName: employment_country
                  mapping:
                    DE:
                      $ref: >-
                        #/components/schemas/payroll__de__schema__employee__JobDetailsResponse
                    GB:
                      $ref: >-
                        #/components/schemas/payroll__gb__schema__employee__JobDetailsResponse
                title: >-
                  Response Create Employee Job Details Organizations 
                  Organization Id  Employees  Employee Id  Job Details Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - BearerToken: []
components:
  schemas:
    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__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__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__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.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    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.
    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.
    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.
    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
  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

````