---
title: "Get registrations for the calling company"
method: POST
path: "/public/registrations/v1/get-registrations"
tags: ["Registration"]
---

# Get registrations for the calling company

`POST /public/registrations/v1/get-registrations`

## 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/registrations/v1/get-registrations`
- 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/registrations/v1/get-registrations/post.ts> (a function with typed inputs; its response is checked against the schema)

Lists all non-deleted registrations for the company of the caller, grouped per registration with the
individual registration lines nested. A single registration is associated with 1 or more registration lines,
for example normal hours plus a surcharge line.

The line amounts reflect the values at registration/approval time: `price`/`pricePerUnit` are the amounts
charged to the company, `wageAmount`/`wagePerUnit` are the gross wage amounts for the worker.

**Filters**

All filters are optional and combined with AND. A registration is included when at least one of its lines
matches all filters, and it contains **only the matching lines**. For example, when filtering on a date range,
lines of the same registration that fall outside the range are omitted from the response.

**Paging**

Results are paged over registrations (not lines), ordered by the earliest matching line date per registration.
Paging is controlled by the `page` object in the request; defaults are `number=0` and `size=25`.

## Request body

- GetRegistrationsRequestV1
  - `startDate` string, date: Inclusive lower bound for the registration line date. Format: ISO 8601 (YYYY-MM-DD).
  - `endDate` string, date: Inclusive upper bound for the registration line date. Format: ISO 8601 (YYYY-MM-DD).
  - `workerId` string, uuid: The UUID of the worker to filter registrations by.
  - `placementId` string, uuid: The UUID of the placement to filter registrations by.
  - `page` PageRequestV1: Generic paging request parameters, reusable across public API endpoints. If omitted, defaults are number=0, size=25.
    - `number` integer: Zero-based page index.
    - `size` integer: Number of items per page. No maximum is enforced — callers running automated bulk fetches may request larger pages.

## Response `200`

Successfully listed the registrations matching the filters.

- GetRegistrationsResponseV1
  - `registrations` RegistrationV1[], required: The registrations on this page, each with its nested registration lines.
    - `registrationId` string, uuid, required: Unique identifier of a registration. A single registration is associated with 1 or more registration lines, including normal hours, overtime and surcharges.
    - `lines` RegistrationLineV1[], required: The registration lines belonging to this registration.
      - `id` string, uuid, required: Unique identifier of this registration line.
      - `placementId` string, uuid, required: The UUID of the placement this line was registered on.
      - `workerId` string, uuid, required: The UUID of the worker this line was registered for.
      - `date` string, date, required: The date of the registration line. Format: ISO 8601 (YYYY-MM-DD).
      - `status` 'REGISTERED' | 'FOR_APPROVAL' | 'COMPANY_REGISTERED' | 'APPROVED' | 'REJECTED' | 'EXPIRED', required: The status of a registration line.
      - `wageComponent` 'REGULAR_HOURS' | 'SURCHARGE' | 'OVERTIME' | 'TRAVEL_ALLOWANCE' | 'GROSS_COMPENSATION' | 'OTHER', required: The wage component classification of a registration line.
      - `wageComponentDescription` string: Human-readable (Dutch) description of the wage component, useful to disambiguate `OTHER`.
      - `quantity` number, required: The quantity of this line (hours, kilometers, days or euros, depending on `unit`). The approved quantity when the line has been approved, otherwise the registered quantity.
      - `unit` 'HOUR' | 'KM' | 'DAY' | 'EURO', required: The unit of `quantity`.
      - `startTime` string, date-time: The timestamp when the work period started. Only present for lines registered with explicit start and end times, such as worked hours. Format: ISO 8601, in UTC.
      - `endTime` string, date-time: The timestamp when the work period ended. Only present for lines registered with explicit start and end times, such as worked hours. Format: ISO 8601, in UTC.
      - `breakDuration` string, duration: The combined duration of breaks taken during the work period. Only present for lines registered with a break duration. Format: ISO 8601 (e.g., PT1H30M).
      - `surchargeFactor` number, double, required: The surcharge factor applied to this line. 1.0 when no surcharge applies.
      - `price` number: The total amount charged to the company for this line, in €.
      - `pricePerUnit` number: The rate charged to the company per unit, in €.
      - `wageAmount` number: The total gross wage of the worker for this line, in €.
      - `wagePerUnit` number: The gross wage rate of the worker per unit, in €, excluding any surcharge factor.
  - `page` PageV1, required: Generic paging metadata returned alongside a page of results, reusable across public API endpoints.
    - `number` integer, required: Zero-based index of the returned page.
    - `size` integer, required: The requested page size. The last page may contain fewer items.
    - `totalElements` integer, required: Total number of items matching the query across all pages.
    - `totalPages` integer, required: Total number of pages available for the query.

## Other responses

- `400`: The request could not be processed. This could be due to a number of reasons: * Data in the request is invalid. * Data in the request is inconsistent.
- `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`: 3 breaking, 7 info
  - the request's body type changed from no type to `object`
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `string` for status `400`
  - added the new optional request property `endDate`
  - …6 more
- **2026-09-29** `3352b56bb8fe`: 5 breaking, 5 warning, 1 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 `page` from the response with the `200` status
  - …7 more
- **2026-09-16** `ccf9834e5006`: 3 breaking, 7 info
  - the request's body type changed from no type to `object`
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `string` for status `400`
  - added the new optional request property `endDate`
  - …6 more
- **2026-09-15** `8085d4c1ab80`: 5 breaking, 5 warning, 1 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 `page` from the response with the `200` status
  - …7 more
- …earlier changes not shown

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