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

# Gtn



## OpenAPI

````yaml /api-reference/preview.json post /germany
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers: []
security: []
paths:
  /germany:
    post:
      tags:
        - Germany
        - Germany Paycheck Calculator
      summary: Gtn
      operationId: GTN_germany_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayrollRequest2025'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayrollResponse2025'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - BearerToken: []
components:
  schemas:
    PayrollRequest2025:
      properties:
        payroll_run:
          items:
            $ref: '#/components/schemas/payroll__de__schemas__PayrollRequestBase'
          type: array
          title: Payroll Run
      additionalProperties: true
      type: object
      required:
        - payroll_run
      title: PayrollRequest2025
      description: Input parameters according to PAP2025
    PayrollResponse2025:
      properties:
        summary:
          $ref: '#/components/schemas/PayrollAmountsResponse'
        gross_to_net:
          items:
            $ref: '#/components/schemas/PayPeriodResponse'
          type: array
          title: Gross To Net
      additionalProperties: true
      type: object
      required:
        - summary
        - gross_to_net
      title: PayrollResponse2025
      description: Output parameters according to PAP2025
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    payroll__de__schemas__PayrollRequestBase:
      properties:
        employee_id:
          anyOf:
            - type: string
            - type: string
              format: uuid
          title: Employee Id
          description: Mitarbeiterkennzeichen - Employee identification number
        year_of_birth:
          type: integer
          maximum: 2025
          minimum: 1850
          title: Year Of Birth
          description: >-
            Geburtsjahr - Birth Year to check eligibility for
            Altersentlastungsbetrag
        gross_wages:
          $ref: '#/components/schemas/GrossWages'
        tax_class:
          $ref: '#/components/schemas/TaxClass'
          description: Steuerklasse (STKL) - Tax class
        pension_insurance_type:
          $ref: '#/components/schemas/payroll__de__schemas__PensionInsuranceType'
          description: Rentenversicherung (KRV) - Pension insurance type
        health_insurance_type:
          $ref: '#/components/schemas/payroll__de__payroll_types__HealthInsuranceType'
          description: Krankenversicherung (PKV) - Health insurance type
        health_insurer:
          anyOf:
            - $ref: '#/components/schemas/SupportedHealthInsurers'
            - type: 'null'
          description: Health insurer
        health_insurer_agency_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Health Insurer Agency Code
          description: Krankenversicherungscode (KVK) - Health insurer agency code
        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 (ZKF) - Number of child allowances (decimal place
            for shared allowances)
          default: '0.00'
        is_church_member:
          type: boolean
          title: Is Church Member
          description: Religionsgemeinschaft (R) - Church membership
          default: false
        church_tax_state:
          anyOf:
            - $ref: '#/components/schemas/payroll__de__payroll_types__DEStates'
            - type: 'null'
          description: Religionsgemeinschaft (R) - Church membership state
        in_saxony:
          type: boolean
          title: In Saxony
          description: >-
            Sachsen-Indikator (PVS) - Special case for Saxony care insurance
            (1=yes)
          default: false
        care_insurance_children:
          type: integer
          maximum: 5
          minimum: 0
          title: Care Insurance Children
          description: >-
            Anzahl Kinder Pflegeversicherung (PVA) - Number of children for care
            insurance discount (0-5), choose 5 for 5 or more
          default: 0
        is_factor:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Factor
          description: Faktorverfahren (AF) - Factor procedure flag (only for tax class IV)
          default: false
        factor:
          anyOf:
            - type: number
              multipleOf: 0.001
              exclusiveMaximum: 1
              minimum: 0.001
            - type: string
              pattern: >-
                ^(?!^[-+.]*$)[+-]?0*(?:\d{0,1}|(?=[\d.]{1,5}0*$)\d{0,1}\.\d{0,3}0*$)
            - type: 'null'
          title: Factor
          description: Faktor (F) - Factor for factor procedure
        private_insurance_monthly:
          anyOf:
            - type: number
            - type: string
              pattern: >-
                ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
            - type: 'null'
          title: Private Insurance Monthly
          description: >-
            Private Krankenversicherung (PKPV) - Monthly private health/care
            insurance contribution
          default: '0.00'
      additionalProperties: true
      type: object
      required:
        - employee_id
        - year_of_birth
        - gross_wages
        - tax_class
        - pension_insurance_type
        - health_insurance_type
      title: PayrollRequestBase
      description: Input parameters according to PAP2025
    PayrollAmountsResponse:
      properties:
        employee:
          $ref: '#/components/schemas/PayrollResponseBase'
        employer:
          $ref: '#/components/schemas/EmployerLiabilitiesResponse'
      additionalProperties: true
      type: object
      required:
        - employee
        - employer
      title: PayrollAmountsResponse
    PayPeriodResponse:
      properties:
        payment_period:
          $ref: '#/components/schemas/PaymentPeriod'
        employee_id:
          type: string
          title: Employee Id
        current_pay_period:
          $ref: '#/components/schemas/PayrollAmountsResponse'
        execution_history:
          anyOf:
            - items:
                $ref: '#/components/schemas/ExecutionHistoryEntry'
              type: array
            - type: 'null'
          title: Execution History
      additionalProperties: true
      type: object
      required:
        - payment_period
        - employee_id
        - current_pay_period
      title: PayPeriodResponse
    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
    GrossWages:
      properties:
        earnings:
          $ref: '#/components/schemas/Earnings'
        company_car:
          anyOf:
            - $ref: '#/components/schemas/CompanyCar'
            - type: 'null'
          description: Firmenwagen
        company_pension:
          anyOf:
            - $ref: '#/components/schemas/CompanyPension'
            - type: 'null'
        vwl:
          anyOf:
            - $ref: '#/components/schemas/VWL'
            - type: 'null'
        additional_items:
          anyOf:
            - items:
                $ref: '#/components/schemas/AdditionalTaxableGrossItems'
              type: array
            - type: 'null'
          title: Additional Items
      additionalProperties: true
      type: object
      required:
        - earnings
      title: GrossWages
    TaxClass:
      type: string
      enum:
        - '1'
        - '2'
        - '3'
        - '4'
        - '5'
        - '6'
      title: TaxClass
      description: Steuerklasse (STKL)
    payroll__de__schemas__PensionInsuranceType:
      type: string
      enum:
        - Statutory
        - Other
      title: PensionInsuranceType
      description: Merker für die Vorsorgepauschale (KRV)
    payroll__de__payroll_types__HealthInsuranceType:
      type: string
      enum:
        - Statutory KV
        - Private KV without employer subsidy
        - Private KV with employer subsidy
      title: HealthInsuranceType
      description: Krankenversicherungsart (PKV)
    SupportedHealthInsurers:
      type: string
      enum:
        - AOK
        - BARMER
        - DAK
        - IKK
        - TK
        - OTHER
      title: SupportedHealthInsurers
      description: Supported health insurers
    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
    PayrollResponseBase:
      properties:
        gross_wages:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Gross Wages
          description: Steuerpflichtiger Arbeitslohn (RE4) - Taxable wages for the period
          default: '0.00'
        health_insurance_additional_rate:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*(?:\d{0,2}|(?=[\d.]{1,9}0*$)\d{0,2}\.\d{0,6}0*$)
          title: Health Insurance Additional Rate
          default: '0.00'
        wage_tax:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Wage Tax
          description: Lohnsteuer (LSTLZZ) - Wage tax for the period
          default: '0.00'
        solidarity_surcharge:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Solidarity Surcharge
          description: Solidaritätszuschlag (SOLZLZZ) - Solidarity surcharge for the period
          default: '0.00'
        church_tax_assessment_basis:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Church Tax Assessment Basis
          default: '0.00'
        church_tax:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Church Tax
          description: Bemessungsgrundlage Kirchensteuer (BK) - Church tax base amount
          default: '0.00'
        pension_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Pension Contribution
          description: ''
          default: '0.00'
        health_insurance_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Health Insurance Contribution
          description: Vorsorgepauschale (VKVLZZ) - Insurance allowance for the period
          default: '0.00'
        care_insurance_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Care Insurance Contribution
          description: ''
          default: '0.00'
        unemployment_insurance_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Unemployment Insurance Contribution
          description: ''
          default: '0.00'
        net_pay:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Net Pay
          description: Nettoverdienst - Net Pay for the period
          default: '0.00'
      additionalProperties: true
      type: object
      title: PayrollResponseBase
    EmployerLiabilitiesResponse:
      properties:
        pension_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Pension Contribution
          description: ''
          default: '0.00'
        health_insurance_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Health Insurance Contribution
          description: Vorsorgepauschale (VKVLZZ) - Insurance allowance for the period
          default: '0.00'
        care_insurance_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Care Insurance Contribution
          description: ''
          default: '0.00'
        unemployment_insurance_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Unemployment Insurance Contribution
          description: ''
          default: '0.00'
        sick_pay_insurance_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Sick Pay Insurance Contribution
          description: ''
          default: '0.00'
        maternity_pay_insurance_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Maternity Pay Insurance Contribution
          description: ''
          default: '0.00'
        insolvency_insurance_contribution:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Insolvency Insurance Contribution
          description: ''
          default: '0.00'
        total_burden:
          type: string
          pattern: >-
            ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Total Burden
          description: ''
          default: '0.00'
      additionalProperties: true
      type: object
      title: EmployerLiabilitiesResponse
    PaymentPeriod:
      type: string
      enum:
        - Year
        - Month
        - Week
        - Day
      title: PaymentPeriod
      description: Lohnzahlungszeitraum (LZZ)
    ExecutionHistoryEntry:
      properties:
        flow:
          type: string
          title: Flow
        node:
          type: string
          title: Node
      additionalProperties: true
      type: object
      required:
        - flow
        - node
      title: ExecutionHistoryEntry
      description: Entry in the execution history showing flow/node execution path.
    Earnings:
      properties:
        regular_wages:
          $ref: '#/components/schemas/BaseSalary'
        onetime_income:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Onetime Income
          description: Einmalzahlungen
          default: '0.00'
      additionalProperties: true
      type: object
      required:
        - regular_wages
      title: Earnings
    CompanyCar:
      properties:
        additional_payments:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Additional Payments
          description: Zuzahl. Firmenw. stpfl.
        private_trip:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Private Trip
          description: Privatfahrten
      additionalProperties: true
      type: object
      title: CompanyCar
    CompanyPension:
      properties:
        employee_contribution:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Employee Contribution
          description: bAV AN
          default: '0.00'
        employer_contribution:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Employer Contribution
          description: bAV AG
          default: '0.00'
      additionalProperties: true
      type: object
      title: CompanyPension
    VWL:
      properties:
        employee_contribution:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Employee Contribution
          description: VWL AN
          default: '0.00'
        employer_contribution:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Employer Contribution
          description: VWL AG
          default: '0.00'
      additionalProperties: true
      type: object
      title: VWL
    AdditionalTaxableGrossItems:
      properties:
        name:
          type: string
          title: Name
        amount:
          anyOf:
            - type: number
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
      additionalProperties: true
      type: object
      required:
        - name
        - amount
      title: AdditionalTaxableGrossItems
    BaseSalary:
      properties:
        amount:
          anyOf:
            - type: number
              exclusiveMaximum: 1000000000
              minimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            - type: 'null'
          title: Amount
          description: Gross pay amount
          default: '0.00'
        payment_period:
          $ref: '#/components/schemas/PaymentPeriod'
          description: Lohnzahlungszeitraum (LZZ) - 1=Year, 2=Month, 3=Week, 4=Day
      additionalProperties: true
      type: object
      required:
        - payment_period
      title: BaseSalary
  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

````