---
title: "Pre check for a placement creation"
method: POST
path: "/public/placement/v1/pre-check-create-placement"
tags: ["Placement"]
---

# Pre check for a placement creation

`POST /public/placement/v1/pre-check-create-placement`

Performs a pre-check to determine whether a placement can be created with the provided data.
Note: a successful pre-check does not guarantee that the placement can still be created later.
For example, the minimum CLA wage may have changed between the pre-check and the actual creation of the placement.

## Request body

- PlacementCreationRequestV1 — 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.
  - `companyId` string, uuid, required — The unique id of the client company.
  - `departmentId` string, uuid — Optional. The unique id of the client company's department at which the worker will work. If not provided, the first department of the client company is used.
  - `locationId` string, uuid, required — The unique id of the client company's location at which the worker will work.
  - `contactId` string, uuid, required — The unique id of the client company's contact person (who will be mentioned in the contract).
  - `startDate` string, date, required — The start date of the placement's contract, in ISO 8601 calendar date (YYYY-MM-DD).
  - `endDate` string, date, required — The end date of the placement's contract, in ISO 8601 calendar date (YYYY-MM-DD).
  - `shiftStartDateTime` string, date-time, required — The timestamp when the shift connected to the placement starts. Format: ISO 8601, must be in UTC. example: '2024-09-25T15:30:00Z'
  - `shiftEndDateTime` string, date-time, required — The timestamp when the shift connected to the placement ends. Format: ISO 8601, must be in UTC. example: '2024-09-25T18:30:00Z'
  - `collectiveLabourAgreementNumber` integer, required — Number for this placement's collective labour agreement, as published by Centraal Bureau voor de Statistiek. Must be one of the collective labour agreements that are already registered for the given companyId
  - `functionId` string, uuid, required — The function applicable to the worker's activities for this placement. The id must be a value returned from the collective-labour-agreement API. Must be compatible with the collectiveLabourAgreementNumber.
  - `functionType` string — The function type applicable to the worker's activities for this placement. Must be a value returned from the collective-labour-agreement API. Must be compatible with the functionId.
  - `functionLevel` string, required — The function level applicable to the worker's activities for this placement. Must be a value returned from the collective-labour-agreement API. Must be compatible with the functionId.
  - `education` string — The education level applicable to the worker's activities for this placement. Must be a value returned from the collective-labour-agreement API. Must be compatible with the collectiveLabourAgreementNumber, functionType, functionLevel, and worker's age.
  - `wageStep` string — The wage step applicable to the worker for this placement. Must be a value returned from the collective-labour-agreement API. Must be compatible with the collectiveLabourAgreementNumber, functionType, functionLevel, worker's age, education, and placement start date.
  - `baseHourlyWage` number, required — The hourly wage the worker will earn for this placement, excluding surcharges, holiday allowance, etc. Must be compatible with the collective labour agreement-related properties, such as functionLevel, education, and wageStep.
  - `hoursPerWeek` number, required — The number of hours the worker will work per week for this placement. The maximum comes from https://www.rijksoverheid.nl/onderwerpen/werktijden/vraag-en-antwoord/wettelijke-regels-werktijden-en-rusttijden
  - `billingProfile` BillingProfileV1 — The billing profile applicable to the worker for this placement. All placements with the same billingProfile will be on a separate invoice. When empty, all registrations of all placements will end up on the same invoice.
    - `billingProfileId` string, uuid, required — Uuid to group all registrations on the same invoice
    - `description` string, required — Description of the billing profile, will be visible on the invoice

## Response `200`

Successful pre-check with a possible error.

- PreCheckPlacementCreationResponse — Successful pre-check with a possible error. If no error is present the placement is eligible for creation. Note: this does not guarantee that the placement can still be created later. For example, the minimum CLA wage may have changed between the pre-check and the actual creation of the placement.
  - `error` PlacementCreationErrorV1
    - `errorCode` 'FUNCTION_DOES_NOT_BELONG_TO_CLA' | 'HOURS_PER_WEEK_ABOVE_MAXIMUM' | 'HOURS_PER_WEEK_BELOW_MINIMUM' | 'CONTRACT_TYPE_NOT_ALLOWED' | 'END_DATE_NOT_ALLOWED' | 'START_DATE_NOT_ALLOWED' | 'BASE_HOURLY_WAGE_NOT_FOUND' | 'BASE_HOURLY_WAGE_TOO_LOW' | 'FUNCTION_TYPE_REQUIRED_FOR_CLA' | 'NO_SIGNED_FRAMEWORK_AGREEMENT_EXISTS_FOR_WORKER' | 'WORKER_IS_ILL' | 'WORKER_HAS_NO_OR_EXPIRED_ID_DOCUMENT' | 'WORKER_HAS_NO_OR_EXPIRING_RIGHT_TO_WORK' | 'WORKER_CREATION_HAS_NOT_BEEN_FINALISED' | 'COMPANY_CREATION_HAS_NOT_BEEN_FINALISED' | 'SHIFT_DATE_TIME_NOT_WITHIN_PLACEMENT_START_END' | 'FUNCTION_NATURE_NOT_ALLOWED' | 'COMPANY_IS_BLACKLISTED_FOR_CONTRACT_CREATION' | 'WORKER_IS_BLACKLISTED_FOR_CONTRACT_CREATION' | 'EMPLOYMENT_CONTRACT_NOT_SIGNED', required
    - `message` string, required — A human-readable message that provides context to the error

## Other responses

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