Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Attendance
  3. ZKteco Biometric HR Attendance Suite and Payroll v 19.0
  4. Sales Conditions FAQ

ZKteco Biometric HR Attendance Suite and Payroll

by Dot BD Solutions Limited https://dotbdsolutions.com
Odoo

$ 69.98

v 19.0 Third Party 54
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Attendances (hr_attendance)
• Time Off (hr_holidays)
• Employees (hr)
• Discuss (mail)
• Calendar (calendar)
Lines of code 16018
Technical Name dotbd_hr_zk_attendance_suite
LicenseOPL-1
Websitehttps://dotbdsolutions.com
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Attendances (hr_attendance)
• Time Off (hr_holidays)
• Employees (hr)
• Discuss (mail)
• Calendar (calendar)
Lines of code 16018
Technical Name dotbd_hr_zk_attendance_suite
LicenseOPL-1
Websitehttps://dotbdsolutions.com
Versions 17.0 18.0 19.0
  • Description
  • License
Module Icon
Dot BD Solutions Logo

ZKteco HR Attendance Suite

Complete Biometric Integration (Enhanced)

Import Employees from Device • Customisable UI Preferences • Bug Fixes!
EDITION - This is a MAJOR upgrade with enterprise-grade features!
ZKTeco Biometric HR Attendance Suite - Feature Overview
ODOO VERSION 19.0
LICENSE OPL-1
PLATFORMS Odoo.sh / On Premise
SUPPORT 15 Days Included
DEPENDENCIES hr_attendance, hr_holidays

What Makes Us The Best Choice

Trusted by businesses across the globe for reliable, enterprise-grade biometric HR automation.

15+
Years in ERP
32+
Countries Supported
✓
Official Odoo Partner
100%
ZKteco Compatible

See It In Action

Live demonstration — ZKteco device punch recorded directly in Odoo HR Attendance

ZKteco Live Demo - Punch to Odoo Attendance

Both PyZK (direct TCP/IP) and ADMS (cloud push) connection modes demonstrated

Transform Your Attendance Management

The most comprehensive biometric attendance solution for Odoo 19 — seamless ZKteco device integration, real-time analytics dashboard, intelligent anomaly detection, and enterprise-grade reporting. Works for businesses of all sizes.

Detailed Features of Our Module

Click a feature to explore it in detail

  • 💻 Live Dashboard
  • ⏰ Late Check-in
  • 📡 Device Sync
  • 📊 Reports
  • 💰 Payroll
Live Attendance Dashboard

Real-Time Attendance Dashboard

A complete visual command center for your workforce attendance — updated live.

  • ✓ Monthly calendar grid — P / LT / A / L / W / H per employee per day
  • ✓ Today's counts — Present, Absent, On Leave, Late, Total Fine
  • ✓ Top Present / Absent / Late leaderboards — click to filter
  • ✓ Department & employee filter — instant re-render
  • ✓ Download Excel — full monthly sheet with colour-coding
Late Check-in Management

Late Check-in Management

Configurable tolerance, automatic penalties, and approval workflows.

  • ✓ Grace period — set tolerance minutes before marking late
  • ✓ Auto penalty — per-minute or fixed amount deduction
  • ✓ 4-state workflow — Draft → Approved → Deducted / Refused
  • ✓ Payroll sync — deductions pushed to payslip automatically
  • ✓ Real-time detection — LT appears on dashboard immediately after punch
Device Synchronization

Biometric Device Sync

Two connection modes — Direct (PyZK) and ADMS Cloud — covering every ZKteco device.

  • ✓ Direct / PyZK — LAN connection, instant download, 15+ series
  • ✓ ADMS / Cloud — device pushes data, no port forwarding needed
  • ✓ Auto check-in/out — intelligent punch type detection
  • ✓ LCD messages — custom welcome/goodbye on device screen
  • ✓ Import employees — pull users directly from device into Odoo
Attendance Reports

Reports & Analytics

Excel, PDF and on-screen reports covering every attendance dimension.

  • ✓ Monthly attendance sheet — colour-coded P/LT/A/L per employee
  • ✓ Department filter — download report for any department
  • ✓ Detailed daily — check-in/out time, worked hours, late minutes
  • ✓ Anomaly report — missing checkout, duplicate punches
  • ✓ Late check-in report — penalties, tolerance, status breakdown
Payroll Integration

Built-in Payroll + Native Payroll Bridge

Full attendance-to-payroll pipeline — works with our own system and native Odoo payroll.

  • ✓ Auto deductions — late penalties pushed to payslip on confirm
  • ✓ Absence fine — configurable per-day deduction
  • ✓ Salary templates — basic, allowances, contract-based
  • ✓ Payslip PDF & Excel — branded, printable
  • ✓ hr_payroll sync — Community & Enterprise
  • ★ NEW — Attendance Statement — auto-fills wage, housing, transport, advance, deductions from native payroll (confirmed payslips → contracts → salary rules)
NEW FEATURE
Attendance & Salary Statement

A two-step wizard generating a combined attendance + salary statement for all employees. Salary data auto-filled from native Odoo payroll — no manual entry needed.

  • Wage from hr.contract
  • Housing & Transport (auto-detected)
  • Advance & Deductions
  • Days, hours, overtime, late
  • Net salary (auto-computed)
  • PDF & Excel output

Works with both

Community Enterprise

Same module, runtime detection.
No separate version needed.

NEW IN THIS VERSION

Interactive Attendance Dashboard

A completely new visual command center for your workforce attendance — real-time, colour-coded, and actionable at a glance.

Interactive Attendance Dashboard - Full View
Smart Holiday Detection

The dashboard automatically detects if today is a public holiday and displays a prominent banner with the holiday name. It also shows the next 2 upcoming holidays so your team is always informed in advance.

Today's Live Overview

Six real-time stat cards show Total Employees, Present, Absent, On Leave, Late Today, and Total Fine — all updated live with department and employee filters applied instantly.

Colour-Coded Monthly Calendar

A full monthly grid per employee shows every day as Present (), Absent (A), Leave with short code (CL, SL, OH…), Weekend (W), or Holiday (H). Late days are highlighted in a distinct colour.

Leave Type Short Codes

Instead of a plain "L", each leave day shows its exact type code — CL (Casual Leave), SL (Sick Leave), OH (Official Holiday), and more. Codes are fully customisable from the Leave Type configuration.

Employee Monthly Summary

Click any employee row to open a detailed summary panel showing their monthly totals: days Present, Absent, on Leave, Weekend, Holiday, and Late — all in one compact card with their photo and job title.

Configurable Weekend Days

Weekend days are no longer hard-coded. Choose any combination of days (e.g. Friday + Saturday for Bangladesh) from Attendance Settings. The dashboard, calendar, and reports all respect your configuration.

Holiday Banners & Stat Cards
Holiday Banner and Today's Overview Cards
Employee Summary Panel
Employee Monthly Summary Panel
Monthly Calendar with Leave Codes (CL / SL / OH…)
Monthly Attendance Calendar with Leave Type Codes
Configurable Weekend Days Setting
Weekend Days Configuration in Attendance Settings
NEW MAP FEATURE

Unified Attendance Map

See biometric device locations, geofence radius, employee GPS check-ins, check-outs, attendance source, department filters, and date ranges on one interactive map.

Unified Attendance Map
Device Locations

Store latitude, longitude, location name, and geofence radius for each biometric device.

Team Check-ins

Managers can review team GPS pins while employees only see their own attendance records.

Fast Filters

Search by employee, device, mobile, ZK ID, department, and date range.

What's New in This Version - Feature Highlights

Why Choose This Suite?

100% PyZK Integration
Direct device communication without third-party APIs
Auto Mode NEW
Intelligent check-in/check-out that prevents HR mistakes
Live Capture NEW
Real-time attendance monitoring as events happen
Advanced Dashboard
Interactive Chart.js visualizations & analytics
Door Control NEW
Remote door unlock with configurable duration
Audio Feedback NEW
Custom sounds for check-in, check-out & errors
LCD Messages NEW
Personalized welcome/goodbye on device screen
Duplicate Prevention
Ignore repeated punches within time window
Import from Device NEW
Pull employees directly from biometric device into Odoo
UI Preferences NEW
Choose your landing page and default view from Settings
Auto Time Sync NEW
Device clock auto-corrected before every download
Robust Error Logs NEW
Pinpoint EXACTLY why a punch failed (Savepoints active!)

Three Powerful Connection Modes

Choose the perfect connection strategy for your deployment architecture.

Three Powerful Connection Modes - Direct, Cloud & Hybrid

Direct Mode (PyZK)

Best for local networks or VPN connections where Odoo can directly reach the device IP.

  • 100% hardware control
  • Real-time Live Capture
  • LCD & Voice messages
  • Door access control
Direct Connection (PyZK)

Cloud Mode (ADMS)

Best for SaaS/Cloud Odoo instances. The device pushes data to Odoo over HTTP(S). No port forwarding needed!

  • Perfect for remote sites
  • Bypass firewalls easily
  • Auto-registers devices
  • Remote Fingerprint Enrollment
Cloud Connection (ADMS)

Hybrid Mode

The ultimate flexibilty. Uses ADMS for reliable attendance push, and PyZK for deep hardware control.

  • Our Unique Offering!
  • Best of both worlds
  • Automatic attendance sync
  • Full hardware capabilities
Advanced Device Settings

Four Intelligent Attendance Modes

Choose how your module processes each punch. Configurable per device — mix and match across your organization.

Four Intelligent Attendance Modes - Traditional, Auto, Auto Per Day, Traditional Per Day
Traditional Mode

Uses the device's punch type directly.

  • Punch type 0 = Check-in
  • Punch type 1 = Check-out
  • Device must be configured correctly
  • Multiple records per day possible
Best for: Devices with separate in/out buttons
Auto Mode

Ignores device punch type. Auto-alternates.

  • 1st punch → Check-in
  • 2nd punch → Check-out
  • 3rd punch → Check-in again
  • Prevents HR mistakes
Best for: Simple single-button devices
Auto Per Day NEW

One attendance record per employee per day.

  • First punch of day = Check-in
  • Last punch of day = Check-out
  • Middle punches update check-out
  • Auto-closes missed check-outs
Example:
08:55 → Check-in
12:00 → Check-out updated
13:00 → Check-out updated
17:30 → Final check-out
Best for: Most common use case
Traditional Per Day NEW

Device punch type respected, but max one in/out per day.

  • Only first check-in counts
  • Only first check-out counts
  • Duplicate punches ignored
  • Auto-closes missed check-outs
Best for: Strict one-in/one-out policies
Smart Edge Case Handling (Per-Day Modes)
Employee forgot to check out yesterday

Module auto-closes yesterday's record at 23:59:59, then creates today's new check-in normally.

Multiple punches throughout the day

In Auto Per Day, every punch after the first updates the check-out. The last punch always wins.

Timezone-aware day boundaries

Uses the device's configured timezone to determine "today" — so midnight is always correct for your location.

Works with all connection modes

PyZK Download, Live Capture, and ADMS Cloud Push all support all four attendance modes.

Robust Error Logging & Transaction Protection

Enterprise-grade resilience. Every failed punch is logged with the exact reason — your bulk downloads never crash midway through.

Database Savepoint Protection

Each attendance record is processed inside an isolated database savepoint. If one record fails (overlap, invalid timestamp, missing employee), only that record is rolled back — the rest continue processing normally.

  • Downloads 10,000+ records without crashing
  • Bad records are skipped, not fatal
  • Works for both PyZK & ADMS modes
  • Cron jobs complete even with errors
Common Reasons a Punch May Fail (All Auto-Logged)
Overlapping Attendance

Employee already has an active shift covering the punch timestamp. Odoo rejects duplicate overlap.

Invalid Timestamp

Device sent a corrupted or impossible date (e.g. Jan 1, 1970 after a power reset).

Deleted Employee

Employee was removed from Odoo but still punches on the biometric device.

Unmapped Device User

Device user ID not linked to any Odoo employee. Logged as a warning for admin review.

Quick Setup Guide

Get your ZKTeco devices connected in minutes. Choose the method that matches your network.

Direct Mode (PyZK) Setup

For local network / VPN deployments
Requirement: Odoo server must be able to reach the device IP on port 4370 (UDP).
  1. Install the PyZK2 library on your Odoo server (maintained fork, Python 3.12 compatible):
    pip3 install pyzk2
  2. Find the device IP: On the device menu, go to COMM → Ethernet → IP Address.
  3. In Odoo, go to Attendances → ZK Devices → Create.
  4. Fill in:
    • Name: e.g. "Main Entrance"
    • IP Address: The device IP (e.g. 192.168.1.201)
    • Port: 4370 (default)
    • Connection Mode: Direct (PyZK)
    • Attendance Mode: Choose your preferred mode
  5. Click "Test Connection". If successful , you're ready!
  6. Map employees: Set each employee's ZK Device User ID in their HR profile (must match the ID on the device).
  7. Click "Download Attendance" to fetch records, or enable the Scheduled Action for automatic downloads.

Cloud Mode (ADMS) Setup

For Odoo.sh, cloud hosting, or remote sites
No port forwarding needed! The device initiates the connection to your Odoo URL.
  1. Ensure your Odoo is accessible via a public URL or IP (e.g. mycompany.odoo.com or 192.168.1.10:8069).
  2. In Odoo, go to Attendances → ZK Devices, open (or create) the device record and copy the Device Server Address from the ADMS Cloud Settings group.
  3. On the ZKTeco device, go to COMM → Cloud Server Setting:
    • Enable: Yes
    • Server Address: paste the Server Address (firmware) value from the device record in Odoo
      ⚠ Do NOT type https:// — firmware takes host + path only, no protocol.
    • Server Port: paste the Server Port (firmware) value from the device record in Odoo
      8069 = direct Odoo (no proxy)  ·  80 = HTTP via nginx  ·  443 = HTTPS via nginx
    • HTTPS / SSL toggle (if present on your device model): turn ON when port is 443, OFF for port 80 or 8069
  4. Restart the device. It connects automatically and registers itself in Odoo.
  5. Configure the device record: set Connection Mode, Attendance Mode, and map employees by Device User ID.
  6. Done! Attendance is pushed automatically in real-time.
Single Database — The Device Server Address looks like myodoo.com/db/my_database. Configure it exactly as shown — do not add https://.
Multiple Databases on the Same Server — Each database has its own unique Device Server Address containing /db/database_name. Configure each physical device with the address of its database. Always copy from the Odoo device record — do not type manually.
Hybrid Mode — Best of Both Worlds

Want automatic attendance push (ADMS) plus hardware control like LCD messages, voice feedback, and door unlock (PyZK)? Set Connection Mode = Hybrid. The device pushes data via ADMS, while Odoo uses PyZK for hardware features.

Attendance (ADMS side)
  • Configure the Device Server Address exactly as in the ADMS setup above (with /db/database_name)
  • Multi-database routing works the same way as ADMS mode
  • Real-time push — no manual download needed
Hardware Control (PyZK side)
  • Requires Odoo to reach the device on TCP port 4370
  • On-premise Odoo: works on same LAN
  • Cloud Odoo: requires VPN or port forwarding on the site router
  • If network access is not possible, use ADMS-only mode (attendance still works, hardware control features are not available)

Troubleshooting & Common Issues

"ATTLOG: 1 failed" / Employee Not Found

This happens when the device sends a punch for a user ID that is not linked to any employee in Odoo.

Solution:
  1. Go to HR → Employees in Odoo
  2. Open or create the employee record
  3. Set the "Device ID Number" field to match the user ID on the biometric device
  4. Save. Next punch will be processed automatically!
ADMS Device Not Appearing in Odoo

The device connects but doesn't show in the device list.

Solution:
  1. First create the device in Odoo with Connection Mode = Cloud (ADMS)
  2. Set the Device Serial Number to match the device's serial (shown on device menu)
  3. Restart the device — it will auto-match on next heartbeat
ADMS Data Goes to the Wrong Database (Multi-DB)

On a server with multiple Odoo databases, attendance punches are recorded in the wrong database or are missing entirely.

Solution:
  1. Open the device record in Odoo → Attendances → ZK Devices
  2. Under ADMS Cloud Settings, copy the Device Server Address field
  3. On the ZKTeco device: COMM → Cloud Server Setting → Server Address
  4. Paste the copied address (it contains /db/database_name)
  5. Save and restart the device

Why: Each database has a unique URL path. Without it, Odoo cannot determine which database the device belongs to and defaults to the first/only configured database.

ADMS Device Matched by IP (No Serial Number)

Device has no serial number (shows as 0) and is matched by IP address instead. In multi-database setups the IP fallback will not work unless the correct database URL is used.

Solution:
  1. In Odoo, create the device record manually first with the correct IP address and Connection Mode = Cloud (ADMS)
  2. Copy the Device Server Address from the ADMS Cloud Settings group
  3. On the device: COMM → Cloud Server Setting → set Server Address to the copied value (includes /db/database_name)
  4. Restart the device — it connects to the correct database and the IP fallback matches the pre-created record

Note: Without a serial number, auto-registration is blocked by design. The device must be pre-created in Odoo so the IP fallback has a record to match against in the right database.

How to Find Device User ID

Each user enrolled on the biometric device has a unique ID number.

Finding the ID:
  • On Device: Menu → User Mgt → All Users → select user → see ID
  • In Odoo Log: Check the server log for the error message — it shows the exact Device ID Number to use
  • Example log: No employee found with Device ID Number '6666' → Set employee's Device ID = 6666
ADMS Auto Time Sync

In ADMS mode, the device clock is automatically synced from the server on every heartbeat.

Important:
  • Device time = Server Time. If you manually change time on the device, it will revert within seconds.
  • To change your device time, you must change your server time.

Employee Mapping Guide

Properly mapping employees is crucial for a smooth experience and to avoid duplicate records.

Recommended Workflow:
  1. Create Employee in the Odoo HR module first.
  2. Set ZK Device User ID in the employee's Biometric settings tab.
  3. Connect the Device to Odoo.
  4. Download Attendance: Now, attendance records will sync perfectly without duplicates!
Direct Connection (Recommended)

If your device is on the same local network as Odoo, use Direct connection for the smoothest experience. You can:

  • Download attendance with one click
  • Import employees straight from the device — no need to create them manually in Odoo first
  • Control the device hardware (door, LCD, sounds)
Cloud Connection

If your Odoo is hosted online and the device is at a remote site, Cloud connection is the easiest option — the device sends data to Odoo automatically. Note:

  • Attendance arrives automatically — no manual download needed
  • You must create employees in Odoo and set their device ID numbers before punches are recorded
  • For full device control features, consider Hybrid mode

What's New

NEW
Attendance & Salary Statement — Native Payroll Bridge

A complete two-step wizard that generates a combined attendance + salary statement for your entire workforce. Salary data is auto-filled from native Odoo payroll — wage, housing, transport, advance deductions and other components are detected automatically from salary rule codes and names.

Auto-fill priority
  1. Confirmed payslip for the period
    (most accurate — reads actual computed lines)
  2. Active contract + salary rules
    (fixed/percentage rules computed)
  3. Our own salary system
    (fallback if native payroll is off)
Statement columns
  • Basic Wage
  • Housing Allowance
  • Transport Allowance
  • Advance & Other Deductions
  • Days Present / Hours / Overtime / Late
  • Net Salary (auto-computed)
Community
hr_payroll_community
Enterprise
hr_payroll built-in
Our System
dotbd.payslip
Extensible by design

Adding a new column is 6 easy steps:

  1. Add a Monetary field to the line model
  2. Add keyword detection (e.g. MEAL_KW)
  3. Include it in action_load()
  4. Add <field> to wizard view
  5. Add column to Excel export
  6. Add <th>/<td> to PDF

Full guide is embedded in the wizard view and PDF template as comments.

Enable in Settings

Attendances → Configuration → Settings
Toggle: Use Native Odoo Payroll for Attendance Statements
(Default: ON — auto-hides if payroll not installed)

NEW
Multi-Database ADMS Routing

When multiple Odoo databases share one server, each database now gets its own ADMS URL path (/db/database_name). Data always goes to the correct database — no more mix-ups.

NEW
Device Archive / Restore

Archive unused devices to hide them and stop ADMS pushes. Restore with one click. Archived devices are excluded from scheduled downloads automatically.

NEW
Smart ADMS Port Detection

Device page shows the exact Server Address and Server Port to paste into ZKTeco firmware — auto-detected from web.base.url. Supports 8069, 80 and 443.

NEW
Configurable ADMS Offline Threshold

Set exactly how many minutes without a heartbeat before a device is marked ADMS Offline. No more hardcoded 5-minute guess — match your device's actual heartbeat interval.

NEW
PyZK Connection Status Tracking

Every PyZK connection attempt is now tracked — Online, Offline, or Unknown — with timestamps for Last Success and Last Attempt. Know immediately if direct connection is failing.

NEW
Hybrid Connectivity Warning

In Hybrid mode, if one connection method goes down the device still shows Online — but a clear warning banner tells you which method is down, so nothing is silently broken.

Core Features

Biometric Integration

Multi-device support (15+ ZKTeco series), face & fingerprint, auto check-in/out mode, duplicate punch prevention.

Real-Time Dashboard

Interactive charts, live KPIs, today's present/absent/late/leave cards, monthly calendar, one-click status filters.

Anomaly Detection

Missing check-in/out, duplicate punches, violation tracking, automated categorization, compliance reports.

Late Check-in Management

Configurable grace periods, auto penalty calculation, 4-state approval workflow, payroll integration, email alerts.

Attendance Sheets

Monthly calendar-style layout, colour-coded statuses, leave & holiday integration, PDF & Excel export.

Comprehensive Reporting

Summary & detailed reports, anomaly compliance, penalty reports, Excel/PDF export, custom date range filtering.

Compatible ZKTeco Device Series

All series below are fully supported via Direct (PyZK) or ADMS (Cloud) connection modes. If your device has TCP/IP networking, it works.

Series Models Supported
uFace Series uFace202, uFace302, uFace402, uFace600, uFace800, uFace800Plus ✓
F Series F09, F16, F18, F19, F21, F22, F25, F26, F28, F35 ✓
MB Series MB10, MB20, MB30, MB130, MB160, MB10-VL, MB360, MB2000, MB560-VL ✓
Mini Series MiniAC Plus, MiniTA, MiniAC ✓
EFace Series EFace 10 ✓
iClock Series iClock 680, iClock 700 ✓
SpeedFace Series SpeedFace V5, SpeedFace-V3L, SpeedFace-V5L, SpeedFace M4, SpeedFace-mini ✓
BioFace Series ProBio Plus Series ✓
ProMA Series ProBio Plus Series ✓
FaceDepot Series FaceDepot-7BL, FaceDepot-4A, FaceDepot-7C ✓
K Series K40, K40 Pro, K45, K45 Pro, K60, K999 PRO ✓
S Series S500, S560, S880, S900, S922 ✓
HORUS Series HORUS TL1, HORUS E1 ✓
iFace Series iFace 900, iFace 950, iFace 302 ✓
BioPro Series BioPro MV30, BioPro SA20 ✓
Connection Requirements
  • Device must support TCP/IP connection
  • Device must use Standalone SDK Protocol
  • Firmware should be up-to-date
Network connectivity via:
  • LAN (same network)
  • VPN (site-to-site)
  • Port Forwarding (static IP)

Getting Started Guide

1. Configure Your ZKteco Device

Initial Attendance Module

Access the Attendance module from the main menu

Biometric Device Menu

Navigate to Biometric Devices section

Add New Device

Click "New" to add a new device

Device Configuration

Enter device IP, port, and password

Device Test Success

Test connection to verify setup

2. Advanced Device Management NEW

Device Configuration

Configuration Tab: Connection details, attendance modes (Auto/Traditional), duplicate prevention settings, and location information

Capacity & Health

Capacity & Health: Monitor user capacity, fingerprint enrollment, face templates, and attendance record storage

Live Monitoring

Live Monitoring: Real-time attendance capture settings with instant notifications and event statistics

Messages & Audio

Messages & Audio: LCD message customization, welcome/goodbye messages, and audio feedback with 55+ voice options

Door Control

Door Control: Remote door unlock, lock status monitoring, and configurable unlock duration with security warnings

Users Management

Users Tab: Sync employees to device, backup biometric templates, verify employee data, and automatic enrollment

Status Bar

Status Bar: Quick overview of device status, attendance records count, enrolled users, and backup templates

3. Attendance Overview & Working Schedules

Attendance Overview

View real-time attendance records and monitoring

Working Schedule Setup

Configure working schedules for employees

Employee Schedule Assignment

Assign schedules and link ZK User IDs

4. Attendance Settings & Rules

Attendance Settings

Configure tolerance time and validation rules

Late Check-in Settings

Setup late check-in penalties and grace periods

Schedule Actions

Configure automated cron jobs and actions

5. Analytics Dashboard

Attendance Analytics

Interactive charts and real-time KPIs

Attendance Reports

Comprehensive attendance statistics

Attendance Statistics

Department-wise attendance analysis

Dashboard Features

Employee Time Off & Manual Entries: Track leave dates, monitor manual attendance with missing check-out alerts

5b. Attendance Dashboard — See Everything at a Glance

A live, interactive attendance view built right into your Odoo. No reports to run — just open the dashboard and instantly know who is in the office, who is late, who is absent, and who is on leave — all in one screen.

Attendance Dashboard Overview

The full Attendance Dashboard — today's numbers, monthly calendar, filters, and employee details all in one place

Today's Overview Cards

At the very top, four cards instantly show you how many employees are total, how many are present, absent, and on leave — right now, today. When late penalties are enabled, two extra cards appear showing today's late count and total fine amount.

One-Click Status Filters

Click Present, Absent, Late, or On Leave buttons to instantly show only the employees matching that status. The count on each button always reflects today's numbers. Click again to clear the filter.

Full Monthly Calendar

See every employee's attendance for the entire month in a scrollable grid. Each day shows a colour-coded status: green check for present, red A for absent, amber check for late, L for leave, W for weekend, and H for public holiday. Summary totals appear at the end of each row.

Click Any Employee for Their Summary

Click any employee row to highlight it and reveal a personal summary card showing their exact monthly counts for Present, Absent, Leave, Weekend, Holiday, and Late days. Click the same row again — or the close button — to dismiss it.

Top Rankings in One Click

Four sort buttons let you instantly re-order the list: Top Present puts the most-present employees first, Top Absent shows who missed the most days, Top Late surfaces the most frequently late arrivals, and Top Leave highlights who took the most time off.

Role-Based Access

Managers and HR officers see the full team. Regular employees who open the dashboard see only their own attendance — no one else's data is ever visible to them. Filters and sort buttons work the same way for everyone within their allowed scope.

6. Anomaly Detection & Analysis

Anomaly Detection

Automatic anomaly identification

Anomaly Reports

Detailed anomaly breakdown

Anomaly Statistics

Statistical analysis of issues

Anomaly Analysis

Compliance and audit reports

7. Reports & Exports

Generate Report Options

Multiple report generation options

Report Generation

Custom date range selection

Report Settings

Advanced filtering options

Anomaly Analysis Graph

Visual anomaly trends

Employee Attendance Download

Excel export functionality

Attendance Sheet View

Calendar-style attendance view

Detailed Attendance Report

Comprehensive daily breakdown

Attendance Sheet Overview

Monthly attendance summary

What's New in This Version

Auto Check-in/Check-out RECOMMENDED

Intelligent punch processing — first punch = check-in, second = check-out. No device config needed, prevents HR mistakes.

Real-Time Live Capture

Punches appear in Odoo the instant they happen. Triggers LCD messages and audio feedback automatically — no polling delays.

Intelligent Time Sync

Device clock auto-corrected before every download. Drift detection >30 s, cron-safe timezone, multiple sync options.

Multi-Device Global Sort

Download all devices first, then process punches in true chronological order. Eliminates duplicates for multi-device employees.

Import Employees from Device

Pull the full enrolled user list from your ZKTeco device directly into Odoo. Preview, select, import — no manual entry.

Identity Protection

Protects biometric data during sync, prevents ghost ID cross-assignment, and logs unmapped device users for HR review.

Multi-Database ADMS Routing

Each database gets its own ADMS URL with /db/name — devices are routed to exactly the right database, every time.

Attendance UI Preferences

Configure the default landing page and overview view (List or Gantt) company-wide — from Settings, no developer needed.

Odoo Punch Type Visibility

New "Odoo Punch Type" column in Attendance Analysis. Chronological processing fix — check-out can no longer be stored before check-in.

Enterprise Features

Integration & Automation
  • Time Off (hr_holidays) integration
  • Public holidays detection
  • Working calendar respect
  • Overtime tracking
  • Payroll deductions (optional)
  • Automated scheduled actions
Security & Compliance
  • Multi-company support
  • Role-based access control
  • Complete audit trail
  • Data security & encryption
  • Compliance reporting
  • GDPR ready

What's Included

Complete Package
  • Full source code with OPL-1 license
  • Comprehensive documentation
  • Installation guide
  • Sample data for testing
15 Days Support Included
  • Installation guideline & step-by-step setup help
  • Bug fixes during support period
  • Installation support (hands-on if needed)
  • Query & usage questions answered
  • AnyDesk / online meeting support available
INCLUDED

Built-in Payroll & Native Payroll Bridge

Odoo Community Edition does not come with a payroll module. We built one — directly inside this suite — so Community users can manage salaries, payslips & deductions without any extra app. And if you're on Enterprise or have hr_payroll_community installed, our Attendance Statement wizard connects directly to your existing payroll setup.

Works with Odoo Community & Enterprise. One module, runtime detection — no separate version needed.

Auto Payslips

Salary Templates

Auto Deductions

Payment Tracking

PDF & Excel

Festive Bonus

Attendance Statement ★

To enable: go to Settings → Users, open a user, and tick ZKTeco Payroll Access under ZK Attendance permissions.

Frequently Asked Questions

Yes! However, since the server is on the cloud and devices are behind a local router, you need a network configuration:
  • VPN (Recommended): Set up a Site-to-Site VPN between your office network and your Cloud Server.
  • Port Forwarding: Forward the device port (default 4370) on your office router to the public internet (requires Static IP at office).
Yes, almost certainly. This suite supports devices that use the Standalone SDK Protocol (TCP/IP).
Compatible models include: uFace 202, uFace 800, iClock series, K40, K14, MB10VL, F18, UA300, ZK4500, and more.
Simple test: If your device works with the old ZKTime.net 3.0 software, it will work with this module!
No! This is a 100% native Python solution installed directly inside Odoo. It communicates directly with the devices. No extra Windows server, middleware, or "attendance service" is required.
Check three things:
  1. Offline Threshold: Open the device record → ADMS Cloud Settings → Offline Threshold (min). Set it to at least 2× your device's heartbeat interval (default 10 min).
  2. Server Address: Copy the Device Server Address from the Odoo device record and paste it into ZKTeco firmware — never type it manually.
  3. Odoo.sh / Cloud: Use the domain name, not an IP address. Nginx routes by domain — a raw IP will not reach your specific tenant.
Use Hybrid mode when you want automatic cloud push (ADMS) for attendance and hardware control (LCD messages, door unlock, voice feedback) via PyZK. ADMS alone cannot send commands to the device. If the device is behind a firewall that blocks port 4370, use ADMS-only — attendance still syncs, hardware control features are not available. In Hybrid mode, if one method goes down, the device stays Online but a warning banner shows which method is down.
Odoo Ready Partner

Support & Resources

Need help? We're here for you!

Email Us info@dotbdsolutions.com
WhatsApp +880 1810-025181
Website www.dotbdsolutions.com
Learning Platform learn.dotbdsolutions.com
YouTube youtube.com/@DotBdSolutionsLimited
Facebook facebook.com/dotbdsolutions
LinkedIn linkedin.com/company/dot-bd-solutions
Dot BD Solutions Logo

Dot BD Solutions Limited

Copyright © 2025 Dot BD Solutions Limited. All rights reserved.

Author: Rafiur Rahman Rafit

Licensed under OPL-1

License Notice (OPL-1): This module is protected under the Odoo Proprietary License v1.0. You may install and use it, but modifying, copying, or redistributing the source code is not permitted without prior written permission from Dot BD Solutions Limited. If the module source code is modified without our knowledge, support will not be provided for the modified version. To request a modification license or custom development, please contact us before making any changes — support@dotbdsolutions.com or WhatsApp: +880 1810-025181

Device compatibility notice: This module implements the ZKTeco ADMS / PUSH protocol (PUSH 2.x and 3.x) on the server side and is verified against a wide range of ZKTeco terminals. Whether attendance data actually reaches the server depends on each device's firmware and communication settings, which are controlled by the device, not by this module. Some newer firmware revisions (e.g. “Security PUSH” mode) require a communication key / registration step, or are restricted to a vendor cloud (BioTime / ZKBio), and will complete the handshake and heartbeat but never initiate the attendance (ATTLOG) upload until the device itself is correctly configured. This is firmware-side behaviour and is outside the scope of the module. Where a device does not transmit ATTLOG, before requesting support please confirm, from the device menu (Comm → Cloud Server / ADMS): (1) the exact Firmware Version string (System Info → Firmware Version, not just the platform); (2) whether a Comm Key / “Encrypt” option is enabled on the device; (3) whether any Cloud / BioTime / ZKBio server is configured alongside the ADMS address. Support covers the unmodified module only and cannot guarantee data transmission from devices whose firmware or cloud restrictions prevent the standard ADMS push.

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
  • Ratings
  • Discuss
Highly recommended for organisation looking for an efficient and dependable attendance management system.
by
cs.haroonrauf@gmail.com
on 5/10/26, 2:01 PM

We have successfully implemented the HR Attendance ZKTeco Suite, and it has proven to be a highly reliable and well-structured solution for attendance management. The system integration is smooth and stable, the interface is user-friendly, and the overall workflow has significantly reduced manual effort within our HR operations.

What truly stands out is the vendor’s exceptional after-sales service. Their support team is not only professional and responsive but also proactive in addressing queries and ensuring seamless operation.


by
rami khaleel
on 2/17/26, 2:57 AM

We have implemented HR Attendance ZKTeco Suite and it has proven to be a reliable and well-structured solution for attendance management. The integration is stable, the interface is clear, and the overall workflow significantly reduced manual effort in HR operations. The vendor’s support is professional and responsive. Highly recommended


Compatibility
by
BIZUP
on 6/8/26, 7:40 AM

hi,

Work with ZKTeco SenseFP M2?


by
m.dama@outlook.com
on 3/12/26, 2:09 PM Confirmed Purchase

dear , 

can support any Zk Device 


Cinco estrellas
by
Pedro Mayor
on 2/19/26, 9:39 AM

El módulo funciona de maravilla, pero lo mejor ha sido el soporte técnico. Respondieron mis dudas rápidamente y me ayudaron con la configuración inicial. Da gusto trabajar con desarrolladores así.


How works ?
by
Manuel Alejandro Avila Sanchez
on 1/29/26, 1:17 PM

Hi !

this module works whit odoo onPremise ? i have mi instance in amazon whit a public IP static, mi devices only in local net ... works ?

How works ?
by
Md Rajibul Islam
on 2/6/26, 1:32 AM Author

Yes, it works, but you need a network configuration. Since your Odoo instance is on the Cloud (AWS) and devices are on a local network, Odoo cannot "see" the devices by default because the module initiates the connection from the server to the device (Active Connection). Requirements:

  1. VPN (Recommended): Set up a Site-to-Site VPN between your office network and your AWS VPC. This way, Odoo can connect to the local IP (e.g., 192.168.1.201) directly.
  2. Port Forwarding: Alternatively, you can configure Port Forwarding on your office router to expose the device's port (default 4370) to the public internet, but this is less secure. Note: This module does not use the ADMS/Cloud Push protocol (HTTP), so the device cannot simply "push" data to the cloud without a direct network link.

How works ?
by
Manuel Alejandro Avila Sanchez
on 1/29/26, 1:17 PM

Hi !

this module works whit odoo onPremise ? i have mi instance in amazon whit a public IP static, mi devices only in local net ... works ?


Compatibilidad ZKTECO
by
Sergio Rivero Chan
on 1/13/26, 9:34 PM

Es compatible con el modelo 

ZKTeco MB10VL? o donde puedo ver el listado de dispositivos compatibles?
Compatibilidad ZKTECO
by
Md Rajibul Islam
on 2/6/26, 1:33 AM Author

Yes, it is generally compatible. The 

MB10VL

 is a Visible Light device that typically supports the standard ZK protocol (TCP/UDP on port 4370) alongside the newer push protocol.

  • Compatibility Rule: If your device supports the Standalone SDK protocol (often found in settings as "ADMS" -> " OFF" or verifying "Standalone Protocol" is active), it will work.
  • Supported Models: uFace 202, uFace 800, K40, ZK4500, K14, F18, UA300, and most devices that work with ZKTime.net 3.0.

can you share us a demo?
by
Ramiro Nantez
on 12/5/25, 6:26 PM


can you share us a demo?
by
Md Rajibul Islam
on 2/6/26, 1:33 AM Author

You can respond with your standard demo process, e.g., "Please request a demo on our website dotbdsolutions.com or contact us directly."


Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with