Approve a timesheet
Approve one employee's submitted timesheet for a pay period. Your account needs approve permission.
POST https://cotlet.dev/api/v1/connecteam/time-clocks/{time_clock_id}/timesheet/approve
Approves the timesheet like the Approve button in the upper right of the employee's timesheet. It works only on a time clock with Timesheets approval on, for a pay period, and with an admin account that may approve; otherwise it fails with APP_PERMISSION_DENIED. Once approved, only an admin with reopen permission can change the timesheet, and Connecteam notifies the employee right away. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| time_clock_id integer required | integer | Time clock ID from list_time_clocks. |
| user_id integer required | integer | User ID from list_users or list_timesheets. |
| period_start date required | date | First day of the pay period, YYYY-MM-DD. |
| period_end date required | date | Last day of the pay period, YYYY-MM-DD. |
Request
curl -X POST https://cotlet.dev/api/v1/connecteam/time-clocks/2041/timesheet/approve \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id":8821034,"period_start":"2026-10-12","period_end":"2026-10-18"}' result = client.call("connecteam", "approve_timesheet", {"time_clock_id":2041,"user_id":8821034,"period_start":"2026-10-12","period_end":"2026-10-18"}) const result = await cotlet.call('connecteam', 'approve_timesheet', {"time_clock_id":2041,"user_id":8821034,"period_start":"2026-10-12","period_end":"2026-10-18"}); cotlet call connecteam approve_timesheet --data '{"time_clock_id":2041,"user_id":8821034,"period_start":"2026-10-12","period_end":"2026-10-18"}' Example response
{
"approved": true,
"time_clock_id": 2041,
"user_id": 8821034,
"name": "Dana Whitfield",
"period_start": "2026-10-12",
"period_end": "2026-10-18",
"total_hours": 38.5
}