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