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

# Create a monthly variable compensation

> Creates or updates a monthly variable compensation for an employee-compensation assignment.

**Important:**
- The `salaryCompensationId` must reference a salary compensation with a **variable** compensation type
- The `date` must be within the salary compensation's date range
- The `date` must be a valid pay day according to the compensation's period
- The `amount` cannot exceed the compensation's maximum amount
- If a record already exists for the same `salaryCompensationId` and `date`, it will be updated instead of created



## OpenAPI

````yaml POST /contract/v1/monthly-variable-compensations
openapi: 3.0.0
info:
  description: ''
  version: 3.0.0
  title: Sesame Public API
servers:
  - url: https://api-{region}.sesametime.com
    variables:
      region:
        default: eu1
security: []
tags: []
paths:
  /contract/v1/monthly-variable-compensations:
    post:
      tags:
        - Monthly Variable Compensations
      summary: Create a monthly variable compensation
      description: >-
        Creates or updates a monthly variable compensation for an
        employee-compensation assignment.


        **Important:**

        - The `salaryCompensationId` must reference a salary compensation with a
        **variable** compensation type

        - The `date` must be within the salary compensation's date range

        - The `date` must be a valid pay day according to the compensation's
        period

        - The `amount` cannot exceed the compensation's maximum amount

        - If a record already exists for the same `salaryCompensationId` and
        `date`, it will be updated instead of created
      operationId: CreateMonthlyVariableCompensation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - salaryCompensationId
                - date
                - amount
              properties:
                salaryCompensationId:
                  type: string
                  format: uuid
                  description: Salary compensation ID (employee-compensation assignment)
                date:
                  type: string
                  format: date
                  description: >-
                    Date of the compensation (YYYY-MM-DD). Must be a valid pay
                    day.
                  example: '2024-01-15'
                amount:
                  type: number
                  description: Compensation amount for the month
                  example: 500
      responses:
        '201':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Monthly variable compensation ID
                      salaryCompensationId:
                        type: string
                        format: uuid
                        description: >-
                          Salary compensation ID (employee-compensation
                          assignment)
                      amount:
                        type: number
                        description: Compensation amount for the month
                        example: 500
                      date:
                        type: string
                        format: date
                        description: Date of the compensation (YYYY-MM-DD)
                        example: '2024-01-15'
                      createdAt:
                        type: string
                        format: Y-m-dTH:i:sP
                        example: '2020-01-01T10:00:00+01:00'
                      updatedAt:
                        type: string
                        format: Y-m-dTH:i:sP
                        example: '2020-01-01T10:00:00+01:00'
        '400':
          description: Bad Request - The request was invalid or cannot be served
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message describing what went wrong
                    example: Validation failed for the provided data
                  errors:
                    type: array
                    description: List of specific validation errors
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: The field that caused the error
                          example: questionId
                        message:
                          type: string
                          description: Specific error message for the field
                          example: This value is not a valid UUID.
              example:
                message: Validation failed
                errors:
                  - field: questionId
                    message: This value is not a valid UUID.
                  - field: answer
                    message: This field is required for text-based questions.
        '401':
          description: Unauthorized - Invalid or missing API Key
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message indicating authentication failure
                    example: Invalid or missing API Key
                  code:
                    type: string
                    description: Error code for programmatic handling
                    example: UNAUTHORIZED
              example:
                message: Invalid or missing API Key
                code: UNAUTHORIZED
        '404':
          description: Not Found - The requested resource could not be found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message indicating the resource was not found
                    example: Evaluation not found
                  code:
                    type: string
                    description: Error code for programmatic handling
                    example: EVALUATION_NOT_FOUND
              example:
                message: >-
                  Evaluation with ID 123e4567-e89b-12d3-a456-426614174000 was
                  not found
                code: EVALUATION_NOT_FOUND
        '429':
          description: Too Many Requests - Rate limit exceeded
      security:
        - Bearer: []
components:
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````