> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tagada.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Activate in the CRM

> Apply for TagadaRx, unlock the store, and map your products — from the Tagada dashboard or the API.

# Activating Tagada Rx

Tagada Rx is activated **per store**. On TagadaRx there is **no setup fee** — you apply, we review, and we unlock the store (invite code or your account manager). Until the store is active, case submission is rejected.

Sold price on TagadaRx: **6.9% of GMV**, processing included. Clinician and pharmacy costs pass through at cost — never marked up. There is no per-prescription fee.

```
not_requested ──► pending_payment ──► active
   (apply)            (under review /        (Rx menu appears,
                       invite unlock)          cases can flow)
```

***

## From the CRM (recommended)

<Steps>
  <Step title="Open the Rx page of your store">
    In the CRM, navigate to **your store → Tagada Rx** (`/stores/{storeId}/rx`). Before activation the page shows the activation card.
  </Step>

  <Step title="Pick how you run the brand">
    **Your brand on TagadaRx** is open now — 6.9% of GMV, $0 setup, processing and LegitScript included, min $200k GMV / month. **Standalone** (same stack, you are MoR — 4.9% + \$4,980 setup) is coming soon.
  </Step>

  <Step title="Apply">
    Click **Apply to launch on TagadaRx**. The page switches to *Application under review*.
  </Step>

  <Step title="Unlock">
    We review every application. If you already have an invite code, enter it on that page. Your account manager can also unlock the store.
  </Step>

  <Step title="The Rx menu appears">
    Once active, a **Tagada Rx** section appears in the store sidebar with six tabs: **Overview**, **Cases**, **Products**, **Storefront**, **Commission**, and **Settings**. On **Products** you make exactly two decisions per treatment — sell it or not, and your retail price; the medical questionnaire, clinician review, and pharmacy routing are pre-configured by Tagada (the questionnaire is viewable read-only from each treatment card).
  </Step>
</Steps>

<Note>
  On TagadaRx, unlocking the store also provisions the Rx processing account behind the scenes — no extra onboarding on your side.
</Note>

***

## Wire the clinical configuration

After activation, the store needs its clinical-network configuration before cases can flow. This is done once, usually together with your account manager during onboarding:

* **Network credentials** — issued by the clinical network for your brand (client id/secret, environment id, webhook secret).
* **Brand clinical config** — flips from `draft` to active once credentials are verified.

From the CRM this lives under **Tagada Rx → Settings**. From the API:

```ts theme={null}
await tagada.rx.configureBrandClinical({
  storeId: 'store_xxx',
  credentials: {
    clientId: '…',
    clientSecret: '…',
    webhookSecret: '…',
    externalEnvironmentId: '…',
  },
});
```

***

## Map products to treatments

A product only triggers the Rx flow once it's mapped to a clinical-network **offering** (the network's SKU for a treatment):

<Steps>
  <Step title="CRM">
    **Tagada Rx → Products** → pick a product → set its **Treatment ID** (the network offering id) and the clinical requirements.
  </Step>

  <Step title="Or via API / Node SDK">
    ```ts theme={null}
    await tagada.rx.setProductOffering({
      storeId: 'store_xxx',
      productId: 'product_xxx',
      externalOfferingId: '<network offering UUID>',
      requiresLabs: false,
      requiresIdVerification: true,
      isDeaControlled: false,
    });
    ```
  </Step>

  <Step title="Verify from the storefront side">
    ```bash theme={null}
    curl "https://api.tagada.io/api/public/v1/rx/required-for-product?productId=product_xxx"
    # → { "required": true, "requiresIdVerification": true, ... }
    ```
  </Step>
</Steps>

<Warning>
  `isDeaControlled: true` products are **rejected at case submission in affiliate mode**. Direct mode only.
</Warning>

***

## Launch your storefront

Once active, **Tagada Rx → Storefront** offers two paths:

<CardGroup cols={2}>
  <Card title="Use a template (fastest)" icon="layer-group">
    Pick a [storefront template](/developer-tools/rx/storefront-templates)
    (multi-vertical, plan-first, or quiz-first), add your logo, brand name,
    colors, and subdomain — publishing **clones the plugin instance and
    installs a Funnel v2** on `your-brand.tgdcare.com`. Each step (landing,
    quiz, checkout, offer, thank-you, portal) shows up in the CRM funnel
    builder. Your product catalog and payment flow are wired automatically.
  </Card>

  <Card title="Build your own (Headless SDK)" icon="code">
    Build the storefront on your own stack with the
    [Headless SDK](/developer-tools/rx/headless-sdk), following the
    compliance directives. **The build is still deployed on your Tagada
    subdomain** — LegitScript certification is tied to Tagada-hosted
    domains. Deploying on your own root domain is coming soon (direct
    mode).
  </Card>
</CardGroup>

Switching templates later is safe: republishing swaps the facade on the same
subdomain, same funnel, same cases and patient history.

***

## Checking the state programmatically

```ts theme={null}
const status = await tagada.rx.integrationStatus('store_xxx');
// { state: 'not_requested' | 'pending_payment' | 'active', operatingMode, ... }
```

The same endpoint powers the CRM activation card, so what you see in the dashboard is exactly what the API returns.

***

## Full activation via API only

Everything above the CRM does is available on the merchant API — useful for partners provisioning many brands:

| Step                      | Endpoint                                        | Node SDK                             |
| ------------------------- | ----------------------------------------------- | ------------------------------------ |
| Request activation        | `POST /api/v1/rx/integration/activate`          | `tagada.rx.requestActivation()`      |
| Confirm setup fee (admin) | `POST /api/v1/rx/integration/confirm-setup-fee` | `tagada.rx.confirmSetupFeePaid()`    |
| Clinical config           | `POST /api/v1/rx/brand-clinical-config`         | `tagada.rx.configureBrandClinical()` |
| Product mapping           | `POST /api/v1/rx/product-offerings`             | `tagada.rx.setProductOffering()`     |
| Status                    | `GET /api/v1/rx/integration/status`             | `tagada.rx.integrationStatus()`      |
| Available networks        | `GET /api/v1/rx/networks`                       | `tagada.rx.listNetworks()`           |
