Introduction
The Linra Omni vendor-facing API — reachable through the dedicated vendor Gateway's `/api/v1`
The Linra Omni vendor-facing API — reachable through the dedicated vendor Gateway’s /api/v1
facade (src/ApiGateway/Linra.Omni.VendorGateway/appsettings.json, ReverseProxy:Routes, the
vendor-*-v1-route family). Every path in this document is a real, currently-deployed
vendor-reachable route; this document is GENERATED — see tools/openapi-spec-gen/ and do not
hand-edit vendor-openapi.json.
Base URL
Section titled “Base URL”| Environment | URL |
|---|---|
| Production — the vendor Gateway’s own dedicated domain, separate from the partner Gateway. | https://api-omni-vendors.linra.net |
| Staging — test here first with a Staging credential. | https://api-omni-vendors-stg.linra.net |
| Local development (vendor Gateway default port) | http://localhost:5299 |
Authentication
Section titled “Authentication”A vendor access token from POST /api/v1/auth/token (audience vendor-api, 5-minute lifetime, capability-scoped).
See the Authentication guide for the full exchange flow.
Rate limits & errors
Section titled “Rate limits & errors”Resources
Section titled “Resources”Platform
Section titled “Platform”| Resource | Description |
|---|---|
| Authentication | Credential exchange for a short-lived, capability-scoped vendor access token. |
| Profile | Read your own vendor profile. Read-only — there is no write path on this API at any capability level; profile/VAT edits are internal-admin-only. |
| Credentials | List, generate, activate/deactivate, and revoke your own API credentials. Writes require the Account capability. |
| Resource | Description |
|---|---|
| Offers | Submit and edit product offers (requires the Offers capability). |
| Cost | Push cost or sale-price changes for your own offers (requires the Cost capability). Which of the two applies is your own agreement’s pricing model, resolved server-side — see the Agreement tag. |
| Agreement | Read your own commercial agreement — CostPlusMargin (“Model 1”, you set the cost, Linra adds a markup) or PercentageOfSale (“Model 2”, you set the final sale price, Linra + the reselling partner deduct a percentage). Capability-free — any authenticated credential may read it. |
| Stock | Push declared availability/quantity (requires the Stock capability). |
| Orders | Poll your assigned fulfilment groups and push fulfilment status (requires the Orders capability). |
| Returns | Confirm receipt of a return shipped directly to you, start inspecting it, upload evidence, and propose an outcome (requires the Orders capability). Reaches ONLY a return request whose destination is your own vendor id — Linra’s assessment is always decisive; your proposal is never authoritative. |
| Webhooks | Manage webhook subscriptions and inspect delivery history. Listing, reading, updating, deactivating, deleting, test-firing, and reading deliveries for an already-owned subscription require NO capability at all — ownership is the only gate. The capability required to SUBSCRIBE TO an event type follows that event type’s own natural owner (see the event catalogue) — checked per event type on create/update, never a single fixed capability for the whole door. |

