The sequence
Rule 1 — ack only after acceptance
The consequence is the guarantee: an outage cannot lose a punch. OnTime being down, a deploy restarting it, a network cut — in every case the device simply keeps re-sending until it gets through. Keepalive messages are the exception: they are acknowledged immediately and forwarded without waiting, because device liveness must not depend on backend latency.Rule 2 — deduplicate on the triple
Because the device re-sends, OnTime will see the same punch more than once. It deduplicates on three fields together:Why all three. The transaction ID alone is not safe — it resets when a device is wiped, so a wiped terminal would start re-issuing IDs that already exist. Including the log time closes that.
Rule 3 — unmapped punches park
If the terminal’s user ID does not resolve to an employee — no mapping, no matching code, or an ambiguous suffix match — the punch is parked: recorded, marked unmapped, and held.What a resolved punch becomes
Once resolved, the punch becomes an ordinary attendance event:
The day is then reconciled through the same day engine every other punch source uses. A terminal punch and a mobile punch produce the same kind of day record.
Photos
If the terminal captured an image with the punch, it is stored and attached to the event as the punch photo — so it appears wherever mobile selfies do, including as evidence on a regularization.An oversized or corrupt image is skipped and the punch still lands. Photo capture never blocks attendance.
Terminal administration events
Enrolling or deleting a user at the device is recorded too. That gives you an enrolment audit trail, and it is the signal that a new terminal user needs mapping.The full picture
What this means operationally
1
A missing punch is almost never lost
Check, in order: is the terminal user mapped, is the device online, is the connector running. Each has a distinct signature — see Troubleshooting.
2
A backed-up device queue points at the connector, not the device
The device holding records means it is not getting acknowledgements, which means the connector is not reaching OnTime — a wrong secret, or a network problem.
3
Duplicate punches are not a thing
If a person appears twice in a day report from one terminal, they punched twice.