Savyant Systems ERPNext company

ERPNext & HRMS v16 · Biometric Integration app

Biometric attendance, connected to ERPNext

Every device, every punch, every branch, from the gate to payroll. The Savyant Biometric app brings punches from your machines into ERPNext HRMS as Employee Checkins, with no manual export and no double counting.

In short

The Savyant Biometric Integration app connects biometric attendance machines to ERPNext and HRMS v16. It supports CAMS, eSSL, ZKTeco and REST devices, captures every punch by push or scheduled pull, ignores duplicate punches with a unique key, keeps punches from employees who are not yet mapped, and creates standard Employee Checkins so Shift Type and Auto Attendance work as designed. It is built and supported by Savyant Systems, an ERPNext implementation company.

Updated 5 November 2026 by Savyant Systems
Biometric Attendance Connected to ERPNext: Savyant Biometric Integration app
  • Built forERPNext and HRMS v16
  • DevicesCAMS, eSSL / ZKTeco, Generic REST and a Local Agent
  • CapturePush, scheduled pull every 15 minutes, manual sync and backfill
  • Duplicate controlA SHA-256 key for every punch, so a resend is ignored
  • ScaleMulti-company and multi-branch, with a different device type at each site
  • FeedsEmployee Checkin, so HRMS Shift Type and Auto Attendance work as designed

Video chapters

Jump to any part of the walkthrough

The challenge

Attendance stuck inside the machine

  • DevicePunches are stored on the machine itself.
  • Export and cleanSomeone exports a USB or Excel file every week and tidies it.
  • Upload to payrollThe data is loaded by hand, which is slow and error-prone.

By the time attendance reaches payroll it is days old, and nobody can say which punch was missed.

How it works

Four clear steps, fully automatic

  1. Device sends a punchPush, pull, sync or backfill.
  2. Saved as a Punch LogStored first, before anything else happens to it.
  3. Employee matchedBy device user ID, or a per-device override.
  4. Employee Checkin createdStandard HRMS, so Shift Type and Auto Attendance apply.

No change to HRMS. Shift Type and Auto Attendance work as designed.

How it works

The process flow: connect, capture, control

The app has three jobs. It connects your devices, captures every punch exactly once, and gives you control when something does not match.

STAGE 01

Connect

Biometric Device

  1. Add a Biometric Device and choose its adapter: CAMS, eSSL Push, Generic REST or Local Agent
  2. Enter the device serial number. It is written to every Employee Checkin so punches stay traceable to hardware
  3. Set the company, branch and physical location of the device
  4. For push devices, set a Push Token and the allowed IP addresses
  5. Use Test Connection, then Sync Now, Backfill History or Rotate Push Token from the Actions menu

In the demo, three devices at three branches were connected, each with a different adapter.

Biometric Device form in ERPNext showing serial number, adapter, branch, push token and allowed IP addresses
A Biometric Device record with push security.

STAGE 02

Capture

Biometric Punch Log

  1. Punches arrive by push in real time, or by scheduled pull every 15 minutes with overlap
  2. A manual sync or a backfill can fetch history for a device
  3. Every punch is saved as a Biometric Punch Log first: device, employee, time and IN or OUT
  4. The employee is matched by device user ID, with an override per device
  5. A Processed punch creates an Employee Checkin

In the demo, 26 punches from 3 devices in 3 branches on 4 November were all processed.

Biometric Punch Log list in ERPNext showing device, punch time, IN or OUT log type and employee name with Processed status
The Biometric Punch Log: every punch is on record.

STAGE 03

Control

Sync Log and Employee Checkin

  1. A resent punch is recognised and ignored, so nothing is counted twice
  2. A punch from an employee who is not mapped yet is kept as Unmapped Employee
  3. After the employee is added, select the rows and choose Actions > Reprocess
  4. Every sync is recorded with fetched, accepted, duplicate and failed counts
  5. If a device goes offline, managers are alerted

In the demo, 11 employees were Present on 4 November with working hours calculated, and a missing OUT punch was flagged for review.

HRMS Attendance list in ERPNext showing employees marked Present with working hours and two flagged Absent for review
Attendance marked from the checkins.

Comparison

Manual attendance upload and with the app

Without the appWith the Savyant app
Getting punches into ERPNextA USB or Excel export every week, cleaned and uploaded by handPush in real time, or scheduled pull every 15 minutes
DuplicatesA re-upload can count the same punch twiceA SHA-256 key per punch, so a resend is ignored
Employee not yet in ERPNextThe punch is lost or fixed by handKept as Unmapped Employee, then reprocessed after the employee is added
VisibilityGaps are found at payroll timeA Sync Log with fetched, accepted, duplicate and failed counts, and alerts when a device is offline
HRMSAttendance is uploaded manuallyStandard Employee Checkins, so Shift Type and Auto Attendance work as designed

See it on your own devices

A short call, then a demo on your data. No commitment.

Supported devices

One app, many vendors

Choose the adapter that fits each machine. You can use a different one at each site.

  • CAMS (Push and Pull)Through the CAMS Biometrics Web API.
  • eSSL / ZKTeco (Push)Through a LAN agent or a sync tool.
  • Generic REST (Push and Pull)Any JSON API, with no code needed.
  • Local Agent (Push)Polls the machines on your office LAN.

Multi-company and multi-branch: for example a head office on Generic REST, a plant on eSSL Push and a warehouse on CAMS, all in one ERPNext.

Supported biometric devices CAMS, eSSL ZKTeco, Generic REST and Local Agent, and a multi-branch example feeding one ERPNext
The supported adapters, and three branches feeding one ERPNext.

Capture

Four ways a punch reaches ERPNext

  • PushReal time, as each employee punches.
  • Scheduled pullEvery 15 minutes, with overlap so nothing falls in a gap.
  • Manual syncRun Sync Now on a device when you need it.
  • BackfillFetch history for a device after an outage or a new install.
Push and scheduled pull every 15 minutes with overlap shown on a timeline
Push in real time and scheduled pull every 15 minutes.

No double counting

A unique key for every punch

Each punch gets a key built from the device serial number, the user ID, the time to the second and the direction. The key is hashed with SHA-256 and stored with a unique index, so the same punch can never be accepted twice.

ESSLK90AHM01 | 1003 | 2026-11-04 18:31:15 | OUT → SHA-256 dedupe key

  • First timeAccepted, and one Employee Checkin is created.
  • ResentRecognised as a duplicate and ignored.
  • Real resend in the demo6 punches received, 0 accepted, 6 duplicates.
A punch and its resend, with the device serial, user ID, time and direction hashed into a unique key, and the resend ignored as a duplicate
A resent punch is ignored as a duplicate.

Control

Unmapped punches are kept, not lost

If someone punches before they are enrolled in ERPNext, the punch is not discarded. It waits as Unmapped Employee until you map it.

  1. A device user punches in at 08:56 before their ERPNext record exists
  2. The punch is saved as Unmapped Employee
  3. The employee joins and gets their Employee ID
  4. Select the unmapped rows and choose Actions > Reprocess
  5. The Employee Checkin is created with the original punch time
Biometric Punch Log with two Unmapped Employee rows selected and the Reprocess action
Select the unmapped rows and reprocess them.

Monitoring

Every sync is accounted for

The Biometric Sync Log shows what each run did, so you can see what was fetched, what was accepted and what was a duplicate.

  • Counts for every runFetched, accepted, duplicates and failed.
  • TriggerPush, Scheduled, Manual or Backfill.
  • Device healthA device that goes offline shows in the device list, and managers are alerted.
Biometric Sync Log in ERPNext with fetched, accepted, duplicates and failed counts for each run
The Sync Log: fetched, accepted, duplicates and failed.
Biometric Device list in ERPNext with one device marked offline
An offline device is easy to spot.

Result

What the demo shows

  • 26PunchesFrom 3 devices in 3 branches on 4 November
  • 6Duplicates blockedA real resend of 6 punches: 0 accepted, 6 duplicates
  • 11PresentAttendance marked on 4 November with working hours

Figures from the sample data in the walkthrough video.

Who it is for

When you need it

  • Companies with biometric machines at one or more branches
  • HR and payroll teams who export attendance by hand
  • Manufacturers with plants, gates and warehouses to cover
  • Groups with several companies on one ERPNext

What goes wrong today

The problems it removes

  • Attendance is exported and uploaded by hand every week
  • Punches are missed or counted twice
  • New joiners' punches are lost before they are enrolled
  • Nobody knows a device is offline until payroll

Implementation

How Savyant sets it up

  1. MapYour devices, branches and companies, and how employees are numbered on each machine.
  2. ConnectAdd each device with the right adapter, push token and allowed IP addresses.
  3. PilotRun a week of real punches, then compare against your current attendance.
  4. Train and go liveTraining for HR, then support and monitoring.

The full delivery method →

Questions

ERPNext barcode app: common questions

  • Does ERPNext support biometric attendance devices?

    ERPNext HRMS records attendance from Employee Checkins. The Savyant Biometric Integration app brings punches from your biometric machines into ERPNext as Employee Checkins automatically.

  • Which biometric devices does it support?

    CAMS through the CAMS Biometrics Web API, eSSL and ZKTeco through a LAN agent or sync tool, any device with a JSON API through Generic REST, and a Local Agent that polls machines on your office LAN.

  • Is it push or pull?

    Both. Devices can push punches in real time, or the app can pull on a schedule every 15 minutes with overlap. You can also run a manual sync or a backfill.

  • How are duplicate punches prevented?

    Each punch gets a SHA-256 key from the device serial, user ID, time and direction, stored with a unique index. A resent punch is recognised and ignored.

  • What happens to a punch from an employee who is not in ERPNext yet?

    It is kept as Unmapped Employee. After you add the employee, select the rows and use Actions > Reprocess to create the Employee Checkin.

  • Does it change how HRMS calculates attendance?

    No. It creates standard Employee Checkins, so Shift Type and Auto Attendance work as designed.

  • Can different branches use different devices?

    Yes. It is multi-company and multi-branch, and each device has its own adapter, branch and location.

  • Which ERPNext version is it built for?

    ERPNext and HRMS v16.

Ready to talk to an ERPNext consultant?

Tell us about your setup and we will reply within one working day.

Who builds it

About Savyant Systems

Savyant Systems is an ERPNext and Frappe implementation company based in India. We implement, customise, integrate and support ERPNext for manufacturers, traders and growing businesses in India, the UK, Europe, the USA and Canada, and we build our own apps on top of it, including this one.

  • ERPNext Certified
  • Claude Certified
  • India · Global delivery

What happens next

  1. We review your enquiry and which setup applies
  2. A 45-minute discovery call on your processes and systems
  3. A scope, plan and demo on your own data

Next step

Talk to us

Want to see it on your own devices? Tell us which machines and branches you have, and we will set up a demo on your data.