Architecture overview
Why does the connector exist?
Workforce management platforms accumulate deeply interconnected data – clockings, absences, calculated totals, contracts, activity definitions – that external systems frequently need to consume or update. Exposing the internal data model directly would couple every integrator to implementation details that change with each product release, creating a maintenance burden on both sides.
The Protime API Connector solves this problem by presenting a stable, versioned REST API layer between external integrators and the Protime workforce management suite. It translates domain operations into a consistent set of HTTP resources with predictable URIs, authentication, filtering, pagination, and change-tracking semantics, regardless of how the underlying platform evolves.
Connector role
The connector acts as the single integration surface for the Protime platform. All reads and writes from third-party systems flow through it, which provides several advantages:
- Version stability – the API version is embedded in the URI (
/api/v1/), and the team evolves the contract in a backwards-compatible way. - Tenant isolation – every request is scoped to exactly one tenant; the connector enforces this automatically.
- Uniform conventions – resource names use kebab-casing, collections are plural nouns, and standard HTTP verbs map to CRUD operations.
flowchart LR
A["External Integrator"] -->|"HTTPS / REST"| B["Protime API Connector"]
B -->|"Internal protocols"| C["Protime Platform"]
style B fill:#f0f4ff,stroke:#3366cc,stroke-width:2px
The integrator never communicates with the Protime platform directly. The connector handles authentication verification, scope enforcement, request validation, pagination, delta tracking, and webhook dispatch on behalf of the platform.
Domain slices
The API surface is organized into domain slices, each grouping logically related collections.
| Domain | Collections | Typical use cases |
|---|---|---|
| Time | clockings, absences, absence-definitions, absence-groups, breaks, break-definitions, work-interruptions, calculated-totals, paid-presences, counters, counter-definitions, counter-groups, shift-definitions | Import/export clockings, synchronize absence calendars, read payroll totals |
| Activities | activity-definitions, activity-durations, activity-usages, activity-restrictions | Map cost-center or project codes to Protime activities |
| People | people, contracts, department-histories, employer-histories, job-histories, job-category-histories, sector-histories, work-location-histories | Synchronize HR master data, track contract changes |
| Foundation | departments, employers, jobs, job-categories, sectors, work-locations | Maintain organizational structure references |
| Planning | assignments | Read or write shift assignments |
| Access | access-clockings | Retrieve badge swipes from physical access points |
Most collections follow a common URI pattern:
https://<tenant>.myprotime.eu/connector/protimeapi/api/v1/<collection>For example, retrieving clockings for a tenant called acme:
https://acme.myprotime.eu/connector/protimeapi/api/v1/clockings?filter=date ge '2026-01-01'Some resources in the Activities domain use nested paths that reflect their hierarchical structure. See the collections reference for precise URI details.
Cross-cutting concerns
Three mechanisms cut across all domain slices:
Delta (change tracking)
Rather than re-fetching entire collections, integrators can request only what has changed since their last synchronization. The delta mechanism provides cursor-based change tracking with InsertOrUpdate and Delete change types. This dramatically reduces data volume and processing time for ongoing integrations.
Webhooks (event delivery)
For scenarios where near-real-time awareness of changes is required, the connector can push events to a consumer-provided HTTPS endpoint whenever a resource in a subscribed collection changes. Webhooks complement delta by eliminating the need to poll.
External references (ID mapping)
External systems rarely share Protime’s internal identifiers. The external reference system allows integrators to map their own IDs – whether predefined fields already in Protime (prefixed with @, such as @badge-number) or fully custom key-value pairs – onto Protime resources. This mapping can then be used in both read and write operations, removing the need for the integrator to maintain a separate translation table.
Further reading
- General specs – URI conventions, versioning, and request headers
- Collections reference – per-collection endpoint details
- Delta synchronization – why and how change tracking works
- Webhook lifecycle – event model and delivery guarantees
- External reference model – bridging external and internal IDs