Solution
Attendance data your payroll can trust
Payroll is only as good as the attendance behind it. Biometric punches remove buddy punching and retyped registers, and an API means the same numbers reach payroll every month without anyone collecting files from each branch.
How a payroll month works
- 1
Connect the terminals
Each branch terminal pushes punches to your workspace as they happen, so the month builds up on its own with no manual collection.
- 2
Agree the employee codes
The employee number on the terminal is what arrives with each punch. Match it to the staff code in your payroll system, or change one side so both agree.
- 3
Pull the month before payroll
On payroll day, request the punches for the period with the from and to parameters, or export a CSV for the same range from the dashboard.
- 4
Apply your own rules
Your payroll software decides grace periods, half days, overtime and deductions. Asaanex supplies the verified punches those rules run on.
Pull one payroll period
Request the punches for the month, then group them per employee and per day inside your own system:
const params = new URLSearchParams({
from: "2026-09-01T00:00:00+05:00",
to: "2026-09-30T23:59:59+05:00",
limit: "500",
});
const res = await fetch(`https://biometric.asaanex.com/api/v1/attendance?${params}`, {
headers: { Authorization: `Bearer ${process.env.ASAANEX_API_KEY}` },
});
const { data, total } = await res.json();
// total tells you whether to request page=2, page=3 …What each punch tells you
- employee_no — the code entered on the terminal, used to match your staff record.
- event_time — the exact moment of the scan, with time zone offset.
- in_out_state — whether the device recorded a check in or a check out.
- verify_type — fingerprint, face or card, useful when auditing a disputed day.
- device_id — which terminal, and therefore which branch, recorded it.
If you would rather not poll
Add a webhook endpoint and every punch is delivered to your system as it happens, signed with HMAC-SHA256. Teams often use webhooks to keep a running attendance table, then simply read their own table at payroll time. The webhook reference shows the payload and how to verify the signature.
Run one payroll month on real punches
Connect a terminal, collect a full month, and compare it with your current register. Free for 3 months.
Payroll questions
Does Asaanex calculate salaries?
No, and that is deliberate. Salary rules differ by company and change with policy, so Asaanex supplies clean punch data and your payroll system keeps the rules.
How do we handle a missing punch?
Missing punches usually come from someone forgetting to scan. The records show exactly which employee has no punch on a day, so HR can correct it in payroll with a note before salaries are calculated.
Can we run payroll for several branches at once?
Yes. Punches from every connected terminal land in the same workspace, so a single API call or export covers all sites, and each record carries the device it came from.
What about staff who work night shifts across midnight?
Every punch carries its exact timestamp with the time zone offset, so a check-in before midnight and a check-out after it are both recorded accurately. How those hours are paid is a rule in your payroll software.