Clocking is a record of the Attendance time recorded by the employee via the clocking terminal, a computer or smartphone.
Link to : https://sandbox-ws.kelio.io/open/services/ClockingService?wsdl
Clocking reading
Allows you to read the employee clocking between 2 dates.
Web service: ClockingService
Method: exportClockings
Mandatory data
There are two options for reading employee data:
•Either reading an employee's data via one of the employee's identifiers (personnel number, badge no, surname/first name). The is the preferred identifier because it is usually consistent over time.
•Or reading data from a list of employees using filters on and . These concepts can be configured using the Kelio manager (see online help Population and Group).
The tag is used to define this operating mode:
In this case, one of the following identifiers is mandatory:
Employee ID number:
or Badge code:
or Surname First name: and
•or Technical key: (this identifier is used during batch processing after reading employee keys via the Web Service )
In this case, the concepts of Population and Group can be used. This data is not mandatory. If they are not completed, the Web Service returns the data for all employees. On large quantities of data, this type of request can slow down the performance of the Kelio server. We therefore strongly recommend that you use them.
Population:
Group: |
There are two ways of filtering dated data by date range.
•Either by using a real date period: for example, from 14/05/2024 to 25/06/2024.
•Or by using a date range relative to the current date: e.g. -20 days to +10 days.
The tag is used to define on operating mode:
Fields to be completed:
•: start date using actual date
•: end date using actual date
Fields to be completed
•: relative start date. Number of days before or after the current date.
•: relative end date. Number of days before or after the current date. |
|
Input data
Code
|
Description
|
Class type
|
archivedEmployee
|
Archived employee
|
boolean (false / true)
|
dateMode
|
Date entry mode
|
int
Possible values:
0Date to date
1Start relative date to End relative date |
employeeBadgeCode
|
Employee's badge code
|
string (max: 16)
|
employeeFirstName
|
Employee’s first name
|
string (max: 24)
|
employeeIdentificationCode
|
Employee ID number code
|
string (max: 80)
|
employeeIdentificationNumber
|
Employee’s ID
|
string (max: 16)
|
employeeKey
|
Employee key
|
int
|
employeeSurname
|
Employee’s surname
|
string (max: 24)
|
endDate
|
End date
|
date (format: yyyy-MM-dd)
|
endOffset
|
End offset
|
int
|
errorMessage
|
Error message
|
string
|
groupFilter
|
Filter by public type group
|
string (max: 40)
|
populationEndDate
|
Population enrolment end date
|
date (format: yyyy-MM-dd)
|
populationFilter
|
Filter by population
|
string
|
populationMode
|
Population entry mode
|
int
Possible values:
0Population / Group
1Employee |
populationStartDate
|
Population enrolment start date
|
date (format: yyyy-MM-dd)
|
startDate
|
Start date
|
date (format: yyyy-MM-dd)
|
startOffset
|
Start offset
|
int
|
technicalString
|
Technical key
|
string
|
|
Output data
Code
|
Description
|
Class type
|
absenceTypeAbbreviation
|
Absence/business leave type abbreviation
|
string (max: 5)
|
absenceTypeDescription
|
Absence/business leave type description
|
string (max: 40)
|
absenceTypeKey
|
Absence/business leave type key
|
int
|
archivedEmployee
|
Archived employee
|
boolean (false / true)
|
automatic
|
Automatic
|
boolean (false / true)
|
clockingKey
|
Clocking key
|
int
|
clockingTypeIndicator
|
Attendance type
|
short
Possible values:
1Absence
2Break on the premises
3Paid break
4Suspend balance
5O.T.A. (Overtime Total Allocation)
10Business leave and O.T.A. |
date
|
Date
|
date (format: yyyy-MM-dd)
|
employeeBadgeCode
|
Employee's badge code
|
string (max: 16)
|
employeeFirstName
|
Employee’s first name
|
string (max: 24)
|
employeeIdentificationCode
|
Employee ID number code
|
string (max: 80)
|
employeeIdentificationNumber
|
Employee’s ID
|
string (max: 16)
|
employeeKey
|
Employee key
|
Int
|
employeeSurname
|
Employee’s surname
|
string (max: 24)
|
errorMessage
|
Error message
|
string
|
geolocationPrecision
|
Geolocation precision
|
Int
|
geolocationStatus
|
Geolocation status
|
short
Possible values:
0Successful
1Failed
2Denied |
inOutIndicator
|
Entry/Exit
|
short
Possible values:
1Enter
2Clocking-out |
latitude
|
Latitude
|
float
|
longitude
|
Longitude
|
float
|
obtainingMode
|
Obtaining mode
|
short
Possible values:
0Attendance on terminal
1Modified attendance
2Manual attendance
3Employee Self-Service attendance
4Step
5Attendance declaration
6Activity planning
7Automatic attendance
8Attendance not authenticated
9Automatic exit
10Attendance imported
30Mobile Self-Service
31Clocking from activity file |
overtimeTypeAbbreviation
|
Overtime type abbreviation
|
string (max: 5)
|
overtimeTypeDescription
|
Overtime type description
|
string (max: 40)
|
overtimeTypeKey
|
Overtime type key
|
Int
|
readerDescription
|
Reader description
|
string (max: 40)
|
readerKey
|
Reader key
|
Int
|
technicalString
|
Technical key
|
string
|
terminalDescription
|
Terminal description
|
string (max: 40)
|
terminalKey
|
Terminal key
|
int
|
time
|
Time
|
time (format: HH:mm:ss)
|
timePosition
|
Time position
|
int
Possible values:
-1 Before 0:00
0 The same day
1 After midnight
|
|
Example of a request
Name
|
Copy
|
ClockingService
|
Code Sample
|
Copy Code
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ech="http://echange.service.open.bodet.com">
<soapenv:Header/>
<soapenv:Body>
<ech:exportClockings>
<ech:employeeList>
<ech:AskedPopulationWithPeriod>
<ech:employeeIdentificationNumber>00001065</ech:employeeIdentificationNumber>
<ech:populationMode>1</ech:populationMode>
<ech:startDate>2024-08-13</ech:startDate>
<ech:endDate>2024-08-13</ech:endDate>
<ech:dateMode>0</ech:dateMode>
</ech:AskedPopulationWithPeriod>
</ech:employeeList>
</ech:exportClockings>
</soapenv:Body>
</soapenv:Envelope>
|
|
Response
Code Sample
|
Copy Code
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:exportClockingsResponse xmlns:ns1="http://echange.service.open.bodet.com">
<ns1:exportedClockings>
<ns1:Clocking>
<ns1:inOutIndicator>1</ns1:inOutIndicator>
<ns1:date>2024-08-13</ns1:date>
<ns1:latitude xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:longitude xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:obtainingMode>7</ns1:obtainingMode>
<ns1:time>06:00:00</ns1:time>
<ns1:clockingTypeIndicator xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:geolocationStatus xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:geolocationPrecision xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:overtimeTypeKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:absenceTypeAbbreviation xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:overtimeTypeAbbreviation xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:absenceTypeDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:overtimeTypeDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:readerDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:absenceTypeKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:automatic>true</ns1:automatic>
<ns1:timePosition>0</ns1:timePosition>
<ns1:clockingKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:terminalKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:readerKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:terminalDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeKey>335</ns1:employeeKey>
<ns1:employeeIdentificationCode>GD</ns1:employeeIdentificationCode>
<ns1:employeeBadgeCode xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeIdentificationNumber>00001065</ns1:employeeIdentificationNumber>
<ns1:archivedEmployee>false</ns1:archivedEmployee>
<ns1:employeeSurname>BRIET</ns1:employeeSurname>
<ns1:employeeFirstName>Joachim</ns1:employeeFirstName>
<ns1:technicalString xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:errorMessage xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</ns1:Clocking>
<ns1:Clocking>
<ns1:inOutIndicator>2</ns1:inOutIndicator>
<ns1:date>2024-08-13</ns1:date>
<ns1:latitude xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:longitude xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:obtainingMode>7</ns1:obtainingMode>
<ns1:time>09:45:00</ns1:time>
<ns1:clockingTypeIndicator xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:geolocationStatus xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:geolocationPrecision xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:overtimeTypeKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:absenceTypeAbbreviation xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:overtimeTypeAbbreviation xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:absenceTypeDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:overtimeTypeDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:readerDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:absenceTypeKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:automatic>true</ns1:automatic>
<ns1:timePosition>0</ns1:timePosition>
<ns1:clockingKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:terminalKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:readerKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:terminalDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeKey>335</ns1:employeeKey>
<ns1:employeeIdentificationCode>GD</ns1:employeeIdentificationCode>
<ns1:employeeBadgeCode xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeIdentificationNumber>00001065</ns1:employeeIdentificationNumber>
<ns1:archivedEmployee>false</ns1:archivedEmployee>
<ns1:employeeSurname>BRIET</ns1:employeeSurname>
<ns1:employeeFirstName>Joachim</ns1:employeeFirstName>
<ns1:technicalString xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:errorMessage xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</ns1:Clocking>
</ns1:exportedClockings>
</ns1:exportClockingsResponse>
</soap:Body>
</soap:Envelope>
|
|
Writing clocking data
Allows you to add employee clocking data to Kelio. Clocking is automatically written to Kelio for the correct working day, based on the employee's assigned schedule.
Example: An employee is assigned to a night shift on Tuesday 12/06. When writing via the Web Service, you need to send the clocking data with the date of the clocking day: 22:00 on 12/06 and 6:00 on 13/06. Kelio will automatically assign the clocking data on the correct calculation day.
Link to : https://sandbox-ws.kelio.io/open/services/ClockingService?wsdl
Web service: ClockingService
Method: importPhysicalClockings
Mandatory data
Employee ID:
by identification number:
or by badge:
or by Surname/First name: and
or by technical key: (often used in batch processing)
Clocking day
Clocking date:
Clocking time
Clocking time:

|
The terms in red are compulsory! For the terms in orange, you need to choose data from among that proposed.
|
|
Input data
Code
|
Description
|
Class type
|
absenceTypeAbbreviation
|
Absence/business leave type abbreviation
|
string (max: 5)
|
absenceTypeDescription
|
Absence/business leave type description
|
string (max: 40)
|
absenceTypeKey
|
Absence/business leave type key
|
int
|
archivedEmployee
|
Archived employee
|
boolean (false / true)
|
automatic
|
Automatic
|
boolean (false / true)
|
clockingKey
|
Clocking key
|
int
|
clockingTypeIndicator
|
Attendance type
|
short
Possible values:
1Absence
2Break on the premises
3Paid break
4Suspend balance
5O.T.A. (Overtime Total Allocation)
10Business leave and O.T.A. |
date
|
Date
|
date (format: yyyy-MM-dd)
|
employeeBadgeCode
|
Employee's badge code
|
string (max: 16)
|
employeeFirstName
|
Employee’s first name
|
string (max: 24)
|
employeeIdentificationCode
|
Employee ID number code
|
string (max: 80)
|
employeeIdentificationNumber
|
Employee’s ID
|
string (max: 16)
|
employeeKey
|
Employee key
|
int
|
employeeSurname
|
Employee’s surname
|
string (max: 24)
|
errorMessage
|
Error message
|
string
|
geolocationPrecision
|
Geolocation precision
|
int
|
geolocationStatus
|
Geolocation status
|
short
Possible values:
0Successful
1Failed
2Denied |
inOutIndicator
|
Entry/Exit
|
short
Possible values:
1Enter
2Clocking-out |
latitude
|
Latitude
|
float
|
longitude
|
Longitude
|
float
|
obtainingMode
|
Obtaining mode
|
short
Possible values:
0Attendance on terminal
1Modified attendance
2Manual attendance
3Employee Self-Service attendance
4Step
5Attendance declaration
6Activity planning
7Automatic attendance
8Attendance not authenticated
9Automatic exit
10Attendance imported
30Mobile Self-Service
31Clocking from activity file |
overtimeTypeAbbreviation
|
Overtime type abbreviation
|
string (max: 5)
|
overtimeTypeDescription
|
Overtime type description
|
string (max: 40)
|
overtimeTypeKey
|
Overtime type key
|
Int
|
readerDescription
|
Reader description
|
string (max: 40)
|
readerKey
|
Reader key
|
Int
|
technicalString
|
Technical key
|
string
|
terminalDescription
|
Terminal description
|
string (max: 40)
|
terminalKey
|
Terminal key
|
Int
|
time
|
Time
|
time (format: HH:mm:ss)
|
timePosition
|
Time position
|
int
Possible values:
-1 Before 0:00
0The same day
1After midnight |
|
Example of a request
Name
|
Copy
|
ClockingService
|
Code Sample
|
Copy Code
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ech="http://echange.service.open.bodet.com">
<soapenv:Header/>
<soapenv:Body>
<ech:importPhysicalClockings>
<!--Optional:-->
<ech:clockingsToImport>
<!--Zero or more repetitions:-->
<ech:Clocking>
<ech:employeeIdentificationNumber>65978</ech:employeeIdentificationNumber>
<ech:date>2024-08-20</ech:date>
<ech:time>08:15:00</ech:time>
</ech:Clocking>
</ech:clockingsToImport>
</ech:importPhysicalClockings>
</soapenv:Body>
</soapenv:Envelope>
|
|
Responses
If a request is made to write data to Kelio:
•If there is no error, the Web Service returns an empty request with no elements.
•If there are errors when writing data, the Web Service returns the elements in error and populates the field . The message returned corresponds to the description of the functional error encountered by the Web Service during the data write request.
Code Sample
|
Copy Code
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:importPhysicalClockingsResponse xmlns:ns1="http://echange.service.open.bodet.com">
<ns1:clockingsInError></ns1:clockingsInError>
</ns1:importPhysicalClockingsResponse>
</soap:Body>
</soap:Envelope>
|
Code Sample
|
Copy Code
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:importPhysicalClockingsResponse xmlns:ns1="http://echange.service.open.bodet.com">
<ns1:clockingsInError></ns1:clockingsInError>
</ns1:importPhysicalClockingsResponse>
</soap:Body>
</soap:Envelope>
|
Same input request but for a personnel number that does not exist in the system: "Z65978"
Code Sample
|
Copy Code
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:importPhysicalClockingsResponse xmlns:ns1="http://echange.service.open.bodet.com">
<ns1:clockingsInError>
<ns1:Clocking>
<ns1:inOutIndicator xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:date>2024-08-20</ns1:date>
<ns1:latitude xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:longitude xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:obtainingMode xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:time>08:15:00</ns1:time>
<ns1:clockingTypeIndicator xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:geolocationStatus xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:geolocationPrecision xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:overtimeTypeKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:absenceTypeAbbreviation xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:overtimeTypeAbbreviation xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:absenceTypeDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:overtimeTypeDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:readerDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:absenceTypeKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:automatic xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:timePosition xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:clockingKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:terminalKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:readerKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:terminalDescription xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeKey xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeIdentificationCode xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeBadgeCode xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeIdentificationNumber>Z65978</ns1:employeeIdentificationNumber>
<ns1:archivedEmployee xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeSurname xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:employeeFirstName xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:technicalString xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ns1:errorMessage>Aucun salarié n'a été trouvé pour les critères demandés</ns1:errorMessage>
</ns1:Clocking>
</ns1:clockingsInError>
</ns1:importPhysicalClockingsResponse>
</soap:Body>
</soap:Envelope>
|
|