openapi: 3.2.0 info: title: Nedap Presence Log API version: 0.0.0 description: 'Operations tagged PresenceLog across 2 of this provider''s published API definitions: nedap-ons-deprecated-openapi-original.json, nedap-ons-openapi-original.json. Each path carries the servers of the definition it was published in.' servers: - url: https://api-development.ons.io tags: - name: PresenceLog paths: /t/clients/{client_id}/presence_logs: get: tags: - PresenceLog summary: Return the presence logs of a Client corresponding to the given id operationId: PresenceLogAPI.byClientId parameters: - name: client_id in: path description: id required: true schema: type: integer format: int64 - name: valid_from in: query schema: type: string format: date - name: valid_to in: query schema: type: string format: date responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/list.PresenceLogList' x-replaced-by: /v0/administration/clients/{client_id}/presence_logs deprecated: true x-deprecated-since: 19-11-2025 servers: - url: https://api-development.ons.io /t/employees/{employee_id}/presence_logs: get: tags: - PresenceLog summary: Return the presence logs of a Employee corresponding to the given id description: 'Setting extended to true calculates the ORT hours on the fly and adds them to the response.' operationId: PresenceLogAPI.byEmployeeId parameters: - name: employee_id in: path description: id required: true schema: type: integer format: int64 - name: valid_from in: query required: true schema: type: string format: date - name: valid_to in: query required: true schema: type: string format: date - name: extended in: query schema: type: boolean responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/list.PresenceLogList' x-replaced-by: /v0/administration/employees/{employee_id}/presence_logs deprecated: true x-deprecated-since: 19-11-2025 servers: - url: https://api-development.ons.io /t/care_orders/{care_order_id}/presence_logs: get: tags: - PresenceLog summary: Return the PresenceLogs of a CareOrder corresponding to the given id operationId: PresenceLogAPI.byCareOrderId parameters: - name: care_order_id in: path description: Long identifying the CareOrder to search for required: true schema: type: integer format: int64 - name: limit in: query description: Integer used to limit the result size schema: type: integer format: int32 - name: page in: query description: Integer used to indicate the index of the page of results (ie. first result is on row = page * limit) schema: type: integer format: int32 responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/list.PresenceLogList' x-replaced-by: /v0/administration/finance/care_orders/{care_order_id}/presence_logs deprecated: true x-deprecated-since: 19-11-2025 servers: - url: https://api-development.ons.io /t/care_orders/{care_order_id}/presence_logs_paged: get: tags: - PresenceLog summary: Return the PresenceLogs of a CareOrder corresponding to the given id operationId: PresenceLogAPI.byCareOrderId2 parameters: - name: care_order_id in: path description: Long identifying the CareOrder to search for required: true schema: type: integer format: int64 - name: limit in: query description: Integer used to limit the result size schema: type: integer format: int32 - name: page in: query description: Integer used to indicate the index of the page of results (ie. first result is on row = page * limit) schema: type: integer format: int32 responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/list.PresenceLogList' deprecated: true description: Deprecated operation, please use 'PresenceLogAPI.byCareOrderId' instead x-deprecated-since: 03-05-2023 x-replaced-by: /v0/administration/finance/care_orders/{care_order_id}/presence_logs servers: - url: https://api-development.ons.io /t/presence_logs/{id}: get: tags: - PresenceLog summary: Return Presence Log corresponding to the given id operationId: PresenceLogAPI.byId parameters: - name: id in: path description: used for selecting PresenceLog required: true schema: type: integer format: int64 - name: X-Cupido-User-Name in: header schema: type: string - name: X-Cupido-Active-Identity in: header schema: type: string responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/PresenceLog' '404': description: Presence Log not found x-cupido-common-method: true x-replaced-by: /v0/administration/presence/presence_logs/{id} deprecated: true x-deprecated-since: 19-11-2025 servers: - url: https://api-development.ons.io /t/presence_logs/with_care_order/{presence_log_object_id}: get: tags: - PresenceLog operationId: PresenceLogAPI.withCareOrder parameters: - name: presence_log_object_id in: path required: true schema: type: integer format: int64 responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/PresenceLog' x-replaced-by: /v0/administration/presence/presence_logs/with_care_order/{presence_log_object_id} deprecated: true x-deprecated-since: 19-11-2025 summary: Presence log API with care order x-summary-source: derived servers: - url: https://api-development.ons.io /t/agenda_occurrences/{agenda_occurrence_id}/presence_logs: get: tags: - PresenceLog summary: Return the PresenceLogs of a AgendaOccurrence corresponding to the given id operationId: PresenceLogAPI.byAgendaOccurrenceId parameters: - name: agenda_occurrence_id in: path description: id required: true schema: type: string responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/list.PresenceLogList' x-replaced-by: /v0/agenda/agenda_occurrences/{agenda_occurrence_id}/presence_logs deprecated: true x-deprecated-since: 19-11-2025 servers: - url: https://api-development.ons.io /v0/administration/clients/{client_id}/presence_logs: get: tags: - PresenceLog summary: Return the presence logs of a Client corresponding to the given id operationId: getV0AdministrationClientsByClientIdPresenceLogs parameters: - name: client_id in: path description: id required: true schema: type: integer format: int64 - name: valid_from in: query schema: type: string format: date - name: valid_to in: query schema: type: string format: date responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/list.PresenceLogList' x-replacement-for: - /t/clients/{client_id}/presence_logs x-operation-id-source: normalized x-operation-id-original: PresenceLogAPI.byClientId servers: - url: https://api-development.ons.io /v0/administration/employees/{employee_id}/presence_logs: get: tags: - PresenceLog summary: Return the presence logs of a Employee corresponding to the given id description: 'Setting extended to true calculates the ORT hours on the fly and adds them to the response.' operationId: getV0AdministrationEmployeesByEmployeeIdPresenceLogs parameters: - name: employee_id in: path description: id required: true schema: type: integer format: int64 - name: valid_from in: query required: true schema: type: string format: date - name: valid_to in: query required: true schema: type: string format: date - name: extended in: query schema: type: boolean responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/list.PresenceLogList' x-replacement-for: - /t/employees/{employee_id}/presence_logs x-operation-id-source: normalized x-operation-id-original: PresenceLogAPI.byEmployeeId servers: - url: https://api-development.ons.io /v0/administration/finance/care_orders/{care_order_id}/presence_logs: get: tags: - PresenceLog summary: Return the PresenceLogs of a CareOrder corresponding to the given id operationId: getV0AdministrationFinanceCareOrdersByCareOrderIdPresenceLogs parameters: - name: care_order_id in: path description: Long identifying the CareOrder to search for required: true schema: type: integer format: int64 - name: limit in: query description: Integer used to limit the result size schema: type: integer format: int32 - name: page in: query description: Integer used to indicate the index of the page of results (ie. first result is on row = page * limit) schema: type: integer format: int32 responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/list.PresenceLogList' x-replacement-for: - /t/care_orders/{care_order_id}/presence_logs - /t/care_orders/{care_order_id}/presence_logs_paged x-operation-id-source: normalized x-operation-id-original: PresenceLogAPI.byCareOrderId servers: - url: https://api-development.ons.io /v0/administration/presence/presence_logs/{id}: get: tags: - PresenceLog summary: Return Presence Log corresponding to the given id operationId: getV0AdministrationPresencePresenceLogsById parameters: - name: id in: path description: used for selecting PresenceLog required: true schema: type: integer format: int64 - name: X-Cupido-User-Name in: header schema: type: string - name: X-Cupido-Active-Identity in: header schema: type: string responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/PresenceLog' '404': description: Presence Log not found x-cupido-common-method: true x-replacement-for: - /t/presence_logs/{id} x-operation-id-source: normalized x-operation-id-original: PresenceLogAPI.byId servers: - url: https://api-development.ons.io /v0/administration/presence/presence_logs/with_care_order/{presence_log_object_id}: get: tags: - PresenceLog operationId: getV0AdministrationPresencePresenceLogsWithCareOrderByPresenceLogObjectId parameters: - name: presence_log_object_id in: path required: true schema: type: integer format: int64 responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/PresenceLog' x-replacement-for: - /t/presence_logs/with_care_order/{presence_log_object_id} summary: Presence log API with care order x-summary-source: derived x-operation-id-source: normalized x-operation-id-original: PresenceLogAPI.withCareOrder servers: - url: https://api-development.ons.io /v0/agenda/agenda_occurrences/{agenda_occurrence_id}/presence_logs: get: tags: - PresenceLog summary: Return the PresenceLogs of a AgendaOccurrence corresponding to the given id operationId: getV0AgendaAgendaOccurrencesByAgendaOccurrenceIdPresenceLogs parameters: - name: agenda_occurrence_id in: path description: id required: true schema: type: string responses: '200': description: No response was specified content: application/json: schema: $ref: '#/components/schemas/list.PresenceLogList' x-replacement-for: - /t/agenda_occurrences/{agenda_occurrence_id}/presence_logs x-operation-id-source: normalized x-operation-id-original: PresenceLogAPI.byAgendaOccurrenceId servers: - url: https://api-development.ons.io components: schemas: PresenceLogAction: type: - string - 'null' oneOf: - title: CREATE enum: - create - title: UPDATE enum: - update - title: DELETE enum: - delete description: PresenceLogAction model (no description) example: create PresenceLogORT: type: object properties: start: type: string format: date-time end: type: string format: date-time percentage: type: integer description: use 'percentage_decimal' instead format: int32 deprecated: true percentageDecimal: type: number format: double description: type: string description: PresenceLogORT model (no description) example: start: '2016-06-02T00:00:00.000+02:00' end: '2016-06-02T00:00:00.000+02:00' percentage: 0 percentageDecimal: 0.5 description: Dummy xml: name: ortHour PresenceLog: title: PresenceLog type: - object - 'null' properties: id: type: - integer - 'null' format: int64 x-cupido-id: true activityObjectId: type: integer description: 'The id of the {@link HourType} that is assigned to this {@code PresenceLog}. The value of this field is a bit complicated, and depends on the contents of the {@code products} field. The following rules are used, from top to bottom: If there is exactly one PresenceLogProduct with a duration, the hour type id of that PresenceLogProduct is used If there are multiple PresenceLogProducts with a duration, 12 is used, which means ''client time'' If there are no PresenceLogProducts with a duration, but exactly one with a quantity, the hour type id of that PresenceLogProduct is used If there are no PresenceLogProducts with a duration, and multiple with a quantity, or no products, no value is set' format: int64 duration: type: integer description: The duration of this PresenceLog. This value is only set for PresenceLogs for which the start- and endtime don't matter; so called 'duration presence logs'. These are usually created from for example the week sheet. This value is only set if hasRealTime is false. format: int64 reason: type: - string - 'null' description: The user-provided reason this PresenceLog was created or modified, if available. action: $ref: '#/components/schemas/PresenceLogAction' externalId: type: - string - 'null' description: The id of the PresenceLog in the source application of the PresenceLog. sourceType: type: - string - 'null' description: '2: MobilePhone 3: Manual 4: Timesheet 5: APriori 6: Planning 7: EmployeePortal 8: Groupcare 9: Schedule 10: Import 11: ImportWithOverlap 12: Agenda 13: NewGroupCare 14: YsisConnector 15: OnsDBC 16: OnsVandaag 17: OnsDossier' clientObjectId: type: - integer - 'null' description: The id of the Client related to this PresenceLog. format: int64 employeeObjectId: type: - integer - 'null' description: The id of the Employee related to this PresenceLog. format: int64 careOrderObjectId: type: integer description: The id of the CareOrder related to this PresenceLog. Only set for treatment-related PresenceLogs, such as those relating to Primary Care. format: int64 date: type: string description: 'Date of registration. Only use this for indirect presencelogs, which are not bound to a client. When date is not set, a fallback to startDate will be used.' format: date-time startDate: type: - string - 'null' format: date-time endDate: type: - string - 'null' format: date-time clusterObjectId: type: integer description: The id of the Team used for cost center computation. format: int64 registration: type: boolean description: Indicates if this is a client-related registration. payment: type: boolean description: Indicates if this PresenceLog is considered for payrolling. Only if both payment and payrollingActivity are true, the presence log is actually considered for payrolling. fixedRateCompensation: type: boolean description: Indicates if this PresenceLog is compensated with a fixed rate. If true, it is not displayed as work time. payrollingActivity: type: boolean description: Indicates if the Activity or Activities attached to this presence log are considered for payrolling. This property is read-only. Only if both payment and payrollingActivity are true, the presence log is actually considered for payrolling. removed: type: boolean description: Indicates if this PresenceLog is removed. verified: type: boolean description: Indicates if this PresenceLog is verified. dossierReportUuid: type: string description: UUID of the related Dossier report. hasRealTime: type: boolean description: Indicates if this PresenceLog represents a real period with a start and end, or simply a duration (e.g. 6 hours). If this is set to true, the duration field should be ignored, if it is false the duration field should have a correct value. calculatedWorktimeAmount: type: integer description: 'This field contains the actual work time. This can be different if the registration is an availability shift (bereikbaarheidsdienst) for example. Or if the registration is part of a group appointment. Thus, the full time is not should be split over several registrations.' format: int64 presenceLogLocation: $ref: '#/components/schemas/PresenceLogLocation' products: uniqueItems: true type: array items: $ref: '#/components/schemas/PresenceLogProduct' xml: wrapped: true ortHours: type: array items: $ref: '#/components/schemas/PresenceLogORT' xml: wrapped: true presenceLogPermission: $ref: '#/components/schemas/PresenceLogPermission' metadata: $ref: '#/components/schemas/PresenceLogMetadata' uuid: type: string description: This field contains the uuid of a registration to all related presencelogs. An example usage could be a group appointment. All presencelogs from a group appointment will have the same uuid. description: PresenceLog model (no description) example: id: 1337 activityObjectId: 999 duration: 100 reason: Moves import action: create externalId: '1' sourceType: '6' clientObjectId: 12344 employeeObjectId: 557 careOrderObjectId: 123 date: '2012-08-02T11:48:46.836+02:00' startDate: '2012-08-02T11:48:46.836+02:00' endDate: '2012-08-02T11:48:46.836+02:00' clusterObjectId: 1 registration: false payment: true fixedRateCompensation: true payrollingActivity: true removed: true verified: false dossierReportUuid: '12345234900234' hasRealTime: false calculatedWorktimeAmount: 60 presenceLogLocation: id: 1 expenseTypeObjectId: 1 zipcode: 1234OK homenumber: 2 homenumberExtension: a latitude: 52.22 longitude: 4.53 products: [] ortHours: [] presenceLogPermission: add_before: true add_after: true modify: true remove: true uuid: 48b99408-f6e0-11ec-b939-0242ac120002 xml: name: presenceLog registration.Position: title: Position type: object properties: city: type: - string - 'null' description: The city where this position is part of. Can be null. homeNumber: type: - integer - 'null' description: The home number of the position. Can be null. format: int32 homeNumberExtension: type: - string - 'null' description: 'The possible extension the #homeNumber. Can be null.' street: type: - string - 'null' description: The position's street name. Can be null zipCode: type: - string - 'null' description: Zipcode part of the position. Can be null country: type: string description: The two-letter country code. Examples are 'NL' and 'BE'. longitude: type: - number - 'null' description: Longitude part of the position. format: double latitude: type: - number - 'null' description: Latitude part of the position. format: double usedGoogleAddress: type: string description: 'A Position denotes a physical location on a map. This position can either consist of address information, a longitude/latitude pair or both. Not all fields are guaranteed to be present.' example: city: Enschede homeNumber: 5 homeNumberExtension: '' street: Bomenlaan zipCode: 6521YH country: NL longitude: 52.665171 latitude: 5.215021 usedGoogleAddress: Bovenlaan 5, 6521YH Enschede, Netherlands xml: name: position PresenceLogProduct: title: PresenceLogProduct type: object properties: activityObjectId: type: integer format: int64 x-cupido-id: true duration: type: - integer - 'null' format: int64 quantity: type: integer format: int64 activityDirectOrIndirect: type: string description: 'Valid values for this field are: "direct", "indirect", "indirect_client", "indirect_client_travel"' description: type: string digitalCare: type: boolean default: false description: Product stored within {@link PresenceLog}. example: activityObjectId: 999 duration: 100 quantity: 1 activityDirectOrIndirect: direct description: description digitalCare: false xml: name: product PresenceLogPermission: type: object properties: add_before: type: boolean default: false add_after: type: boolean default: false modify: type: boolean default: false remove: type: boolean default: false description: PresenceLogPermission model (no description) example: add_before: true add_after: true modify: true remove: true xml: name: presenceLogPermission PresenceLogMetadata: type: - object - 'null' properties: shortNotice: type: boolean description: When true, the correct short notice hour type will be added by OA default: false description: Metadata corresponding to the presence log example: shortNotice: true list.PresenceLogList: type: object properties: presenceLogs: type: array items: $ref: '#/components/schemas/PresenceLog' xml: name: presenceLog description: PresenceLogList model (no description) example: presenceLogs: - id: 1234 activityObjectId: 999 duration: 100 reason: Moves import action: create externalId: '1' sourceType: '6' clientObjectId: 12344 employeeObjectId: 557 careOrderObjectId: 123 startDate: '2012-08-02T11:48:46.000+02:00' endDate: '2012-08-02T11:48:46.000+02:00' clusterObjectId: 1 xml: name: presenceLogs PresenceLogLocation: title: PresenceLogLocation type: - object - 'null' properties: id: type: integer format: int64 x-cupido-id: true expenseTypeObjectId: type: - integer - 'null' format: int64 zipcode: type: string description: 'Please use #position instead' deprecated: true homenumber: type: integer description: 'Please use #position instead' format: int32 deprecated: true homenumberExtension: type: string description: 'Please use #position instead' deprecated: true latitude: type: number description: 'Please use #position instead' format: double deprecated: true longitude: type: number description: 'Please use #position instead' format: double deprecated: true position: $ref: '#/components/schemas/registration.Position' description: PresenceLogLocation model (no description) example: id: 1 expenseTypeObjectId: 1 zipcode: 2602AA homenumber: 13 homenumberExtension: a latitude: 52.03 longitude: 52.37 position: city: Amsterdam homeNumber: 20 homeNumberExtension: b street: Prinsengracht zipCode: 1502AA country: NL longitude: 32.37 latitude: 12.13 xml: name: presenceLogLocation x-refined-from: - nedap-ons-deprecated-openapi-original.json - nedap-ons-openapi-original.json