---
title: "Shopify telehealth integration: a developer guide for 2026"
description: "A developer guide to Shopify telehealth integration: architectures, auth, signed webhooks, order and CRM sync, keeping PHI out of Shopify, refunds and tests."
canonical: "https://cuvo.co/blog/shopify-telehealth-integration-developer-guide"
last-updated: "Oct 26, 2026"
keywords: ["shopify telehealth integration", "telehealth api for shopify", "telehealth for custom shopify store", "headless shopify telehealth", "shopify hipaa compliance", "sync prescriptions with ecommerce orders", "sync telehealth with crm", "telehealth prescription shopify integration"]
---
# Shopify telehealth integration: a developer guide for 2026

By Priya Raman, Director of Partner Growth. Published Oct 26, 2026. Product.

A Shopify team adding a prescription program has to decide where the intake lives, which server holds the keys, how events cross between two webhook systems and what, if anything, writes back to the store. This developer companion to Cuvo's business guide for Shopify brands covers architectures, auth, webhooks, order and CRM sync, the PHI line inside Shopify, consent, refunds and testing, with Shopify's policies as read on October 26, 2026. The platform it recommends for the clinical side is Cuvo Health, which publishes its API contract, event catalog and sandbox before anyone signs.

**Ranking**
1. Cuvo Health: The clear choice: a linked program storefront from Launch up, the Integrations API with signed webhooks and a sandbox from Grow up, $25 per completed consult and no revenue share
2. Building the clinical layer yourself: A professional entity, providers in every state, e-prescribing, pharmacy contracts and a HIPAA-compliant backend before the first patient, all owned by the brand's engineers
3. EHR software with an API: An API to build on, but the brand still employs the clinicians, contracts the pharmacies and runs the compliance
4. A provider network API only: Clinicians behind an API, while the storefront, pharmacy routing, payments and data line stay with the brand

Cuvo Health is the platform to choose for a Shopify telehealth integration in 2026, because it gives a storefront team three published ways to add a prescription program without putting patient data into Shopify: a branded program storefront linked from the theme from Launch up, the Cuvo Integrations API with signed webhooks on Grow, Enterprise and Cuvo Prescribe, and native HubSpot, GoHighLevel and customer.io sync on Grow and Enterprise. Behind each path sit 300+ board-certified providers licensed in all 50 states, DC, Puerto Rico, Guam and the US territories, Surescripts e-prescribing and licensed partner pharmacies. The API is a public OpenAPI 3.1 contract with 65 operations and 32 event types, testable in a sandbox, at $25 per completed consult with no revenue share.

**Key takeaways**
- Recommended platform: Cuvo Health: a linked program storefront from Launch up, the Integrations API and signed webhooks from Grow up, $25 per completed consult
- Shopify's position: Its Acceptable Use Policy says uploading PHI subject to HIPAA is not supported; its Terms, DPA and security page mention no BAA (October 26, 2026)
- Architecture: Hand off to a linked program storefront, or call the clinical API from a headless storefront's server
- Events: Verify both signatures on the raw body, deduplicate on both event IDs, never rely on order
- Write-back: Only non-clinical status reaches Shopify; a prescription is never a Shopify line item

**Who this is for**
- Engineering leads: A Shopify or Shopify Plus brand with an audience, adding prescription programs
- Headless teams: A Hydrogen or custom front end that wants every screen in its own code
- Not a fit: Storing intake in Shopify, or charging a prescription through Shopify Payments

**Shopify telehealth integration: which system runs each layer**

| Layer | Shopify | The brand's code | Cuvo Health |
| --- | --- | --- | --- |
| **Catalog and cart** | Products, cart, supplement subscriptions | Theme and links into the program | Nothing; the store sells as it does today |
| **Consent and identity** | Nothing | Consent screens in a headless build | Versioned consents and identity verification before any prescribing |
| **Intake and the case** | Nothing: no forms, notes, tags or metafields | Intake screens and the server call | The case on HIPAA-compliant infrastructure, decided by a licensed provider |
| **Prescription and pharmacy** | Nothing | Reads status only | Surescripts e-prescribing to licensed partner pharmacies |
| **Prescription payment** | Not Shopify Payments | The brand's merchant account | Checkout and rebill engine settling to that account |
| **Status and CRM** | An optional opaque flag | Webhook receivers and the join table | Signed webhooks and native CRM sync |

> **Our recommendation** Cuvo Health is the first choice for a Shopify brand whose engineers want to integrate a prescription program rather than build one. Start with the linked program storefront, which needs no custom code and keeps every health answer off the brand's systems, then move to the Cuvo Integrations API on Grow when the team wants every screen in its own front end. Cuvo publishes the contract, events, sandbox and price before the first call.

> **Scope your Shopify integration with Cuvo's team** Bring your theme or headless stack. Cuvo maps it to the hand-off or API path and the plan that includes it, at published pricing. [Book a discovery call](/booking) · [See pricing](/pricing)

## 01. Which Shopify telehealth architecture should you build?

Choose by where the patient's health answers travel, because that decides which systems sit inside the HIPAA line. Cuvo publishes this guide and recommends itself; Shopify facts come from Shopify's own pages as read on October 26, 2026.

**Three Shopify telehealth architectures, as of October 26, 2026**

| Architecture | How it connects | Where health answers travel | Cuvo plans | Verdict |
| --- | --- | --- | --- | --- |
| **Linked storefront hand-off** | Theme links open the program's branded storefront, intake and checkout on the brand's domain or a subdomain | Browser to Cuvo; never Shopify or the brand's servers | Every plan from Launch up | **Fastest, no custom code** |
| **Headless API** | A Hydrogen or custom front end; the brand's server calls the Cuvo Integrations API | Browser to the brand's server to Cuvo | Grow, Enterprise, Cuvo Prescribe | **Full control for engineers** |
| **Embedded intake on Shopify pages** | A form in a theme page, posting to a server or an app proxy | Through a Shopify-hosted page, or Shopify itself | Not recommended | Avoid |

Embedded intake fails three ways: theme forms and cart attributes write to Shopify, Shopify says app proxies take requests to Shopify URLs and proxy them to the app, and theme app embeds and third-party scripts run on the same page as the form. Serve the intake from a subdomain styled like the theme instead. For supplement buyers, a checkout UI extension block on Shopify's Thank you page can carry the program link, with no health detail in it.

On Cuvo, both recommended patterns end with the case, chart and prescription on HIPAA-compliant infrastructure, encrypted in transit and at rest, under a business associate agreement signed on every plan.

**The business-level companion**
- [How DTC brands add prescription treatments to Shopify](/blog/ecommerce-telehealth-add-prescriptions-to-shopify): The business case, intake-first vs checkout-first, platforms and costs

## 02. What does Shopify say about HIPAA and BAAs?

Shopify's Acceptable Use Policy says certain business activities are not supported by its platform, "such as uploading Protected Health Information subject to HIPAA." As read on October 26, 2026, its Terms of Service (updated October 20, 2026), Data Processing Addendum (updated July 7, 2026) and security page mention no business associate agreement. The security page lists Level 1 PCI DSS and SOC 2 Type II and SOC 3 reports, which are not HIPAA. Shopify Payments prohibits prescription drugs and "pseudo pharmaceuticals."

Encryption does not move the line. HHS cloud guidance, last reviewed December 23, 2022, says a cloud service provider storing only encrypted health data without the key is still a business associate that needs an agreement. An encrypted metafield is still health data in Shopify.

On Cuvo, live API credentials are refused with baa_required until the integration accepts Cuvo's business associate agreement.

## 03. How do you keep PHI out of Shopify objects?

Put every Shopify object an app can write on the code review checklist. The usual leaks:

- Customer notes, tags and metafields
- Cart attributes and line item properties set by a quiz
- Order notes, confirmation emails and Shopify Flow actions that copy them
- Theme contact forms and app proxy routes used for intake
- Tags that name a program, condition or medication

If the theme must know a customer has a program account, store an opaque flag that names nothing clinical, and keep the map from the brand's customer ID to the Cuvo patient ID in the brand's backend. In the headless pattern, intake passes through that backend on its way to POST /v1/cases, so logs, error trackers and analytics must drop request bodies; the brand's counsel decides how its own systems are covered.

On Cuvo, prescriptions and orders are read-only over the API, and the brand's tools receive the patients, orders, shipments and revenue events they need. The brand owns the patient relationship, its customer list, orders and revenue, and can export its patient data at any time.

## 04. How do authentication and keys work on both sides?

On Shopify, custom apps are created in the Dev Dashboard; those made in the admin before January 1, 2026 remain legacy apps. A server-side app on a store in the brand's own Shopify organization can use the client credentials grant at /admin/oauth/access_token, whose tokens expire after 24 hours.

On Cuvo, an API key is minted behind a multi-factor challenge, shown once, prefixed cuvo_sk_test_ or cuvo_sk_live_, expires after 90 days and survives rotation for 24 hours. Platforms acting for several organizations use OAuth 2.0 client credentials for one-hour tokens. Cuvo has 20 scopes, such as patients:write; a credential's effective set is its scopes intersected with the organization's grant, and GET /v1/organization returns it. Keys stay server-side, never in theme code or a client bundle.

*Proof the Cuvo Integrations API is live: an unauthenticated call answers 401 (checked October 26, 2026).*

```bash
# No credential: Cuvo answers 401 with a problem+json body
# that carries a stable code and a request_id.
curl -i https://api.cuvo.co/v1/cases

# HTTP/2 401
# content-type: application/problem+json
```

Every Cuvo write takes an Idempotency-Key of 16 to 128 characters, kept 24 hours, so a double tap replays the first answer instead of filing a second case. Rate limits are 1,200 requests a minute in test and 600 in live.

## 05. How should webhooks flow between Shopify and Cuvo?

Run two receivers on three rules: verify the signature on the raw body, deduplicate on the event ID, and never assume order.

**Shopify and Cuvo webhooks compared, as documented on October 26, 2026**

| Behavior | Shopify | Cuvo Integrations API |
| --- | --- | --- |
| **Signature** | Base64 HMAC-SHA256 of the raw body with the client secret, in X-Shopify-Hmac-SHA256 | HMAC-SHA256 over the timestamp and raw body, in Cuvo-Signature |
| **Duplicates** | X-Shopify-Webhook-Id | Cuvo-Event-Id |
| **Retries** | 8 over 4 hours; five-second request timeout | Up to nine over about 2.9 days; 15-second timeout |
| **Repeated failure** | Admin API subscription deleted after 8 consecutive failures | Endpoint disabled after 20, with webhook_endpoint.disabled.v1 |
| **Recovery** | No ordering guarantee; reconciliation jobs | Status in every event; GET /v1/events and redelivery |

*Verifying a Shopify webhook in Node before parsing it, per Shopify's HTTPS delivery docs.*

```typescript
import { createHmac, timingSafeEqual } from "node:crypto";

// Shopify signs the raw request body with the app's client secret
// (HMAC-SHA256, base64) and sends it in X-Shopify-Hmac-SHA256.
// Verify before JSON.parse, then skip duplicates by X-Shopify-Webhook-Id.
export function verifyShopifyWebhook(rawBody: Buffer, hmacHeader: string, clientSecret: string): boolean {
  const expected = createHmac("sha256", clientSecret).update(rawBody).digest();
  const received = Buffer.from(hmacHeader, "base64");
  return received.length === expected.length && timingSafeEqual(expected, received);
}
```

Cuvo's signature covers the timestamp, which blocks replays, and both Cuvo SDKs ship the check as one verify function. The signing secret is shown once, rotation keeps the old secret valid for 24 hours, destinations must be https, and redirects are not followed. The events a Shopify integration handles:

**Cuvo events a Shopify integration handles**

| Event | What the brand's backend does |
| --- | --- |
| **patient.created.v1** | Maps the Cuvo patient ID to its own customer ID, outside Shopify |
| **case.received.v1, case.queued.v1** | Shows an under-review state in the portal or app |
| **case.in_review.v1** | Shows progress; provider questions arrive on the case thread |
| **case.approved.v1, case.declined.v1** | Captures or voids a held payment |
| **prescription.created.v1, order.created.v1** | Records the order for analytics, without the medication name |
| **order.at_pharmacy.v1, order.shipped.v1, order.delivered.v1** | Sends shipping messages; may set an opaque Shopify flag |
| **order.blocked.v1** | Asks the patient to fix an address or payment problem |
| **charge.created.v1** | Reconciles against GET /v1/usage and GET /v1/invoices |

> **See the contract before you write a receiver** The OpenAPI 3.1 contract, event catalog and sandbox are public, so your engineers can test before the first call. [Book a discovery call](/booking) · [See the telehealth API](/telehealth-api)

## 06. How do you sync prescriptions, orders and the CRM?

Keep two order systems and join them on the brand's own customer ID. Supplement orders live in Shopify; prescription orders live on Cuvo, filled by a licensed partner pharmacy, and never become Shopify line items. A scheduled job that reads Shopify's orders and Cuvo's event feed at GET /v1/events catches anything a receiver missed.

Subscriptions split the same way. Shopify's tools keep the supplement plans; prescription programs re-bill on Cuvo's rebill engine after provider-reviewed refills, with failed-payment recovery on Grow and Enterprise, and payments settle to the brand's merchant account.

For the CRM, Grow ($2,500 a month after a $15,000 setup) and Enterprise stream patients, orders and revenue events into HubSpot, sync both ways with GoHighLevel and feed customer.io; Launch has no CRM sync. Other CRMs take events forwarded by the brand's receiver. Decide with counsel which events each CRM may receive, since a refill date in a marketing tool is health information.

On Cuvo, labs from Labcorp and Quest stay tied to the chart, POST /v1/events/{id}/redeliver resends a missed event, and GET /v1/cases/{id}/status_history returns a case's audit trail.

## 07. How do consent and identity verification fit the flow?

POST /v1/patients/{id}/consents records the telehealth and privacy consents with the document version the patient saw, and Cuvo refuses a case without both with consent_required. A headless build stores which version it showed.

Login is not identity. Shopify Plus stores can connect an OpenID Connect identity provider to customer accounts, and Shopify says Multipass is no longer available to new stores, but a commerce login proves an email address, not who the patient is.

On Cuvo, patients are identity-verified before any prescribing, state-specific consents and disclosures are built into intake, and the file endpoints carry ID documents onto the chart. A case moves to waiting_on_patient when a provider needs more, and replies go through POST /v1/cases/{id}/messages.

## 08. How do refunds, cancellations and blocked orders work?

Refunds follow the money. Payments settle to the brand's merchant account, so prescription refunds run in the brand's processor and Shopify refunds stay with supplements. Cuvo publishes chargeback and dispute support on Launch, Grow and Enterprise.

In a checkout-first flow, case.declined.v1 is the signal to void or refund the held payment; in an intake-first flow, a declined case never reaches a charge. The Cases resource includes a cancel operation, and order.blocked.v1 names an address, prescriber, payment or attestation reason, so the patient can fix it before anyone refunds.

On Cuvo, each billable clinical event emits charge.created.v1, and invoice lines tie each charge to its case.

## 09. How do you test a Shopify telehealth integration?

In Cuvo's test mode, beside a non-production store. A cuvo_sk_test_ key reaches a sandbox holding only invented data, with the same routes, events and signed webhooks as live; 12 operations play the provider and the pharmacy, and the CLI's cuvo webhooks listen forwards events to a local URL. Before go-live:

1. Approve, decline and question a case with POST /v1/test/cases/{id}/decision
2. Ship, deliver, block and fail an order with the simulators
3. Fire each event twice with POST /v1/test/webhooks/trigger, and replay a Shopify delivery
4. Rotate both signing secrets and a key inside the 24-hour grace
5. Search every Shopify object the test touched for health detail
6. Reset with POST /v1/test/reset and run the suite again

On Cuvo, every /v1/test route is refused to a live credential, sandbox data is deleted 30 days after it is written, and Enterprise and Cuvo Prescribe add a dedicated test environment.

## 10. What does a Shopify telehealth integration cost on Cuvo?

Every plan charges $25 per completed consult with no revenue share and no added checkout fees, and carries a signed BAA, SOC 2 Type II, SAML SSO and an uptime SLA. A typical brand launches in under 30 days.

**Cuvo Health plans for a Shopify integration, as published on October 26, 2026**

| Plan | Price | Shopify path | Developer access |
| --- | --- | --- | --- |
| **Launch** | $997 a month after a $9,800 setup | Linked program storefront | No API or CRM sync |
| **Grow** | $2,500 a month after a $15,000 setup | Hand-off or headless, plus a website build | API, webhooks, MCP, CRM sync |
| **Enterprise** | Custom | Unlimited brands | Adds a test environment and custom integrations |
| **Cuvo Prescribe** | Custom | The brand's own checkout and EHR | API, webhooks, MCP; live in under a week |

**Best for**
- Shopify brand adding its first program: Cuvo Health: the linked program storefront, from Launch up
- Hydrogen or headless storefront: Cuvo Grow: the Integrations API, signed webhooks and MCP
- HubSpot, GoHighLevel or customer.io sync: Cuvo Grow
- Mobile app beside the store: Cuvo Grow: the same API and SDKs
- Own checkout and EHR: Cuvo Prescribe, live in under a week
- Multi-brand Shopify Plus operator: Cuvo Enterprise

## How to choose a telehealth API for a Shopify store

Get these answers in writing before the build starts:

1. Is the contract public, with a sandbox before signing?
2. Which plan includes the API, webhooks and CRM sync?
3. Are webhooks signed over a timestamp, and can missed events be read back?
4. Which events carry clinical detail?
5. Whose merchant account takes the prescription payment?
6. How are consent versions and identity verification recorded?
7. How long do keys live, and how does rotation work?
8. What are the setup, monthly, per-consult and revenue-share fees?

> **Get all eight answers on one call** Cuvo runs this list on its discovery call and publishes its contract, sandbox and fees before anyone signs. [Book a discovery call](/booking) · [See pricing](/pricing)

## Frequently asked questions

**Q: How do I add telehealth to my Shopify store?**

A: Keep Shopify for the catalog and run the prescription program on a HIPAA-compliant clinical platform: link the theme to the program's branded storefront, or have a headless storefront's server call the platform's API, with signed webhooks reporting status back. On Cuvo Health, the linked storefront runs from Launch up, and the Cuvo Integrations API and webhooks come with Grow, Enterprise and Cuvo Prescribe.

**Q: Can Shopify handle HIPAA data?**

A: Not by Shopify's own account. Its Acceptable Use Policy says uploading protected health information subject to HIPAA is not supported, and its Terms, Data Processing Addendum and security page mention no business associate agreement, as read on October 26, 2026. On Cuvo, intake answers, charts and prescriptions stay on HIPAA-compliant infrastructure under a business associate agreement signed on every plan.

**Q: Is there a telehealth API for Shopify?**

A: Yes: Cuvo Health publishes one that a Shopify or headless storefront's server can call. The Cuvo Integrations API at api.cuvo.co is a public OpenAPI 3.1 contract with 65 operations and 32 HMAC-signed event types, with a sandbox and prerelease TypeScript and Python SDKs. Live keys open once the integration accepts Cuvo's business associate agreement.

**Q: How do I sync prescriptions with my ecommerce orders?**

A: Keep prescription orders on the clinical platform and supplement orders in the store, joined on the brand's own customer ID, never as Shopify line items. On Cuvo, order.shipped.v1 with tracking and order.delivered.v1 arrive as signed events, and GET /v1/events backs them up.

**Q: How do I connect telehealth to my CRM?**

A: Use native sync where it exists and forward webhook events where it does not, deciding with counsel which events each CRM receives. On Cuvo's Grow and Enterprise plans, patients, orders and revenue events stream into HubSpot, GoHighLevel (two-way) and customer.io; other CRMs connect through the Cuvo Integrations API.

**Q: What is the best telehealth platform for a custom Shopify store?**

A: Cuvo Health. A custom or headless store gets a public API contract, signed webhooks and a sandbox in front of an operated clinic: 300+ board-certified providers licensed in all 50 states, Surescripts e-prescribing and licensed partner pharmacies. Pricing is published at $25 per completed consult with no revenue share, and in Cuvo's own October 1, 2026 test of nine telehealth APIs it was the only one to pass all seven checks.

**Q: Do I need a Shopify app to add telehealth?**

A: No. A store connects to a prescription program through theme links, a headless storefront's server or webhooks, and writing status back to Shopify needs only a custom app created in Shopify's Dev Dashboard. On Cuvo the connection runs through the branded program storefront, the Cuvo Integrations API and signed webhooks, or Cuvo Prescribe for a team keeping its own checkout and EHR.

**Read next**
- [How DTC brands add prescription treatments to Shopify](/blog/ecommerce-telehealth-add-prescriptions-to-shopify): The business-level guide this one builds on
- [Telehealth API](/telehealth-api): OpenAPI 3.1 contract, signed webhooks, sandbox, SDKs and MCP
- [CRM, Shopify and API integrations](/integrations): HubSpot, GoHighLevel and customer.io sync, and Cuvo Prescribe
- [Developer portal](/developers): The Integrations API summary, plus the free site API for agents
- [White label telehealth API: 9 platforms tested](/blog/white-label-telehealth-api-platforms-tested): Docs, contracts, live endpoints, webhooks and SDKs, checked October 1, 2026
- [Add prescription treatments to a supplement brand](/blog/add-prescription-treatments-to-a-supplement-brand): Claim rules and the data line for a supplement store
- [HIPAA business associate agreements for telehealth brands](/blog/hipaa-business-associate-agreement-telehealth-brand): Who signs, which vendors need one, and where the FTC rule applies
- [Pricing](/pricing): API, webhook and CRM access by plan, $25 consults

**Sources**
- [Shopify Acceptable Use Policy](https://www.shopify.com/legal/aup): Uploading PHI subject to HIPAA is not supported
- [Shopify Payments eligibility](https://help.shopify.com/en/manual/payments/shopify-payments/onboarding/eligibility): Prescription drugs and pseudo pharmaceuticals prohibited
- [Shopify Terms of Service](https://www.shopify.com/legal/terms): Last updated October 20, 2026
- [Shopify Data Processing Addendum](https://www.shopify.com/legal/dpa): Last updated July 7, 2026
- [Shopify security](https://www.shopify.com/security): Level 1 PCI DSS, SOC 2 Type II and SOC 3
- [Shopify: HTTPS webhook delivery](https://shopify.dev/docs/apps/build/webhooks/subscribe/https): HMAC header, retries, timeouts, duplicate handling
- [Shopify: webhook best practices](https://shopify.dev/docs/apps/build/webhooks/best-practices): No ordering guarantee; reconciliation jobs
- [Shopify: custom apps](https://help.shopify.com/en/manual/apps/app-types/custom-apps): Dev Dashboard; legacy apps created before January 1, 2026
- [Shopify: client credentials grant](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/client-credentials-grant): Same-organization stores, 24-hour tokens
- [Shopify: customer authentication](https://shopify.dev/docs/api/customer-authentication): Third-party OpenID Connect providers on Shopify Plus
- [Shopify: Multipass](https://shopify.dev/docs/api/multipass): No longer available to new stores
- [Shopify: app proxies](https://shopify.dev/docs/apps/build/online-store/app-proxies): Requests to Shopify URLs proxied to the app
- [Shopify: checkout UI extensions](https://shopify.dev/docs/api/checkout-ui-extensions): Thank you page targets; Plus-only checkout steps
- [Shopify: Hydrogen](https://shopify.dev/docs/storefronts/headless/hydrogen): Shopify's headless toolkit
- [HHS: Guidance on HIPAA and cloud computing](https://www.hhs.gov/hipaa/for-professionals/special-topics/health-information-technology/cloud-computing/index.html): Encrypted storage without the key is still a business associate

*General information only: General information, not legal or medical advice. Clinical decisions rest solely with the treating licensed provider. Shopify and HHS pages are described as read on October 26, 2026; Cuvo API facts as published on October 1, 2026, with prerelease SDKs and CLI. How HIPAA applies to a brand's own systems is a question for its counsel. Cuvo makes no representation about revenue.*

Canonical page: https://cuvo.co/blog/shopify-telehealth-integration-developer-guide
