Here it's describes the EasyClocking API (EasyLink) and the communication/integration processes available for external applications with EasyClocking software and/or devices. This is a restful API and the methods are logically grouped and follow standard conventions.
There is a set of guidelines that have been followed in the design of EasyLink API, which are necessary to know for its correct consumption and get the best performance.
- → Standard restful API
- → Accessible over HTTPS
- → Exchanges (push/pull) in JSON format
- → Secured by JWT model
- → Authenticate using EasyClocking credentials
Basically we offer two ways to use EasyLink API. For both, our device's server will provide the ability to stablish and track the connections and keep sync all the information in real time, such as Users, Fingerprints, Events and Updates, even with network issues, the logs are synchronized automatically, preventing the loss of data with our advanced reconnection and sync strategies, allowing you the possibility to use it as standalone device with temporarily internet connection like a hotspot, once the device is connected will execute and sync all pending events with our device server. We distribute a SDK library (EasyLink Client) to consume the endpoints, for now available only in C#, ready to be used, extended or as a guide to implement your own.
Device Integration with an external system
The first scenario is for customers who will be implementing an in-house or third party Time and Attendance system, and will acquire biometric devices with basic functionality. Customers establishing a Device Integration are typically looking to collect raw data without any associated intelligence. Ergo, EasyClocking provides the specific endpoints to send the user's basic information into our system to be shown in the devices like First Name, Last Name, UserID, Picture(optional) and to collect the logs.
We also provide as option to use, a web based application (Device Manager) created using this same API and the EasyLink Client library only, here the customers can manage our system's data in a practical environment, but is not mandatory to use because all desired functions can be implemented by calling specific API endpoints from the external Time and Attendance system.
(For customers who can modify the 3rd party system)
The second scenario is for customers who would like to configure a full integration between EasyClocking’s Time and Attendance system and devices, and their preferred third party software for supplemental services. These services include, but are not limited to, Scheduling services, HR services, Payroll services, etc. If the customer owns or can modify that system, then could perform direct calls to our API or use the EasyLink Client library in order to achieve the full integration happening inside of their system, without an external service doing the sync and integration process, that way per say, you could modify your HR system and by the moment when you registry a new employee, you also call the EasyLink endpoint to add a new employee and send him to the assigned device.
By using this way you will be able to manage Time and Attendance information like timecard information, total hours, payroll exports files and almost all information available in EasyClocking, the changes you make will be reflected in real time in our T&A Web App
(For customers unable to modify the 3rd party system)
This scenario is for customer who are not able to make changes into the 3rd party system to call directly EasyLink API. By using this, the customer will be able to manage Time and Attendance information from EasyClocking too, and he will need access to the third party software API or files server or some way to push and/or pull data, and will need some development to orchestrate the data transfer from one system to the other. For those cases we have our EasyTask Scheduler System where we build custom integrations based on the client's needs and this tasks runs on a schedule basis as required for the customer. If the customer does not have the resources to do the integration project then should contact us and we can do talk about it.
In order to protect our API, we established some limits of use. Taking in consideration that the token expires in 180 minutes, the user can not request more than 5 access token per hour.
For all the GET methods that respond with a list of elements we stablish 1000 as the maximum number of elements to return in one call, this calls accept the parameters "page" and "maxPerPage" and in all of this calls we send the header "x-total-count" with the real amount of elements in our system for that request, that way you should know if you need to paginate to get all results, if you try to set the "maxPerPage" bigger than 1000 we'll trim down this number to 1000
In order to register for access to our EasyLink API, please send an email to firstname.lastname@example.org detailing the following information:
- → Company ID.
- → Company Name.
- → Software and/or Device Integration.
- → Purpose for the integration and how are you planning to do it.
All API issues are addressed via email, our Technical Support team does not support API issues. In the event that you are experiencing issues that you are unable to troubleshoot, please send an email to email@example.com to report your issue, including the following info:
- → Subject Line: API Issue.
- → Company ID number.
- → Type of integration you are performing.
- → Response Code/error you are receiving (if applicable).
- → Workflow and/or code you are using.
API Customization Requests
We value your feedback and customization requests. If you find that an API endpoint is missing, then please contact us at firstname.lastname@example.org with at least the following information so that we can begin estimating the work effort of your request. We will then contact you to further discuss this customization request and plan the delivery of this customization.
- → Subject Line: API Customization
- → Company ID
- → Company Name
- → Missing Functionality: [Describe the endpoint functionality that is missing, including the input params and output response for the missing endpoint]