canonical: https://jentic.com/apis/example.ilucca.net/lucca-timmi-timesheet

# Example Ilucca Timmi Timesheet API

Timmi Timesheet is Lucca's time-tracking API for capturing worked hours, managing weekly timesheets, and driving the submit-and-approve workflow. It exposes time entries, timesheet records, attendance data, activities, and reports, plus dedicated workflow actions to submit, approve, cancel, and remind. Agents use it to automate timesheet logging and chase incomplete weeks.

## For AI agents

Log time entries, submit timesheets for approval, and pull attendance reports across the Lucca workforce.

## Scope

Does not handle leave requests, payroll, or expenses - use for time entries, timesheet workflow, and attendance reporting only.

## Capabilities

- List time entries filtered by user, project, or date range
- Retrieve a specific time entry by id for review or correction
- List timesheets including those that are remindable for incomplete weeks
- Submit a timesheet for approval through the workflow endpoint
- Approve, cancel, or send a reminder for a timesheet via dedicated workflow actions
- Pull attendance and report data to feed downstream payroll or analytics systems

## Use cases

### End-of-week timesheet submission

On Friday afternoon, a workflow agent collects each employee's time entries for the week, validates totals, and posts to /timmi/services/workflow/submit to send the timesheet for approval. Lucca handles the routing, so the agent only needs to ensure totals are complete before submission.

Example prompt: List time entries for user 1234 from 2026-06-02 to 2026-06-06, validate they total 40 hours, and POST /timmi/services/workflow/submit to send the timesheet for approval.

### Reminder bot for incomplete timesheets

An ops agent runs every Monday morning, calls /api/v3/timmitimesheets/remindable to find timesheets still incomplete from the prior week, and posts /timmi/services/workflow/remind to nudge the assignees. This keeps payroll on schedule without HR chasing manually.

Example prompt: Call GET /api/v3/timmitimesheets/remindable to list incomplete timesheets, then call /timmi/services/workflow/remind for each so the assignees get a reminder.

### Attendance reporting export

Finance needs an attendance export for the pay period to feed into payroll. The agent pulls the relevant time-entry and report endpoints under Timmi Timesheet, aggregates by user, and writes the totals into the payroll input file with project codes attached.

Example prompt: Pull all time entries for the pay period, group totals by userId and activity, and write the result to a CSV ready for payroll import.

### AI agent timesheet logging via Jentic

An employee-facing AI assistant integrated through Jentic accepts plain-English entries like 'log 4 hours on the Atlas migration today' and turns them into Timmi time entries. Jentic handles credential isolation and operation discovery, so the assistant calls the right endpoint without ever holding the raw API key.

Example prompt: Use Jentic to search for 'log a Lucca time entry', load the operation, and create a 4-hour entry on activity 'Atlas Migration' for the current user today.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /api/v3/timeentries | List time entries |
| GET | /api/v3/timeentries/{timeEntryId} | Retrieve a specific time entry |
| GET | /api/v3/timmitimesheets | List timesheets |
| GET | /api/v3/timmitimesheets/remindable | List remindable timesheets |
| POST | /timmi/services/workflow/submit | Submit a timesheet for approval |
| POST | /timmi/services/workflow/approve | Approve a timesheet |
| POST | /timmi/services/workflow/remind | Send a timesheet reminder |
| POST | /timmi/services/workflow/cancel | Cancel a timesheet submission |

## Key resources

- **TimeEntries** — Individual time entries logged against activities
- **Timesheets** — Weekly timesheet records that bundle time entries for approval
- **Workflow** — Workflow actions for submitting, approving, cancelling, and reminding on timesheets
- **Reports** — Aggregated attendance and timesheet reports
- **Activities** — Activity codes that time entries are logged against
- **Attendance** — Attendance records derived from time-entry data

## Why Jentic

- **Setup:** Wiring the Timmi Timesheet API by hand means learning its header API key auth on your ilucca.net tenant host and tracking two path shapes, the /api/v3 time-entry endpoints and the /timmi/services/workflow actions, yourself. Through Jentic you install once, import Timmi Timesheet from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** Timmi Timesheet puts the entry id in the URL path (/api/v3/timeentries/{timeEntryId}), so a rule can pin your agent to reading one time entry. You choose the operations it may call, so workflow actions like submit, approve, or cancel are not included unless you add them.
- **Credential handling:** Your Lucca API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'log a time entry' or 'submit a timesheet', and Jentic returns the matching Timmi Timesheet operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Timmi Absences** — Manages leave alongside the worked-hours data captured here
- **Lucca Directory** — User records referenced by every time entry and timesheet
- **BambooHR** — HRIS with built-in time tracking and approvals
- **Personio** — European HRIS that bundles attendance with employee records

## FAQ

### What authentication does the Timmi Timesheet API use?

Timmi Timesheet uses an API key passed in the Authorization header. Through Jentic, the key is encrypted in your Jentic One instance and replaced with a scoped token at call time, so the raw secret never enters the agent's context.

### Can I submit a timesheet for approval through the API?

Yes. POST /timmi/services/workflow/submit sends a timesheet through the approval workflow, and POST /timmi/services/workflow/approve, /cancel, and /remind cover the rest of the lifecycle so an agent can fully drive timesheet state.

### How do I find incomplete timesheets that need a reminder?

GET /api/v3/timmitimesheets/remindable returns the timesheets that are still outstanding. An agent can iterate that list and POST /timmi/services/workflow/remind for each to send a chase to the assignee.

### What are the rate limits for the Timmi Timesheet API?

The spec does not publish explicit rate limits. Lucca enforces tenant-level throttling, so bulk operations should chunk requests and respect Retry-After headers when 429 responses are returned.

### How do I log a time entry through Jentic?

Run pip install jentic, search for 'log a Lucca time entry', load the time-entries POST operation, and execute with the activity, duration, and userId. Jentic supplies the input schema so the agent does not need to read the spec directly.

### Does Timmi Timesheet handle leave and time-off as well?

No. Timmi Timesheet covers worked-hours data - time entries, timesheets, attendance, activities, and reports. Leave and time-off requests are handled by the separate Timmi Absences API in the Lucca suite.

### Can I limit what my agent is allowed to do with the Timmi Timesheet API?

Yes. Because you run Jentic One yourself, your own rules decide which Timmi Timesheet operations and credentials the agent may use. You pick the operations it can call, so read-only endpoints like GET /api/v3/timeentries and GET /api/v3/timmitimesheets can be allowed while workflow actions such as submit, approve, and cancel stay off unless you add them. Since the entry id sits in the URL path (/api/v3/timeentries/{timeEntryId}), a rule can even pin the agent to reading a single time entry.
