---
title: "Update contract"
method: PUT
path: "/management/v2/compliance/contract/{id}"
tags: ["Compliance"]
---

# Update contract

`PUT /management/v2/compliance/contract/{id}`

## Request

- Base URL: `https://your-subdomain.deputy.deputy.com/api`
- URL: `https://your-subdomain.deputy.deputy.com/api/management/v2/compliance/contract/{id}`
- Auth: API key in header `OAuth`

Update contract.

## Path parameters

- `id` integer, required

## Request body

- ContractUpdateDetail
  - `name` string
  - `description` string
  - `employmentCategory` 'EMPLOYMENT_CATEGORY_UNKNOWN' | 'EMPLOYMENT_CATEGORY_PERMANENT' | 'EMPLOYMENT_CATEGORY_TEMPORARY'
  - `employmentType` 'EMPLOYMENT_TYPE_UNKNOWN' | 'EMPLOYMENT_TYPE_FULL_TIME' | 'EMPLOYMENT_TYPE_PART_TIME' | 'EMPLOYMENT_TYPE_CASUAL' | 'EMPLOYMENT_TYPE_CONTRACTOR' | 'EMPLOYMENT_TYPE_HOURLY' | 'EMPLOYMENT_TYPE_SALARY' | 'EMPLOYMENT_TYPE_GENERIC': In the code this is also referred to as employment status (employment_status DB table column).
  - `basePayRule` Tenantcompliancev2modelPayRule
    - `id` integer
    - `title` string
    - `value` number, double
    - `remunerationBy` 'REMUNERATION_BY_UNKNOWN' | 'REMUNERATION_BY_BASE' | 'REMUNERATION_BY_SHIFT_LOADING' | 'REMUNERATION_BY_PERIOD_LOADING'
    - `remunerationType` 'REMUNERATION_TYPE_UNKNOWN' | 'REMUNERATION_TYPE_HOURLY' | 'REMUNERATION_TYPE_MULTIPLIER' | 'REMUNERATION_TYPE_UNIT' | 'REMUNERATION_TYPE_SALARY'
    - `isExported` boolean
    - `payrollCategory` string
    - `payPortionRule` 'PAY_PORTION_RULE_UNKNOWN' | 'PAY_PORTION_RULE_GREATER' | 'PAY_PORTION_RULE_EXACT' | 'PAY_PORTION_RULE_FULL'
    - `rateType` 'RATE_TYPE_UNKNOWN' | 'RATE_TYPE_ORDINARY' | 'RATE_TYPE_OVERTIME' | 'RATE_TYPE_PENALTY' | 'RATE_TYPE_NON_PAYABLE'
    - `comment` string
    - `operationalUnitIds` integer[]
    - `calculationRuleId` string
    - `calculationTypeId` string
    - `filter` V2modelFilter
      - `customFieldAnswers` ModelCustomFieldAnswer[]
        - `identifier` string
        - `system` 'UNSPECIFIED' | 'TIMESHEET' | 'EMPLOYEE' | 'ROSTER'
        - `configs` ModelCustomFieldAnswerConfig[]
          - `operation` string
          - `values` string[]
        - `type` 'TYPE_UNSPECIFIED' | 'TYPE_LIST' | 'TYPE_BOOL' | 'TYPE_NUMBER' | 'TYPE_TEXT' | 'TYPE_BOOL_YES_COMMENT' | 'TYPE_BOOL_NO_COMMENT'
        - `action` 'UNSPECIFIED_ACTION' | 'FILTER' | 'TOIL_ACCRUAL'
      - `recurrenceRule` string
      - `shiftSchedulingType` 'UNSPECIFIED' | 'SCHEDULED_ONLY' | 'UNSCHEDULED_ONLY'
      - `shiftStartTimeRange` string
      - `shiftEndTimeRange` string
      - `rRulePublicHolidayInclusion` 'PH_INCLUSION_UNSPECIFIED' | 'PH_ONLY' | 'NON_PH_ONLY'
      - `particularDate` string
      - `applyOncePerDay` boolean
      - `areaNames` string[]
      - `trainingRequirements` ModelTrainingRequirement[]
        - `module` string, int64
    - `localContext` string
    - `rateTag` string
    - `payConfig` ModelPayConfig
      - `roundUpHours` boolean
      - `loadingLimit` ModelLoadingLimit
        - `limitType` string
        - `limitPer` string
        - `customPeriod` string
        - `minValue` number, float
        - `maxValue` number, float
      - `classificationReference` string
    - `levelIds` integer[]
    - `levelAssnType` integer
    - `stpClass` string
    - `stpCode` string
    - `toilMultiplier` number, double
    - `leaveRuleId` integer
    - `payrollTaxCode` string
  - `standardHours` string: Standard hours per day for this contract. Omit to leave unchanged, set to 0 to unlink employment condition, or provide a positive value to create/update employment condition.

## Response `200`

A successful response.

- ContractUpdateResponse
  - `success` boolean

---

[API](https://skmtc.dev/deputy/apis/deputy-v2-api.md) - [All operations](https://skmtc.dev/deputy/apis/deputy-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/deputy/apis/deputy-v2-api/revisions/78f0278f4608?raw)
