---
title: "Duplicate contract"
method: POST
path: "/management/v2/compliance/contract:duplicate"
tags: ["Compliance"]
---

# Duplicate contract

`POST /management/v2/compliance/contract:duplicate`

## Request

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

Duplicate contract.

## Response `200`

A successful response.

- ContractDuplicateResponse
  - `success` boolean
  - `data` Tenantcompliancev2modelContract
    - `id` integer
    - `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
    - `payRules` 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
    - `configs` V2modelContractConfig[]
      - `id` integer
      - `contractId` integer
      - `category` 'CONTRACT_CONFIG_CATEGORY_UNKNOWN' | 'CONTRACT_CONFIG_CATEGORY_GLOBAL_SETTINGS' | 'CONTRACT_CONFIG_CATEGORY_JUNIOR_RATE' | 'CONTRACT_CONFIG_CATEGORY_CONTRACT_DETAILS' | 'CONTRACT_CONFIG_CATEGORY_PAY_POLICY_CONTEXT' | 'CONTRACT_CONFIG_CATEGORY_SHARED_CONTEXT' | 'CONTRACT_CONFIG_CATEGORY_EXPORT_CODE_TEMPLATE'
      - `config` string
      - `status` 'CONTRACT_CONFIG_STATUS_INACTIVE' | 'CONTRACT_CONFIG_STATUS_ACTIVE' | 'CONTRACT_CONFIG_STATUS_ARCHIVED'
    - `leaveRules` V2modelLeaveRule[]
      - `id` integer
      - `name` string
      - `description` string
      - `isPaid` boolean
      - `type` integer
    - `payPolicyName` string
    - `levels` ModelContractLevel[]
      - `id` integer
      - `name` string
      - `levelKsuid` string
      - `contractId` integer
      - `baseRate` string
      - `crIds` string[]
      - `exportCode` string
    - `payType` 'CONTRACT_PAY_TYPE_UNKNOWN' | 'CONTRACT_PAY_TYPE_HOURLY' | 'CONTRACT_PAY_TYPE_SALARY'
    - `juniorRates` ModelContractJuniorRate[]
      - `id` string, uint64
      - `contractId` string, uint64
      - `name` string
      - `age` string, uint64
      - `type` 'CONTRACT_JUNIOR_RATE_TYPE_UNKNOWN' | 'CONTRACT_JUNIOR_RATE_TYPE_MULTIPLIER' | 'CONTRACT_JUNIOR_RATE_TYPE_FIXED'
      - `value` string
      - `exportCode` string
    - `standardHours` string: Standard hours per day for this contract. Maps to employment condition's avgHoursPerDay. Set to 0 to unlink employment condition.

---

[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)
