| OnPointShifts

Native To Your Stack.

OnPointShifts is structurally tied to PlatinumPOS, FreshPOS, and OnPointPOS — same team, same database, same identity. For everything else, there's an API, CSV/Excel export, and a polled adapter. No integration tax, no sync surprises.

One Employee Record Across the Whole Stack

If you're already on PlatinumPOS, FreshPOS, or OnPointPOS, OnPointShifts isn't an integration — it's another module sharing the same identity model. A staff member exists once. Sales flow live. Clock punches reconcile in one place.

PlatinumPOSRestaurants, bars, retail, hospitality, salons. Same team, same SSO, same support queue. Schedule and clock-in are siblings of your POS data.
FreshPOSForecourt and convenience. Forecourt-attendant role and fuel-vs-shop labour split align with FreshPOS's operational model.
OnPointPOSThe OnPoint Group's cloud POS. Bundled identity, bundled billing, bundled support. Co-brand themes (PlatinumShifts, FreshShifts) drop in cleanly.
Near-Live Sales FeedWebhook-driven sub-second for native adapters, 15-minute polled cadence for external POS. Hourly sales surface on the scheduler.
PlatinumPOS
Native
webhook · sub-second
FreshPOS
Native
webhook · sub-second
OnPointPOS
Native
webhook · sub-second
Third-Party POS
API
polled · 15 min

Not On Our POS? Use The API.

OnPointShifts exposes a REST API and a polled adapter for any POS that can publish sales and employee records over HTTP. You won't get sub-second webhook latency, but the 15-minute cadence is enough for scheduler decision-making.

Mapping TabsMap locations, employees, departments, and job roles between systems in the portal. No engineering required after the API key is in.
Sync Log FeedEvery sync attempt logged with timestamp, status, and payload size. Failed syncs surface in a retry queue.
Retry QueueTransient failures retry automatically. Permanent failures route to a queue for manual resolution with full payload visibility.
Sync Log · Last 24h
OK 96Fail 1
✓ 11:23 · sales.import · 142 rows · 480ms
✓ 11:08 · sales.import · 138 rows · 502ms
✓ 10:53 · sales.import · 156 rows · 491ms
✓ 10:38 · employees.sync · 3 rows · 380ms
! 10:23 · sales.import · timeout · queued
✓ 10:08 · sales.import · 144 rows · 510ms
· 09:53 · clocks.import · 0 rows · skip

Clean Hours Out, Tax Engines Untouched

We're not replacing your payroll engine. We're feeding it. CSV and Excel export per pay period, per employee, with the columns your engine expects. Sage, Pastel, your in-house engine — same export, different mapping.

Sage Payroll

Standard CSV with employee codes, hours, rates, and period boundaries. Map your Sage columns once; export the same shape every period.

Pastel Payroll

Pastel-friendly export with reference numbers and pay-element codes. Period-locking ensures the file you export is the file you re-export.

SimplePay / SmoothPay

SA cloud payroll providers. CSV import-compatible — map columns once and the rest is one click per period.

Custom Engines

If your engine isn't on this list, the export schema is documented. Map columns to your import spec; we'll help on the first run.

Excel Out, Too

For operators who reconcile in Excel before importing. Multi-sheet workbook: summary, per-employee, exceptions, audit trail.

Period-Locking

Once exported and locked, the period is immutable. Reopening requires platform admin and is audited both ways. No silent changes after export.

Web Kiosk Today. Biometric Devices Next.

The MVP punch surfaces are mobile, web kiosk, POS import, and manager edit. For sites that already run biometric clock-in hardware (ZKTeco, fingerprint, facial), the API ingests the punches as Source=POSImport-equivalent with the device id preserved.

Web KioskBrowser-based clock-in for shared in-store devices. PIN or QR per staff. Local time accurate even when offline-cached.
Mobile (iOS + Android)Native staff app. GPS captured if permitted. Punches queue when offline and post on reconnect.
Biometric Device IngestExisting ZKTeco-style hardware feeds punches via the API. Source is preserved on every TimePunch row.
Geofence Enforcement RoadmapLock mobile clock-ins to a radius around the location. Phase 2.
Photo Selfie at Clock-In RoadmapOptional configurable. Stored against the punch for after-the-fact verification. Phase 2.
Mobile Punches
78%
most common source
Kiosk Punches
14%
shared devices
POS Import
7%
forecourt sites
Manager Edit
1%
corrections

REST API. Tenant-Scoped. Token-Authenticated.

OnPointShifts exposes a clean REST API documented with OpenAPI. Authenticated with short-lived access tokens plus single-use refresh-token rotation. Tenant header and token are cross-checked on every request — no cross-tenant data leak by design.

Endpoint Coverage

Tenants, locations, departments, job roles, staff, schedules, shifts, availability, leave, open shifts, swaps, releases, time clock, timecards, payroll runs, labour rules, reports, audit log.

Short-Lived Sessions

Short-lived access tokens. Single-use refresh tokens with rotation. A compromised refresh breaks the chain — the old session is invalidated automatically.

Tenant Cross-Check

Every request validates that the tenant in the URL/header matches the tenant in the token. Strict isolation — no cross-tenant data leak via API.

Permission Claims

Endpoints are policy-gated. Tenant settings, locations, staff, scheduling, approvals, timecards, payroll, POS, reports, audit — each has its own policy.

OpenAPI Spec

Full OpenAPI 3.x documentation. Generate clients in your language of choice. SDK availability tracked on the roadmap.

Webhooks Roadmap

Outbound webhooks for schedule published, timecard approved, payroll exported, and audit events. Phase 2.

Got a Different Stack?

Tell us what you run — POS, payroll, biometric devices. We'll tell you what we'd plug into, what we'd expose via API, and what's already on the roadmap.

Chat or Call on WhatsApp