If you’ve worked with biometric attendance systems, you already know the hardest part usually isn’t the device itself — it’s the integration layer.
Different vendors expose different APIs, date formats, authentication methods, and response structures. One of the systems I recently worked with was ETimeOffice, and I wanted a cleaner way to interact with its attendance APIs directly from Python and Django applications.
So I built:
pyetimeoffice
A lightweight Python integration library for working with the ETimeOffice API.
GitHub: https://github.com/KSreethul/pyetimeoffice
PyPI: https://pypi.org/project/pyetimeoffice/
Why I Built It
In HRMS and attendance systems, we often need to:
- Download punch records
- Process in/out attendance logs
- Sync attendance with HRMS platforms
- Handle employee punch data programmatically
- Normalize inconsistent API response formats
While integrating ETimeOffice into Django-based HRMS systems, I noticed the same boilerplate code being repeated everywhere:
- HTTP Basic authentication setup
- Date formatting
- API request handling
- Response parsing
- Datetime normalization
So I wrapped those operations into a reusable Python package.
Features
pyetimeoffice currently supports:
- DownloadPunchData API
- DownloadPunchDataMCID API
- DownloadInOutPunchData API
- Automatic datetime parsing
- Date range validation
- HTTP Basic authentication
- Easy integration with Django applications
Installation
Install directly from PyPI:
pip install pyetimeoffice
Quick Example
from pyetimeoffice import ETimeOfficeAPI
api = ETimeOfficeAPI(
username="your_username",
password="your_password",
base_url="https://api.etimeoffice.com/api/",
)
data = api.download_punch_data(
from_date="25/03/2025_00:00",
to_date="25/03/2025_12:22",
emp_code="ALL",
)
print(data)
Example Use Cases
This library can be useful for:
- Django HRMS integrations
- Attendance synchronization
- Payroll processing systems
- Employee tracking systems
- ERP integrations
- Attendance analytics dashboards
Built for Django & HRMS Workflows
I mainly work with Django-based HRMS and CRM systems, so the library was designed to fit naturally into backend workflows.
Typical integration flow:
- Fetch attendance logs from ETimeOffice
- Normalize punch timestamps
- Map employee codes
- Store records in Django models
- Generate attendance reports
Future Plans
Some features planned for future releases:
- Async API support
- Retry mechanisms
- Pagination helpers
- Webhook/event support
- Better filtering utilities
- Additional biometric vendor integrations
Open Source
The project is fully open source and contributions are welcome.
GitHub Repository:
https://github.com/KSreethul/pyetimeoffice
If you’re working on attendance systems, HRMS platforms, or biometric integrations, I’d love feedback and suggestions.
Top comments (1)
Great breakdown of ETimeOffice API integration with Python. Biometric attendance synchronization and HRMS automation are still areas with very limited developer resources, so having a reusable Python library like this is really valuable for Django and ERP developers working on attendance systems.