---
updatedAt: 2026-04-27T16:09:54.000Z
agentTools:
  projectIndex: https://developer.deputy.com/llms.txt
---

# Duplicate contract

Duplicate contract.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Deputy V2 API",
    "version": "1.0",
    "description": "\n\nFiltered to publicly-authenticated routes only (APIAuthenticator). Scoped-OAuth routes and internal JWT routes are excluded — see the separate \"Deputy V2 Scoped API\" spec for scoped endpoints."
  },
  "servers": [
    {
      "url": "https://{subdomain}.{region}.deputy.com/api",
      "description": "Deputy tenant",
      "variables": {
        "subdomain": {
          "default": "your-subdomain",
          "description": "Your Deputy tenant subdomain"
        },
        "region": {
          "default": "deputy",
          "enum": [
            "au",
            "eu",
            "na",
            "deputy"
          ],
          "description": "Deputy region: au, eu, na, or deputy (AU default)"
        }
      }
    }
  ],
  "components": {
    "schemas": {
      "ContractDuplicateResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "$ref": "#/components/schemas/tenantcompliancev2modelContract"
          }
        }
      },
      "CustomFieldAnswerSystem": {
        "type": "string",
        "enum": [
          "UNSPECIFIED",
          "TIMESHEET",
          "EMPLOYEE",
          "ROSTER"
        ],
        "default": "UNSPECIFIED"
      },
      "FilterRRulePublicHolidayInclusionType": {
        "type": "string",
        "enum": [
          "PH_INCLUSION_UNSPECIFIED",
          "PH_ONLY",
          "NON_PH_ONLY"
        ],
        "default": "PH_INCLUSION_UNSPECIFIED"
      },
      "FilterShiftSchedulingType": {
        "type": "string",
        "enum": [
          "UNSPECIFIED",
          "SCHEDULED_ONLY",
          "UNSCHEDULED_ONLY"
        ],
        "default": "UNSPECIFIED"
      },
      "PayRulePayPortionRule": {
        "type": "string",
        "enum": [
          "PAY_PORTION_RULE_UNKNOWN",
          "PAY_PORTION_RULE_GREATER",
          "PAY_PORTION_RULE_EXACT",
          "PAY_PORTION_RULE_FULL"
        ],
        "default": "PAY_PORTION_RULE_UNKNOWN"
      },
      "PayRuleRemunerationBy": {
        "type": "string",
        "enum": [
          "REMUNERATION_BY_UNKNOWN",
          "REMUNERATION_BY_BASE",
          "REMUNERATION_BY_SHIFT_LOADING",
          "REMUNERATION_BY_PERIOD_LOADING"
        ],
        "default": "REMUNERATION_BY_UNKNOWN"
      },
      "PayRuleRemunerationType": {
        "type": "string",
        "enum": [
          "REMUNERATION_TYPE_UNKNOWN",
          "REMUNERATION_TYPE_HOURLY",
          "REMUNERATION_TYPE_MULTIPLIER",
          "REMUNERATION_TYPE_UNIT",
          "REMUNERATION_TYPE_SALARY"
        ],
        "default": "REMUNERATION_TYPE_UNKNOWN"
      },
      "compliancev2modelEmploymentCategory": {
        "type": "string",
        "enum": [
          "EMPLOYMENT_CATEGORY_UNKNOWN",
          "EMPLOYMENT_CATEGORY_PERMANENT",
          "EMPLOYMENT_CATEGORY_TEMPORARY"
        ],
        "default": "EMPLOYMENT_CATEGORY_UNKNOWN"
      },
      "modelContractConfigCategory": {
        "type": "string",
        "enum": [
          "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"
        ],
        "default": "CONTRACT_CONFIG_CATEGORY_UNKNOWN"
      },
      "modelContractConfigStatus": {
        "type": "string",
        "enum": [
          "CONTRACT_CONFIG_STATUS_INACTIVE",
          "CONTRACT_CONFIG_STATUS_ACTIVE",
          "CONTRACT_CONFIG_STATUS_ARCHIVED"
        ],
        "default": "CONTRACT_CONFIG_STATUS_INACTIVE"
      },
      "modelContractJuniorRate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uint64"
          },
          "contractId": {
            "type": "string",
            "format": "uint64"
          },
          "name": {
            "type": "string"
          },
          "age": {
            "type": "string",
            "format": "uint64"
          },
          "type": {
            "$ref": "#/components/schemas/modelContractJuniorRateType"
          },
          "value": {
            "type": "string"
          },
          "exportCode": {
            "type": "string"
          }
        }
      },
      "modelContractJuniorRateType": {
        "type": "string",
        "enum": [
          "CONTRACT_JUNIOR_RATE_TYPE_UNKNOWN",
          "CONTRACT_JUNIOR_RATE_TYPE_MULTIPLIER",
          "CONTRACT_JUNIOR_RATE_TYPE_FIXED"
        ],
        "default": "CONTRACT_JUNIOR_RATE_TYPE_UNKNOWN"
      },
      "modelContractLevel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "levelKsuid": {
            "type": "string"
          },
          "contractId": {
            "type": "integer",
            "format": "int64"
          },
          "baseRate": {
            "type": "string"
          },
          "crIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "exportCode": {
            "type": "string"
          }
        }
      },
      "modelContractPayType": {
        "type": "string",
        "enum": [
          "CONTRACT_PAY_TYPE_UNKNOWN",
          "CONTRACT_PAY_TYPE_HOURLY",
          "CONTRACT_PAY_TYPE_SALARY"
        ],
        "default": "CONTRACT_PAY_TYPE_UNKNOWN"
      },
      "modelCustomFieldAnswer": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "title": "the unique identifier of the custom field (api_name)"
          },
          "system": {
            "$ref": "#/components/schemas/CustomFieldAnswerSystem",
            "title": "type of the custom field, i.e. \"TIMESHEET\" or \"EMPLOYEE\""
          },
          "configs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modelCustomFieldAnswerConfig"
            },
            "title": "configuration for the custom field answer, i.e. operation and acceptable answers"
          },
          "type": {
            "$ref": "#/components/schemas/modelCustomFieldAnswerType",
            "title": "type of the custom field, e.g. list, boolean, number, text"
          },
          "action": {
            "$ref": "#/components/schemas/modelCustomFieldAnswerAction",
            "title": "specific action we would like to perform when checking the pay rule against the question/answer; Unspecified means it's the default filtering action"
          }
        }
      },
      "modelCustomFieldAnswerAction": {
        "type": "string",
        "enum": [
          "UNSPECIFIED_ACTION",
          "FILTER",
          "TOIL_ACCRUAL"
        ],
        "default": "UNSPECIFIED_ACTION",
        "title": "- UNSPECIFIED_ACTION: default is filter action, same as FILTER\n - FILTER: filter pay rule according to the CustomFieldAnswer setup\n - TOIL_ACCRUAL: convert Overtime to TimeOffInLieu when calculating shift cost"
      },
      "modelCustomFieldAnswerConfig": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "title": "one of eq, neq, gt, lt, gte, lte, in, nin"
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "modelCustomFieldAnswerType": {
        "type": "string",
        "enum": [
          "TYPE_UNSPECIFIED",
          "TYPE_LIST",
          "TYPE_BOOL",
          "TYPE_NUMBER",
          "TYPE_TEXT",
          "TYPE_BOOL_YES_COMMENT",
          "TYPE_BOOL_NO_COMMENT"
        ],
        "default": "TYPE_UNSPECIFIED"
      },
      "modelLoadingLimit": {
        "type": "object",
        "properties": {
          "limitType": {
            "type": "string"
          },
          "limitPer": {
            "type": "string"
          },
          "customPeriod": {
            "type": "string"
          },
          "minValue": {
            "type": "number",
            "format": "float"
          },
          "maxValue": {
            "type": "number",
            "format": "float"
          }
        }
      },
      "modelPayConfig": {
        "type": "object",
        "properties": {
          "roundUpHours": {
            "type": "boolean"
          },
          "loadingLimit": {
            "$ref": "#/components/schemas/modelLoadingLimit"
          },
          "classificationReference": {
            "type": "string"
          }
        }
      },
      "modelPayRuleRateType": {
        "type": "string",
        "enum": [
          "RATE_TYPE_UNKNOWN",
          "RATE_TYPE_ORDINARY",
          "RATE_TYPE_OVERTIME",
          "RATE_TYPE_PENALTY",
          "RATE_TYPE_NON_PAYABLE"
        ],
        "default": "RATE_TYPE_UNKNOWN"
      },
      "modelTrainingRequirement": {
        "type": "object",
        "properties": {
          "module": {
            "type": "string",
            "format": "int64"
          }
        }
      },
      "tenantcompliancev2modelContract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "employmentCategory": {
            "$ref": "#/components/schemas/compliancev2modelEmploymentCategory"
          },
          "employmentType": {
            "$ref": "#/components/schemas/tenantcompliancev2modelEmploymentType"
          },
          "basePayRule": {
            "$ref": "#/components/schemas/tenantcompliancev2modelPayRule"
          },
          "payRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/tenantcompliancev2modelPayRule"
            }
          },
          "configs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v2modelContractConfig"
            }
          },
          "leaveRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v2modelLeaveRule"
            }
          },
          "payPolicyName": {
            "type": "string"
          },
          "levels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modelContractLevel"
            }
          },
          "payType": {
            "$ref": "#/components/schemas/modelContractPayType"
          },
          "juniorRates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modelContractJuniorRate"
            }
          },
          "standardHours": {
            "type": "string",
            "description": "Standard hours per day for this contract. Maps to employment condition's avgHoursPerDay. Set to 0 to unlink employment condition."
          }
        }
      },
      "tenantcompliancev2modelEmploymentType": {
        "type": "string",
        "enum": [
          "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"
        ],
        "default": "EMPLOYMENT_TYPE_UNKNOWN",
        "description": "In the code this is also referred to as employment status\n(employment_status DB table column)."
      },
      "tenantcompliancev2modelPayRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string"
          },
          "value": {
            "type": "number",
            "format": "double"
          },
          "remunerationBy": {
            "$ref": "#/components/schemas/PayRuleRemunerationBy"
          },
          "remunerationType": {
            "$ref": "#/components/schemas/PayRuleRemunerationType"
          },
          "isExported": {
            "type": "boolean"
          },
          "payrollCategory": {
            "type": "string"
          },
          "payPortionRule": {
            "$ref": "#/components/schemas/PayRulePayPortionRule"
          },
          "rateType": {
            "$ref": "#/components/schemas/modelPayRuleRateType"
          },
          "comment": {
            "type": "string"
          },
          "operationalUnitIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "calculationRuleId": {
            "type": "string"
          },
          "calculationTypeId": {
            "type": "string"
          },
          "filter": {
            "$ref": "#/components/schemas/v2modelFilter"
          },
          "localContext": {
            "type": "string"
          },
          "rateTag": {
            "type": "string"
          },
          "payConfig": {
            "$ref": "#/components/schemas/modelPayConfig"
          },
          "levelIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "levelAssnType": {
            "type": "integer",
            "format": "int64"
          },
          "stpClass": {
            "type": "string"
          },
          "stpCode": {
            "type": "string"
          },
          "toilMultiplier": {
            "type": "number",
            "format": "double",
            "title": "the Multiplier Rate that indicates how much TimeOffInLieu an hour of Overtime converts to"
          },
          "leaveRuleId": {
            "type": "integer",
            "format": "int64",
            "title": "the id of leave rule which TOIL Accrual goes to when TOIL is set up to convert OT to TOIL, only used with toilMultiplier"
          },
          "payrollTaxCode": {
            "type": "string"
          }
        }
      },
      "v2modelContractConfig": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "contractId": {
            "type": "integer",
            "format": "int64"
          },
          "category": {
            "$ref": "#/components/schemas/modelContractConfigCategory"
          },
          "config": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/modelContractConfigStatus"
          }
        }
      },
      "v2modelFilter": {
        "type": "object",
        "properties": {
          "customFieldAnswers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modelCustomFieldAnswer"
            }
          },
          "recurrenceRule": {
            "type": "string"
          },
          "shiftSchedulingType": {
            "$ref": "#/components/schemas/FilterShiftSchedulingType"
          },
          "shiftStartTimeRange": {
            "type": "string"
          },
          "shiftEndTimeRange": {
            "type": "string"
          },
          "rRulePublicHolidayInclusion": {
            "$ref": "#/components/schemas/FilterRRulePublicHolidayInclusionType",
            "title": "Determines recurrence rule is applicable on public holiday (recurrenceRule AND public holiday condition should be met)"
          },
          "particularDate": {
            "type": "string"
          },
          "applyOncePerDay": {
            "type": "boolean"
          },
          "areaNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "trainingRequirements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modelTrainingRequirement"
            }
          }
        }
      },
      "v2modelLeaveRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "isPaid": {
            "type": "boolean"
          },
          "type": {
            "type": "integer",
            "format": "int64"
          }
        }
      }
    },
    "securitySchemes": {
      "ApiToken": {
        "type": "apiKey",
        "in": "header",
        "name": "OAuth"
      }
    }
  },
  "paths": {
    "/management/v2/compliance/contract:duplicate": {
      "post": {
        "operationId": "ComplianceV2Controller_duplicateContract",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractDuplicateResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Compliance"
        ],
        "summary": "Duplicate contract",
        "description": "Duplicate contract."
      }
    }
  },
  "security": [
    {
      "ApiToken": []
    }
  ]
}
```