---
title: "Update a work-contract"
method: PATCH
path: "/directory/api/4.0/work-contracts/{id}"
tags: ["Work-Contracts"]
---

# Update a work-contract

`PATCH /directory/api/4.0/work-contracts/{id}`

Update a work-contract by its ID.

## Request body

- WorkContract
  - `id` integer — Unique identifier of this work-contract.
  - `ownerId` integer — Unique identifier of the employee this work-contract belongs to.
  - `externalId` string, nullable — Third-party identifier of this work-contract. May be not unique.
  - `typeId` integer — Identifier of the work-contract template this work-contract conforms to. Determines whether certain optional properties are required.
  - `startsOn` string, date — Start date of this work-contract. Format: `YYYY-mm-DD`.
  - `isApplicable` boolean — **Readonly**. Whether this work-contract applies to the employee at this very moment. A work-contract is considered "applicable" if: 1. It is the ongoing work-contract as of today; 2. If there is none, then it is the first upcoming work-contract; 3. If not, then it is the last work-contract this employee had.
  - `establishmentId` integer — Identifier of the establishment the employee works for.
  - `spcId` integer, nullable — Identifier of the socio-professional category. Refer to the API endpoint: `/organization/structure/api/occupation-categories`.
  - `hiringTypeId` integer, nullable — Identifier of a hiring reason type. Refer to the API endpoint: `/directory/api/work-contract-hiring-types`.
  - `trialPeriodDays` integer, nullable — Number of days of the initial trial period.
  - `renewedTrialPeriodDays` integer, nullable — Number of days of renewed trial period (equal to the length of the initial period, plus the renewal period).
  - `trialPeriodEndDate` string, date, nullable — Initial trial period end date. Format: `YYYY-mm-DD`.
  - `trialPeriodEndDate2` string, date, nullable — Renewed trial period end date. Format: `YYYY-mm-DD`.
  - `temporaryContractGroundId` integer, nullable — Identifier of the temporary contract ground. Refer to the API endpoint: `/directory/api/work-contract-temporary-contract-grounds`.
  - `internshipSupervisorId` integer, nullable — Identifier of the employee/user that acts as internship supervisor.
  - `endsOn` string, date, nullable — End date of this work-contract. Leave `null` if not (yet) known. Format: `YYYY-mm-DD`.
  - `terminationReasonId` integer, nullable — Identifier of the termination reason. Refer to the API endpoint: `/directory/api/work-contract-termination-reasons`.
  - `authorId` integer — **Read-only**. Identifier of the user who created this work-contract.
  - `createdAt` string, date-time — **Read-only**. Timestamp of the moment this work-contract was created.
  - `lastModifierId` integer — **Read-only**. Identifier of the user who last modified this work-contract.
  - `lastModifiedAt` string, date-time — **Read-only**. Timestamp of the moment this work-contract was last updated.

## Response `200`

OK

- WorkContract
  - `id` integer — Unique identifier of this work-contract.
  - `ownerId` integer — Unique identifier of the employee this work-contract belongs to.
  - `externalId` string, nullable — Third-party identifier of this work-contract. May be not unique.
  - `typeId` integer — Identifier of the work-contract template this work-contract conforms to. Determines whether certain optional properties are required.
  - `startsOn` string, date — Start date of this work-contract. Format: `YYYY-mm-DD`.
  - `isApplicable` boolean — **Readonly**. Whether this work-contract applies to the employee at this very moment. A work-contract is considered "applicable" if: 1. It is the ongoing work-contract as of today; 2. If there is none, then it is the first upcoming work-contract; 3. If not, then it is the last work-contract this employee had.
  - `establishmentId` integer — Identifier of the establishment the employee works for.
  - `spcId` integer, nullable — Identifier of the socio-professional category. Refer to the API endpoint: `/organization/structure/api/occupation-categories`.
  - `hiringTypeId` integer, nullable — Identifier of a hiring reason type. Refer to the API endpoint: `/directory/api/work-contract-hiring-types`.
  - `trialPeriodDays` integer, nullable — Number of days of the initial trial period.
  - `renewedTrialPeriodDays` integer, nullable — Number of days of renewed trial period (equal to the length of the initial period, plus the renewal period).
  - `trialPeriodEndDate` string, date, nullable — Initial trial period end date. Format: `YYYY-mm-DD`.
  - `trialPeriodEndDate2` string, date, nullable — Renewed trial period end date. Format: `YYYY-mm-DD`.
  - `temporaryContractGroundId` integer, nullable — Identifier of the temporary contract ground. Refer to the API endpoint: `/directory/api/work-contract-temporary-contract-grounds`.
  - `internshipSupervisorId` integer, nullable — Identifier of the employee/user that acts as internship supervisor.
  - `endsOn` string, date, nullable — End date of this work-contract. Leave `null` if not (yet) known. Format: `YYYY-mm-DD`.
  - `terminationReasonId` integer, nullable — Identifier of the termination reason. Refer to the API endpoint: `/directory/api/work-contract-termination-reasons`.
  - `authorId` integer — **Read-only**. Identifier of the user who created this work-contract.
  - `createdAt` string, date-time — **Read-only**. Timestamp of the moment this work-contract was created.
  - `lastModifierId` integer — **Read-only**. Identifier of the user who last modified this work-contract.
  - `lastModifiedAt` string, date-time — **Read-only**. Timestamp of the moment this work-contract was last updated.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Unexpected Error

---

[API](https://skmtc.net/luccasoftware/apis/lucca-expenses.md) · [All operations](https://skmtc.net/luccasoftware/apis/lucca-expenses/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/luccasoftware/lucca-expenses/revisions/110f9897756c/schema)
