---
title: "Create an arbo document"
method: POST
path: "/public/arbo-document/v1/create-arbo-document"
tags: ["Arbo document"]
---

# Create an arbo document

`POST /public/arbo-document/v1/create-arbo-document`

## Request

- Base URL: `https://api.maqqie.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.maqqie.app/public/arbo-document/v1/create-arbo-document`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://maqqie.app/auth/realms/maqqie/protocol/openid-connect/token`
- TypeScript: <https://skmtc.dev/maqqie/apis/maqqie-public-api/docs/public/arbo-document/v1/create-arbo-document/post.ts> (a function with typed inputs; its response is checked against the schema)

Create an arbo document

## Request body

- ArboDocumentCreationRequestV1
  - `companyId` string, uuid, required: The unique id of the client company.
  - `contactId` string, uuid, required: The unique id of the client company's contact person on whose behalf this API is called.
  - `workerPointOfContactContactId` string, uuid, required: The unique id of the client company's contact person that acts as the point of contact for the worker. Their phone number will be shared with the worker.
  - `date` string, date, required: The date, that is considered to be the date of drafting the arbo document. In ISO 8601 calendar date (YYYY-MM-DD). TODO: check whether there are any restrictions on the date.
  - `functionId` string, uuid, required: The function applicable to the activities for the work that this arbo document is valid for (arbo documents cannot apply to more than one function). The id must be a value returned from the collective-labour-agreement API. The function's collective labour agreement must be one of the client company's collective labour agreements.
  - `isDocumentForSafetyEducation` boolean, required: `true` if there is a document with general safety-related information material, `false` otherwise. The caller of this endpoint should make that document available together with the created arbo document.
  - `isDocumentForSpecificSafetyRegulations` boolean, required: `true` if there is a document with client-company safety precautions for this arbo document's function, `false` otherwise. The caller of this endpoint should make that document available together with the created arbo document.
  - `isDocumentForInHouseEmergencyServiceAgreements` boolean, required: `true` if there is a document with client-company arrangements for emergency response, `false` otherwise. The caller of this endpoint should make that document available together with the created arbo document.
  - `isSafetyProtectedEquipment` boolean, required: `true` if the worker needs equipment for safety protection, `false` otherwise. If true, it is mandatory for the client company to provide that equipment (in a timely manner).
  - `isWorkOnThirdPartyLocations` boolean, required: `true` if the worker will work at third-party locations (i.e. locations not belonging to the client company). If true, the client company is responsible for providing any necessary information about safety and health regulations at those locations.

## Response `200`

Successfully created the arbo document

- ArboDocumentV1
  - `fileId` string, uuid, required: The unique id of the arbo document PDF.

## 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.

## Changes

- **2026-09-29** `f9510f3f4b22`: 13 breaking, 1 info
  - added the new required request property `companyId`
  - added the new required request property `contactId`
  - added the new required request property `date`
  - added the new required request property `functionId`
  - …10 more
- **2026-09-29** `3352b56bb8fe`: 4 breaking, 10 warning, 3 info
  - the request's body type changed from `object` to no type
  - the response's body type changed from `object` to no type for status `200`
  - the response's body type changed from `string` to no type for status `400`
  - removed the required property `fileId` from the response with the `200` status
  - …13 more
- **2026-09-16** `ccf9834e5006`: 13 breaking, 1 info
  - added the new required request property `companyId`
  - added the new required request property `contactId`
  - added the new required request property `date`
  - added the new required request property `functionId`
  - …10 more
- **2026-09-15** `8085d4c1ab80`: 4 breaking, 10 warning, 3 info
  - the request's body type changed from `object` to no type
  - the response's body type changed from `object` to no type for status `200`
  - the response's body type changed from `string` to no type for status `400`
  - removed the required property `fileId` from the response with the `200` status
  - …13 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/maqqie/apis/maqqie-public-api/changes/public/arbo-document/v1/create-arbo-document/post.md)

---

[API](https://skmtc.dev/maqqie/apis/maqqie-public-api.md) - [All operations](https://skmtc.dev/maqqie/apis/maqqie-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/maqqie/apis/maqqie-public-api/revisions/13ed331da2b2?raw)
