---
title: "Create a new phase B/C employment contract for a worker"
method: POST
path: "/public/employment-contract/v1/create-employment-contract"
tags: ["EmploymentContract"]
---

# Create a new phase B/C employment contract for a worker

`POST /public/employment-contract/v1/create-employment-contract`

Create an employment contract for a worker. The contract needs to be signed by the worker before it becomes
active.

## Request body

- EmploymentContractCreationRequestV1 — Under construction. Lots of additional properties will be added in the future.
  - `workerId` string, uuid, required — The unique id of the worker, as returned from the /create-worker endpoint.
  - `type` 'PHASE_B' | 'PHASE_C', required — The type of the employment contract
  - `hoursPerWeek` number, required — The number of hours the worker will work per week for this employment contract. The maximum comes from https://www.rijksoverheid.nl/onderwerpen/werktijden/vraag-en-antwoord/wettelijke-regels-werktijden-en-rusttijden
  - `isPayrollTaxReduction` boolean, required — Whether the payroll tax reduction applies to this employment contract.
  - `duration` EmploymentContractDurationV1, required
    - `type` 'WEEKS_STARTING_AFTER_FRAMEWORK_AGREEMENT' | 'START_END_DATE' | 'START_DATE_INDEFINITE_END_DATE', required — The type of how the duration of the employment contract is specified
    - `durationInWeeks` integer — The duration of the employment contract in weeks. Is required when type is WEEKS_STARTING_AFTER_FRAMEWORK_AGREEMENT.
    - `startDate` string, date — The start date of the employment contract. Is required when type is START_END_DATE or START_DATE_INDEFINITE_END_DATE.
    - `endDate` string, date — The end date of the employment contract. Is required when duration type is START_END_DATE.

## Response `200`

Successfully created the employment contract

- EmploymentContractCreationResponseV1
  - `employmentContractId` string, uuid, required — The unique id of the created employment contract.
  - `signingUrl` string, uri, required — A URL to sign the employment contract
  - `signingUrlExpirationTimestamp` string, date-time, required — The timestamp (UTC) at which the signing URL will expire.

## Other responses

- `400` — The request could not be processed. This could be due to a number of reasons: * The request does not have all required data. * Data in the request is invalid. * Data in the request is inconsistent. * The operation is not allowed given the current state of the data.
- `401` — The request did not contain credentials identifying the caller, or the provided credentials were invalid.
- `403` — The data that the request referred to is inaccessible to the caller.

---

[API](https://skmtc.net/maqqie/apis/maqqie-public-api.md) · [All operations](https://skmtc.net/maqqie/apis/maqqie-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/maqqie/maqqie-public-api/revisions/41e5cd97d4d7/schema)
