{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid"
}
}
{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid"
}
}
{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid"
}
}
{
"error": {
"code": "payout_setup_incomplete",
"message": "Complete your payout setup before making your store live"
}
}
{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid"
}
}
{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid"
}
}
Storefront
Update storefront settings
Partial update of storefront settings. Only the supplied fields change. Requires the shop:write scope. Setting is_enabled=true requires the clinic to be payout-eligible. If not, this returns 422 with code payout_setup_incomplete, and Routable payout onboarding is automatically started (the clinic’s admin receives an email + an in-app onboarding link). Poll GET /shop for the payout status; once payout_eligible is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to is_enabled=true, not to headline, welcome_message, allow_rnd, or is_enabled=false.
Storefront settings for your clinic's patient shop.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"VitaRelay","colors":{"primary":"#2266E6","light":"#4DA6FF","dark":"#071B3A"},"logo":{"light":"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026auto=format\u0026n=WXEmFrJi4K7tSXcf\u0026q=85\u0026s=dad2bdd7a33cbbcf4acf3c514efe4047","dark":"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo-light.png?fit=max\u0026auto=format\u0026n=WXEmFrJi4K7tSXcf\u0026q=85\u0026s=840ddd8ffac0c531b6eeff031de0f833"},"favicon":"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026auto=format\u0026n=WXEmFrJi4K7tSXcf\u0026q=85\u0026s=dad2bdd7a33cbbcf4acf3c514efe4047","api":{"openapi":"openapi.yaml","playground":{"display":"interactive"},"mdx":{"auth":{"method":"bearer","name":"Authorization"},"server":"https://vitarelay.com/api/public/v1"}},"navbar":{"links":[],"primary":{"type":"button","label":"Book a Call","href":"https://vitarelay.com/contact"}},"footer":{"socials":{"website":"https://vitarelay.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vitarelay","hasAudioNarration":false,"actualSubdomain":"vitarelay","customDomains":["api.vitarelay.com"],"gitSource":{"type":"github","owner":"pet3r96","repo":"vr-main","deployBranch":"main","contentDirectory":"docs/vitarelay-docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af62992fc4ef25324e97a40","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"Documentation","count":127},{"language":"default","tag":"API Reference","count":97},{"language":"default","tag":"VitaClinic API","count":77},{"language":"default","tag":"Pharmacy API","count":25},{"language":"default","tag":"Partner API","count":20},{"language":"default","tag":"Getting Started","count":17},{"language":"default","tag":"Patients","count":13},{"language":"default","tag":"Customers API Reference","count":10},{"language":"default","tag":"Inventory API Reference","count":10},{"language":"default","tag":"Orders","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/storefront/update-storefront-settings","slug":"/api-reference/storefront/update-storefront-settings","pageMetadata":{"title":"Update storefront settings","description":"Partial update of storefront settings. Only the supplied fields change. Requires the `shop:write` scope. Setting `is_enabled=true` requires the clinic to be payout-eligible. If not, this returns 422 with code `payout_setup_incomplete`, and Routable payout onboarding is automatically started (the clinic's admin receives an email + an in-app onboarding link). Poll GET /shop for the `payout` status; once `payout_eligible` is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to `is_enabled=true`, not to `headline`, `welcome_message`, `allow_rnd`, or `is_enabled=false`.","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /shop","href":"/api-reference/storefront/update-storefront-settings","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Partial update of storefront settings. Only the supplied fields change. Requires the \", _jsx(_components.code, {\n children: \"shop:write\"\n }), \" scope. Setting \", _jsx(_components.code, {\n children: \"is_enabled=true\"\n }), \" requires the clinic to be payout-eligible. If not, this returns 422 with code \", _jsx(_components.code, {\n children: \"payout_setup_incomplete\"\n }), \", and Routable payout onboarding is automatically started (the clinic’s admin receives an email + an in-app onboarding link). Poll GET /shop for the \", _jsx(_components.code, {\n children: \"payout\"\n }), \" status; once \", _jsx(_components.code, {\n children: \"payout_eligible\"\n }), \" is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to \", _jsx(_components.code, {\n children: \"is_enabled=true\"\n }), \", not to \", _jsx(_components.code, {\n children: \"headline\"\n }), \", \", _jsx(_components.code, {\n children: \"welcome_message\"\n }), \", \", _jsx(_components.code, {\n children: \"allow_rnd\"\n }), \", or \", _jsx(_components.code, {\n children: \"is_enabled=false\"\n }), \".\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update storefront settings","description":"Partial update of storefront settings. Only the supplied fields change. Requires the `shop:write` scope. Setting `is_enabled=true` requires the clinic to be payout-eligible. If not, this returns 422 with code `payout_setup_incomplete`, and Routable payout onboarding is automatically started (the clinic's admin receives an email + an in-app onboarding link). Poll GET /shop for the `payout` status; once `payout_eligible` is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to `is_enabled=true`, not to `headline`, `welcome_message`, `allow_rnd`, or `is_enabled=false`.","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /shop","href":"/api-reference/storefront/update-storefront-settings","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Storefront"],"summary":"Update storefront settings","operationId":"updateShopSettings","description":"Partial update of storefront settings. Only the supplied fields change. Requires the `shop:write` scope. Setting `is_enabled=true` requires the clinic to be payout-eligible. If not, this returns 422 with code `payout_setup_incomplete`, and Routable payout onboarding is automatically started (the clinic's admin receives an email + an in-app onboarding link). Poll GET /shop for the `payout` status; once `payout_eligible` is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to `is_enabled=true`, not to `headline`, `welcome_message`, `allow_rnd`, or `is_enabled=false`.","requestBody":"84a1b40e-d1ea-41cc-8120-08307bf93cc9","responses":{"200":"6ffece78-cba9-4b70-91d4-74754dee662c","400":"68f1dea3-c1ec-47ab-b581-241df6557f31","401":"3f7ee694-5c7b-449a-86ce-d6f4c19ec8ba","403":"8d12190b-5745-499c-9704-de1b6f3498af","422":"5be3a85a-43ca-496b-81af-c688912992a1","429":"e994e2c9-c0ba-4781-9bf0-0c3107e8179f","500":"2a86a690-a303-42d5-bd8a-f3f94db1c142"},"method":"patch","type":"path","servers":["99e3b59c-dc63-47bf-bffb-070f0be07326"],"security":["dcc604bc-462f-440f-88d7-39631ae87d5c"],"path":"/shop","baseUrlOptions":["https://vitarelay.com/api/public/v1"],"title":"Update storefront settings","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","uniqueKey":"is_enabled","typeLabel":"boolean"},"allow_rnd":{"type":"boolean","uniqueKey":"allow_rnd","typeLabel":"boolean"},"headline":{"oneOf":[{"type":"string","uniqueKey":"headline.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"headline.oneOf.1","typeLabel":"null"}],"uniqueKey":"headline","typeLabel":"string | null"},"welcome_message":{"oneOf":[{"type":"string","uniqueKey":"welcome_message.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"welcome_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"welcome_message","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"is_enabled":true,"allow_rnd":true,"headline":"\u003cstring>","welcome_message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"6ffece78-cba9-4b70-91d4-74754dee662c":{"description":"The updated settings.","content":{"application/json":{"schema":{"type":"object","properties":{"settings":{"type":"object","description":"Storefront settings for your clinic's patient shop.","properties":{"shop_id":{"type":"string","format":"uuid","uniqueKey":"settings.shop_id","typeLabel":"string\u003cuuid>"},"org_id":{"type":"string","format":"uuid","uniqueKey":"settings.org_id","typeLabel":"string\u003cuuid>"},"is_enabled":{"type":"boolean","description":"When false the patient shop is closed and patients see nothing.","uniqueKey":"settings.is_enabled","typeLabel":"boolean"},"allow_rnd":{"type":"boolean","description":"Allow research-use-only products to be listed.","uniqueKey":"settings.allow_rnd","typeLabel":"boolean"},"headline":{"oneOf":[{"type":"string","uniqueKey":"settings.headline.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"settings.headline.oneOf.1","typeLabel":"null"}],"uniqueKey":"settings.headline","typeLabel":"string | null"},"welcome_message":{"oneOf":[{"type":"string","uniqueKey":"settings.welcome_message.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"settings.welcome_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"settings.welcome_message","typeLabel":"string | null"},"eligibility":{"type":"object","description":"Which product families this clinic may offer to patients.","uniqueKey":"settings.eligibility","typeLabel":"object"}},"uniqueKey":"settings","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"settings":{"shop_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","org_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","is_enabled":true,"allow_rnd":true,"headline":"\u003cstring>","welcome_message":"\u003cstring>","eligibility":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"68f1dea3-c1ec-47ab-b581-241df6557f31":{"description":"Malformed request or invalid path parameter (`invalid_body`, `invalid_id`).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"One of `invalid_body`, `validation_failed`, `unauthorized`,\n`insufficient_scope`, `not_vita_clinic`, `patient_not_found`,\n`product_not_found`, `product_not_allowed`, `duplicate_request`,\n`rate_limited`, `card_required`, `payment_declined`,\n`internal_error`, `not_found`.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}}}},"exampleType":"generated"}},"exampleType":"generated"},"3f7ee694-5c7b-449a-86ce-d6f4c19ec8ba":{"description":"Missing, invalid or revoked API key (`unauthorized`).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"One of `invalid_body`, `validation_failed`, `unauthorized`,\n`insufficient_scope`, `not_vita_clinic`, `patient_not_found`,\n`product_not_found`, `product_not_allowed`, `duplicate_request`,\n`rate_limited`, `card_required`, `payment_declined`,\n`internal_error`, `not_found`.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}}}},"exampleType":"generated"}},"exampleType":"generated"},"8d12190b-5745-499c-9704-de1b6f3498af":{"description":"The key lacks the required scope (`insufficient_scope`) or its\norganization is not an active Vita Clinic (`not_vita_clinic`).\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"One of `invalid_body`, `validation_failed`, `unauthorized`,\n`insufficient_scope`, `not_vita_clinic`, `patient_not_found`,\n`product_not_found`, `product_not_allowed`, `duplicate_request`,\n`rate_limited`, `card_required`, `payment_declined`,\n`internal_error`, `not_found`.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}}}},"exampleType":"generated"}},"exampleType":"generated"},"5be3a85a-43ca-496b-81af-c688912992a1":{"description":"Validation failure. Possible codes: `validation_failed` (bad\nbody) or `payout_setup_incomplete` (store cannot go live until\npayouts are set up — enabling the store auto-starts Routable\npayout onboarding). The gate applies only to `is_enabled=true`.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"One of `invalid_body`, `validation_failed`, `unauthorized`,\n`insufficient_scope`, `not_vita_clinic`, `patient_not_found`,\n`product_not_found`, `product_not_allowed`, `duplicate_request`,\n`rate_limited`, `card_required`, `payment_declined`,\n`internal_error`, `not_found`.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"payout_setup_incomplete","message":"Complete your payout setup before making your store live"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"payout_setup_incomplete","message":"Complete your payout setup before making your store live"}}}},"exampleType":"examples"}},"exampleType":"examples"},"e994e2c9-c0ba-4781-9bf0-0c3107e8179f":{"description":"Per-key rate limit exceeded (`rate_limited`). Default 60 writes/minute.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"One of `invalid_body`, `validation_failed`, `unauthorized`,\n`insufficient_scope`, `not_vita_clinic`, `patient_not_found`,\n`product_not_found`, `product_not_allowed`, `duplicate_request`,\n`rate_limited`, `card_required`, `payment_declined`,\n`internal_error`, `not_found`.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2a86a690-a303-42d5-bd8a-f3f94db1c142":{"description":"Unexpected server error (`internal_error`).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"One of `invalid_body`, `validation_failed`, `unauthorized`,\n`insufficient_scope`, `not_vita_clinic`, `patient_not_found`,\n`product_not_found`, `product_not_allowed`, `duplicate_request`,\n`rate_limited`, `card_required`, `payment_declined`,\n`internal_error`, `not_found`.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"dcc604bc-462f-440f-88d7-39631ae87d5c":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key issued by VitaRelay. Send as `Authorization: Bearer vr_live_…`\n(production) or `Authorization: Bearer vr_test_…` (sandbox).\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"99e3b59c-dc63-47bf-bffb-070f0be07326":{"url":"https://vitarelay.com/api/public/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key issued by VitaRelay. Send as `Authorization: Bearer vr_live_…`\n(production) or `Authorization: Bearer vr_test_…` (sandbox).\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key issued by VitaRelay. Send as `Authorization: Bearer vr_live_…`\n(production) or `Authorization: Bearer vr_test_…` (sandbox).\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"vitarelay","siteName":"VitaRelay","title":"Update storefront settings - VitaRelay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T21:03:23.488Z","originalFileLocation":"api-reference/storefront/update-storefront-settings.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Partial update of storefront settings. Only the supplied fields change. Requires the shop:write scope. Setting is_enabled=true requires the clinic to be payout-eligible. If not, this returns 422 with code payout_setup_incomplete, and Routable payout onboarding is automatically started (the clinic\u0026#x27;s admin receives an email + an in-app onboarding link). Poll GET /shop for the payout status; once payout_eligible is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to is_enabled=true, not to headline, welcome_message, allow_rnd, or is_enabled=false.\">\u003cmeta data-mint-head name=\"application-name\" content=\"VitaRelay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026amp;auto=format\u0026amp;n=WXEmFrJi4K7tSXcf\u0026amp;q=85\u0026amp;s=dad2bdd7a33cbbcf4acf3c514efe4047\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026amp;auto=format\u0026amp;n=WXEmFrJi4K7tSXcf\u0026amp;q=85\u0026amp;s=dad2bdd7a33cbbcf4acf3c514efe4047\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026amp;auto=format\u0026amp;n=WXEmFrJi4K7tSXcf\u0026amp;q=85\u0026amp;s=dad2bdd7a33cbbcf4acf3c514efe4047\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026amp;auto=format\u0026amp;n=WXEmFrJi4K7tSXcf\u0026amp;q=85\u0026amp;s=dad2bdd7a33cbbcf4acf3c514efe4047\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update storefront settings - VitaRelay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Partial update of storefront settings. Only the supplied fields change. Requires the shop:write scope. Setting is_enabled=true requires the clinic to be payout-eligible. If not, this returns 422 with code payout_setup_incomplete, and Routable payout onboarding is automatically started (the clinic\u0026#x27;s admin receives an email + an in-app onboarding link). Poll GET /shop for the payout status; once payout_eligible is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to is_enabled=true, not to headline, welcome_message, allow_rnd, or is_enabled=false.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"VitaRelay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vitarelay.mintlify.site/_mintlify/api/og/v2?division=Storefront\u0026amp;title=Update+storefront+settings\u0026amp;description=Partial+update+of+storefront+settings.+Only+the+supplied+fields+change.+Requires+the+%60shop%3Awrite%60+scope.+Setting+%60is_enabled%3Dtrue%60+requires+the+clinic+to+be+pay\u0026amp;theme=8c0b6cf4340b31a0a73d3428\u0026amp;signature=60d56d04ad1ba7d12207d3f3b4f9f0da270859df1e92939935e39858944eb651\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update storefront settings - VitaRelay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Partial update of storefront settings. Only the supplied fields change. Requires the shop:write scope. Setting is_enabled=true requires the clinic to be payout-eligible. If not, this returns 422 with code payout_setup_incomplete, and Routable payout onboarding is automatically started (the clinic\u0026#x27;s admin receives an email + an in-app onboarding link). Poll GET /shop for the payout status; once payout_eligible is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to is_enabled=true, not to headline, welcome_message, allow_rnd, or is_enabled=false.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vitarelay.mintlify.site/_mintlify/api/og/v2?division=Storefront\u0026amp;title=Update+storefront+settings\u0026amp;description=Partial+update+of+storefront+settings.+Only+the+supplied+fields+change.+Requires+the+%60shop%3Awrite%60+scope.+Setting+%60is_enabled%3Dtrue%60+requires+the+clinic+to+be+pay\u0026amp;theme=8c0b6cf4340b31a0a73d3428\u0026amp;signature=60d56d04ad1ba7d12207d3f3b4f9f0da270859df1e92939935e39858944eb651\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/vitarelay/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"VitaRelay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2266E6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/storefront/update-storefront-settings.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://api.vitarelay.com/#organization\",\"name\":\"VitaRelay\",\"url\":\"https://api.vitarelay.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026auto=format\u0026n=WXEmFrJi4K7tSXcf\u0026q=85\u0026s=dad2bdd7a33cbbcf4acf3c514efe4047\"}},{\"@type\":\"WebSite\",\"@id\":\"https://api.vitarelay.com#website\",\"name\":\"VitaRelay\",\"url\":\"https://api.vitarelay.com\",\"publisher\":{\"@id\":\"https://api.vitarelay.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings#webpage\",\"url\":\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings\",\"name\":\"Update storefront settings\",\"description\":\"Partial update of storefront settings. Only the supplied fields change. Requires the shop:write scope. Setting is_enabled=true requires the clinic to be payout-eligible. If not, this returns 422 with code payout_setup_incomplete, and Routable payout onboarding is automatically started (the clinic's admin receives an email + an in-app onboarding link). Poll GET /shop for the payout status; once payout_eligible is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to is_enabled=true, not to headline, welcome_message, allow_rnd, or is_enabled=false.\",\"dateModified\":\"2026-11-12T21:03:23.488Z\",\"isPartOf\":{\"@id\":\"https://api.vitarelay.com#website\"},\"breadcrumb\":{\"@id\":\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://api.vitarelay.com/api-reference/patients/list-patients\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Storefront\",\"item\":\"https://api.vitarelay.com/api-reference/storefront/retrieve-the-patient-storefront\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update storefront settings\",\"item\":\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings#apireference\",\"headline\":\"Update storefront settings\",\"name\":\"Update storefront settings\",\"description\":\"Partial update of storefront settings. Only the supplied fields change. Requires the shop:write scope. Setting is_enabled=true requires the clinic to be payout-eligible. If not, this returns 422 with code payout_setup_incomplete, and Routable payout onboarding is automatically started (the clinic's admin receives an email + an in-app onboarding link). Poll GET /shop for the payout status; once payout_eligible is true, retry enabling. Building products/bundles and disabling the store are never gated — the gate applies only to is_enabled=true, not to headline, welcome_message, allow_rnd, or is_enabled=false.\",\"url\":\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings\",\"mainEntityOfPage\":{\"@id\":\"https://api.vitarelay.com/api-reference/storefront/update-storefront-settings#webpage\"},\"dateModified\":\"2026-11-12T21:03:23.488Z\",\"publisher\":{\"@id\":\"https://api.vitarelay.com/#organization\"},\"isPartOf\":{\"@id\":\"https://api.vitarelay.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"VitaRelay\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"VitaRelay\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/storefront/update-storefront-settings.md","siteName":"VitaRelay","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","tabs":[{"tab":"VitaClinic API","icon":"hospital","groups":[{"group":"Getting Started","pages":[{"title":"VitaClinic API Overview","href":"/getting-started/overview"},{"title":"Quickstart","href":"/getting-started/quickstart"},{"title":"Authentication","href":"/getting-started/authentication"},{"title":"API Keys","href":"/getting-started/api-keys"},{"title":"Environments","href":"/getting-started/environments"},{"title":"Sandbox","href":"/getting-started/sandbox"},{"title":"REST API (v1)","href":"/getting-started/rest-api"},{"title":"Packages, pricing and checkout","href":"/getting-started/packages-and-pricing"},{"title":"Intakes and prescriber review","href":"/getting-started/intakes-and-prescriptions"},{"title":"Intake answers reference","href":"/getting-started/intake-responses"},{"title":"Intake forms reference","href":"/getting-started/intake-forms-reference"},{"title":"Emails your patients receive","href":"/getting-started/patient-emails"},{"title":"Integration checklist","href":"/getting-started/integration-checklist"},{"title":"Errors","href":"/getting-started/errors"},{"title":"Rate Limits","href":"/getting-started/rate-limits"}]},{"group":"API Reference","pages":[{"group":"Patients","pages":[{"title":"List patients","deprecated":null,"version":null,"openapi":"/openapi.yaml get /patients","href":"/api-reference/patients/list-patients"},{"title":"Create a patient","deprecated":null,"version":null,"openapi":"/openapi.yaml post /patients","href":"/api-reference/patients/create-a-patient"},{"title":"Retrieve a patient","deprecated":null,"version":null,"openapi":"/openapi.yaml get /patients/{id}","href":"/api-reference/patients/retrieve-a-patient"},{"title":"Get the Accept.js keys (no order needed)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payment-methods/config","href":"/api-reference/patients/get-the-acceptjs-keys-no-order-needed"},{"title":"List a patient's saved cards","deprecated":null,"version":null,"openapi":"/openapi.yaml get /patients/{id}/payment-methods","href":"/api-reference/patients/list-a-patients-saved-cards"},{"title":"Save a patient's card (no charge)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /patients/{id}/payment-methods","href":"/api-reference/patients/save-a-patients-card-no-charge"},{"title":"Push to IDN prescriber","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/patients/{patientId}/push","href":"/api-reference/patients/push-to-idn-prescriber"},{"title":"Auto-refer from intake","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/patients/{patientId}/auto-push","href":"/api-reference/patients/auto-refer-from-intake"},{"title":"List Rx requests","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rx/patients/{patientId}/requests","href":"/api-reference/patients/list-rx-requests"},{"title":"Cancel a request","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/requests/{requestId}/cancel","href":"/api-reference/patients/cancel-a-request"},{"title":"IDN membership status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rx/idn-status","href":"/api-reference/patients/idn-membership-status"},{"title":"Own prescribers and doctor-network access","deprecated":null,"version":null,"openapi":"/openapi.yaml get /prescribers","href":"/api-reference/patients/own-prescribers-and-doctor-network-access"},{"title":"Who would prescribe for a patient or state","deprecated":null,"version":null,"openapi":"/openapi.yaml get /prescriber-route","href":"/api-reference/patients/who-would-prescribe-for-a-patient-or-state"}]},{"group":"Intakes","pages":[{"title":"Submit intake answers (you collect them)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /intakes","href":"/api-reference/intakes/submit-intake-answers-you-collect-them"},{"title":"Get the intake form for products","deprecated":null,"version":null,"openapi":"/openapi.yaml get /intake-forms","href":"/api-reference/intakes/get-the-intake-form-for-products"},{"title":"Evaluate an intake form","deprecated":null,"version":null,"openapi":"/openapi.yaml post /intake-forms/evaluate","href":"/api-reference/intakes/evaluate-an-intake-form"},{"title":"Send a hosted intake link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /patients/{patientId}/intake/send-link","href":"/api-reference/intakes/send-a-hosted-intake-link"},{"title":"Get intake status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /patients/{patientId}/intake/status","href":"/api-reference/intakes/get-intake-status"},{"title":"Send a referral intake link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/patients/{patientId}/intake","href":"/api-reference/intakes/send-a-referral-intake-link"},{"title":"Submit referral intake answers (you collect them)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/patients/{patientId}/intake/submit","href":"/api-reference/intakes/submit-referral-intake-answers-you-collect-them"}]},{"group":"Orders","pages":[{"title":"List orders","deprecated":null,"version":null,"openapi":"/openapi.yaml get /orders","href":"/api-reference/orders/list-orders"},{"title":"Create an order","deprecated":null,"version":null,"openapi":"/openapi.yaml post /orders","href":"/api-reference/orders/create-an-order"},{"title":"Retrieve an order","deprecated":null,"version":null,"openapi":"/openapi.yaml get /orders/{id}","href":"/api-reference/orders/retrieve-an-order"},{"title":"Pay an order (embedded Accept.js)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /orders/{id}/pay","href":"/api-reference/orders/pay-an-order-embedded-acceptjs"},{"title":"List consult-first requests","deprecated":null,"version":null,"openapi":"/openapi.yaml get /consult-requests","href":"/api-reference/orders/list-consult-first-requests"},{"title":"Create a consult-first request","deprecated":null,"version":null,"openapi":"/openapi.yaml post /consult-requests","href":"/api-reference/orders/create-a-consult-first-request"},{"title":"Get a consult-first request","deprecated":null,"version":null,"openapi":"/openapi.yaml get /consult-requests/{id}","href":"/api-reference/orders/get-a-consult-first-request"},{"title":"Approve the medication order","deprecated":null,"version":null,"openapi":"/openapi.yaml post /consult-requests/{id}/approve","href":"/api-reference/orders/approve-the-medication-order"}]},{"group":"Prescriptions","pages":[{"title":"List prescriptions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /prescriptions","href":"/api-reference/prescriptions/list-prescriptions"},{"title":"Retrieve a prescription","deprecated":null,"version":null,"openapi":"/openapi.yaml get /prescriptions/{id}","href":"/api-reference/prescriptions/retrieve-a-prescription"}]},{"group":"Products","pages":[{"title":"List your pharmacy inventory","deprecated":null,"version":null,"openapi":"/openapi.yaml get /products","href":"/api-reference/products/list-your-pharmacy-inventory"},{"title":"List RUO catalog products","deprecated":null,"version":null,"openapi":"/openapi.yaml get /catalog","href":"/api-reference/products/list-ruo-catalog-products"},{"title":"Get an RUO catalog product","deprecated":null,"version":null,"openapi":"/openapi.yaml get /catalog/{id}","href":"/api-reference/products/get-an-ruo-catalog-product"},{"title":"List lab kits","deprecated":null,"version":null,"openapi":"/openapi.yaml get /labs/catalog","href":"/api-reference/products/list-lab-kits"},{"title":"Get a lab kit","deprecated":null,"version":null,"openapi":"/openapi.yaml get /labs/catalog/{id}","href":"/api-reference/products/get-a-lab-kit"},{"title":"List 503A products","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rx/catalog","href":"/api-reference/products/list-503a-products"},{"title":"Get a 503A product","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rx/catalog/{id}","href":"/api-reference/products/get-a-503a-product"}]},{"group":"Storefront","pages":[{"title":"Retrieve the patient storefront","description":"Returns your clinic's storefront: settings, curated product listings and bundles. Requires the `shop:read` scope. The `payout` object reflects Routable payout-onboarding status. Enabling the store requires payout_eligible=true.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /shop","href":"/api-reference/storefront/retrieve-the-patient-storefront"},{"title":"Update storefront settings","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /shop","href":"/api-reference/storefront/update-storefront-settings"},{"title":"Add or update a product listing","description":"Curates a catalog product into your storefront, keyed by `platform_product_id` — creates the listing when absent, updates it otherwise. Products your clinic is not eligible to sell, and prescription items given `rx_mode: none`, are rejected or corrected by the same rules the in-app builder applies. Requires `shop:write`.","deprecated":null,"version":null,"openapi":"/openapi.yaml put /shop/products","href":"/api-reference/storefront/add-or-update-a-product-listing"},{"title":"Remove a product listing","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /shop/products/{listingId}","href":"/api-reference/storefront/remove-a-product-listing"},{"title":"Create or update a bundle","deprecated":null,"version":null,"openapi":"/openapi.yaml put /shop/bundles","href":"/api-reference/storefront/create-or-update-a-bundle"},{"title":"Delete a bundle","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /shop/bundles/{bundleId}","href":"/api-reference/storefront/delete-a-bundle"},{"title":"Create or update a clinic-owned item","deprecated":null,"version":null,"openapi":"/openapi.yaml put /shop/custom-products","href":"/api-reference/storefront/create-or-update-a-clinic-owned-item"},{"title":"Remove a clinic-owned item","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /shop/custom-products/{customProductId}","href":"/api-reference/storefront/remove-a-clinic-owned-item"}]},{"group":"Subscriptions","pages":[{"title":"List patient subscriptions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /subscriptions","href":"/api-reference/subscriptions/list-patient-subscriptions"},{"title":"Create a patient subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions","href":"/api-reference/subscriptions/create-a-patient-subscription"},{"title":"Retrieve a subscription and recent cycles","deprecated":null,"version":null,"openapi":"/openapi.yaml get /subscriptions/{id}","href":"/api-reference/subscriptions/retrieve-a-subscription-and-recent-cycles"},{"title":"Update cadence, quantity, card, or shipping address","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /subscriptions/{id}","href":"/api-reference/subscriptions/update-cadence-quantity-card-or-shipping-address"},{"title":"Pause a subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions/{id}/pause","href":"/api-reference/subscriptions/pause-a-subscription"},{"title":"Resume a subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions/{id}/resume","href":"/api-reference/subscriptions/resume-a-subscription"},{"title":"Cancel a subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions/{id}/cancel","href":"/api-reference/subscriptions/cancel-a-subscription"},{"title":"Skip the next cycle","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions/{id}/skip-next","href":"/api-reference/subscriptions/skip-the-next-cycle"}]}]},{"group":"Webhooks","pages":[{"title":"Webhooks Overview","href":"/webhooks/overview"},{"title":"Event Types","href":"/webhooks/events"},{"title":"Receiving Deliveries","href":"/webhooks/inbound"},{"title":"Webhook Security","href":"/webhooks/security"},{"title":"Retries \u0026 Delivery","href":"/webhooks/retries"}]},{"group":"Guides","pages":[{"title":"EHR Integration Guide","href":"/guides/ehr-integration"},{"title":"Order Flow","href":"/guides/order-flow"},{"title":"Display-only catalog access","href":"/guides/catalog-display"},{"title":"Patient Shop Subscriptions","href":"/guides/subscriptions"},{"title":"Referring patients to the IDN","href":"/rx/overview"}]}]},{"tab":"Pharmacy API","icon":"prescription-bottle-medical","pages":[{"title":"Pharmacy API","href":"/pharmacy-api/overview"}]},{"tab":"Practice API","icon":"hospital-user","pages":[{"title":"Practice API","href":"/practice-api/overview"}]},{"tab":"Partner API","icon":"user-plus","pages":[{"title":"Partner API","href":"/partner-api/overview"}]}]},{"anchor":"Status","icon":"circle-check","hidden":true,"href":"https://status.vitarelay.com"},{"anchor":"Support","icon":"envelope","href":"mailto:info@vitarelay.com"}]},"basePath":"","title":"Update storefront settings - VitaRelay","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","Page-DTNSD-0M.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}