ZKTeco Biometric Odoo Integration
Fingerprint & face attendance devices.
ZKTeco fingerprint and face terminals are the standard clock-in hardware across much of the region, and they are only useful to HR once the punches reach the system that calculates pay. Connected to Odoo, device logs become attendance records against the right employee, late and overtime rules run on them, and payroll reads a number nobody typed. The awkward parts are device-to-employee mapping, duplicate punches and devices that go offline mid-shift.
What syncs between ZKTeco Biometric and Odoo
- โ Punch logs: device to Odoo, one-way, pulled on a schedule or pushed by the device where the model supports it.
- โ Employee enrolment: Odoo to device, one-way, so a new joiner is registered without someone walking to every terminal.
- โ Device user id mapping: held in Odoo against the employee, which is what stops punches landing on the wrong person.
- โ Attendance records: built in Odoo from paired in and out punches, with unpaired punches raised rather than silently dropped.
- โ Worked hours, late and overtime: computed in Odoo against the assigned shift.
- โ Device health: device to Odoo, one-way, so a terminal that stopped reporting is noticed the same day.
How we implement it
- 1 Device inventory
List every terminal, its model, firmware and location, and confirm which are reachable from the server.
- 2 Network path
Devices sit on the local network, so a site connector or a controlled route to the Odoo server is agreed before anything else.
- 3 Employee mapping
Map device user ids to Odoo employees and clear out the enrolments left behind by leavers.
- 4 Punch pairing rules
Define how in and out are paired, how duplicate punches within a short window are handled, and what happens to a missing out punch.
- 5 Shift and rule configuration
Set shift schedules, grace periods and overtime rules so attendance feeds payroll without manual editing.
- 6 Parallel run
Run device attendance next to the existing method for one full pay period, compare, then retire the old one.
Services that cover this work
Odoo Customization
Custom modules built to match your exact workflow.
Odoo Integration
Connect Odoo with your stack and third-party APIs.
Payroll Setup
Country-specific payroll configuration.
ZKTeco Biometric and Odoo: common questions
Do the devices need internet access?
They need a network path to the Odoo server. On a single site that is the local network. Across several sites we usually place a small connector on site that forwards logs, rather than exposing terminals to the internet.
What happens if a device goes offline?
The terminal keeps its punches in local memory and they are collected on the next successful pull. The gap is also flagged so nobody discovers it at payroll run.
Can one employee use several devices?
Yes. An employee can punch at any enrolled terminal and the logs merge into one attendance record, which is normal for multi-gate sites and staff who move between branches.
Does the attendance data reach payroll?
Yes. Worked hours, late marks and overtime are computed in Odoo and read by the payroll rules, so the payslip traces back to a punch instead of a spreadsheet.
What about a missed punch?
The record is raised as an exception for a manager to approve or correct, and the correction is logged. Silently inventing a time is the one thing an attendance system must never do.
Need a connector that is not on the list?
Custom REST, GraphQL, webhook, EDI and flat-file integrations, built with retry, idempotency and audit logging so a failed message is visible instead of lost.