{
"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": "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": "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": "validation_failed",
"message": "One or more fields are invalid"
}
}
Orders
Create an order
Vita Clinic only. Requires the orders:write scope.
Prices are resolved from the catalog — the request body must not (and
cannot) contain prices or organization ids. Ordering a 503B product
returns 422 product_not_allowed.
With a live key the clinic’s card on file is charged synchronously:
success returns 201 with status: "paid"; a failure returns 402
with code card_required or payment_declined. When platform billing
is in dry-run mode the order is returned with
status: "awaiting_payment" and billing_dry_run: true.
Set billing_mode to patient_checkout to create an unpaid order
and receive a checkout block for embedded Accept.js payment on your
own page (see POST /orders//pay). In that mode no clinic card is
required, the response status is awaiting_payment, and the order
stays unpaid until the nonce is submitted. If card checkout is
temporarily unavailable the call fails with 503 payment_unavailable
before any order is created, so it is safe to retry.
With a test key (vr_test_) and billing_mode=patient_checkout, the
simulated order also returns a checkout block pointing at the test
Accept.js host, so you can build and exercise your card form. Sandbox
orders cannot be paid — their sandbox_ord_… ids are not accepted by
POST /orders//pay.
Pricing. With billing_mode=patient_checkout the patient is the payer,
so the order carries your clinic’s own storefront prices: a listed
product at its shop price, a package at the package price you set (spread
exactly over its products, so the lines add up to it). The shop’s doctor
consult fee (503A) and shipping line are added the same way as in your
storefront, total_cents and checkout.amount_cents are the full amount
the patient pays, and your markup accrues to you once the order is paid.
Pass shipping_method (ground or overnight) to carry the patient’s
delivery choice. With card_on_file / clinic_card your clinic pays, so
lines are billed at VitaRelay catalog price — you bill your own customer
yourself. If your storefront isn’t enabled, patient_checkout falls
back to catalog prices.
Clinic discount rules. A rule your clinic has set up, such as a
multi-item discount (a set amount off each product beyond the first),
applies to patient_checkout orders on its own when the cart
qualifies. You send nothing extra: the server decides. The discount is
already taken off total_cents and checkout.amount_cents, it is
reported as discount_cents, and it is funded from your clinic’s
markup (it can never exceed what your clinic earns on those lines), so
your earnings on the order are reduced by the same amount. Services
and subscription lines never count, and a rule can exclude specific
packages.
Supplying external_order_id makes the call idempotent. Replaying a
patient_checkout request whose order is still unpaid returns the same
order and its checkout block again.
Patient saved address for shippable subscription lines (defaults to the preferred address). Service-only lines never require shipping; otherwise 422 shipping_required.
card_on_file (default) charges the Vita Clinic's stored card synchronously. patient_checkout creates the order UNPAID and returns a checkout object so the patient can pay on the partner's own page via Authorize.Net Accept.js — no card is required on the clinic.
patient_checkout only. The delivery speed the patient picked; it sets the shipping line added to the order. Anything else (or omitted) uses the standard ground rate for the cart.
Available options:
ground,
overnight
Response
Idempotent replay of an existing external_order_id.
{"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/orders/create-an-order","slug":"/api-reference/orders/create-an-order","pageMetadata":{"title":"Create an order","description":"**Vita Clinic only.** Requires the `orders:write` scope.\n\nPrices are resolved from the catalog — the request body must not (and\ncannot) contain prices or organization ids. Ordering a 503B product\nreturns `422 product_not_allowed`.\n\nWith a live key the clinic's card on file is charged synchronously:\nsuccess returns `201` with `status: \"paid\"`; a failure returns `402`\nwith code `card_required` or `payment_declined`. When platform billing\nis in dry-run mode the order is returned with\n`status: \"awaiting_payment\"` and `billing_dry_run: true`.\n\nSet `billing_mode` to `patient_checkout` to create an unpaid order\nand receive a `checkout` block for embedded Accept.js payment on your\nown page (see POST /orders/{id}/pay). In that mode no clinic card is\nrequired, the response `status` is `awaiting_payment`, and the order\nstays unpaid until the nonce is submitted. If card checkout is\ntemporarily unavailable the call fails with `503 payment_unavailable`\nbefore any order is created, so it is safe to retry.\n\nWith a test key (`vr_test_`) and `billing_mode=patient_checkout`, the\nsimulated order also returns a `checkout` block pointing at the test\nAccept.js host, so you can build and exercise your card form. Sandbox\norders cannot be paid — their `sandbox_ord_…` ids are not accepted by\nPOST /orders/{id}/pay.\n\n**Pricing.** With `billing_mode=patient_checkout` the patient is the payer,\nso the order carries your clinic's own storefront prices: a listed\nproduct at its shop price, a package at the package price you set (spread\nexactly over its products, so the lines add up to it). The shop's doctor\nconsult fee (503A) and shipping line are added the same way as in your\nstorefront, `total_cents` and `checkout.amount_cents` are the full amount\nthe patient pays, and your markup accrues to you once the order is paid.\nPass `shipping_method` (`ground` or `overnight`) to carry the patient's\ndelivery choice. With `card_on_file` / `clinic_card` your clinic pays, so\nlines are billed at VitaRelay catalog price — you bill your own customer\nyourself. If your storefront isn't enabled, `patient_checkout` falls\nback to catalog prices.\n\n**Clinic discount rules.** A rule your clinic has set up, such as a\nmulti-item discount (a set amount off each product beyond the first),\napplies to `patient_checkout` orders on its own when the cart\nqualifies. You send nothing extra: the server decides. The discount is\nalready taken off `total_cents` and `checkout.amount_cents`, it is\nreported as `discount_cents`, and it is funded from your clinic's\nmarkup (it can never exceed what your clinic earns on those lines), so\nyour earnings on the order are reduced by the same amount. Services\nand subscription lines never count, and a rule can exclude specific\npackages.\n\nSupplying `external_order_id` makes the call idempotent. Replaying a\n`patient_checkout` request whose order is still unpaid returns the same\norder and its `checkout` block again.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /orders","href":"/api-reference/orders/create-an-order","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Vita Clinic only.\"\n }), \" Requires the \", _jsx(_components.code, {\n children: \"orders:write\"\n }), \" scope.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Prices are resolved from the catalog — the request body must not (and\\ncannot) contain prices or organization ids. Ordering a 503B product\\nreturns \", _jsx(_components.code, {\n children: \"422 product_not_allowed\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"With a live key the clinic’s card on file is charged synchronously:\\nsuccess returns \", _jsx(_components.code, {\n children: \"201\"\n }), \" with \", _jsx(_components.code, {\n children: \"status: \\\"paid\\\"\"\n }), \"; a failure returns \", _jsx(_components.code, {\n children: \"402\"\n }), \"\\nwith code \", _jsx(_components.code, {\n children: \"card_required\"\n }), \" or \", _jsx(_components.code, {\n children: \"payment_declined\"\n }), \". When platform billing\\nis in dry-run mode the order is returned with\\n\", _jsx(_components.code, {\n children: \"status: \\\"awaiting_payment\\\"\"\n }), \" and \", _jsx(_components.code, {\n children: \"billing_dry_run: true\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Set \", _jsx(_components.code, {\n children: \"billing_mode\"\n }), \" to \", _jsx(_components.code, {\n children: \"patient_checkout\"\n }), \" to create an unpaid order\\nand receive a \", _jsx(_components.code, {\n children: \"checkout\"\n }), \" block for embedded Accept.js payment on your\\nown page (see POST /orders/\", \"/pay). In that mode no clinic card is\\nrequired, the response \", _jsx(_components.code, {\n children: \"status\"\n }), \" is \", _jsx(_components.code, {\n children: \"awaiting_payment\"\n }), \", and the order\\nstays unpaid until the nonce is submitted. If card checkout is\\ntemporarily unavailable the call fails with \", _jsx(_components.code, {\n children: \"503 payment_unavailable\"\n }), \"\\nbefore any order is created, so it is safe to retry.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"With a test key (\", _jsx(_components.code, {\n children: \"vr_test_\"\n }), \") and \", _jsx(_components.code, {\n children: \"billing_mode=patient_checkout\"\n }), \", the\\nsimulated order also returns a \", _jsx(_components.code, {\n children: \"checkout\"\n }), \" block pointing at the test\\nAccept.js host, so you can build and exercise your card form. Sandbox\\norders cannot be paid — their \", _jsx(_components.code, {\n children: \"sandbox_ord_…\"\n }), \" ids are not accepted by\\nPOST /orders/\", \"/pay.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Pricing.\"\n }), \" With \", _jsx(_components.code, {\n children: \"billing_mode=patient_checkout\"\n }), \" the patient is the payer,\\nso the order carries your clinic’s own storefront prices: a listed\\nproduct at its shop price, a package at the package price you set (spread\\nexactly over its products, so the lines add up to it). The shop’s doctor\\nconsult fee (503A) and shipping line are added the same way as in your\\nstorefront, \", _jsx(_components.code, {\n children: \"total_cents\"\n }), \" and \", _jsx(_components.code, {\n children: \"checkout.amount_cents\"\n }), \" are the full amount\\nthe patient pays, and your markup accrues to you once the order is paid.\\nPass \", _jsx(_components.code, {\n children: \"shipping_method\"\n }), \" (\", _jsx(_components.code, {\n children: \"ground\"\n }), \" or \", _jsx(_components.code, {\n children: \"overnight\"\n }), \") to carry the patient’s\\ndelivery choice. With \", _jsx(_components.code, {\n children: \"card_on_file\"\n }), \" / \", _jsx(_components.code, {\n children: \"clinic_card\"\n }), \" your clinic pays, so\\nlines are billed at VitaRelay catalog price — you bill your own customer\\nyourself. If your storefront isn’t enabled, \", _jsx(_components.code, {\n children: \"patient_checkout\"\n }), \" falls\\nback to catalog prices.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Clinic discount rules.\"\n }), \" A rule your clinic has set up, such as a\\nmulti-item discount (a set amount off each product beyond the first),\\napplies to \", _jsx(_components.code, {\n children: \"patient_checkout\"\n }), \" orders on its own when the cart\\nqualifies. You send nothing extra: the server decides. The discount is\\nalready taken off \", _jsx(_components.code, {\n children: \"total_cents\"\n }), \" and \", _jsx(_components.code, {\n children: \"checkout.amount_cents\"\n }), \", it is\\nreported as \", _jsx(_components.code, {\n children: \"discount_cents\"\n }), \", and it is funded from your clinic’s\\nmarkup (it can never exceed what your clinic earns on those lines), so\\nyour earnings on the order are reduced by the same amount. Services\\nand subscription lines never count, and a rule can exclude specific\\npackages.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Supplying \", _jsx(_components.code, {\n children: \"external_order_id\"\n }), \" makes the call idempotent. Replaying a\\n\", _jsx(_components.code, {\n children: \"patient_checkout\"\n }), \" request whose order is still unpaid returns the same\\norder and its \", _jsx(_components.code, {\n children: \"checkout\"\n }), \" block again.\"]\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":"Create an order","description":"**Vita Clinic only.** Requires the `orders:write` scope.\n\nPrices are resolved from the catalog — the request body must not (and\ncannot) contain prices or organization ids. Ordering a 503B product\nreturns `422 product_not_allowed`.\n\nWith a live key the clinic's card on file is charged synchronously:\nsuccess returns `201` with `status: \"paid\"`; a failure returns `402`\nwith code `card_required` or `payment_declined`. When platform billing\nis in dry-run mode the order is returned with\n`status: \"awaiting_payment\"` and `billing_dry_run: true`.\n\nSet `billing_mode` to `patient_checkout` to create an unpaid order\nand receive a `checkout` block for embedded Accept.js payment on your\nown page (see POST /orders/{id}/pay). In that mode no clinic card is\nrequired, the response `status` is `awaiting_payment`, and the order\nstays unpaid until the nonce is submitted. If card checkout is\ntemporarily unavailable the call fails with `503 payment_unavailable`\nbefore any order is created, so it is safe to retry.\n\nWith a test key (`vr_test_`) and `billing_mode=patient_checkout`, the\nsimulated order also returns a `checkout` block pointing at the test\nAccept.js host, so you can build and exercise your card form. Sandbox\norders cannot be paid — their `sandbox_ord_…` ids are not accepted by\nPOST /orders/{id}/pay.\n\n**Pricing.** With `billing_mode=patient_checkout` the patient is the payer,\nso the order carries your clinic's own storefront prices: a listed\nproduct at its shop price, a package at the package price you set (spread\nexactly over its products, so the lines add up to it). The shop's doctor\nconsult fee (503A) and shipping line are added the same way as in your\nstorefront, `total_cents` and `checkout.amount_cents` are the full amount\nthe patient pays, and your markup accrues to you once the order is paid.\nPass `shipping_method` (`ground` or `overnight`) to carry the patient's\ndelivery choice. With `card_on_file` / `clinic_card` your clinic pays, so\nlines are billed at VitaRelay catalog price — you bill your own customer\nyourself. If your storefront isn't enabled, `patient_checkout` falls\nback to catalog prices.\n\n**Clinic discount rules.** A rule your clinic has set up, such as a\nmulti-item discount (a set amount off each product beyond the first),\napplies to `patient_checkout` orders on its own when the cart\nqualifies. You send nothing extra: the server decides. The discount is\nalready taken off `total_cents` and `checkout.amount_cents`, it is\nreported as `discount_cents`, and it is funded from your clinic's\nmarkup (it can never exceed what your clinic earns on those lines), so\nyour earnings on the order are reduced by the same amount. Services\nand subscription lines never count, and a rule can exclude specific\npackages.\n\nSupplying `external_order_id` makes the call idempotent. Replaying a\n`patient_checkout` request whose order is still unpaid returns the same\norder and its `checkout` block again.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /orders","href":"/api-reference/orders/create-an-order","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Orders"],"summary":"Create an order","description":"**Vita Clinic only.** Requires the `orders:write` scope.\n\nPrices are resolved from the catalog — the request body must not (and\ncannot) contain prices or organization ids. Ordering a 503B product\nreturns `422 product_not_allowed`.\n\nWith a live key the clinic's card on file is charged synchronously:\nsuccess returns `201` with `status: \"paid\"`; a failure returns `402`\nwith code `card_required` or `payment_declined`. When platform billing\nis in dry-run mode the order is returned with\n`status: \"awaiting_payment\"` and `billing_dry_run: true`.\n\nSet `billing_mode` to `patient_checkout` to create an unpaid order\nand receive a `checkout` block for embedded Accept.js payment on your\nown page (see POST /orders/{id}/pay). In that mode no clinic card is\nrequired, the response `status` is `awaiting_payment`, and the order\nstays unpaid until the nonce is submitted. If card checkout is\ntemporarily unavailable the call fails with `503 payment_unavailable`\nbefore any order is created, so it is safe to retry.\n\nWith a test key (`vr_test_`) and `billing_mode=patient_checkout`, the\nsimulated order also returns a `checkout` block pointing at the test\nAccept.js host, so you can build and exercise your card form. Sandbox\norders cannot be paid — their `sandbox_ord_…` ids are not accepted by\nPOST /orders/{id}/pay.\n\n**Pricing.** With `billing_mode=patient_checkout` the patient is the payer,\nso the order carries your clinic's own storefront prices: a listed\nproduct at its shop price, a package at the package price you set (spread\nexactly over its products, so the lines add up to it). The shop's doctor\nconsult fee (503A) and shipping line are added the same way as in your\nstorefront, `total_cents` and `checkout.amount_cents` are the full amount\nthe patient pays, and your markup accrues to you once the order is paid.\nPass `shipping_method` (`ground` or `overnight`) to carry the patient's\ndelivery choice. With `card_on_file` / `clinic_card` your clinic pays, so\nlines are billed at VitaRelay catalog price — you bill your own customer\nyourself. If your storefront isn't enabled, `patient_checkout` falls\nback to catalog prices.\n\n**Clinic discount rules.** A rule your clinic has set up, such as a\nmulti-item discount (a set amount off each product beyond the first),\napplies to `patient_checkout` orders on its own when the cart\nqualifies. You send nothing extra: the server decides. The discount is\nalready taken off `total_cents` and `checkout.amount_cents`, it is\nreported as `discount_cents`, and it is funded from your clinic's\nmarkup (it can never exceed what your clinic earns on those lines), so\nyour earnings on the order are reduced by the same amount. Services\nand subscription lines never count, and a rule can exclude specific\npackages.\n\nSupplying `external_order_id` makes the call idempotent. Replaying a\n`patient_checkout` request whose order is still unpaid returns the same\norder and its `checkout` block again.\n","operationId":"createOrder","requestBody":"569d1339-f571-4ca3-92a2-8ac03256cc46","responses":{"200":"bc36a985-af0e-4be6-b6d2-b29da8bb6ad1","201":"8ae0cfc5-4deb-4247-b0e9-b24bfb532ef8","400":"d353ad27-8761-4d7d-a2fe-ee92b5e134d4","401":"92fa0c0b-2a4f-4b87-b9bd-b01480970558","402":"e5b8c2b6-9997-49d0-bccb-974c2e827cc0","403":"d6d127f2-da7f-4d6b-9c18-7a010096bca0","404":"0e6e320b-d39f-4245-b451-3b252f8f512d","409":"afda7605-483a-400e-86e4-a3e5d3e7a881","422":"40678e19-6cb4-415c-ad46-f91590da49c4","429":"4dcd57b8-3b90-498b-a3a4-ebb4f576e76e","500":"f2ad61d1-69de-4626-a348-d7f717403beb","503":"66980e0d-14b2-4b4a-aaca-76e03fd6b62e"},"method":"post","type":"path","servers":["99e3b59c-dc63-47bf-bffb-070f0be07326"],"security":["dcc604bc-462f-440f-88d7-39631ae87d5c"],"path":"/orders","baseUrlOptions":["https://vitarelay.com/api/public/v1"],"title":"Create an order","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["items"],"description":"Exactly one of `patient_id` or `external_patient_id` is required.","properties":{"items":{"type":"array","minItems":1,"items":{"type":"object","required":["quantity"],"description":"Send either `product_id` (catalog product; unchanged legacy behaviour) or `item_kind` + `item_id` (a storefront item). Unknown fields are ignored. One-time purchase of a subscription-only storefront item returns `422 purchase_mode_not_allowed`. Subscription lines are created through the same subscription engine as the patient storefront.\n\n**Packages (treatment plans).** A one-time `item_kind: bundle` line is bought as its member products at VitaRelay catalog price (each member quantity is multiplied by the line `quantity`), through the same prescription, consult-fee and fulfilment pipeline as product lines — no portal needed. A package that includes a clinic service can't be bought this way (`422 bundle_has_services`); an unlisted or ineligible package returns `422 product_not_found`. A `purchase: subscription` package line needs the patient's saved card (`payment_method_id`). A patient with no card yet can save one without buying anything via `POST /patients/{id}/payment-methods`, or by paying any order with `save_card: true` on `POST /orders/{id}/pay`.","properties":{"quantity":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].quantity","typeLabel":"integer"},"product_id":{"type":"string","format":"uuid","uniqueKey":"\\items.items.[INDEX].product_id","typeLabel":"string\u003cuuid>"},"item_kind":{"type":"string","enum":["product","custom","bundle"],"uniqueKey":"\\items.items.[INDEX].item_kind","typeLabel":"enum\u003cstring>"},"item_id":{"type":"string","format":"uuid","uniqueKey":"\\items.items.[INDEX].item_id","typeLabel":"string\u003cuuid>"},"purchase":{"type":"string","enum":["one_time","subscription"],"default":"one_time","uniqueKey":"\\items.items.[INDEX].purchase","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","enum":["weekly","monthly","quarterly"],"description":"Subscription lines only. Defaults to the item's default cadence; otherwise `422 invalid_cadence`.","uniqueKey":"\\items.items.[INDEX].cadence","typeLabel":"enum\u003cstring>"}},"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"external_order_id":{"type":"string","description":"Your identifier for this order. Acts as an idempotency key.","uniqueKey":"external_order_id","typeLabel":"string"},"patient_id":{"type":"string","description":"Patient UUID, or a `sandbox_pat_…` id when using a test key.","uniqueKey":"patient_id","typeLabel":"string"},"external_patient_id":{"type":"string","uniqueKey":"external_patient_id","typeLabel":"string"},"shipping":{"type":"object","required":["line1","city","state","postal_code"],"properties":{"line1":{"type":"string","isRequired":true,"uniqueKey":"shipping.line1","typeLabel":"string"},"city":{"type":"string","isRequired":true,"uniqueKey":"shipping.city","typeLabel":"string"},"state":{"type":"string","description":"Two-letter US state code.","isRequired":true,"uniqueKey":"shipping.state","typeLabel":"string"},"postal_code":{"type":"string","isRequired":true,"uniqueKey":"shipping.postal_code","typeLabel":"string"},"line2":{"type":"string","uniqueKey":"shipping.line2","typeLabel":"string"},"country":{"type":"string","default":"US","uniqueKey":"shipping.country","typeLabel":"string"}},"uniqueKey":"shipping","typeLabel":"object"},"payment_method_id":{"type":"string","format":"uuid","description":"Patient saved card. Required when any line has `purchase=subscription` (`422 payment_method_required`).","uniqueKey":"payment_method_id","typeLabel":"string\u003cuuid>"},"ship_to_address_id":{"type":"string","format":"uuid","description":"Patient saved address for shippable subscription lines (defaults to the preferred address). Service-only lines never require shipping; otherwise `422 shipping_required`.","uniqueKey":"ship_to_address_id","typeLabel":"string\u003cuuid>"},"billing_mode":{"type":"string","enum":["card_on_file","patient_checkout"],"default":"card_on_file","description":"`card_on_file` (default) charges the Vita Clinic's stored card synchronously. `patient_checkout` creates the order UNPAID and returns a `checkout` object so the patient can pay on the partner's own page via Authorize.Net Accept.js — no card is required on the clinic.","uniqueKey":"billing_mode","typeLabel":"enum\u003cstring>"},"shipping_method":{"type":"string","enum":["ground","overnight"],"description":"`patient_checkout` only. The delivery speed the patient picked; it sets the shipping line added to the order. Anything else (or omitted) uses the standard ground rate for the cart.","uniqueKey":"shipping_method","typeLabel":"enum\u003cstring>"}},"example":{"external_order_id":"clinic-order-8890","external_patient_id":"clinic-patient-001","items":[{"product_id":"7c1f0f7e-9a2b-4f1d-9c33-1a2b3c4d5e6f","quantity":1}],"shipping":{"line1":"22 Wellness Ave","city":"Tampa","state":"FL","postal_code":"33602","country":"US"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"external_order_id":"clinic-order-8890","external_patient_id":"clinic-patient-001","items":[{"product_id":"7c1f0f7e-9a2b-4f1d-9c33-1a2b3c4d5e6f","quantity":1}],"shipping":{"line1":"22 Wellness Ave","city":"Tampa","state":"FL","postal_code":"33602","country":"US"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"bc36a985-af0e-4be6-b6d2-b29da8bb6ad1":{"description":"Idempotent replay of an existing `external_order_id`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Order UUID (or a `sandbox_ord_…` id with a test key). `null` when every line is a subscription.","uniqueKey":"data.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Order UUID (or a `sandbox_ord_…` id with a test key). `null` when every line is a subscription.","uniqueKey":"data.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.id","typeLabel":"string | null"},"order_id":{"oneOf":[{"type":"string","description":"Same as `id`.","uniqueKey":"data.order_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Same as `id`.","uniqueKey":"data.order_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.order_id","typeLabel":"string | null"},"subscription_ids":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"data.subscription_ids.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Present when the request contained subscription lines.","uniqueKey":"data.subscription_ids","typeLabel":"string\u003cuuid>[]"},"order_number":{"type":"string","uniqueKey":"data.order_number","typeLabel":"string"},"status":{"type":"string","description":"`paid` after a successful card-on-file charge. `awaiting_payment` when billing is in dry-run, and for every `billing_mode=patient_checkout` order until the patient pays via POST /orders/{id}/pay.","uniqueKey":"data.status","typeLabel":"string"},"total_cents":{"type":"integer","uniqueKey":"data.total_cents","typeLabel":"integer"},"discount_cents":{"type":"integer","description":"Clinic discount rules applied to this order (for example a multi-item discount), already taken off `total_cents` and `checkout.amount_cents`. `0` when none applied.","uniqueKey":"data.discount_cents","typeLabel":"integer"},"external_order_id":{"oneOf":[{"type":"string","uniqueKey":"data.external_order_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.external_order_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.external_order_id","typeLabel":"string | null"},"billing_dry_run":{"type":"boolean","description":"Present and `true` when platform billing is in dry-run mode.","uniqueKey":"data.billing_dry_run","typeLabel":"boolean"},"checkout":{"oneOf":[{"type":"object","description":"Present only for billing_mode=patient_checkout. Everything needed to mount Accept.js on the partner's page. Only the PUBLIC client key + API Login ID are returned (safe to expose to a browser); the Transaction Key is never included.","properties":{"order_id":{"type":"string","format":"uuid","uniqueKey":"data.checkout.oneOf.0.order_id","typeLabel":"string\u003cuuid>"},"amount_cents":{"type":"integer","uniqueKey":"data.checkout.oneOf.0.amount_cents","typeLabel":"integer"},"currency":{"type":"string","uniqueKey":"data.checkout.oneOf.0.currency","typeLabel":"string"},"public_client_key":{"oneOf":[{"type":"string","description":"Public Accept.js client key. `null` only in a sandbox response when the payment gateway is not in sandbox mode.","uniqueKey":"data.checkout.oneOf.0.public_client_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"Public Accept.js client key. `null` only in a sandbox response when the payment gateway is not in sandbox mode.","uniqueKey":"data.checkout.oneOf.0.public_client_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.checkout.oneOf.0.public_client_key","typeLabel":"string | null"},"api_login_id":{"oneOf":[{"type":"string","description":"Accept.js API Login ID. `null` under the same sandbox condition as `public_client_key`.","uniqueKey":"data.checkout.oneOf.0.api_login_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Accept.js API Login ID. `null` under the same sandbox condition as `public_client_key`.","uniqueKey":"data.checkout.oneOf.0.api_login_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.checkout.oneOf.0.api_login_id","typeLabel":"string | null"},"environment":{"type":"string","description":"The payment gateway environment this checkout uses. Always `sandbox` for a test-key response.","enum":["sandbox","production"],"uniqueKey":"data.checkout.oneOf.0.environment","typeLabel":"enum\u003cstring>"},"accept_js_url":{"type":"string","format":"uri","description":"Load Accept.js from this URL. It matches `environment`, so always use it as given.","uniqueKey":"data.checkout.oneOf.0.accept_js_url","typeLabel":"string\u003curi>"},"note":{"type":"string","description":"Sandbox only. Present when no card-form keys could be issued, and says why.","uniqueKey":"data.checkout.oneOf.0.note","typeLabel":"string"}},"uniqueKey":"data.checkout.oneOf.0","typeLabel":"object"},{"type":"null","description":"Present only for billing_mode=patient_checkout. Everything needed to mount Accept.js on the partner's page. Only the PUBLIC client key + API Login ID are returned (safe to expose to a browser); the Transaction Key is never included.","properties":{"order_id":{"type":"string","format":"uuid"},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"public_client_key":{"oneOf":[{"type":"string","description":"Public Accept.js client key. `null` only in a sandbox response when the payment gateway is not in sandbox mode."},{"type":"null","description":"Public Accept.js client key. `null` only in a sandbox response when the payment gateway is not in sandbox mode."}]},"api_login_id":{"oneOf":[{"type":"string","description":"Accept.js API Login ID. `null` under the same sandbox condition as `public_client_key`."},{"type":"null","description":"Accept.js API Login ID. `null` under the same sandbox condition as `public_client_key`."}]},"environment":{"type":"string","description":"The payment gateway environment this checkout uses. Always `sandbox` for a test-key response.","enum":["sandbox","production"]},"accept_js_url":{"type":"string","format":"uri","description":"Load Accept.js from this URL. It matches `environment`, so always use it as given."},"note":{"type":"string","description":"Sandbox only. Present when no card-form keys could be issued, and says why."}},"uniqueKey":"data.checkout.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.checkout","typeLabel":"object | null"}},"example":{"id":"sandbox_ord_5c1a9b2e","order_number":"VR-88901","status":"paid","total_cents":12900,"external_order_id":"clinic-order-8890"},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"sandbox_ord_5c1a9b2e","order_number":"VR-88901","status":"paid","total_cents":12900,"external_order_id":"clinic-order-8890"}}}},"exampleType":"generated"}},"exampleType":"generated"},"8ae0cfc5-4deb-4247-b0e9-b24bfb532ef8":{"description":"Order created (and charged, unless billing is in dry-run).","headers":{"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","properties":{"data":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Order UUID (or a `sandbox_ord_…` id with a test key). `null` when every line is a subscription.","uniqueKey":"data.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Order UUID (or a `sandbox_ord_…` id with a test key). `null` when every line is a subscription.","uniqueKey":"data.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.id","typeLabel":"string | null"},"order_id":{"oneOf":[{"type":"string","description":"Same as `id`.","uniqueKey":"data.order_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Same as `id`.","uniqueKey":"data.order_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.order_id","typeLabel":"string | null"},"subscription_ids":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"data.subscription_ids.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Present when the request contained subscription lines.","uniqueKey":"data.subscription_ids","typeLabel":"string\u003cuuid>[]"},"order_number":{"type":"string","uniqueKey":"data.order_number","typeLabel":"string"},"status":{"type":"string","description":"`paid` after a successful card-on-file charge. `awaiting_payment` when billing is in dry-run, and for every `billing_mode=patient_checkout` order until the patient pays via POST /orders/{id}/pay.","uniqueKey":"data.status","typeLabel":"string"},"total_cents":{"type":"integer","uniqueKey":"data.total_cents","typeLabel":"integer"},"discount_cents":{"type":"integer","description":"Clinic discount rules applied to this order (for example a multi-item discount), already taken off `total_cents` and `checkout.amount_cents`. `0` when none applied.","uniqueKey":"data.discount_cents","typeLabel":"integer"},"external_order_id":{"oneOf":[{"type":"string","uniqueKey":"data.external_order_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.external_order_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.external_order_id","typeLabel":"string | null"},"billing_dry_run":{"type":"boolean","description":"Present and `true` when platform billing is in dry-run mode.","uniqueKey":"data.billing_dry_run","typeLabel":"boolean"},"checkout":{"oneOf":[{"type":"object","description":"Present only for billing_mode=patient_checkout. Everything needed to mount Accept.js on the partner's page. Only the PUBLIC client key + API Login ID are returned (safe to expose to a browser); the Transaction Key is never included.","properties":{"order_id":{"type":"string","format":"uuid","uniqueKey":"data.checkout.oneOf.0.order_id","typeLabel":"string\u003cuuid>"},"amount_cents":{"type":"integer","uniqueKey":"data.checkout.oneOf.0.amount_cents","typeLabel":"integer"},"currency":{"type":"string","uniqueKey":"data.checkout.oneOf.0.currency","typeLabel":"string"},"public_client_key":{"oneOf":[{"type":"string","description":"Public Accept.js client key. `null` only in a sandbox response when the payment gateway is not in sandbox mode.","uniqueKey":"data.checkout.oneOf.0.public_client_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"Public Accept.js client key. `null` only in a sandbox response when the payment gateway is not in sandbox mode.","uniqueKey":"data.checkout.oneOf.0.public_client_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.checkout.oneOf.0.public_client_key","typeLabel":"string | null"},"api_login_id":{"oneOf":[{"type":"string","description":"Accept.js API Login ID. `null` under the same sandbox condition as `public_client_key`.","uniqueKey":"data.checkout.oneOf.0.api_login_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Accept.js API Login ID. `null` under the same sandbox condition as `public_client_key`.","uniqueKey":"data.checkout.oneOf.0.api_login_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.checkout.oneOf.0.api_login_id","typeLabel":"string | null"},"environment":{"type":"string","description":"The payment gateway environment this checkout uses. Always `sandbox` for a test-key response.","enum":["sandbox","production"],"uniqueKey":"data.checkout.oneOf.0.environment","typeLabel":"enum\u003cstring>"},"accept_js_url":{"type":"string","format":"uri","description":"Load Accept.js from this URL. It matches `environment`, so always use it as given.","uniqueKey":"data.checkout.oneOf.0.accept_js_url","typeLabel":"string\u003curi>"},"note":{"type":"string","description":"Sandbox only. Present when no card-form keys could be issued, and says why.","uniqueKey":"data.checkout.oneOf.0.note","typeLabel":"string"}},"uniqueKey":"data.checkout.oneOf.0","typeLabel":"object"},{"type":"null","description":"Present only for billing_mode=patient_checkout. Everything needed to mount Accept.js on the partner's page. Only the PUBLIC client key + API Login ID are returned (safe to expose to a browser); the Transaction Key is never included.","properties":{"order_id":{"type":"string","format":"uuid"},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"public_client_key":{"oneOf":[{"type":"string","description":"Public Accept.js client key. `null` only in a sandbox response when the payment gateway is not in sandbox mode."},{"type":"null","description":"Public Accept.js client key. `null` only in a sandbox response when the payment gateway is not in sandbox mode."}]},"api_login_id":{"oneOf":[{"type":"string","description":"Accept.js API Login ID. `null` under the same sandbox condition as `public_client_key`."},{"type":"null","description":"Accept.js API Login ID. `null` under the same sandbox condition as `public_client_key`."}]},"environment":{"type":"string","description":"The payment gateway environment this checkout uses. Always `sandbox` for a test-key response.","enum":["sandbox","production"]},"accept_js_url":{"type":"string","format":"uri","description":"Load Accept.js from this URL. It matches `environment`, so always use it as given."},"note":{"type":"string","description":"Sandbox only. Present when no card-form keys could be issued, and says why."}},"uniqueKey":"data.checkout.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.checkout","typeLabel":"object | null"}},"example":{"id":"sandbox_ord_5c1a9b2e","order_number":"VR-88901","status":"paid","total_cents":12900,"external_order_id":"clinic-order-8890"},"uniqueKey":"data","typeLabel":"object"},"sandbox":{"type":"boolean","description":"Present and `true` when created with a `vr_test_` key.","uniqueKey":"sandbox","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"sandbox_ord_5c1a9b2e","order_number":"VR-88901","status":"paid","total_cents":12900,"external_order_id":"clinic-order-8890"},"sandbox":true}}},"exampleType":"generated"}},"exampleType":"generated"},"d353ad27-8761-4d7d-a2fe-ee92b5e134d4":{"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"},"92fa0c0b-2a4f-4b87-b9bd-b01480970558":{"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"},"e5b8c2b6-9997-49d0-bccb-974c2e827cc0":{"description":"No card on file (`card_required`) or the charge was declined\n(`payment_declined`). The order is not fulfilled.\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"},"d6d127f2-da7f-4d6b-9c18-7a010096bca0":{"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"},"0e6e320b-d39f-4245-b451-3b252f8f512d":{"description":"Patient not found or owned by another organization (`patient_not_found`).","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"},"afda7605-483a-400e-86e4-a3e5d3e7a881":{"description":"A conflicting request with the same external id is in flight (`duplicate_request`).","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"},"40678e19-6cb4-415c-ad46-f91590da49c4":{"description":"Validation failure (`validation_failed`), unknown product\n(`product_not_found`) or a 503B product that clinics may not order\n(`product_not_allowed`).\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"},"4dcd57b8-3b90-498b-a3a4-ebb4f576e76e":{"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"},"f2ad61d1-69de-4626-a348-d7f717403beb":{"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"},"66980e0d-14b2-4b4a-aaca-76e03fd6b62e":{"description":"Card checkout is not available right now (`payment_unavailable`),\nreturned for `billing_mode=patient_checkout`. Nothing was created;\nretry later.\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"}},"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":"Create an order - VitaRelay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T21:03:22.964Z","originalFileLocation":"api-reference/orders/create-an-order.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=\"Vita Clinic only. Requires the orders:write scope. Prices are resolved from the catalog — the request body must not (and cannot) contain prices or organization ids. Ordering a 503B product returns 422 product_not_allowed. With a live key the clinic\u0026#x27;s card on file is charged synchronously: success returns 201 with status: \u0026quot;paid\u0026quot;; a failure returns 402 with code card_required or payment_declined. When platform billing is in dry-run mode the order is returned with status: \u0026quot;awaiting_payment\u0026quot; and billing_dry_run: true. Set billing_mode to patient_checkout to create an unpaid order and receive a checkout block for embedded Accept.js payment on your own page (see POST /orders/{id}/pay). In that mode no clinic card is required, the response status is awaiting_payment, and the order stays unpaid until the nonce is submitted. If card checkout is temporarily unavailable the call fails with 503 payment_unavailable before any order is created, so it is safe to retry. With a test key (vr_test_) and billing_mode=patient_checkout, the simulated order also returns a checkout block pointing at the test Accept.js host, so you can build and exercise your card form. Sandbox orders cannot be paid — their sandbox_ord_… ids are not accepted by POST /orders/{id}/pay. Pricing. With billing_mode=patient_checkout the patient is the payer, so the order carries your clinic\u0026#x27;s own storefront prices: a listed product at its shop price, a package at the package price you set (spread exactly over its products, so the lines add up to it). The shop\u0026#x27;s doctor consult fee (503A) and shipping line are added the same way as in your storefront, total_cents and checkout.amount_cents are the full amount the patient pays, and your markup accrues to you once the order is paid. Pass shipping_method (ground or overnight) to carry the patient\u0026#x27;s delivery choice. With card_on_file / clinic_card your clinic pays, so lines are billed at VitaRelay catalog price — you bill your own customer yourself. If your storefront isn\u0026#x27;t enabled, patient_checkout falls back to catalog prices. Clinic discount rules. A rule your clinic has set up, such as a multi-item discount (a set amount off each product beyond the first), applies to patient_checkout orders on its own when the cart qualifies. You send nothing extra: the server decides. The discount is already taken off total_cents and checkout.amount_cents, it is reported as discount_cents, and it is funded from your clinic\u0026#x27;s markup (it can never exceed what your clinic earns on those lines), so your earnings on the order are reduced by the same amount. Services and subscription lines never count, and a rule can exclude specific packages. Supplying external_order_id makes the call idempotent. Replaying a patient_checkout request whose order is still unpaid returns the same order and its checkout block again.\">\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=\"Create an order - VitaRelay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Vita Clinic only. Requires the orders:write scope. Prices are resolved from the catalog — the request body must not (and cannot) contain prices or organization ids. Ordering a 503B product returns 422 product_not_allowed. With a live key the clinic\u0026#x27;s card on file is charged synchronously: success returns 201 with status: \u0026quot;paid\u0026quot;; a failure returns 402 with code card_required or payment_declined. When platform billing is in dry-run mode the order is returned with status: \u0026quot;awaiting_payment\u0026quot; and billing_dry_run: true. Set billing_mode to patient_checkout to create an unpaid order and receive a checkout block for embedded Accept.js payment on your own page (see POST /orders/{id}/pay). In that mode no clinic card is required, the response status is awaiting_payment, and the order stays unpaid until the nonce is submitted. If card checkout is temporarily unavailable the call fails with 503 payment_unavailable before any order is created, so it is safe to retry. With a test key (vr_test_) and billing_mode=patient_checkout, the simulated order also returns a checkout block pointing at the test Accept.js host, so you can build and exercise your card form. Sandbox orders cannot be paid — their sandbox_ord_… ids are not accepted by POST /orders/{id}/pay. Pricing. With billing_mode=patient_checkout the patient is the payer, so the order carries your clinic\u0026#x27;s own storefront prices: a listed product at its shop price, a package at the package price you set (spread exactly over its products, so the lines add up to it). The shop\u0026#x27;s doctor consult fee (503A) and shipping line are added the same way as in your storefront, total_cents and checkout.amount_cents are the full amount the patient pays, and your markup accrues to you once the order is paid. Pass shipping_method (ground or overnight) to carry the patient\u0026#x27;s delivery choice. With card_on_file / clinic_card your clinic pays, so lines are billed at VitaRelay catalog price — you bill your own customer yourself. If your storefront isn\u0026#x27;t enabled, patient_checkout falls back to catalog prices. Clinic discount rules. A rule your clinic has set up, such as a multi-item discount (a set amount off each product beyond the first), applies to patient_checkout orders on its own when the cart qualifies. You send nothing extra: the server decides. The discount is already taken off total_cents and checkout.amount_cents, it is reported as discount_cents, and it is funded from your clinic\u0026#x27;s markup (it can never exceed what your clinic earns on those lines), so your earnings on the order are reduced by the same amount. Services and subscription lines never count, and a rule can exclude specific packages. Supplying external_order_id makes the call idempotent. Replaying a patient_checkout request whose order is still unpaid returns the same order and its checkout block again.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"VitaRelay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api.vitarelay.com/api-reference/orders/create-an-order\">\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=Orders\u0026amp;title=Create+an+order\u0026amp;description=**Vita+Clinic+only.**+Requires+the+%60orders%3Awrite%60+scope.%0A%0APrices+are+resolved+from+the+catalog+%E2%80%94+the+request+body+must+not+%28and%0Acannot%29+contain+prices+or+organi\u0026amp;theme=8c0b6cf4340b31a0a73d3428\u0026amp;signature=36ea24bb7e47d911233fb3913e2d87fd01ddb0fee931125c9f94b85d14502f16\">\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=\"Create an order - VitaRelay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Vita Clinic only. Requires the orders:write scope. Prices are resolved from the catalog — the request body must not (and cannot) contain prices or organization ids. Ordering a 503B product returns 422 product_not_allowed. With a live key the clinic\u0026#x27;s card on file is charged synchronously: success returns 201 with status: \u0026quot;paid\u0026quot;; a failure returns 402 with code card_required or payment_declined. When platform billing is in dry-run mode the order is returned with status: \u0026quot;awaiting_payment\u0026quot; and billing_dry_run: true. Set billing_mode to patient_checkout to create an unpaid order and receive a checkout block for embedded Accept.js payment on your own page (see POST /orders/{id}/pay). In that mode no clinic card is required, the response status is awaiting_payment, and the order stays unpaid until the nonce is submitted. If card checkout is temporarily unavailable the call fails with 503 payment_unavailable before any order is created, so it is safe to retry. With a test key (vr_test_) and billing_mode=patient_checkout, the simulated order also returns a checkout block pointing at the test Accept.js host, so you can build and exercise your card form. Sandbox orders cannot be paid — their sandbox_ord_… ids are not accepted by POST /orders/{id}/pay. Pricing. With billing_mode=patient_checkout the patient is the payer, so the order carries your clinic\u0026#x27;s own storefront prices: a listed product at its shop price, a package at the package price you set (spread exactly over its products, so the lines add up to it). The shop\u0026#x27;s doctor consult fee (503A) and shipping line are added the same way as in your storefront, total_cents and checkout.amount_cents are the full amount the patient pays, and your markup accrues to you once the order is paid. Pass shipping_method (ground or overnight) to carry the patient\u0026#x27;s delivery choice. With card_on_file / clinic_card your clinic pays, so lines are billed at VitaRelay catalog price — you bill your own customer yourself. If your storefront isn\u0026#x27;t enabled, patient_checkout falls back to catalog prices. Clinic discount rules. A rule your clinic has set up, such as a multi-item discount (a set amount off each product beyond the first), applies to patient_checkout orders on its own when the cart qualifies. You send nothing extra: the server decides. The discount is already taken off total_cents and checkout.amount_cents, it is reported as discount_cents, and it is funded from your clinic\u0026#x27;s markup (it can never exceed what your clinic earns on those lines), so your earnings on the order are reduced by the same amount. Services and subscription lines never count, and a rule can exclude specific packages. Supplying external_order_id makes the call idempotent. Replaying a patient_checkout request whose order is still unpaid returns the same order and its checkout block again.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vitarelay.mintlify.site/_mintlify/api/og/v2?division=Orders\u0026amp;title=Create+an+order\u0026amp;description=**Vita+Clinic+only.**+Requires+the+%60orders%3Awrite%60+scope.%0A%0APrices+are+resolved+from+the+catalog+%E2%80%94+the+request+body+must+not+%28and%0Acannot%29+contain+prices+or+organi\u0026amp;theme=8c0b6cf4340b31a0a73d3428\u0026amp;signature=36ea24bb7e47d911233fb3913e2d87fd01ddb0fee931125c9f94b85d14502f16\">\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/orders/create-an-order\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/orders/create-an-order.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/orders/create-an-order#webpage\",\"url\":\"https://api.vitarelay.com/api-reference/orders/create-an-order\",\"name\":\"Create an order\",\"description\":\"Vita Clinic only. Requires the orders:write scope. Prices are resolved from the catalog — the request body must not (and cannot) contain prices or organization ids. Ordering a 503B product returns 422 product_not_allowed. With a live key the clinic's card on file is charged synchronously: success returns 201 with status: \\\"paid\\\"; a failure returns 402 with code card_required or payment_declined. When platform billing is in dry-run mode the order is returned with status: \\\"awaiting_payment\\\" and billing_dry_run: true. Set billing_mode to patient_checkout to create an unpaid order and receive a checkout block for embedded Accept.js payment on your own page (see POST /orders/{id}/pay). In that mode no clinic card is required, the response status is awaiting_payment, and the order stays unpaid until the nonce is submitted. If card checkout is temporarily unavailable the call fails with 503 payment_unavailable before any order is created, so it is safe to retry. With a test key (vr_test_) and billing_mode=patient_checkout, the simulated order also returns a checkout block pointing at the test Accept.js host, so you can build and exercise your card form. Sandbox orders cannot be paid — their sandbox_ord_… ids are not accepted by POST /orders/{id}/pay. Pricing. With billing_mode=patient_checkout the patient is the payer, so the order carries your clinic's own storefront prices: a listed product at its shop price, a package at the package price you set (spread exactly over its products, so the lines add up to it). The shop's doctor consult fee (503A) and shipping line are added the same way as in your storefront, total_cents and checkout.amount_cents are the full amount the patient pays, and your markup accrues to you once the order is paid. Pass shipping_method (ground or overnight) to carry the patient's delivery choice. With card_on_file / clinic_card your clinic pays, so lines are billed at VitaRelay catalog price — you bill your own customer yourself. If your storefront isn't enabled, patient_checkout falls back to catalog prices. Clinic discount rules. A rule your clinic has set up, such as a multi-item discount (a set amount off each product beyond the first), applies to patient_checkout orders on its own when the cart qualifies. You send nothing extra: the server decides. The discount is already taken off total_cents and checkout.amount_cents, it is reported as discount_cents, and it is funded from your clinic's markup (it can never exceed what your clinic earns on those lines), so your earnings on the order are reduced by the same amount. Services and subscription lines never count, and a rule can exclude specific packages. Supplying external_order_id makes the call idempotent. Replaying a patient_checkout request whose order is still unpaid returns the same order and its checkout block again.\",\"dateModified\":\"2026-11-12T21:03:22.964Z\",\"isPartOf\":{\"@id\":\"https://api.vitarelay.com#website\"},\"breadcrumb\":{\"@id\":\"https://api.vitarelay.com/api-reference/orders/create-an-order#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api.vitarelay.com/api-reference/orders/create-an-order#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://api.vitarelay.com/api-reference/patients/list-patients\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Orders\",\"item\":\"https://api.vitarelay.com/api-reference/orders/list-orders\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create an order\",\"item\":\"https://api.vitarelay.com/api-reference/orders/create-an-order\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api.vitarelay.com/api-reference/orders/create-an-order#apireference\",\"headline\":\"Create an order\",\"name\":\"Create an order\",\"description\":\"Vita Clinic only. Requires the orders:write scope. Prices are resolved from the catalog — the request body must not (and cannot) contain prices or organization ids. Ordering a 503B product returns 422 product_not_allowed. With a live key the clinic's card on file is charged synchronously: success returns 201 with status: \\\"paid\\\"; a failure returns 402 with code card_required or payment_declined. When platform billing is in dry-run mode the order is returned with status: \\\"awaiting_payment\\\" and billing_dry_run: true. Set billing_mode to patient_checkout to create an unpaid order and receive a checkout block for embedded Accept.js payment on your own page (see POST /orders/{id}/pay). In that mode no clinic card is required, the response status is awaiting_payment, and the order stays unpaid until the nonce is submitted. If card checkout is temporarily unavailable the call fails with 503 payment_unavailable before any order is created, so it is safe to retry. With a test key (vr_test_) and billing_mode=patient_checkout, the simulated order also returns a checkout block pointing at the test Accept.js host, so you can build and exercise your card form. Sandbox orders cannot be paid — their sandbox_ord_… ids are not accepted by POST /orders/{id}/pay. Pricing. With billing_mode=patient_checkout the patient is the payer, so the order carries your clinic's own storefront prices: a listed product at its shop price, a package at the package price you set (spread exactly over its products, so the lines add up to it). The shop's doctor consult fee (503A) and shipping line are added the same way as in your storefront, total_cents and checkout.amount_cents are the full amount the patient pays, and your markup accrues to you once the order is paid. Pass shipping_method (ground or overnight) to carry the patient's delivery choice. With card_on_file / clinic_card your clinic pays, so lines are billed at VitaRelay catalog price — you bill your own customer yourself. If your storefront isn't enabled, patient_checkout falls back to catalog prices. Clinic discount rules. A rule your clinic has set up, such as a multi-item discount (a set amount off each product beyond the first), applies to patient_checkout orders on its own when the cart qualifies. You send nothing extra: the server decides. The discount is already taken off total_cents and checkout.amount_cents, it is reported as discount_cents, and it is funded from your clinic's markup (it can never exceed what your clinic earns on those lines), so your earnings on the order are reduced by the same amount. Services and subscription lines never count, and a rule can exclude specific packages. Supplying external_order_id makes the call idempotent. Replaying a patient_checkout request whose order is still unpaid returns the same order and its checkout block again.\",\"url\":\"https://api.vitarelay.com/api-reference/orders/create-an-order\",\"mainEntityOfPage\":{\"@id\":\"https://api.vitarelay.com/api-reference/orders/create-an-order#webpage\"},\"dateModified\":\"2026-11-12T21:03:22.964Z\",\"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/orders/create-an-order.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","description":null,"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","description":null,"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","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","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":"Create an order - 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"]}