# How to approve a time entry

**For:** Manager
**You'll need:** A time entry with status **'Confirmed'**.

You'll move a single row to **'Approved'** — the final state before payroll. Approval stamps the audit trail with your name and the time, so reports and exports can rely on it.

## Approve the row

::::{tab-set}
:sync-group: platform

:::{tab-item} Web
:sync: web

1. In the header, go to **Planning → Management → Timesheet**.
2. Find the row you want to approve.
3. Click **'Approve'** on the row.
:::

:::{tab-item} Mobile app
:sync: mobile

1. Tap **More** in the bottom bar, then **'Manager'**, then **'Timesheets'**.
2. Find the row carrying the **'Confirmed'** badge — each row names the employee under the shift times.
3. Tap the row, then tap **'Approve'** in the sheet that opens.

The badge on the row turns to **'Approved'** in place; the list keeps your scroll position. **'Approve'** only appears on confirmed rows — a row still showing **'Scheduled'** offers **'Confirm hours on behalf'** first.
:::
::::

## What approve does

- The status flips to **'Approved'**.
- The audit fields (approver and timestamp) are stamped.

```{note}
In dual-approval mode, **'Approve'** is disabled until the row is confirmed — you'll see **'Awaiting confirmation'** instead. The employee must confirm their hours first, or you can confirm on their behalf. See {doc}`how-confirmation-works`.
```

```{tip}
You don't have to confirm a row before approving it in a separate step — if the row still has no clock times, confirm it first (or use bulk **'Confirm selected'**), then approve. See {doc}`bulk-actions`.
```

## Verify it worked

The row's status badge reads **'Approved'** and shows the approver's name on hover. The row appears in payroll and approval reports.

## Approval locks the row

Approving freezes the row: its clock times become read-only and the **'Confirm'** / **'Undo confirmation'** actions are disabled until you unapprove it. Approval is the only lock {{ app_name }} applies. See {doc}`locked-period-ux`.

## Related

- {doc}`how-confirmation-works`
- {doc}`confirm-a-time-entry`
- {doc}`unapprove-a-time-entry`
- {doc}`bulk-actions`
