Skip to content

PharmaOne API overview

Partner-facing HTTP API for integrating external systems with PharmaOne Manager.

Configure credentials in Manager → Org Settings → Integrations (API keys + webhook subscriptions).

Architecture

sequenceDiagram
    participant Partner
    participant API as PharmaOne API
    participant Backend as PharmaOne Backend

    Partner->>API: POST /v2/.../auth/token + apikey
    API->>Backend: Validate API key
    Backend->>Partner: JWT (1h, scoped)

    Partner->>API: GET /v2/.../orders + Bearer JWT
    API->>Backend: Validate token + scopes
    Backend->>Partner: JSON response

    Partner->>API: POST /v1/.../order-requests + apikey
    API->>Backend: Validate API key
    Backend->>Partner: order request id

API versions

Version Auth Use case
v2 JWT (from API key exchange) Full read/write integration with scopes
v1 order-requests API key only Simple order submission without JWT
ExternalTelemedicineConnector API key via shop URL Telemedicine partners — shop proxy only

External Telemedicine Connector

For telemedicine and e-prescription platforms, org owners often issue credentials as shop URL + API key without exposing Manager routes.

Method Path Auth
POST https://{shop-domain}/api/v1/external-order apikey header

The shop injects org_id and shop_id; the payload matches v1 order-requests. Full guide: External Telemedicine Connector.

Base URLs

Environment Host
Production https://manager.prod.pharmaone.shop
Sandbox Provided by your pharmacy contact

Complete route map

Authentication

Method Path Auth Scope
POST /api/v2/public/orgs/{orgId}/auth/token API key

v2 — JWT routes

Method Path Scope
GET /shops products.read
GET /products?shop_id= products.read
GET /products/{p1Id}?shop_id= products.read
POST /products/add-to-inventory products.write
PUT /products/{p1Id} products.write
GET /inventory inventory.read
POST /inventory/adjust inventory.write
GET /inventory/{p1Id}/log inventory.read
GET /inventory/{p1Id}/history inventory.read
POST /shops/attach-product products.write
POST /shops/detach-product products.write
POST /shops/product-overrides products.write
GET /reports/stats reports.read
GET /reports/product-performance reports.read
GET /reports/product-sales reports.read
GET /reports/pharmaone reports.read
GET /orders orders.read
GET /orders/{orderId} orders.read
POST /orders orders.write
PUT /orders/{orderId} orders.write
PATCH /orders/{orderId}/status orders.write
POST /order-requests order_requests.write
GET /prescriptions prescriptions.read
GET /prescriptions/{id} prescriptions.read
POST /prescriptions prescriptions.write

All v2 paths are prefixed with /api/v2/public/orgs/{orgId}/.

v1 — API key only

Method Path
POST /api/v1/public/orgs/{orgId}/order-requests

Next steps