Environments
Staging vs. production, and how a credential's environment is decided.
Linra Omni runs two environments a partner integration cares about: Staging and Production. Each is a fully separate deployment — separate data, separate everything. There is no shared sandbox data between them.
Environment is a property of the credential, not the request
Section titled “Environment is a property of the credential, not the request”When you generate a credential in the Portal dashboard (https://omni-portal.linra.net, sidebar
Partners & Vendors → My Account → API Credentials), you choose its environment at generation
time with the dashboard’s Environment selector — staging and production credentials exist side by side, each
with its own clientId/clientSecret pair. The token you get back from
POST /api/v1/auth/token carries that environment as a signed claim; you do not, and cannot,
choose or override it per-request. A staging credential’s token only ever works against the
staging host; the same is true for production.
This means the safest way to think about environment selection is: pick the right host for the credential you’re using, not “pick an environment and hope the credential matches” — a mismatch is rejected outright rather than silently routed to the wrong place.
Base URLs
Section titled “Base URLs”| Environment | Base URL |
|---|---|
| Production | https://api-omni.linra.net |
| Staging | https://api-omni-stg.linra.net |
Both hosts are live and serve the identical /api/v1 surface described in this document. The
Location header on a 201 always names the host you called (e.g.
https://api-omni-stg.linra.net/api/v1/scent/orders/{orderId} on staging).
The Portal dashboard is one address for both environments: https://omni-portal.linra.net. Pick Staging or Production in its Environment selector before you generate or manage credentials.
Recommended integration flow
Section titled “Recommended integration flow”- Build and test your entire integration against Staging first — generate a staging credential, exercise every flow (orders, cart, webhooks, returns) there.
- Once you’re satisfied, generate a separate Production credential and point your production deployment at the production host. Do not reuse a staging credential in production, or vice versa — each credential’s environment is fixed at generation and cannot be changed later (rotate to a new credential in the correct environment instead).
- Webhook subscriptions, carts, and orders are all environment-scoped — a staging order will never appear in a production list, and a webhook subscription created against staging never fires for production events.

