Integrating with TechTur POS
TechTur POS exposes one versioned REST API (/api/v1), an OAuth 2.0 authorisation server (/api/oauth), signed webhooks, and an official TypeScript SDK (@techtur-pos/sdk). Everything a connector can do goes through these — there is no private back door, and the API reference is generated from the running code.
Which guide do I need?
| You are… | Start with |
|---|---|
| Building any integration | Getting started, then API quickstart |
| A marketplace or app whose customers each run their own POS business (like RekaDijo) | Connector specification, SSO and account linking |
| A single shop connecting its own website | Authentication → business API keys |
| An external software company | External platform guide |
| An AI coding agent (Claude Code, Codex) | AI agent integration guide |
The four ways to connect
- Connect an external app to one existing POS business — the owner authorises your app with OAuth (authorization code + PKCE). Your token is bound to that business.
- Connect a TechTur platform (RekaDijo, InFinOwl, future apps) — a platform connector application, approved by TechTur, uses client credentials and platform scopes to mint launch links for its users and act on the businesses that linked to it.
- Create a standalone business on TechTur POS — no integration needed; register at
/register. - An app whose customers each own an independent POS business — same as (1), repeated per customer: each business authorises your app separately and you store one token pair per business.
Core ideas
- Tenant = business. Every business-scoped route is
/api/v1/businesses/{businessId}/…. A token only ever reaches businesses that granted it access. See Business and tenant mapping. - External IDs, not ours. Push your catalogue with your IDs; POS keeps the mapping. See Product synchronisation.
- POS owns physical stock. Orders you submit deduct stock once; you read stock back. See Inventory and Orders.
- Money is a decimal string in ZAR (
"1234.50"), never a float. - Every write is idempotent — by
externalRef,idempotencyKey, or theIdempotency-Keyheader.
Machine-readable artefacts
- OpenAPI 3.1:
/developers/openapi.json(alsoGET /api/openapi.jsonon the API) - Connector manifest JSON Schema:
/developers/connector-manifest.schema.json— source:CONNECTOR_MANIFEST_SCHEMA.json - SDK:
packages/sdkin the repository; starter connector:examples/techtur-pos-connector-template/