Create one promotion for an organization and target all or selected locations safely.
Crave promotions belong to one organization. A definition can apply to every active location or an
explicit location set, while product and category rules use canonical organization catalog IDs.
Location pricing, availability, publication revision, and timezone are resolved again when the cart
is evaluated and immediately before payment.
Private management calls use an authenticated Business Manager session or a server-only
X-API-Key. API-key reads require catalog:read; API-key creates, updates, and archives require
catalog:write. Business Manager mutations require an organization administrator. A
location-limited key cannot create an all-location definition, target a location outside its
grants, or read/mutate a definition whose complete selected-location set is not contained by those
grants.Storefront cart calls use the cart capability and Idempotency-Key, never a private API key.
Call POST /api/v1/discounts. Codes are trimmed and normalized to uppercase, and are unique within
the organization. Use locationScope: "all" with an empty locationIds array, or
locationScope: "selected" with at least one organization-owned location ID.
Money uses integer minor units and percentages use basis points (1000 = 10%). Weekly windows use
the location timezone and half-open intervals: the start is included and the end is excluded.
dayOfWeek is 0 for Sunday through 6 for Saturday. A per-customer limit requires a verified
organization customer; guests fail closed for that code.Use GET /api/v1/discounts/catalog-targets to discover active canonical products and categories and
the locations where each target is currently published.
GET /api/v1/discounts lists definitions with organization and per-location ledger metrics.
GET /api/v1/discounts/{discountId} reads one definition.
POST /api/v1/discounts/{discountId}/preview evaluates supplied cart lines without reserving or
consuming usage.
PUT /api/v1/discounts/{discountId} requires the current positive revision in the request body.
DELETE /api/v1/discounts/{discountId} archives the definition and requires { "revision": N }.
Disabling or archiving an active definition with reserved or committed usage fails closed unless the
request also includes "confirmActiveUsage": true. Business Manager asks for this confirmation and
then sends the same explicit API evidence; integrations must do likewise.A stale revision or normalized duplicate returns a conflict. Foreign locations and targets are not
disclosed. Archiving prevents new evaluation but does not rewrite historical order or redemption
evidence.
Apply a code with
POST /api/v1/storefront/locations/{locationId}/carts/{cartId}/discount and { "code": "LUNCH10" }.
Remove it with the corresponding DELETE. Both mutations require the cart capability, an
Idempotency-Key, and the current cart precondition used by the Storefront contract.Crave supports one public promotion or one loyalty reward on a cart, not both. Applying a public
code while loyalty is reserved fails without silently releasing the reward. The response is the
authoritative cart, including the exact adjustment and current revision.At payment creation Crave evaluates the definition again, reserves capacity atomically, and stores
the definition, cart, and catalog revisions. Payment cancellation releases the reservation; order
materialization commits it; a full provider-confirmed refund reverses it. Partial refunds retain the
usage and record cumulative proportional evidence.
Do not calculate discount eligibility or usage limits in a client. Never retry
checkout with a new idempotency key after an ambiguous response; read the cart
or order and reconcile the canonical state first.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Crave Cloud Documentation","description":"Developer documentation for Crave Cloud, Crave.js, Storefront APIs, and restaurant franchise integrations.","colors":{"primary":"#133B2F","light":"#1F5A49","dark":"#0B1F19"},"logo":{"light":"https://mintcdn.com/craveup-1493c4c7/P4icpH7dO6tjC3GV/logo/crave-wordmark.png?fit=max\u0026auto=format\u0026n=P4icpH7dO6tjC3GV\u0026q=85\u0026s=c6965caeaa3bfbd9e84cf5416bbf2576","dark":"https://mintcdn.com/craveup-1493c4c7/P4icpH7dO6tjC3GV/logo/crave-wordmark-dark.svg?fit=max\u0026auto=format\u0026n=P4icpH7dO6tjC3GV\u0026q=85\u0026s=d379668f5b2407f7092bbc4603c403bc","href":"https://developer.craveup.com"},"favicon":"https://mintcdn.com/craveup-1493c4c7/Nv2UkyJdWuAjqtql/favicon.svg?fit=max\u0026auto=format\u0026n=Nv2UkyJdWuAjqtql\u0026q=85\u0026s=7a4dc1dfa23901b208e854d9b64f0448","navbar":{"links":[{"href":"mailto:hello@craveup.com","label":"Support"},{"icon":"slack","href":"https://join.slack.com/t/cravejscommunity/shared_invite/zt-3hfr081io-aYuLC3n6gBFKQuho0HrTng","label":""}],"primary":{"type":"button","label":"Developer Console","href":"https://developer.craveup.com/console"}},"footer":{"socials":{"github":"https://github.com/crave-up","linkedin":"https://www.linkedin.com/company/craveup","x":"https://twitter.com/craveupcom"}},"search":{},"seo":{"metatags":{"canonical":"https://docs.craveup.com"}},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode",{"title":"Open in T3 Chat","description":"Open this page in T3 Chat","icon":"message-circle","href":"https://t3.chat/new?q=Read+this+documentation+page+and+help+me+implement+it:+$page"},{"title":"Open in Zed","description":"Open this page in Zed","icon":"terminal","href":"zed://docs?url=$page"}],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"craveup-1493c4c7","hasAudioNarration":false,"actualSubdomain":"craveup-1493c4c7","customDomains":["docs.craveup.com"],"gitSource":{"type":"github","owner":"craveup","repo":"craveup-turborepo","deployBranch":"main","contentDirectory":"apps/api-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae427cf5917815ea7f4c717","collectionId":"d8545f6b-d64e-4d42-a6dc-f7ad2e3e4729","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae427cf5917815ea7f4c717"},"entitlements":{},"buildId":"6ae42ed740afc677620a1b02","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":113},{"language":"default","tag":"API Endpoints","count":88},{"language":"default","tag":"Documentation","count":37},{"language":"default","tag":"Components","count":26},{"language":"default","tag":"Checkout","count":16},{"language":"default","tag":"Carts","count":15},{"language":"default","tag":"Catering","count":13},{"language":"default","tag":"Customers","count":12},{"language":"default","tag":"Staff Menu Manager authoring","count":8},{"language":"default","tag":"Loyalty","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"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":"llms-txt-v2","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"#navbar a[aria-label=\"Join the Crave Slack community\"]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;overflow:hidden;white-space:nowrap;gap:0}#navbar a[aria-label=\"Join the Crave Slack community\"] svg{width:1.125rem;height:1.125rem}.preview-device{width:100%}.preview-device-toggle{display:inline-flex;gap:.25rem;margin-bottom:.75rem;padding:.25rem;border:1px solid #d8ded9;border-radius:6px;background:#fff}.preview-device-toggle button{min-width:5.5rem;min-height:2rem;padding:.375rem .75rem;border:0;border-radius:4px;color:inherit;background:0 0;cursor:pointer}.preview-device-toggle button.is-active{color:#fff;background:#133b2f}.preview-device-stage{width:100%;overflow:hidden;border:1px solid var(--border-color);border-radius:6px;background:#f6f1e9}.preview-device-stage.is-mobile{max-width:430px;margin-inline:auto}.preview-device-stage.is-mobile.is-local-mobile{position:relative;aspect-ratio:var(--preview-mobile-ratio, 430 / 560);container-type:inline-size}.preview-device-stage iframe{display:block;width:100%;border:0}.preview-device-stage.is-mobile.is-local-mobile iframe{position:absolute;inset:0;width:430px;height:var(--preview-mobile-height, 560px);transform:scale(calc(100cqw/430));transform-origin:top left}"}],"page":{"pagePath":"guides/organization-discounts","slug":"/guides/organization-discounts","pageMetadata":{"title":"Organization discounts","description":"Create one promotion for an organization and target all or selected locations safely.","href":"/guides/organization-discounts"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create one promotion for an organization and target all or selected locations safely.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Crave promotions belong to one organization. A definition can apply to every active location or an\nexplicit location set, while product and category rules use canonical organization catalog IDs.\nLocation pricing, availability, publication revision, and timezone are resolved again when the cart\nis evaluated and immediately before payment.`}),`\n`,_jsx(Heading,{level:`2`,id:`authentication-and-scopes`,children:`Authentication and scopes`}),`\n`,_jsxs(_components.p,{children:[`Private management calls use an authenticated Business Manager session or a server-only\n`,_jsx(_components.code,{children:`X-API-Key`}),`. API-key reads require `,_jsx(_components.code,{children:`catalog:read`}),`; API-key creates, updates, and archives require\n`,_jsx(_components.code,{children:`catalog:write`}),`. Business Manager mutations require an organization administrator. A\nlocation-limited key cannot create an all-location definition, target a location outside its\ngrants, or read/mutate a definition whose complete selected-location set is not contained by those\ngrants.`]}),`\n`,_jsxs(_components.p,{children:[`Storefront cart calls use the cart capability and `,_jsx(_components.code,{children:`Idempotency-Key`}),`, never a private API key.`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-definition`,children:`Create a definition`}),`\n`,_jsxs(_components.p,{children:[`Call `,_jsx(_components.code,{children:`POST /api/v1/discounts`}),`. Codes are trimmed and normalized to uppercase, and are unique within\nthe organization. Use `,_jsx(_components.code,{children:`locationScope: \"all\"`}),` with an empty `,_jsx(_components.code,{children:`locationIds`}),` array, or\n`,_jsx(_components.code,{children:`locationScope: \"selected\"`}),` with at least one organization-owned location ID.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`25`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`25`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LUNCH10\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Weekday lunch promotion\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"state\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"locationScope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"selected\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"locationIds\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"11111111-1111-4111-8111-111111111111\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"percentage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"basisPoints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"maximumAmountMinor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1500`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"target\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"categories\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ids\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"22222222-2222-4222-8222-222222222222\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"application\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"each_eligible_item\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"minimumSubtotalMinor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"totalLimit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`500`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"perCustomerLimit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"weeklySchedule\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"dayOfWeek\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"startsAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"11:00\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"endsAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"14:00\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"dayOfWeek\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"startsAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"11:00\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"endsAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"14:00\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Money uses integer minor units and percentages use basis points (`,_jsx(_components.code,{children:`1000`}),` = 10%). Weekly windows use\nthe location timezone and half-open intervals: the start is included and the end is excluded.\n`,_jsx(_components.code,{children:`dayOfWeek`}),` is `,_jsx(_components.code,{children:`0`}),` for Sunday through `,_jsx(_components.code,{children:`6`}),` for Saturday. A per-customer limit requires a verified\norganization customer; guests fail closed for that code.`]}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`GET /api/v1/discounts/catalog-targets`}),` to discover active canonical products and categories and\nthe locations where each target is currently published.`]}),`\n`,_jsx(Heading,{level:`2`,id:`preview-update-and-archive`,children:`Preview, update, and archive`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GET /api/v1/discounts`}),` lists definitions with organization and per-location ledger metrics.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GET /api/v1/discounts/{discountId}`}),` reads one definition.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`POST /api/v1/discounts/{discountId}/preview`}),` evaluates supplied cart lines without reserving or\nconsuming usage.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PUT /api/v1/discounts/{discountId}`}),` requires the current positive `,_jsx(_components.code,{children:`revision`}),` in the request body.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DELETE /api/v1/discounts/{discountId}`}),` archives the definition and requires `,_jsx(_components.code,{children:`{ \"revision\": N }`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Disabling or archiving an active definition with reserved or committed usage fails closed unless the\nrequest also includes `,_jsx(_components.code,{children:`\"confirmActiveUsage\": true`}),`. Business Manager asks for this confirmation and\nthen sends the same explicit API evidence; integrations must do likewise.`]}),`\n`,_jsx(_components.p,{children:`A stale revision or normalized duplicate returns a conflict. Foreign locations and targets are not\ndisclosed. Archiving prevents new evaluation but does not rewrite historical order or redemption\nevidence.`}),`\n`,_jsx(Heading,{level:`2`,id:`storefront-use`,children:`Storefront use`}),`\n`,_jsxs(_components.p,{children:[`Apply a code with\n`,_jsx(_components.code,{children:`POST /api/v1/storefront/locations/{locationId}/carts/{cartId}/discount`}),` and `,_jsx(_components.code,{children:`{ \"code\": \"LUNCH10\" }`}),`.\nRemove it with the corresponding `,_jsx(_components.code,{children:`DELETE`}),`. Both mutations require the cart capability, an\n`,_jsx(_components.code,{children:`Idempotency-Key`}),`, and the current cart precondition used by the Storefront contract.`]}),`\n`,_jsx(_components.p,{children:`Crave supports one public promotion or one loyalty reward on a cart, not both. Applying a public\ncode while loyalty is reserved fails without silently releasing the reward. The response is the\nauthoritative cart, including the exact adjustment and current revision.`}),`\n`,_jsx(_components.p,{children:`At payment creation Crave evaluates the definition again, reserves capacity atomically, and stores\nthe definition, cart, and catalog revisions. Payment cancellation releases the reservation; order\nmaterialization commits it; a full provider-confirmed refund reverses it. Partial refunds retain the\nusage and record cumulative proportional evidence.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Do not calculate discount eligibility or usage limits in a client. Never retry\ncheckout with a new idempotency key after an ambiguous response; read the cart\nor order and reconcile the canonical state first.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Organization discounts","description":"Create one promotion for an organization and target all or selected locations safely.","href":"/guides/organization-discounts"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Authentication and scopes","slug":"authentication-and-scopes","depth":2,"children":[]},{"title":"Create a definition","slug":"create-a-definition","depth":2,"children":[]},{"title":"Preview, update, and archive","slug":"preview-update-and-archive","depth":2,"children":[]},{"title":"Storefront use","slug":"storefront-use","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"craveup-1493c4c7","siteName":"Crave Cloud Documentation","title":"Organization discounts - Crave Cloud Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T05:15:10.833Z","originalFileLocation":"guides/organization-discounts.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=\"Create one promotion for an organization and target all or selected locations safely.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Crave Cloud Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Organization discounts - Crave Cloud Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create one promotion for an organization and target all or selected locations safely.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Crave Cloud Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.craveup.com/guides/organization-discounts\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://craveup-1493c4c7.mintlify.app/_mintlify/api/og/v2?division=Implementation\u0026amp;title=Organization+discounts\u0026amp;description=Create+one+promotion+for+an+organization+and+target+all+or+selected+locations+safely.\u0026amp;theme=b98c5e909d3955315eca9dcf\u0026amp;signature=2dd6b4bea2ca3a639565ff159e9e26589801e4e6750a1488df7a055c9a8b323e\">\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=\"Organization discounts - Crave Cloud Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create one promotion for an organization and target all or selected locations safely.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://craveup-1493c4c7.mintlify.app/_mintlify/api/og/v2?division=Implementation\u0026amp;title=Organization+discounts\u0026amp;description=Create+one+promotion+for+an+organization+and+target+all+or+selected+locations+safely.\u0026amp;theme=b98c5e909d3955315eca9dcf\u0026amp;signature=2dd6b4bea2ca3a639565ff159e9e26589801e4e6750a1488df7a055c9a8b323e\">\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=\"/mintlify-assets/_mintlify/favicons/craveup-1493c4c7/xHUpRIXxnvFKaY61/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Crave Cloud Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#133B2F\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.craveup.com/guides/organization-discounts\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/organization-discounts.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.craveup.com/#organization\",\"name\":\"Crave Cloud Documentation\",\"url\":\"https://docs.craveup.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/craveup-1493c4c7/P4icpH7dO6tjC3GV/logo/crave-wordmark.png?fit=max\u0026auto=format\u0026n=P4icpH7dO6tjC3GV\u0026q=85\u0026s=c6965caeaa3bfbd9e84cf5416bbf2576\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.craveup.com#website\",\"name\":\"Crave Cloud Documentation\",\"url\":\"https://docs.craveup.com\",\"publisher\":{\"@id\":\"https://docs.craveup.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.craveup.com/guides/organization-discounts#webpage\",\"url\":\"https://docs.craveup.com/guides/organization-discounts\",\"name\":\"Organization discounts\",\"description\":\"Create one promotion for an organization and target all or selected locations safely.\",\"dateModified\":\"2026-10-30T05:15:10.833Z\",\"isPartOf\":{\"@id\":\"https://docs.craveup.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.craveup.com/guides/organization-discounts#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.craveup.com/guides/organization-discounts#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Implementation\",\"item\":\"https://docs.craveup.com/guides/generate-api-key\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Organization discounts\",\"item\":\"https://docs.craveup.com/guides/organization-discounts\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.craveup.com/guides/organization-discounts#article\",\"headline\":\"Organization discounts\",\"name\":\"Organization discounts\",\"description\":\"Create one promotion for an organization and target all or selected locations safely.\",\"url\":\"https://docs.craveup.com/guides/organization-discounts\",\"mainEntityOfPage\":{\"@id\":\"https://docs.craveup.com/guides/organization-discounts#webpage\"},\"dateModified\":\"2026-10-30T05:15:10.833Z\",\"publisher\":{\"@id\":\"https://docs.craveup.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.craveup.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Crave Cloud Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Crave Cloud Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","groups":[{"group":"Platform","icon":"cloud","pages":[{"title":"Crave Cloud Overview","href":"/guides/crave-cloud-overview"},{"title":"Developer Package and Crave Cloud","href":"/guides/open-source-and-cloud"}]},{"group":"Getting Started","icon":"compass","pages":[{"title":"Build a Restaurant Ordering App in Minutes","href":"/getting-started/introduction"},{"title":"CLI Quickstart","href":"/getting-started/cli-quickstart"},{"title":"Storefront SDK","href":"/getting-started/storefront-sdk"},{"title":"Dart and Flutter Storefront SDK","href":"/getting-started/flutter-storefront-sdk"},{"title":"REST API Essentials","href":"/getting-started/rest-api"}]},{"group":"Quickstarts","icon":"zap","pages":[{"title":"Next.js Quickstart","href":"/quickstarts/nextjs"},{"title":"React Quickstart","href":"/quickstarts/react"},{"title":"Vanilla JavaScript Quickstart","href":"/quickstarts/vanilla-js"},{"title":"React Native / Expo Quickstart","href":"/quickstarts/mobile"},{"title":"Flutter quickstart","href":"/quickstarts/flutter"}]},{"group":"Implementation","icon":"wrench","pages":[{"title":"Generate a Private Integration API Key","href":"/guides/generate-api-key"},{"title":"Build a Custom Storefront","href":"/guides/build-custom-storefront"},{"title":"Customer identity","description":"Build guest checkout and verified customer accounts without crossing restaurant organizations.","href":"/guides/customer-identity"},{"title":"Organization discounts","href":"/guides/organization-discounts"}]},{"group":"AI","icon":"bot","pages":[{"title":"Use the CraveUp MCP Server","description":"Connect AI agents to CraveUp tools for storefront setup, menu import, readiness checks, and go-live onboarding.","href":"/guides/ai/craveup-mcp-server"},{"title":"Prebuilt Storefront Prompt","href":"/guides/ai/build-storefront-prompt"}]},{"group":"Ordering Flow","icon":"shopping-basket","pages":[{"title":"Display Menu","href":"/guides/display-menu"},{"title":"Manage Cart","href":"/guides/manage-cart"},{"title":"Checkout Flow","href":"/guides/checkout-flow"},{"title":"Assisted Ordering","href":"/guides/assisted-ordering"},{"title":"Fulfillment Methods","href":"/guides/fulfillment-methods"},{"title":"Accept Payments","href":"/guides/accept-payments"},{"title":"Order Tracking","href":"/guides/order-tracking"}]},{"group":"More Guides","icon":"lightbulb","pages":[{"title":"Theming","href":"/guides/theming"},{"title":"Outbound Webhooks","href":"/guides/webhooks"},{"title":"Testing","href":"/guides/testing"},{"title":"Deployment","href":"/guides/deployment"},{"title":"Analytics","href":"/guides/analytics"}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Square POS-native commerce setup","href":"/guides/integrations/square"},{"title":"Stripe Payments","href":"/guides/integrations/stripe"},{"title":"Toast POS","href":"/guides/integrations/toast"},{"title":"Clover POS","href":"/guides/integrations/clover"}]},{"group":"Reference","icon":"book-text","pages":[{"title":"Glossary","href":"/guides/glossary"},{"title":"Troubleshooting","href":"/guides/troubleshooting"},{"title":"Upgrade Guide","href":"/guides/upgrade-guide"}]}]},{"tab":"API Reference","icon":"square-terminal","pages":[{"title":"API Reference","href":"/api-reference/overview/api-overview"}]},{"tab":"Components","icon":"puzzle","pages":[{"title":"Components","href":"/components/overview"}]},{"tab":"Changelog","icon":"clock","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Organization discounts - Crave Cloud Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}