Overview
Two ways to build with Curio Time: general integrations and clock-in from third-party systems.
Public Integration API v1 gives developers two ways to build with Curio Time:
- General integrations — read employees, time entries, schedules, time off, projects and server-calculated payroll data.
- POS & punch clock integrations — clock employees in and out from a POS system, time clock, kiosk or shared terminal (POS & punch clock API).
General integration API
| Area | Operation | Typical use |
|---|---|---|
| Employees | Read | Payroll mapping, reports |
| Time entries | Read | Punches + server pay buckets |
| Time off / absences | Read | Planning, payroll context |
| Schedules | Read | Planned shifts |
| Pay periods | Read | Period boundaries |
| Payroll preview | Read (preview) | Export lines — no external send via API |
| Projects / departments | Read | Job costing |
| Public holidays | Read | Icelandic calendar |
POS & punch clock API
| Area | Operation | Typical use |
|---|---|---|
| Employee list | Read | Terminal UI |
| Clock in / out | Write | POS system, time clock, kiosk or shared terminal |
| Device registration | Write (once) | Bind hardware to a company |
See POS & punch clock.
Not in v1
- Create/update employees, manual timesheet edits (except punch)
- Calculation rules or collective agreements
- Mobile app–specific routes (
/mobile/*) - Curio Solo API
- Send payroll to Payday/DK/Regla via integration API
- AI, billing, superadmin
See Out of scope.
Multi-tenant
Company-scoped routes use companyId (GUID):
GET /api/v1/companies/{companyId}/time-entries?userId=…&startDate=…&endDate=…
Access is limited to companies your credentials are allowed to use.
JSON conventions
| Item | Format |
|---|---|
| Property names | camelCase |
| Calendar dates (query/body) | yyyy-MM-dd |
| Timestamps | ISO-8601 UTC (2026-08-25T08:00:00Z) |
| Envelope | { "success": true, "data": { … }, "errors": null } |
See Response format.
Payroll math is server-side
Integrations must not re-implement pay rules. Use:
totals— minutes by category (daytime, overtime, night, weekend, etc.)dynamicPayLines— payroll codes → minutes ready for export
Common flows
Payroll system pulls hours
1. GET …/users
2. GET …/pay-periods
3. GET …/time-entries (per employee)
or
POST …/payroll/export/preview (all employees, one period)
POS or punch-clock partner
1. GET …/users/punch-list?companyId=… (anonymous)
2. POST …/time-entries/punch (password or kiosk PIN flow)
Or registered kiosk device flow — see Punch clock.
Next steps
- Authentication
- Response format
- Limits & security
- API reference under
reference/