---
title: "Create a new company"
method: POST
path: "/public/company/v1/create-company"
tags: ["Company"]
---

# Create a new company

`POST /public/company/v1/create-company`

## 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/company/v1/create-company`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://maqqie.app/auth/realms/maqqie/protocol/openid-connect/token`

## Request body

- CompanyCreationRequestV1
  - `chamberOfCommerceNumber` string, required
  - `contactFirstName` string, required
  - `contactLastName` string, required
  - `contactMobilePhoneNumber` string, required
  - `contactEmail` string, email, required
  - `provisions` ProvisionV1, required: Either fixedCostPriceFactor OR both percentage and minimumAmount must be provided. The fixedCostPriceFactor determines the cost price (hourly wage * fixedCostPriceFactor = cost price). The percentage and minimumAmount are applied on top of the cost price, where the highest of the two is invoiced. If the cost price is 20€, percentage is 5% and minimum amount is 0.50€, then the client will be invoiced for 21€ (5% of 20€ = 1€ > 0.50€) If the cost price is 20€, percentage is 5% and minimum amount is 2.50€, then the client will be invoiced for 22.50€ (2.50€ > 5% of 20€ = 1€) If only one of them is applicable, the other one can be set to 0.0
    - `fixedCostPriceFactor` number
    - `percentage` number
    - `minimumAmount` number
  - `iban` string: The IBAN of the company
  - `vatNumber` string: The VAT number of the company. Must be valid according to https://ec.europa.eu/taxation_customs/vies
  - `collectiveLabourAgreementNumber` integer: The unique number of the collective labour agreement, as returned from the /get-collective-labour-agreements endpoint.
  - `paymentTerm` PaymentTermV1: The payment term applied to the invoices Maqqie sends to this company. * days: the number of days after the invoice date on which the invoice is due. Shown on the invoice as the due date ("Vervaldatum"). * surchargePercentage: percentage of the invoiced amount that is added to each invoice in exchange for granting this payment term, with at most two decimals. It appears on the invoice as the line "Krediettoeslag betaaltermijn N dagen". Use 0 when the client pays no surcharge for this term. A change takes effect for invoices generated after the change. Invoices that were already generated keep the term they were issued with.
    - `days` integer, required
    - `surchargePercentage` number, required

## Response `200`

Successfully created a company

- CompanyCreationResponseV1
  - `companyId` string, uuid, required
  - `contactId` string, uuid, required

## 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`: 9 breaking, 6 info
  - added the new required request property `chamberOfCommerceNumber`
  - added the new required request property `contactEmail`
  - added the new required request property `contactFirstName`
  - added the new required request property `contactLastName`
  - …11 more
- **2026-09-29** `3352b56bb8fe`: 5 breaking, 10 warning, 16 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 `companyId` from the response with the `200` status
  - …27 more
- **2026-09-16** `ccf9834e5006`: 9 breaking, 6 info
  - added the new required request property `chamberOfCommerceNumber`
  - added the new required request property `contactEmail`
  - added the new required request property `contactFirstName`
  - added the new required request property `contactLastName`
  - …11 more
- **2026-09-15** `8085d4c1ab80`: 5 breaking, 10 warning, 16 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 `companyId` from the response with the `200` status
  - …27 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/maqqie/apis/maqqie-public-api/changes/public/company/v1/create-company/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)
