canonical: https://jentic.com/apis/example.ilucca.net

# Lucca APIs

Lucca is a European HR software suite whose APIs cover the operational core of workforce management: time tracking and timesheets (Timmi Timesheet), leave and absence requests (Timmi Absences), expense capture and claims (Cleemy Expenses), organisational structure (Lucca Organization), and the employee directory (Lucca Directory). The modules are separate APIs that share a single tenant host and reference employees by a common userId, so an agent can wire time, leave, expenses, and org data together against one Lucca account.

## For AI agents

An agent can log and submit timesheets, book and approve leave, capture and claim expenses, read the department tree, and resolve employee userIds to profiles across the Lucca HR suite. Because every module keys off the same directory userId, an agent can chain identity lookups into time, absence, and expense actions for one employee.

## Scope

Use for: Automating Lucca HR operations across time, leave, expenses, org structure, and employee records against a single Lucca tenant

Not supported:
- payroll processing
- recruiting or ATS
- performance reviews
- real-time webhooks
- on-prem deployment

## APIs

| API | Category | Endpoints | Description |
| --- | --- | --- | --- |
| Timmi Timesheet | hr-recruiting | 18 | Log time entries, submit timesheets for approval, and pull attendance reports across the Lucca workforce. |
| Timmi Absences | hr-recruiting | 14 | Submit leave requests, manage approvals, and bulk-import leave entitlements for employees in the Lucca HR suite. |
| Lucca Organization | hr-recruiting | 9 | Read and manage Lucca's department trees, axis sections, and organisational axes that group employees for HR reporting. |
| Cleemy Expenses | finance | 6 | Capture employee expense items, build expense claims, and move them through Lucca's approval workflow. |
| Lucca Directory | hr-recruiting | 4 | Read and update Lucca employee profiles to resolve userIds and look up directory information across the Lucca HR suite. |

## Which API to use

| Need | API | Why |
| --- | --- | --- |
| Resolve an employee identity or read/update a profile | lucca-directory | Directory owns the canonical user records; the other modules reference employees by the userId it returns. |
| Read the org chart, departments, or reporting axes | lucca-organization | Organization exposes axes, axis sections, and the department tree, which are structural data absent from Directory's user records. |
| Log worked hours and drive the timesheet approval workflow | lucca-timmi-timesheet | Timmi Timesheet covers time entries, timesheets, and submit/approve/remind actions; it does not handle leave. |
| Submit or approve leave and manage entitlements | lucca-timmi-absences | Timmi Absences owns leave requests, approvals, and entitlement imports, which Timmi Timesheet explicitly excludes. |
| Capture employee spend and build expense claims | lucca-cleemy-expenses | Cleemy Expenses handles expense items and claim lifecycle, the finance side that the HR modules do not cover. |

## Cross-API use cases

### Full attendance picture for a named employee

An agent resolves an employee from the directory, then pulls both worked hours and approved leave so an HR report shows a complete attendance view instead of opaque userIds.

Example prompt: Resolve the userId for a given email via Lucca Directory, then list that user's time entries in Timmi Timesheet and approved leaves in Timmi Absences and merge them into one weekly attendance summary.

### Named expense claims from raw userIds

An agent building an expense report turns the numeric owner on each Cleemy item into a real employee name and department before submitting the claim, so approvers see who spent what.

Example prompt: List temporary expense items in Cleemy Expenses for a period, resolve each ownerId through Lucca Directory to a display name, and assemble a claim summary grouped by employee.

### Org-aware leave and headcount reporting

An agent maps every employee to their department and reporting axis so leave and headcount can be rolled up by team rather than reported as a flat list.

Example prompt: Fetch the department tree from Lucca Organization, resolve each employee via Lucca Directory, then aggregate approved leaves from Timmi Absences by department for a team-level report.

### New-hire HR provisioning across modules

During onboarding an agent confirms the target department exists and the employee record is present before it starts filing time, leave, or expenses for that person.

Example prompt: Confirm a department exists via Lucca Organization, resolve the new hire in Lucca Directory, then create a first time entry for them in Timmi Timesheet.

## Why Jentic

- **Setup:** Wiring five separate Lucca APIs by hand means learning the apiKey header auth and the distinct path shapes for each module, from the /api/v3 endpoints to the Timmi and timmi-absences workflow services. Through Jentic you install once, add each Lucca API from the Jentic directory, store the one Lucca key, and your agent calls any of them.
- **Permission scoping:** Each Lucca module puts the record id in the URL path, such as the user, department, leave request, or expense item, so your own rules can pin an agent to reads on one resource. You choose which operations the agent may call, so state-changing actions like timesheet submit, leave entitlement import, or expense claim creation are excluded unless you add them.
- **Credential handling:** Your single 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, even though the same key unlocks all five modules.
- **Discovery method:** Agents search Jentic by intent such as 'submit a leave request', 'log a time entry', or 'look up a Lucca user', and Jentic returns the matching module's operation with its input schema, so the agent picks the right Lucca API without browsing the reference docs.

## Related vendors

- **BambooHR** — All-in-one HRIS that bundles the directory, time off, and onboarding Lucca splits across modules.
- **Personio** — European HRIS combining employee records, absences, and recruiting in one API.
- **Expensify** — Standalone expense platform that overlaps with Cleemy Expenses for teams not on Lucca.
- **Workday** — Enterprise HCM with deep org-structure modelling for larger organisations.

## FAQ

### What does the Lucca API suite let an AI agent do?

It lets an agent run day-to-day HR operations for a Lucca tenant: logging and submitting timesheets, booking and approving leave, capturing and claiming expenses, reading org structure, and looking up or updating employee profiles. The modules can be combined so one workflow spans identity, time, leave, and expenses.

### How do the five Lucca APIs relate to each other?

Lucca Directory holds the employee records, and Timmi Timesheet, Timmi Absences, Cleemy Expenses, and Lucca Organization all reference employees by the userId it returns. Directory is the identity layer, Organization is the structural layer, and the other three are the operational modules for time, leave, and spend.

### Do I need separate credentials for each Lucca module?

No. All five APIs authenticate with the same apiKey in the Authorization header against your Lucca tenant host, so a single Lucca API key covers time, leave, expenses, org structure, and directory access.

### Which Lucca API handles time versus leave?

Timmi Timesheet covers worked hours, timesheets, and the submit and approve workflow, while Timmi Absences covers leave requests, approvals, and entitlement imports. They are separate APIs, so an agent picks the one that matches the task or uses both for a full attendance view.

### Can an agent build an expense report with real employee names?

Yes. Cleemy Expenses returns expense items and claims keyed by owner userId, and Lucca Directory resolves those ids to names and profiles, so an agent can produce a claim summary that reads by employee rather than by numeric id.

### Does the Lucca suite cover payroll or recruiting?

No. These APIs cover time, leave, expenses, org structure, and employee records. Payroll runs, recruiting, and performance reviews are outside their scope, though the data they expose can feed a downstream payroll or reporting system.
