DEV Community

Cover image for Integrating ETimeOffice Attendance API with Python and Django
Sreethul
Sreethul

Posted on

Integrating ETimeOffice Attendance API with Python and Django

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
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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:

  1. Fetch attendance logs from ETimeOffice
  2. Normalize punch timestamps
  3. Map employee codes
  4. Store records in Django models
  5. 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.

django #hrms #attendance

Top comments (1)

Collapse
 
ksreethul profile image
Sreethul

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.