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

# Set DATEV compensations

> Sets the compensations for an employee on the specified effective date.

Other compensations will end at the effective date. That means, if you would like to add a compensation, you also have to include the compensations that you would like to keep.

<Note>
  This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](/scopes).
</Note>

### Example Request Body

```json theme={null}
{
  "employee_id": "3bdhemmSP1TPQDGWtRveRot9",
  "effective_date": "2022-12-01",
  "compensations": [
    {
      "amount": 4500,
      "currency": "EUR",
      "period": "MONTH",
      "lohnart": 200
    },
    {
      "amount": 30,
      "currency": "EUR",
      "period": "HOUR"
    }
  ]
}
```


## OpenAPI

````yaml PUT /custom/datev/employees/{employee_id}/compensations
openapi: 3.1.0
info:
  title: Kombo API
  version: 1.0.0
servers:
  - url: https://api.kombo.dev/v1
    description: Kombo EU API
  - url: https://api.us.kombo.dev/v1
    description: Kombo US API
security:
  - ApiKey: []
tags:
  - name: General
  - name: Kombo Connect
    description: >-
      Endpoints for Kombo Connect, our end-user-facing flow for setting up new
      integrations.
  - name: Unified HRIS API
    description: Unified endpoints to access all the HR concepts you might need.
  - name: Unified ATS API
    description: Unified endpoints to access all the ATS concepts you might need.
  - name: Unified ATS (Assessment & Background Check) API
    description: >-
      Unified endpoints to operate Assessments and Background Checks for many
      applicant tracking systems.
  - name: Unified LMS API
    description: Unified endpoints to access all the LMS concepts you might need.
  - name: AI Apply
    description: Endpoints for AI-powered job application features.
  - name: Custom Endpoints
    description: Custom integration-specific endpoints.
paths:
  /custom/datev/employees/{employee_id}/compensations:
    put:
      tags:
        - Custom Endpoints
      summary: Set DATEV compensations
      description: |-
        Sets the compensations for an employee on the specified effective date.

         Other compensations will end at the effective date. That means, if you would like to add a compensation, you also have to include the compensations that you would like to keep.

        <Note>
          This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](/scopes).
        </Note>

        ### Example Request Body

        ```json
        {
          "employee_id": "3bdhemmSP1TPQDGWtRveRot9",
          "effective_date": "2022-12-01",
          "compensations": [
            {
              "amount": 4500,
              "currency": "EUR",
              "period": "MONTH",
              "lohnart": 200
            },
            {
              "amount": 30,
              "currency": "EUR",
              "period": "HOUR"
            }
          ]
        }
        ```
      operationId: PutCustomDatevEmployeesEmployeeIdCompensations
      parameters:
        - in: header
          name: X-Integration-Id
          schema:
            type: string
          description: ID of the integration you want to interact with.
          example: datev:HWUTwvyx2wLoSUHphiWVrp28
          required: true
        - name: employee_id
          in: path
          required: true
          description: >-
            ID of the employee that should be updated. You can use their Kombo
            `id` or their ID in the remote system by prefixing it with `remote:`
            (e.g., `remote:12312`)
          schema:
            $ref: >-
              #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsParameterEmployeeId
          examples:
            example1:
              value: 3bdhemmSP1TPQDGWtRveRot9
      requestBody:
        description: PUT /custom/datev/employees/:employee_id/compensations Request body
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody
            examples:
              example1:
                value:
                  effective_date: '2022-12-01'
                  compensations:
                    - amount: 4500
                      currency: EUR
                      period: MONTH
                      lohnart: 200
                    - amount: 30
                      currency: EUR
                      period: HOUR
      responses:
        '200':
          description: >-
            PUT /custom/datev/employees/:employee_id/compensations Positive
            response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsPositiveResponse
        default:
          $ref: '#/components/responses/ErrorResponseGeneral'
components:
  schemas:
    PutCustomDatevEmployeesEmployeeIdCompensationsParameterEmployeeId:
      type: string
      description: >-
        ID of the employee that should be updated. You can use their Kombo `id`
        or their ID in the remote system by prefixing it with `remote:` (e.g.,
        `remote:12312`)
    PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody:
      type: object
      properties:
        effective_date:
          description: >-
            Date from which the submitted compensations should be valid. Please
            note that it might not be possible to set compensations for the past
            if the payroll was already run.
          type: string
          format: date-time
          pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$
          externalDocs:
            url: >-
              https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
        compensations:
          type: array
          items:
            type: object
            properties:
              amount:
                type: number
                format: double
                minimum: -1.7976931348623157e+308
                description: The amount that this employee will be paid.
              currency:
                type: string
                const: EUR
                description: >-
                  The currency in which the employee gets paid. Currently, only
                  euro is supported as integrated systems only work with Euro.
              period:
                type: string
                enum:
                  - HOUR
                  - MONTH
                description: >-
                  The period for which the specified amount is paid. Currently,
                  integrated systems only support "HOUR" and "MONTH".
              lohnart:
                type: integer
                format: int64
                minimum: 1
                maximum: 9999
                description: >-
                  The Lohnart that should be used for this compensation. If not
                  specified, the default Lohnart that was requested in the
                  connection flow will be used. Generally Lohnart is only
                  available for monthly compensations.
            required:
              - amount
              - currency
              - period
      required:
        - effective_date
        - compensations
    PutCustomDatevEmployeesEmployeeIdCompensationsPositiveResponse:
      type: object
      properties:
        status:
          type: string
          const: success
        data:
          type: object
        warnings:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: >-
            These are the interaction warnings that are shown in the dashboard.
            They are meant to provide debug information to you. We recommend
            logging them to the console.
      required:
        - status
        - data
        - warnings
  responses:
    ErrorResponseGeneral:
      description: The standard error response with just the platform error codes.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: object
                properties:
                  code:
                    type:
                      - string
                      - 'null'
                    enum:
                      - PLATFORM.RATE_LIMIT_EXCEEDED
                      - PLATFORM.CONCURRENCY_LIMIT_EXCEEDED
                      - PLATFORM.INTEGRATION_NOT_FOUND
                      - PLATFORM.INPUT_INVALID
                      - PLATFORM.UNKNOWN_ERROR
                      - PLATFORM.IP_NOT_WHITELISTED
                      - PLATFORM.AUTHENTICATION_INVALID
                      - PLATFORM.TASK_TIMED_OUT
                    example: PLATFORM.RATE_LIMIT_EXCEEDED
                    description: >-
                      Some errors include an error code that can be used to
                      identify their cause. See the [Error Handling
                      Docs](https://docs.kombo.dev/guides/errors) for more
                      information. For your error handling logic please use the
                      error `code` instead of other properties (e.g. message,
                      http status code, ...).
                  title:
                    type:
                      - string
                      - 'null'
                    description: A static, human-readable label.
                  message:
                    type: string
                    description: >-
                      A dynamic, detailed description of what went wrong in this
                      specific instance.
                  log_url:
                    type:
                      - string
                      - 'null'
                    format: uri
                    description: >-
                      The log page in the Kombo UI lists every interaction with
                      full details. If you need assistance, share that link with
                      our support team.
                required:
                  - code
                  - title
                  - message
                  - log_url
                description: Error details with structured code for programmatic handling.
            required:
              - status
              - error
          examples:
            Error Response:
              description: >-
                When building error handling logic, always use the `code` field
                to identify specific error types programmatically. See the
                complete list of error codes in the
                [docs](https://docs.kombo.dev/guides/errors).
              value:
                status: error
                error:
                  code: INTEGRATION.MODEL_NOT_AVAILABLE
                  title: >-
                    This data model isn't supported for the selected
                    integration.
                  message: >-
                    The "employees" model is not yet available for Greenhouse.
                    Please reach out to Kombo if you need this functionality.
                  log_url: https://app.kombo.dev/my-prod/logs?interactionId=123456
            Minimal Error Response:
              description: >-
                The "message" is always required while other fields can also be
                `null`. See the [docs](https://docs.kombo.dev/guides/errors) for
                more information.
              value:
                status: error
                error:
                  code: null
                  title: null
                  message: The message is always in the response.
                  log_url: null
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      description: >-
        Create an API key on the [Secrets](https://app.kombo.dev/secrets) page
        in the Kombo dashboard.

````