Skip to main content

POS True Retail Operations Suite API overview

All API endpoints are served by the Cloudflare Worker at the app’s base URL. Authenticated endpoints require a Shopify session token in the Authorization header.

Read-only request

Authentication

The session token is a JWT signed with HMAC-SHA256 using the app secret. The Worker validates exp, nbf (with clock-skew tolerance), iss, the dest shop domain, and the signature. An ID token proves identity but not permission. Privileged routes exchange it for an expiring online access token and verify the staff member’s scopes. Shopify may omit a read_<resource> grant when the matching write_<resource> is present, so either satisfies that read requirement; a write requirement or an unprefixed scope still requires an exact match. Location settings and billing mutations are account-owner only. Requests never fall back to a shop-wide offline token.

Rate limiting

Mutation endpoints (POST, PUT, PATCH, DELETE) are limited to 50 requests per minute per shop using atomic D1 counters. The response is 429 Too Many Requests.

Response format

OAuth

Health and setup

Settings

Audit

Operations

Billing and entitlements

Billing uses Shopify’s app-managed Billing API. Plans are Starter $8.99/$89.90, Professional $24.99/$249.90, and Enterprise $49.99/$499.90 for 30-day/annual billing; annual is ten 30-day charges, with one 14-day trial per eligible shop. Premium routes call a server-side minimum-plan guard; an insufficient limit returns 402 (BILLING_REQUIRED) for retail-data routes or 403 (EntitlementError) for gap-feature routes.

Retail data

Operations tools

Inventory export returns JSON by default and CSV when format=csv. The operations audit export returns Professional JSON by default; its accounting-ready format=csv output requires Enterprise.

Retail workflows

POS callers bind the requested location to the signed user and tenant role; the generic workflow route applies the capability’s minimum plan before enforcing the caller context. Invalid input returns 400, a missing record returns 404, a stale transition returns 409, and a Shopify upstream failure returns 502.

Public capability routes

Enterprise OIDC identity verification returns 503 SSO_CONFIGURATION_REQUIRED until the OIDC issuer, client ID, and client secret are all configured.

Webhooks

Six webhook routes verify the HMAC signature before processing. See Webhooks.

Idempotency

Mutation endpoints (POST /api/voids, POST /api/store-credit/issue, POST /api/price-edits/log) accept an idempotencyKey. A duplicate request returns the cached response; keys are stored in D1 with seven-day retention and removed by the daily cron. Pcnaid Documentation › Shopify Ecosystem › POS True Retail Operations Suite › Developer