Attendance correction requests
Updated 2026-11-07
What it is
A correction request is an employee asking HR to change one day of their attendance. For example, they forgot to check out, or the phone had no signal at check-in. The employee says what the day should have been and why. Once approved, PunchMe rewrites that day.
Corrections exist so employees don't need to message HR on WhatsApp, and so every change has a reason and a trail.
Who uses it
| Who | What they can do | Permission |
|---|---|---|
| Employee | Send a request from the employee app | None (every employee) |
| Manager or office HR | First approval, or reject | attendance.manage |
| HR | Final approval that applies the change, or reject | attendance.final_approve |
| Anyone viewing attendance | See the list of requests | attendance.view |
Approvers only see requests for employees inside their scope (company, office or team). See Roles and permissions.
The built-in HR and Office HR roles have both attendance.manage and attendance.final_approve. The Office Manager role has only attendance.manage, so it does the first step.
Where to find it
- Employee app: the Attendance tab. Tap any day (today or earlier) to open Request a correction. Your requests for that month show under Correction requests.
- Dashboard: Attendance, then the Corrections tab. Use the filter to switch between Pending, Waiting final approval, Approved, Rejected and All.
- Manager app: corrections show in the approvals inbox with other requests. See Manager app.
Turning it on or off
Open Settings, Work policy and tick or untick Allow correction requests. It is on by default.
You need settings.edit to change it.
What happens when it's on
The employee sends a request
- In the app, open Attendance and tap the day.
- The sheet shows what the day looks like now, for example "Present · 9:42 AM".
- Under It should be, pick Present, Late or Half day.
- Set Check in and Check out. The app fills in the times already on record, so you only change what's wrong.
- Write a Reason of at least 3 characters, for example "Forgot to punch out".
- Tap Send to HR.
Rules the app and server enforce:
- You can't request a correction for a future date.
- You can have only one open request per date. Wait for it to be decided before sending another.
- In the app, check-out must be after check-in.
Everyone with attendance.manage for that employee gets an in-app notification: "New correction request".
Two-step approval
- First step. Someone with
attendance.manage(but notattendance.final_approve) clicks Approve. The request moves to Waiting final approval. The employee's app shows it as "with HR". Everyone withattendance.final_approvegets a notification. - Final step. Someone with
attendance.final_approveclicks Approve. The change is applied to the attendance day.
If the person who opens a Pending request already has attendance.final_approve, one click approves and applies it. They don't need a manager to go first.
Either step can Reject. A rejected request changes nothing.
The employee gets a push notification and an in-app message when the request is approved or rejected. They are not notified at the first step.
What gets applied
When the final approval goes through, PunchMe writes the day exactly as requested:
- Status becomes the requested status. PunchMe does not recalculate late or half day afterwards. The approved status is final.
- Check-in and check-out times become the requested times, in the timezone of the employee's home office (or the company timezone if they have no home office).
- If check-out is earlier than check-in, PunchMe treats check-out as the next day. This handles night shifts.
- Worked hours are recalculated from the new times.
- The day is marked as edited by an admin, with the note "Corrected via request ...".
- If the day was waiting in Flagged punches, it leaves the review queue.
- If there was no record for that day, a new one is created.
If a time is left blank in the request, the time already on record is kept. To change only the check-out, the employee can leave the check-in blank.
The change, the old values and who approved it are kept in the attendance history and the audit log.
What happens when it's off
- Employees can still open the sheet, but sending fails with "Your company doesn't allow correction requests".
- HR can still fix any day directly in the dashboard with
attendance.manage.
Changing it midway
- Turning it off stops new requests only. Requests already Pending or Waiting final approval stay in the list and can still be approved or rejected.
- Changing someone's role changes what they can do next. A request already at Waiting final approval can only be finished by someone with
attendance.final_approve. Others see "Already forwarded — final approval needs attendance.final_approve". - Payroll already finalized for that month is not changed by a later correction. The correction only affects payroll runs made after it.
Limits and edge cases
- In the app, employees can pick Present, Late or Half day only. To set a day to absent or on leave, HR edits the day directly, or the employee applies for leave.
- Employees can't edit or withdraw a request after sending it. If it's wrong, ask your approver to reject it, then send a new one.
- The dashboard has no comment box for approvals. Approvers using the Manager app can add a comment, and the employee sees it on the request.
- An approved correction does not create or change a leave, and does not touch leave balances.
- Correcting a day can change overtime for it, as long as that overtime entry is still pending.
- Approving a correction to Present on a day that was auto-marked absent replaces the absent status.
Related
Common questions
Why does a correction need two approvals?
So a line manager who knows the facts confirms them first, and HR, who owns attendance records, makes the final change. If one person has both permissions, one approval is enough.
My employee forgot to check out. What should they request?
Open that day, keep the check-in time, set the real check-out time, and send it. Until then, PunchMe closes forgotten check-outs automatically after 20 hours. See Absent and half day.
Can an employee request a correction for last month?
Yes. Any past date works. But if that month's payroll is already finalized, the payslip won't change.
The request is approved but the status still looks wrong.
The day is set to exactly what was requested. If the employee picked the wrong status, edit the day in the dashboard under Attendance, or ask them to send a new request.
Who gets notified about a new request?
Everyone with attendance.manage whose scope covers that employee. After the first approval, everyone with attendance.final_approve in scope.