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

# Lohndaten aktualisieren



## OpenAPI

````yaml PUT /employees/{employee}/payroll
openapi: 3.1.0
info:
  title: Stampfactory API
  version: 1.0.0
  description: >-
    REST API für die Stampfactory Zeiterfassungs- und
    Personalverwaltungsplattform.


    ## Basis-URL


    Jeder Mandant hat eine eigene Subdomain: `https://{tenant}.stamp.eu/rest/…`.

    Custom Domains werden unterstützt; der Pfad-Präfix ist immer `/rest`.

    Authentifizierung über `POST /rest/login` (Bearer-Token, Laravel Sanctum).


    ## Datenformate (verbindlich, ADR 0005)


    | Typ | Format | Beispiel |

    |---|---|---|

    | Dauer (Anzeige) | String `HH:MM:SS.mmm`, Feldname ohne Suffix |
    `"08:00:00.000"` |

    | Dauer (Rohwert) | Integer Millisekunden, Feldname mit Suffix `_ms` |
    `28800000` |

    | Datum | ISO 8601 (`YYYY-MM-DD`) | `"2026-07-25"` |

    | Fachliche Zeitstempel (Stempelungen, Korrekturen) | ISO 8601 in
    Mandanten-Zeitzone | `"2026-07-25T08:00:00+02:00"` |

    | Technische Metadaten (`created_at`, `updated_at`) | ISO 8601 UTC |
    `"2026-07-25T06:00:00+00:00"` |

    | IDs | UUID bzw. TypeID-String | `"9d3f…"` |

    | Arbeitszeit-Flags | Integer-Bitmaske (`flags`), Bits siehe
    `WorkingTimeFlag` | `512` = Feiertag |

    | Monats-Perioden | `YYYY-MM` | `"2026-07"` |


    ## Responses


    Erfolgs-Responses liefern die fachliche Payload unter `data`

    (dokumentierte Ausnahmen: `POST /rest/terminal/{code}` und `/rest/mobile`).

    Listen sind, wo paginiert, im Laravel-Paginator-Format (`data` + `links` +
    `meta`).


    ## Fehlerformat


    Alle Fehler (4xx/5xx) folgen einem einheitlichen Envelope:


    ```json

    {
      "request_id": "…",
      "timestamp": "2026-07-25T06:00:00Z",
      "message": "Menschlich lesbare Meldung",
      "field_errors": { "feld": ["Meldung"] },
      "errors": [{ "title": "…", "detail": "…", "type": "https://docs.stampfactory.eu/errors#…", "_meta": { } }]
    }

    ```


    `field_errors` erscheint bei Validierungsfehlern (422). Endpoint-spezifische

    Zusatzdaten (z. B. `warnings`, `earliest`, `code`) stehen kanonisch in

    `errors[0]._meta`; Top-Level-Duplikate sind eine
    Übergangs-Kompatibilitätsschicht.

    Die `type`-URLs verlinken auf die Fehlerdokumentation.
servers:
  - url: https://{tenant}.stamp.eu/rest
    description: Production
    variables:
      tenant:
        default: demo
        description: Subdomain des Mandanten
security:
  - http: []
paths:
  /employees/{employee}/payroll:
    put:
      tags:
        - Sonstiges
      operationId: tenant.employees.payroll.update
      parameters:
        - name: employee
          in: path
          required: true
          description: The employee ID
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEmployeePayrollDataRequest'
      responses:
        '200':
          description: '`EmployeePayrollDataResource`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/EmployeePayrollDataResource'
                required:
                  - data
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '404':
          $ref: '#/components/responses/ModelNotFoundException'
        '422':
          $ref: '#/components/responses/ValidationException'
components:
  schemas:
    UpdateEmployeePayrollDataRequest:
      type: object
      properties:
        birth_name:
          type:
            - string
            - 'null'
          description: Personal
          maxLength: 255
        name_prefix:
          type:
            - string
            - 'null'
          maxLength: 20
        name_suffix:
          type:
            - string
            - 'null'
          maxLength: 30
        title:
          type:
            - string
            - 'null'
          maxLength: 50
        street:
          type:
            - string
            - 'null'
          maxLength: 255
        postal_code:
          type:
            - string
            - 'null'
          maxLength: 10
        city:
          type:
            - string
            - 'null'
          maxLength: 255
        birth_date:
          type:
            - string
            - 'null'
          format: date-time
        birth_place:
          type:
            - string
            - 'null'
          maxLength: 255
        nationality:
          type:
            - string
            - 'null'
          minLength: 2
          maxLength: 2
        gender:
          type:
            - string
            - 'null'
          enum:
            - m
            - f
            - d
        marital_status:
          $ref: '#/components/schemas/MaritalStatus'
        tax_id:
          type:
            - string
            - 'null'
          description: Tax
          maxLength: 11
        tax_class:
          type:
            - string
            - 'null'
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - 4F
            - '5'
            - '6'
        tax_factor:
          type:
            - number
            - 'null'
          minimum: 0.001
          maximum: 0.999
        religion:
          type:
            - string
            - 'null'
          maxLength: 2
        spouse_religion:
          type:
            - string
            - 'null'
          maxLength: 2
        number_of_children:
          type:
            - integer
            - 'null'
          minimum: 0
          maximum: 20
        child_tax_allowance:
          type:
            - number
            - 'null'
          minimum: 0
          maximum: 10
        pension_obligation:
          $ref: '#/components/schemas/PensionObligation'
        insurance_type:
          $ref: '#/components/schemas/InsuranceType'
          description: Health insurance
        health_insurance_name:
          type:
            - string
            - 'null'
          maxLength: 255
        health_insurance_number:
          type:
            - string
            - 'null'
          maxLength: 12
        health_insurance_company_number:
          type:
            - string
            - 'null'
        health_insurance_member_number:
          type:
            - string
            - 'null'
          maxLength: 255
        pkv_provider:
          type:
            - string
            - 'null'
          maxLength: 255
        pkv_monthly_premium:
          type:
            - number
            - 'null'
          minimum: 0
        pension_insurance_number:
          type:
            - string
            - 'null'
          description: |-
            Pension — the confirmed flag lets payroll staff store numbers that
            deviate from the VSNR scheme (foreign careers, legacy records).
        pension_insurance_number_confirmed:
          type: boolean
        pension_fund:
          type:
            - string
            - 'null'
          maxLength: 255
        pension_fund_member_number:
          type:
            - string
            - 'null'
          maxLength: 255
        social_fund:
          type:
            - string
            - 'null'
          description: Social fund
          maxLength: 255
        social_fund_employee_number:
          type:
            - string
            - 'null'
          maxLength: 255
        outpatient_care:
          type:
            - boolean
            - 'null'
          description: Employment
        lbnr:
          type:
            - string
            - 'null'
          maxLength: 255
        job_title:
          type:
            - string
            - 'null'
          maxLength: 255
        profession:
          type:
            - string
            - 'null'
          maxLength: 255
        education_level:
          type:
            - string
            - 'null'
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
        is_shareholder:
          type:
            - boolean
            - 'null'
          description: Special
        is_student:
          type:
            - boolean
            - 'null'
        multiple_employment:
          type:
            - boolean
            - 'null'
        disability_degree:
          type:
            - integer
            - 'null'
          enum:
            - '0'
            - '20'
            - '30'
            - '40'
            - '50'
            - '60'
            - '70'
            - '80'
            - '90'
            - '100'
        bank_account_holder:
          type:
            - string
            - 'null'
          description: Bank
          maxLength: 255
        iban:
          type:
            - string
            - 'null'
          maxLength: 34
        bic:
          type:
            - string
            - 'null'
          maxLength: 11
      title: UpdateEmployeePayrollDataRequest
    EmployeePayrollDataResource:
      type: object
      properties:
        id:
          type: string
        employee_id:
          type: string
        birth_name:
          type: string
          description: Personal
        name_prefix:
          type: string
        name_suffix:
          type: string
        title:
          type: string
        street:
          type: string
        postal_code:
          type: string
        city:
          type: string
        birth_date:
          type: string
        birth_place:
          type: string
        nationality:
          type: string
        gender:
          type: string
        marital_status:
          type: string
        tax_id:
          type: string
          description: Tax
        tax_class:
          type: string
        tax_factor:
          type:
            - number
            - 'null'
        religion:
          type: string
        spouse_religion:
          type: string
        number_of_children:
          type: string
        child_tax_allowance:
          type:
            - number
            - 'null'
        pension_obligation:
          type: string
        insurance_type:
          type: string
          description: Health insurance
        health_insurance_name:
          type: string
        health_insurance_number:
          type: string
        health_insurance_company_number:
          type: string
        health_insurance_member_number:
          type: string
        pkv_provider:
          type: string
        pkv_monthly_premium:
          type:
            - number
            - 'null'
        pension_insurance_number:
          type: string
          description: Pension
        pension_fund:
          type: string
        pension_fund_member_number:
          type: string
        social_fund:
          type: string
          description: Social fund
        social_fund_employee_number:
          type: string
        outpatient_care:
          type: string
          description: Employment
        lbnr:
          type: string
        job_title:
          type: string
        profession:
          type: string
        education_level:
          type: string
        is_shareholder:
          type: string
          description: Special
        is_student:
          type: string
        multiple_employment:
          type: string
        disability_degree:
          type: string
        bank_account_holder:
          type: string
          description: Bank
        iban:
          type: string
        bic:
          type: string
        stammdaten_confirmed_at:
          type: string
          description: eAU Stammdaten-Bestätigung
        stammdaten_confirmed_by:
          type: string
        updated_at:
          type: string
      required:
        - id
        - employee_id
        - birth_name
        - name_prefix
        - name_suffix
        - title
        - street
        - postal_code
        - city
        - birth_date
        - birth_place
        - nationality
        - gender
        - marital_status
        - tax_id
        - tax_class
        - tax_factor
        - religion
        - spouse_religion
        - number_of_children
        - child_tax_allowance
        - pension_obligation
        - insurance_type
        - health_insurance_name
        - health_insurance_number
        - health_insurance_company_number
        - health_insurance_member_number
        - pkv_provider
        - pkv_monthly_premium
        - pension_insurance_number
        - pension_fund
        - pension_fund_member_number
        - social_fund
        - social_fund_employee_number
        - outpatient_care
        - lbnr
        - job_title
        - profession
        - education_level
        - is_shareholder
        - is_student
        - multiple_employment
        - disability_degree
        - bank_account_holder
        - iban
        - bic
        - stammdaten_confirmed_at
        - stammdaten_confirmed_by
        - updated_at
      title: EmployeePayrollDataResource
    MaritalStatus:
      type: string
      enum:
        - single
        - married
        - separated
        - divorced
        - widowed
        - civil_partnership
      title: MaritalStatus
    PensionObligation:
      type: string
      enum:
        - liable
        - exempt
        - exempt_on_request
        - pensioner
      title: PensionObligation
    InsuranceType:
      type: string
      enum:
        - statutory
        - private
        - exempt
        - marginal
      title: InsuranceType
  responses:
    AuthenticationException:
      description: Unauthenticated
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ModelNotFoundException:
      description: Not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
              - message
              - errors
  securitySchemes:
    http:
      type: http
      description: Bearer-Token, erhalten über den Login-Endpunkt (POST /rest/login).
      scheme: bearer

````