Use this endpoint to retrieve the full configuration for a site, based on the requested
sales channel.This configuration includes tier details, rules, rewards and various other settings that
can be used to construct a custom shopper-facing frontend.
This endpoint has a rate limit of 100 requests per secondIf you anticipate making a high volume of calls to this endpoint, e.g. if you
are calling it on each page render, consider caching the returned configuration
for a short period (max 30 seconds) and reusing it
tier_configuration.boundary_mode is points, spend or orders, and sets
the unit of each tier’s lower_bound and upper_bound: a points total, a
currency amount, or a number of qualifying orders. Every tier except a
conditional tier has a kind matching the boundary mode. Conditional tiers
have no bounds.For orders programs, bounds are whole numbers of qualifying orders and are
inclusive. A tier with a lower bound of 3 and an upper bound of 5 holds
customers with 3, 4 or 5 qualifying orders. The highest tier has an
upper_bound of null.A qualifying order is paid or partially paid, not cancelled, and not fully
refunded. A partially refunded order still counts as one order. Only orders
placed after the program launched, and within the tier evaluation window, are
counted. If the program sets a minimum qualifying order value, an order only
counts when its value, net of refunds and gift cards, meets that minimum. The
minimum is compared against the order total, or against the product subtotal
if the program is set up that way.
An API key linked to a Program in LoyaltyLion, with a set of permissions (scopes). API keys can be created manually, or acquired through an OAuth2 flow. The API key should be provided as a Bearer token in the Authorization header
Ordered list of rules that belong to this site. Each rule will have one or more variants that indicate its configuration and if it is enabled per tier. Rules have a kind property, and some kinds of rules will have properties that are specific to that rule kind
Ordered list of rewards that belong to this site. Each reward will have one or more variants that indicate its configuration and if it is enabled per tier. Rewards have a kind property, and some kinds of rewards will have properties that are specific to that reward kind
A gift card that can be used for future orders until its balance runs out
The referee incentive for the program, included only if one is enabled. This is a description of the incentive and does not include an actual voucher code, which is available through the referee incentive endpoint instead
Cart Discount Voucher
Free Shipping Voucher
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LoyaltyLion","colors":{"primary":"#7533f2","light":"#BEAAFF","dark":"#5C18D6"},"logo":{"light":"https://mintcdn.com/loyaltylion/qoWgzO-fbs5_an5D/logo/loyaltylion-logo-black.svg?fit=max\u0026auto=format\u0026n=qoWgzO-fbs5_an5D\u0026q=85\u0026s=a8042001d5f93ef344ce190752bfba7d","dark":"https://mintcdn.com/loyaltylion/qoWgzO-fbs5_an5D/logo/loyaltylion-logo-white.svg?fit=max\u0026auto=format\u0026n=qoWgzO-fbs5_an5D\u0026q=85\u0026s=37ab9b9089a7e1a44d13df2ae9398de1"},"favicon":"https://mintcdn.com/loyaltylion/qoWgzO-fbs5_an5D/images/favicon.svg?fit=max\u0026auto=format\u0026n=qoWgzO-fbs5_an5D\u0026q=85\u0026s=2d71e6cbb2847c7a83d1d3a4abb6d05e","api":{"playground":{"display":"simple"}},"background":{"color":{}},"navbar":{"links":[{"href":"https://status.loyaltylion.com","label":"Status"},{"href":"https://help.loyaltylion.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.loyaltylion.com"}},"footer":{"socials":{"x":"https://x.com/loyaltylionhq","github":"https://github.com/loyaltylion","linkedin":"https://linkedin.com/company/loyaltylion"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"loyaltylion","hasAudioNarration":false,"actualSubdomain":"loyaltylion","customDomains":["developers.loyaltylion.com"],"gitSource":{"type":"github","owner":"loyaltylion","repo":"dev-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf4e85d1c84ec1c21062b7","collectionId":"be2b06ae-a22c-4831-83d5-bac7ea7663ff","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf4e85d1c84ec1c21062b7"},"feedback":{"issues":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adf4e85d1c84ec1c21062b7","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Admin API","count":67},{"language":"default","tag":"Resources","count":56},{"language":"default","tag":"SDK","count":37},{"language":"default","tag":"Headless API","count":34},{"language":"default","tag":"Webhooks","count":25},{"language":"default","tag":"Webhook events","count":21},{"language":"default","tag":"Embeddable components","count":15},{"language":"default","tag":"Customers","count":13},{"language":"default","tag":"LoyaltyLion SDK","count":13},{"language":"default","tag":"Standalone components","count":12}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"editor-agent-model-picker","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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".not-prose.mb-6{display:flex;flex-wrap:wrap;gap:0 1.5rem}.not-prose.mb-6>li{margin-left:0!important}"}],"page":{"pagePath":"headless-api/2025-06/configuration/get-configuration","slug":"/headless-api/2025-06/configuration/get-configuration","pageMetadata":{"title":"Get Configuration","version":"v2","openapi":"headless-api/2025-06/openapi.json GET /headless/2025-06/{site_id}/configuration","description":null,"href":"/headless-api/2025-06/configuration/get-configuration"},"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`,p:`p`,..._provideComponents(),...props.components},{Heading,Note}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Use this endpoint to retrieve the full configuration for a site, based on the requested\nsales channel.`}),`\n`,_jsx(_components.p,{children:`This configuration includes tier details, rules, rewards and various other settings that\ncan be used to construct a custom shopper-facing frontend.`}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:`This endpoint has a rate limit of 100 requests per second`}),_jsx(_components.p,{children:`If you anticipate making a high volume of calls to this endpoint, e.g. if you\nare calling it on each page render, consider caching the returned configuration\nfor a short period (max 30 seconds) and reusing it`})]}),`\n`,_jsx(Heading,{level:`2`,id:`tiers`,children:`Tiers`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`tier_configuration.boundary_mode`}),` is `,_jsx(_components.code,{children:`points`}),`, `,_jsx(_components.code,{children:`spend`}),` or `,_jsx(_components.code,{children:`orders`}),`, and sets\nthe unit of each tier’s `,_jsx(_components.code,{children:`lower_bound`}),` and `,_jsx(_components.code,{children:`upper_bound`}),`: a points total, a\ncurrency amount, or a number of qualifying orders. Every tier except a\nconditional tier has a `,_jsx(_components.code,{children:`kind`}),` matching the boundary mode. Conditional tiers\nhave no bounds.`]}),`\n`,_jsxs(_components.p,{children:[`For `,_jsx(_components.code,{children:`orders`}),` programs, bounds are whole numbers of qualifying orders and are\ninclusive. A tier with a lower bound of `,_jsx(_components.code,{children:`3`}),` and an upper bound of `,_jsx(_components.code,{children:`5`}),` holds\ncustomers with 3, 4 or 5 qualifying orders. The highest tier has an\n`,_jsx(_components.code,{children:`upper_bound`}),` of `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsx(_components.p,{children:`A qualifying order is paid or partially paid, not cancelled, and not fully\nrefunded. A partially refunded order still counts as one order. Only orders\nplaced after the program launched, and within the tier evaluation window, are\ncounted. If the program sets a minimum qualifying order value, an order only\ncounts when its value, net of refunds and gift cards, meets that minimum. The\nminimum is compared against the order total, or against the product subtotal\nif the program is set up that way.`})]})}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":"Get Configuration","version":"v2","openapi":"headless-api/2025-06/openapi.json GET /headless/2025-06/{site_id}/configuration","description":null,"href":"/headless-api/2025-06/configuration/get-configuration"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Tiers","slug":"tiers","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["configuration"],"security":["e12f67b3-57c9-4f7e-8f19-78c30dd3522c","eab588ce-cf39-4ef6-ab8e-87410da41463"],"parameters":["c215cb48-82d7-4afd-9ce1-54fde03e971f","0ec2d810-d388-4394-a9f1-bf9ebcf00ab4","8d98a5c1-c418-466f-8087-4b3fde05992a","eaeb1afe-b0b4-42d0-8d33-b1c16dfba624"],"operationId":"configuration.getConfiguration","responses":{"200":"8121f502-8811-403d-9ce0-30acb4f2da04","400":"0c386269-447a-4aea-899b-119e58e73a3a","401":"cd2919b4-0339-4c8b-a10a-622be92fad48","403":"b9ebd9dd-9b5e-4c7c-aa03-6d80659f328e","404":"5b5007bc-8b13-4aad-853f-375c47dad0da","422":"5df49900-731e-4dfa-bf36-0fa453575a1d","429":"2c1b7761-d280-4bde-8f17-6b8d971b0faa"},"method":"get","type":"path","servers":["5947ccdf-6752-40b7-8a08-71f8c0d385f5"],"path":"/headless/2025-06/{site_id}/configuration","baseUrlOptions":["https://api.loyaltylion.com"],"title":"","description":"","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"c215cb48-82d7-4afd-9ce1-54fde03e971f":{"name":"site_id","in":"path","required":true,"schema":{"type":"number","isRequired":true,"description":"Your LoyaltyLion Site ID","uniqueKey":"","typeLabel":"number"},"description":"Your LoyaltyLion Site ID"},"0ec2d810-d388-4394-a9f1-bf9ebcf00ab4":{"name":"channel","in":"query","description":"The sales channel from which this request is made. Must be provided as this query parameter, or the `X-LoyaltyLion-Channel` header","schema":{"type":"string","enum":["web","pos","mobile"],"description":"The sales channel from which this request is made","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"8d98a5c1-c418-466f-8087-4b3fde05992a":{"name":"language","in":"query","description":"The language to use for the request. If not provided, the site's default language will be used","schema":{}},"eaeb1afe-b0b4-42d0-8d33-b1c16dfba624":{"name":"country","in":"query","description":"ISO 3166-1 alpha-2 country code for the customer. Used to filter rewards by country availability. If not provided, the site default is used","schema":{"type":"string","description":"ISO 3166-1 alpha-2 country code for the customer. Used to filter rewards by country availability. If not provided, the site default is used","uniqueKey":"","typeLabel":"string"}}},"responses":{"8121f502-8811-403d-9ce0-30acb4f2da04":{"description":"200","content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["web","pos","mobile"],"description":"The sales channel for which this response was generated","isRequired":true,"uniqueKey":"channel","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","description":"`ISO 4217` code indicating the currency for any financial values in this response","example":"usd","isRequired":true,"uniqueKey":"currency","typeLabel":"string"},"language":{"description":"`ISO 639-1` code indicating the language used for any text in this response","isRequired":true,"uniqueKey":"language","typeLabel":"any"},"program":{"type":"object","properties":{"name":{"type":"string","description":"The name of the program","example":"Lion Rewards","isRequired":true,"uniqueKey":"program.name","typeLabel":"string"}},"required":["name"],"additionalProperties":false,"isRequired":true,"uniqueKey":"program","typeLabel":"object"},"tier_configuration":{"oneOf":[{"type":"object","description":"The tier configuration for the program, or `null` if tiers are not enabled","required":["boundary_mode","tiers","tier_benefits","membership"],"example":{"boundary_mode":"spend","tiers":[{"id":1,"name":"Silver","benefit_ids":[1],"hidden":false,"kind":"spend","position":1,"lower_bound":{"amount":0,"formatted":"$0"},"upper_bound":{"amount":99.99,"formatted":"$99.99"}},{"id":2,"name":"Gold","benefit_ids":[1,2],"hidden":false,"kind":"spend","position":2,"lower_bound":{"amount":100,"formatted":"$100"},"upper_bound":null}],"tier_benefits":[{"id":1,"label":"Early access to new products","secret":false,"details":null},{"id":2,"label":"Free makeup classes","secret":false,"details":{"plaintext":"Email classes@example.com to sign up to a class\n","html":"\u003cp>Email classes@example.com to sign up to a class\u003c/p>"}}],"membership":{"mode":"rolling","duration_months":12}},"properties":{"boundary_mode":{"type":"string","enum":["points","spend","orders"],"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.boundary_mode","typeLabel":"enum\u003cstring>"},"tiers":{"type":"array","items":{"oneOf":[{"type":"object","title":"Points","required":["id","name","position","hidden","benefit_ids","kind","lower_bound","upper_bound"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.id","typeLabel":"number"},"name":{"type":"string","description":"The name of the tier","example":"Gold","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.name","typeLabel":"string"},"position":{"type":"number","description":"The position of the tier, where `1` is the first and default tier","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.position","typeLabel":"number"},"hidden":{"type":"boolean","description":"If true, this is a hidden tier and is only shown to shoppers who are in it","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.hidden","typeLabel":"boolean"},"benefit_ids":{"description":"Ordered list of tier benefit IDs that are associated with this tier","type":"array","items":{"type":"integer","uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.benefit_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.benefit_ids","typeLabel":"integer[]"},"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.kind","typeLabel":"string"},"lower_bound":{"type":"integer","example":0,"description":"The lower bound of the tier in points","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.lower_bound","typeLabel":"integer"},"upper_bound":{"oneOf":[{"example":99,"description":"The upper bound of the tier in points, or `null` if there is no upper bound","type":"integer","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.upper_bound.oneOf.0","typeLabel":"integer"},{"example":99,"description":"The upper bound of the tier in points, or `null` if there is no upper bound","type":"null","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.upper_bound.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0.upper_bound","typeLabel":"integer | null"}},"additionalProperties":false,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Spend","required":["id","name","position","hidden","benefit_ids","kind","lower_bound","upper_bound"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.id","typeLabel":"number"},"name":{"type":"string","description":"The name of the tier","example":"Gold","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.name","typeLabel":"string"},"position":{"type":"number","description":"The position of the tier, where `1` is the first and default tier","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.position","typeLabel":"number"},"hidden":{"type":"boolean","description":"If true, this is a hidden tier and is only shown to shoppers who are in it","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.hidden","typeLabel":"boolean"},"benefit_ids":{"description":"Ordered list of tier benefit IDs that are associated with this tier","type":"array","items":{"type":"integer","uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.benefit_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.benefit_ids","typeLabel":"integer[]"},"kind":{"type":"string","const":"spend","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.kind","typeLabel":"string"},"lower_bound":{"type":"object","properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.lower_bound.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.lower_bound.formatted","typeLabel":"string"}},"required":["amount","formatted"],"additionalProperties":false,"description":"The lower bound of the tier as a currency amount. For example, $10.50 would be \"10.50\", ¥100 would be \"100\"","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.lower_bound","typeLabel":"object"},"upper_bound":{"oneOf":[{"type":"object","description":"The upper bound of the tier as a currency amount, or `null` if there is no upper bound. For example, $150.50 USD would be \"150.50\", ¥500 would be \"500\"","required":["amount","formatted"],"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.upper_bound.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.upper_bound.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.upper_bound.oneOf.0","typeLabel":"object"},{"type":"null","description":"The upper bound of the tier as a currency amount, or `null` if there is no upper bound. For example, $150.50 USD would be \"150.50\", ¥500 would be \"500\"","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.upper_bound.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1.upper_bound","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.1","typeLabel":"Spend · object"},{"type":"object","title":"Orders","required":["id","name","position","hidden","benefit_ids","kind","lower_bound","upper_bound"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.id","typeLabel":"number"},"name":{"type":"string","description":"The name of the tier","example":"Gold","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.name","typeLabel":"string"},"position":{"type":"number","description":"The position of the tier, where `1` is the first and default tier","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.position","typeLabel":"number"},"hidden":{"type":"boolean","description":"If true, this is a hidden tier and is only shown to shoppers who are in it","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.hidden","typeLabel":"boolean"},"benefit_ids":{"description":"Ordered list of tier benefit IDs that are associated with this tier","type":"array","items":{"type":"integer","uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.benefit_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.benefit_ids","typeLabel":"integer[]"},"kind":{"type":"string","const":"orders","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.kind","typeLabel":"string"},"lower_bound":{"type":"integer","example":0,"description":"The lower bound of the tier in number of orders","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.lower_bound","typeLabel":"integer"},"upper_bound":{"oneOf":[{"example":4,"description":"The upper bound of the tier in number of orders, or `null` if there is no upper bound","type":"integer","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.upper_bound.oneOf.0","typeLabel":"integer"},{"example":4,"description":"The upper bound of the tier in number of orders, or `null` if there is no upper bound","type":"null","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.upper_bound.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2.upper_bound","typeLabel":"integer | null"}},"additionalProperties":false,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.2","typeLabel":"Orders · object"},{"type":"object","title":"Conditional","required":["id","name","position","hidden","benefit_ids","kind"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.3.id","typeLabel":"number"},"name":{"type":"string","description":"The name of the tier","example":"Gold","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.3.name","typeLabel":"string"},"position":{"type":"number","description":"The position of the tier, where `1` is the first and default tier","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.3.position","typeLabel":"number"},"hidden":{"type":"boolean","description":"If true, this is a hidden tier and is only shown to shoppers who are in it","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.3.hidden","typeLabel":"boolean"},"benefit_ids":{"description":"Ordered list of tier benefit IDs that are associated with this tier","type":"array","items":{"type":"integer","uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.3.benefit_ids.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.3.benefit_ids","typeLabel":"integer[]"},"kind":{"type":"string","const":"conditional","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.3.kind","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX].oneOf.3","typeLabel":"Conditional · object"}],"uniqueKey":"tier_configuration.oneOf.0.tiers.items.[INDEX]","typeLabel":"Points · object | Spend · object | Orders · object | Conditional · object"},"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tiers","typeLabel":"(Points · object | Spend · object | Orders · object | Conditional · object)[]"},"tier_benefits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits.items.[INDEX].id","typeLabel":"integer"},"label":{"type":"string","description":"A short label explaining what this tier benefit is","example":"Early access to new collections","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits.items.[INDEX].label","typeLabel":"string"},"secret":{"type":"boolean","description":"Indicates if this is a 'secret' tier benefit. Such benefits should only be shown if the current customer is already in the associated tier","example":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits.items.[INDEX].secret","typeLabel":"boolean"},"details":{"oneOf":[{"type":"object","description":"More details about this tier benefit as HTML and plaintext strings. Will be `null` if there are no additional details for this benefit","required":["plaintext","html"],"properties":{"plaintext":{"type":"string","description":"More information about this benefit as basic plaintext string with line breaks","example":"Please email us (store@example.com) to receive this benefit\n","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits.items.[INDEX].details.oneOf.0.plaintext","typeLabel":"string"},"html":{"type":"string","description":"More information about this benefit. This can include simple HTML tags such as formatting, lists, and links","example":"\u003cp>Please \u003ca href='mailto:store@example.com'>email us\u003c/a> to receive this benefit\u003c/p>","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits.items.[INDEX].details.oneOf.0.html","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits.items.[INDEX].details.oneOf.0","typeLabel":"object"},{"type":"null","description":"More details about this tier benefit as HTML and plaintext strings. Will be `null` if there are no additional details for this benefit","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits.items.[INDEX].details.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits.items.[INDEX].details","typeLabel":"object | null"}},"required":["id","label","secret","details"],"additionalProperties":false,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.tier_benefits","typeLabel":"object[]"},"membership":{"oneOf":[{"type":"object","title":"Rolling","description":"Tier membership mode. Will be one of `rolling` (memberships expire after a duration) , `lifetime` (memberships don't expire), `calendar` (memberships expire according to a fixed calendar schedule), or `enrollment_anniversary` (memberships expire according to the customer's enrollment anniversary)","required":["mode","duration_months"],"properties":{"mode":{"type":"string","const":"rolling","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.0.mode","typeLabel":"string"},"duration_months":{"type":"number","example":12,"description":"The number of months after which a membership in this tier will expire","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.0.duration_months","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.0","typeLabel":"Rolling · object"},{"type":"object","title":"Calendar","description":"Tier membership mode. Will be one of `rolling` (memberships expire after a duration) , `lifetime` (memberships don't expire), `calendar` (memberships expire according to a fixed calendar schedule), or `enrollment_anniversary` (memberships expire according to the customer's enrollment anniversary)","required":["mode","evaluation_period","duration"],"properties":{"mode":{"type":"string","const":"calendar","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1.mode","typeLabel":"string"},"evaluation_period":{"type":"object","properties":{"starts_on":{"type":"object","properties":{"month":{"type":"number","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1.evaluation_period.starts_on.month","typeLabel":"number"},"day":{"type":"number","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1.evaluation_period.starts_on.day","typeLabel":"number"}},"required":["month","day"],"additionalProperties":false,"description":"The month and day the evaluation period for this tier begins","example":{"month":1,"day":1},"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1.evaluation_period.starts_on","typeLabel":"object"},"duration":{"type":"object","properties":{"months":{"type":"number","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1.evaluation_period.duration.months","typeLabel":"number"}},"required":["months"],"additionalProperties":false,"description":"The number of months in the evaluation period","example":{"months":12},"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1.evaluation_period.duration","typeLabel":"object"}},"required":["starts_on","duration"],"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1.evaluation_period","typeLabel":"object"},"duration":{"type":"object","properties":{"windows":{"type":"number","description":"The number of evaluation windows the membership lasts for, e.g. for a Jan 1 - Dec 31 window, a value of 1 means the membership lasts for the rest of the current year and to the end of the following year. A value of 0 means the membership only lasts until the end of the current year.","example":1,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1.duration.windows","typeLabel":"number"}},"required":["windows"],"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1.duration","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.1","typeLabel":"Calendar · object"},{"type":"object","title":"Lifetime","description":"Tier membership mode. Will be one of `rolling` (memberships expire after a duration) , `lifetime` (memberships don't expire), `calendar` (memberships expire according to a fixed calendar schedule), or `enrollment_anniversary` (memberships expire according to the customer's enrollment anniversary)","required":["mode"],"properties":{"mode":{"type":"string","const":"lifetime","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.2.mode","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.2","typeLabel":"Lifetime · object"},{"type":"object","title":"Enrollment Anniversary","description":"Tier membership mode. Will be one of `rolling` (memberships expire after a duration) , `lifetime` (memberships don't expire), `calendar` (memberships expire according to a fixed calendar schedule), or `enrollment_anniversary` (memberships expire according to the customer's enrollment anniversary)","required":["mode","duration"],"properties":{"mode":{"type":"string","const":"enrollment_anniversary","isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.3.mode","typeLabel":"string"},"duration":{"type":"object","properties":{"windows":{"type":"number","description":"The number of evaluation windows the membership lasts for, e.g. for a Jan 1 - Dec 31 window, a value of 1 means the membership lasts for the rest of the current year and to the end of the following year. A value of 0 means the membership only lasts until the end of the current year.","example":1,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.3.duration.windows","typeLabel":"number"}},"required":["windows"],"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.3.duration","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership.oneOf.3","typeLabel":"Enrollment Anniversary · object"}],"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0.membership","typeLabel":"Rolling · object | Calendar · object | Lifetime · object | Enrollment Anniversary · object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"tier_configuration.oneOf.0","typeLabel":"object"},{"type":"null","description":"The tier configuration for the program, or `null` if tiers are not enabled","example":{"boundary_mode":"spend","tiers":[{"id":1,"name":"Silver","benefit_ids":[1],"hidden":false,"kind":"spend","position":1,"lower_bound":{"amount":0,"formatted":"$0"},"upper_bound":{"amount":99.99,"formatted":"$99.99"}},{"id":2,"name":"Gold","benefit_ids":[1,2],"hidden":false,"kind":"spend","position":2,"lower_bound":{"amount":100,"formatted":"$100"},"upper_bound":null}],"tier_benefits":[{"id":1,"label":"Early access to new products","secret":false,"details":null},{"id":2,"label":"Free makeup classes","secret":false,"details":{"plaintext":"Email classes@example.com to sign up to a class\n","html":"\u003cp>Email classes@example.com to sign up to a class\u003c/p>"}}],"membership":{"mode":"rolling","duration_months":12}},"isRequired":true,"uniqueKey":"tier_configuration.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"tier_configuration","typeLabel":"object | null"},"rules":{"description":"Ordered list of rules that belong to this site. Each rule will have one or more variants that indicate its configuration and if it is enabled per tier. Rules have a `kind` property, and some kinds of rules will have `properties` that are specific to that rule kind","type":"array","items":{"oneOf":[{"type":"object","title":"Birthday","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"birthday","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.0.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.0.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.0.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.0.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.0","typeLabel":"Birthday · object"},{"type":"object","title":"Loyalty pass install","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"loyalty_pass_install","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.1.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.1.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.1.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.1.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.1","typeLabel":"Loyalty pass install · object"},{"type":"object","title":"Collection purchase","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"collection_purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.2.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.2.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.2.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.2.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.2","typeLabel":"Collection purchase · object"},{"type":"object","title":"Newsletter signup","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"newsletter_signup","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.3.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.3.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.3.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.3.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.3","typeLabel":"Newsletter signup · object"},{"type":"object","title":"Pageview","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"pageview","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.4.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.4.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.4.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.4.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.4","typeLabel":"Pageview · object"},{"type":"object","title":"Product purchase","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"product_purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.5.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.5.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.5.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.5.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.5","typeLabel":"Product purchase · object"},{"type":"object","title":"Purchase","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.6.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.6.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.6.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.6.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.6","typeLabel":"Purchase · object"},{"type":"object","title":"Join program","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"join_program","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.7.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.7.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.7.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.7.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.7","typeLabel":"Join program · object"},{"type":"object","title":"Review","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"review","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].result_short_text","typeLabel":"string"},"requirements":{"description":"Conditions the review must meet for this rule variant to be completed. Empty when any review counts","type":"array","items":{"oneOf":[{"type":"object","title":"Includes photo","description":"A condition the review must meet for this rule to be completed. A review that fails any requirement earns nothing from this rule","required":["kind","min_count","text"],"properties":{"kind":{"type":"string","const":"includes_photo","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.0.kind","typeLabel":"string"},"min_count":{"type":"number","description":"The minimum number of photos the review must include","example":1,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.0.min_count","typeLabel":"number"},"text":{"type":"string","description":"Short, localized text describing this requirement to the shopper, in the requested language and including any wording the store has customized. Where the text has no translation in the requested language, the English text is returned","example":"Review must be at least 50 characters","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.0.text","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.0","typeLabel":"Includes photo · object"},{"type":"object","title":"Includes video","description":"A condition the review must meet for this rule to be completed. A review that fails any requirement earns nothing from this rule","required":["kind","min_count","text"],"properties":{"kind":{"type":"string","const":"includes_video","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.1.kind","typeLabel":"string"},"min_count":{"type":"number","description":"The minimum number of videos the review must include","example":1,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.1.min_count","typeLabel":"number"},"text":{"type":"string","description":"Short, localized text describing this requirement to the shopper, in the requested language and including any wording the store has customized. Where the text has no translation in the requested language, the English text is returned","example":"Review must be at least 50 characters","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.1.text","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.1","typeLabel":"Includes video · object"},{"type":"object","title":"Text length","description":"A condition the review must meet for this rule to be completed. A review that fails any requirement earns nothing from this rule","required":["kind","min_length","text"],"properties":{"kind":{"type":"string","const":"text_length","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.2.kind","typeLabel":"string"},"min_length":{"type":"number","description":"The minimum number of characters the review text must contain","example":100,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.2.min_length","typeLabel":"number"},"text":{"type":"string","description":"Short, localized text describing this requirement to the shopper, in the requested language and including any wording the store has customized. Where the text has no translation in the requested language, the English text is returned","example":"Review must be at least 50 characters","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.2.text","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.2","typeLabel":"Text length · object"},{"type":"object","title":"Matching product","description":"A condition the review must meet for this rule to be completed. A review that fails any requirement earns nothing from this rule","required":["kind","product_ids","text"],"properties":{"kind":{"type":"string","const":"matching_product","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.3.kind","typeLabel":"string"},"product_ids":{"description":"The reviewed product must be one of these products. Each ID is the product's ID in the store's ecommerce platform","example":["8146810290418"],"type":"array","items":{"type":"string","uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.3.product_ids.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.3.product_ids","typeLabel":"string[]"},"text":{"type":"string","description":"Short, localized text describing this requirement to the shopper, in the requested language and including any wording the store has customized. Where the text has no translation in the requested language, the English text is returned","example":"Review must be at least 50 characters","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.3.text","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX].oneOf.3","typeLabel":"Matching product · object"}],"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements.items.[INDEX]","typeLabel":"Includes photo · object | Includes video · object | Text length · object | Matching product · object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].requirements","typeLabel":"(Includes photo · object | Includes video · object | Text length · object | Matching product · object)[]"},"modifiers":{"description":"Extra points available for a review that meets each modifier condition, added to the result of this rule variant. A review earns the bonus of every modifier it meets. Only modifiers that award points are listed, and the list is always empty when the result is a `reward`","type":"array","items":{"oneOf":[{"type":"object","title":"Includes photo","description":"Extra points awarded when the review meets a condition, such as including a photo","required":["kind","min_count","bonus","text"],"properties":{"kind":{"type":"string","const":"includes_photo","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.kind","typeLabel":"string"},"min_count":{"type":"number","description":"The minimum number of photos the review must include","example":1,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.min_count","typeLabel":"number"},"bonus":{"oneOf":[{"type":"object","title":"Fixed","description":"The extra points awarded, on top of the rule variant result, when the review meets the modifier condition. Either a `fixed` number of points, or a number of points `per_count` of photos, videos or characters, where a matching product counts as one","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","description":"The number of extra points awarded","example":10,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus.oneOf.0","typeLabel":"Fixed · object"},{"type":"object","title":"Per count","description":"The extra points awarded, on top of the rule variant result, when the review meets the modifier condition. Either a `fixed` number of points, or a number of points `per_count` of photos, videos or characters, where a matching product counts as one","required":["kind","points","max_points"],"properties":{"kind":{"type":"string","const":"per_count","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus.oneOf.1.kind","typeLabel":"string"},"points":{"type":"number","description":"The number of extra points awarded for each photo, video or character in the review, depending on the modifier `kind`. A `matching_product` modifier counts a matching product as one","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus.oneOf.1.points","typeLabel":"number"},"max_points":{"oneOf":[{"description":"The most extra points this modifier can award for one review. `null` means there is no cap","example":20,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus.oneOf.1.max_points.oneOf.0","typeLabel":"number"},{"description":"The most extra points this modifier can award for one review. `null` means there is no cap","example":20,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus.oneOf.1.max_points.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus.oneOf.1.max_points","typeLabel":"number | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus.oneOf.1","typeLabel":"Per count · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.bonus","typeLabel":"Fixed · object | Per count · object"},"text":{"type":"string","description":"Short, localized text describing this modifier to the shopper, in the requested language and including any wording the store has customized. Where the text has no translation in the requested language, the English text is returned","example":"Include a photo for 10 bonus points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0.text","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.0","typeLabel":"Includes photo · object"},{"type":"object","title":"Includes video","description":"Extra points awarded when the review meets a condition, such as including a photo","required":["kind","min_count","bonus","text"],"properties":{"kind":{"type":"string","const":"includes_video","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.kind","typeLabel":"string"},"min_count":{"type":"number","description":"The minimum number of videos the review must include","example":1,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.min_count","typeLabel":"number"},"bonus":{"oneOf":[{"type":"object","title":"Fixed","description":"The extra points awarded, on top of the rule variant result, when the review meets the modifier condition. Either a `fixed` number of points, or a number of points `per_count` of photos, videos or characters, where a matching product counts as one","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","description":"The number of extra points awarded","example":10,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus.oneOf.0","typeLabel":"Fixed · object"},{"type":"object","title":"Per count","description":"The extra points awarded, on top of the rule variant result, when the review meets the modifier condition. Either a `fixed` number of points, or a number of points `per_count` of photos, videos or characters, where a matching product counts as one","required":["kind","points","max_points"],"properties":{"kind":{"type":"string","const":"per_count","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus.oneOf.1.kind","typeLabel":"string"},"points":{"type":"number","description":"The number of extra points awarded for each photo, video or character in the review, depending on the modifier `kind`. A `matching_product` modifier counts a matching product as one","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus.oneOf.1.points","typeLabel":"number"},"max_points":{"oneOf":[{"description":"The most extra points this modifier can award for one review. `null` means there is no cap","example":20,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus.oneOf.1.max_points.oneOf.0","typeLabel":"number"},{"description":"The most extra points this modifier can award for one review. `null` means there is no cap","example":20,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus.oneOf.1.max_points.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus.oneOf.1.max_points","typeLabel":"number | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus.oneOf.1","typeLabel":"Per count · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.bonus","typeLabel":"Fixed · object | Per count · object"},"text":{"type":"string","description":"Short, localized text describing this modifier to the shopper, in the requested language and including any wording the store has customized. Where the text has no translation in the requested language, the English text is returned","example":"Include a photo for 10 bonus points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1.text","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.1","typeLabel":"Includes video · object"},{"type":"object","title":"Text length","description":"Extra points awarded when the review meets a condition, such as including a photo","required":["kind","min_length","bonus","text"],"properties":{"kind":{"type":"string","const":"text_length","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.kind","typeLabel":"string"},"min_length":{"type":"number","description":"The minimum number of characters the review text must contain","example":100,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.min_length","typeLabel":"number"},"bonus":{"oneOf":[{"type":"object","title":"Fixed","description":"The extra points awarded, on top of the rule variant result, when the review meets the modifier condition. Either a `fixed` number of points, or a number of points `per_count` of photos, videos or characters, where a matching product counts as one","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","description":"The number of extra points awarded","example":10,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus.oneOf.0","typeLabel":"Fixed · object"},{"type":"object","title":"Per count","description":"The extra points awarded, on top of the rule variant result, when the review meets the modifier condition. Either a `fixed` number of points, or a number of points `per_count` of photos, videos or characters, where a matching product counts as one","required":["kind","points","max_points"],"properties":{"kind":{"type":"string","const":"per_count","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus.oneOf.1.kind","typeLabel":"string"},"points":{"type":"number","description":"The number of extra points awarded for each photo, video or character in the review, depending on the modifier `kind`. A `matching_product` modifier counts a matching product as one","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus.oneOf.1.points","typeLabel":"number"},"max_points":{"oneOf":[{"description":"The most extra points this modifier can award for one review. `null` means there is no cap","example":20,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus.oneOf.1.max_points.oneOf.0","typeLabel":"number"},{"description":"The most extra points this modifier can award for one review. `null` means there is no cap","example":20,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus.oneOf.1.max_points.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus.oneOf.1.max_points","typeLabel":"number | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus.oneOf.1","typeLabel":"Per count · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.bonus","typeLabel":"Fixed · object | Per count · object"},"text":{"type":"string","description":"Short, localized text describing this modifier to the shopper, in the requested language and including any wording the store has customized. Where the text has no translation in the requested language, the English text is returned","example":"Include a photo for 10 bonus points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2.text","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.2","typeLabel":"Text length · object"},{"type":"object","title":"Matching product","description":"Extra points awarded when the review meets a condition, such as including a photo","required":["kind","product_ids","bonus","text"],"properties":{"kind":{"type":"string","const":"matching_product","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.kind","typeLabel":"string"},"product_ids":{"description":"The reviewed product must be one of these products. Each ID is the product's ID in the store's ecommerce platform","example":["8146810290418"],"type":"array","items":{"type":"string","uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.product_ids.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.product_ids","typeLabel":"string[]"},"bonus":{"oneOf":[{"type":"object","title":"Fixed","description":"The extra points awarded, on top of the rule variant result, when the review meets the modifier condition. Either a `fixed` number of points, or a number of points `per_count` of photos, videos or characters, where a matching product counts as one","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","description":"The number of extra points awarded","example":10,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus.oneOf.0","typeLabel":"Fixed · object"},{"type":"object","title":"Per count","description":"The extra points awarded, on top of the rule variant result, when the review meets the modifier condition. Either a `fixed` number of points, or a number of points `per_count` of photos, videos or characters, where a matching product counts as one","required":["kind","points","max_points"],"properties":{"kind":{"type":"string","const":"per_count","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus.oneOf.1.kind","typeLabel":"string"},"points":{"type":"number","description":"The number of extra points awarded for each photo, video or character in the review, depending on the modifier `kind`. A `matching_product` modifier counts a matching product as one","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus.oneOf.1.points","typeLabel":"number"},"max_points":{"oneOf":[{"description":"The most extra points this modifier can award for one review. `null` means there is no cap","example":20,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus.oneOf.1.max_points.oneOf.0","typeLabel":"number"},{"description":"The most extra points this modifier can award for one review. `null` means there is no cap","example":20,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus.oneOf.1.max_points.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus.oneOf.1.max_points","typeLabel":"number | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus.oneOf.1","typeLabel":"Per count · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.bonus","typeLabel":"Fixed · object | Per count · object"},"text":{"type":"string","description":"Short, localized text describing this modifier to the shopper, in the requested language and including any wording the store has customized. Where the text has no translation in the requested language, the English text is returned","example":"Include a photo for 10 bonus points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3.text","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX].oneOf.3","typeLabel":"Matching product · object"}],"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers.items.[INDEX]","typeLabel":"Includes photo · object | Includes video · object | Text length · object | Matching product · object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX].modifiers","typeLabel":"(Includes photo · object | Includes video · object | Text length · object | Matching product · object)[]"}},"required":["tier_id","title","description","enabled","result","result_short_text","requirements","modifiers"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.8.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.8.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.8.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.8.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.8","typeLabel":"Review · object"},{"type":"object","title":"Custom","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"custom","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"name":{"type":"string","description":"The name of this custom rule, as set by the merchant","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.properties.name","typeLabel":"string"}},"required":["name"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.9.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.9.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.9.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.9.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.9","typeLabel":"Custom · object"},{"type":"object","title":"Facebook Like","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"facebook_like","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"facebook_like_url":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.properties.facebook_like_url","typeLabel":"string"}},"required":["facebook_like_url"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.10.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.10.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.10.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.10.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.10","typeLabel":"Facebook Like · object"},{"type":"object","title":"Twitter follow","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"twitter_follow","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"twitter_handle":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.properties.twitter_handle","typeLabel":"string"}},"required":["twitter_handle"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.11.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.11.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.11.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.11.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.11","typeLabel":"Twitter follow · object"},{"type":"object","title":"Instagram follow","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"instagram_follow","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"instagram_handle":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.properties.instagram_handle","typeLabel":"string"}},"required":["instagram_handle"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.12.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.12.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.12.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.12.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.12","typeLabel":"Instagram follow · object"},{"type":"object","title":"Instagram mention","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"instagram_mention","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"instagram_handle":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.properties.instagram_handle","typeLabel":"string"}},"required":["instagram_handle"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.13.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.13.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.13.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.13.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.13","typeLabel":"Instagram mention · object"},{"type":"object","title":"Instagram post hashtag","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"instagram_post_hashtag","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"instagram_handle":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.properties.instagram_handle","typeLabel":"string"},"hashtag":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.properties.hashtag","typeLabel":"string"}},"required":["instagram_handle","hashtag"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.14.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.14.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.14.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.14.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.14","typeLabel":"Instagram post hashtag · object"},{"type":"object","title":"Tiktok follow","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"tiktok_follow","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"tiktok_handle":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.properties.tiktok_handle","typeLabel":"string"}},"required":["tiktok_handle"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.15.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.15.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.15.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.15.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.15","typeLabel":"Tiktok follow · object"},{"type":"object","title":"Tiktok post hashtag","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"tiktok_post_hashtag","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"hashtag":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.properties.hashtag","typeLabel":"string"}},"required":["hashtag"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.16.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.16.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.16.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.16.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.16","typeLabel":"Tiktok post hashtag · object"},{"type":"object","title":"Referral","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"referral","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"trigger":{"type":"string","enum":["any_purchase","qualifying_purchase"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.properties.trigger","typeLabel":"enum\u003cstring>"}},"required":["trigger"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.17.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.17.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.17.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.17.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.17","typeLabel":"Referral · object"},{"type":"object","title":"Clickthrough","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"clickthrough","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"destination_url":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.properties.destination_url","typeLabel":"string"}},"required":["destination_url"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.18.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.18.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.18.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.18.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.18","typeLabel":"Clickthrough · object"},{"type":"object","title":"Retail purchase","required":["id","limit","kind","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"retail_purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.kind","typeLabel":"string"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.19.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.19.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.19.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.19.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.19","typeLabel":"Retail purchase · object"},{"type":"object","title":"Link a retailer account","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"subtotal_link","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"retailers":{"description":"The retailers the store lists for linking, in the order the store has them. A store can set this rule to pay for an account at any retailer, so linking one that is not listed can also earn","type":"array","items":{"type":"object","properties":{"retailer_id":{"type":"string","description":"The retailer's ID in Subtotal","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers.items.[INDEX].retailer_id","typeLabel":"string"},"name":{"type":"string","description":"The display name of the retailer","example":"Walmart","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers.items.[INDEX].name","typeLabel":"string"},"link_url":{"type":"string","description":"Where to send the customer to link their account at this retailer. Points only reach the customer when they link with the same email address as their loyalty account","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers.items.[INDEX].link_url","typeLabel":"string"},"logo":{"oneOf":[{"type":"object","description":"`null` when no logo is available for this retailer","required":["light","dark"],"properties":{"light":{"type":"string","description":"Logo URL for use on a light background","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers.items.[INDEX].logo.oneOf.0.light","typeLabel":"string"},"dark":{"type":"string","description":"Logo URL for use on a dark background","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers.items.[INDEX].logo.oneOf.0.dark","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers.items.[INDEX].logo.oneOf.0","typeLabel":"object"},{"type":"null","description":"`null` when no logo is available for this retailer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers.items.[INDEX].logo.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers.items.[INDEX].logo","typeLabel":"object | null"}},"required":["retailer_id","name","link_url","logo"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties.retailers","typeLabel":"object[]"}},"required":["retailers"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.20.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.20.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.20.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.20.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.20","typeLabel":"Link a retailer account · object"},{"type":"object","title":"Purchase at a linked retailer","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this rule can be completed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be `null` if the rule has no limit and can therefore be completed any number of times by the same customer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"subtotal_purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"retailers":{"description":"The retailers the store lists for this rule, in the order the store has them. A purchase only earns once the customer has linked their account at that retailer. A store can set this rule to pay for purchases at any retailer, including ones not listed","type":"array","items":{"type":"object","properties":{"retailer_id":{"type":"string","description":"The retailer's ID in Subtotal","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers.items.[INDEX].retailer_id","typeLabel":"string"},"name":{"type":"string","description":"The display name of the retailer","example":"Walmart","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers.items.[INDEX].name","typeLabel":"string"},"link_url":{"type":"string","description":"Where to send the customer to link their account at this retailer. Points only reach the customer when they link with the same email address as their loyalty account","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers.items.[INDEX].link_url","typeLabel":"string"},"logo":{"oneOf":[{"type":"object","description":"`null` when no logo is available for this retailer","required":["light","dark"],"properties":{"light":{"type":"string","description":"Logo URL for use on a light background","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers.items.[INDEX].logo.oneOf.0.light","typeLabel":"string"},"dark":{"type":"string","description":"Logo URL for use on a dark background","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers.items.[INDEX].logo.oneOf.0.dark","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers.items.[INDEX].logo.oneOf.0","typeLabel":"object"},{"type":"null","description":"`null` when no logo is available for this retailer","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers.items.[INDEX].logo.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers.items.[INDEX].logo","typeLabel":"object | null"}},"required":["retailer_id","name","link_url","logo"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties.retailers","typeLabel":"object[]"}},"required":["retailers"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this rule. Some aspects of a rule, such as its outcome and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this rule variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'","example":"Make a purchase","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this rule, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Earn points every time you shop with us","type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].enabled","typeLabel":"boolean"},"result":{"oneOf":[{"type":"object","title":"Points","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","per_currency_unit","points"],"properties":{"kind":{"type":"string","const":"points","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.0.kind","typeLabel":"string"},"per_currency_unit":{"oneOf":[{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"number","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.0","typeLabel":"number"},{"description":"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be `1`. If `null`, the points value is exact","example":1,"type":"null","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.0.per_currency_unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.0.per_currency_unit","typeLabel":"number | null"},"points":{"type":"number","description":"The number of points provided when this rule variant is completed. If `per_currency_unit` is not null, this will be the number of points per currency unit (e.g. 5 points per $1)","example":5,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.0","typeLabel":"Points · object"},{"type":"object","title":"Reward","description":"The result of completing this rule. Will be one of `points` (points are awarded to the customer), or `reward` (a reward is immediately granted, such as a cart discount voucher)","required":["kind","reward"],"properties":{"kind":{"type":"string","const":"reward","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.1.kind","typeLabel":"string"},"reward":{"type":"object","properties":{"kind":{"type":"string","enum":["gift_card","cart_discount_voucher","cart_variable_discount_voucher","free_shipping_voucher","product_discount_voucher","collection_discount_voucher","product_cart","active_subscription_discount_voucher","active_subscription_product","custom"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.1.reward.kind","typeLabel":"enum\u003cstring>"},"title":{"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.1.reward.title","typeLabel":"string"}},"required":["kind","title"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.1.reward","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result.oneOf.1","typeLabel":"Reward · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result","typeLabel":"Points · object | Reward · object"},"result_short_text":{"type":"string","description":"Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'","example":"5 points per $1","isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX].result_short_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","result","result_short_text"],"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].oneOf.21.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"string","uniqueKey":"rules.items.[INDEX].oneOf.21.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this rule, when the merchant has set one: either an image they uploaded or an external image URL. `null` when no image is set","type":"null","uniqueKey":"rules.items.[INDEX].oneOf.21.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rules.items.[INDEX].oneOf.21.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rules.items.[INDEX].oneOf.21","typeLabel":"Purchase at a linked retailer · object"}],"uniqueKey":"rules.items.[INDEX]","typeLabel":"Birthday · object | Loyalty pass install · object | Collection purchase · object | Newsletter signup · object | Pageview · object | Product purchase · object | Purchase · object | Join program · object | Review · object | Custom · object | Facebook Like · object | Twitter follow · object | Instagram follow · object | Instagram mention · object | Instagram post hashtag · object | Tiktok follow · object | Tiktok post hashtag · object | Referral · object | Clickthrough · object | Retail purchase · object | Link a retailer account · object | Purchase at a linked retailer · object"},"isRequired":true,"uniqueKey":"rules","typeLabel":"(Birthday · object | Loyalty pass install · object | Collection purchase · object | Newsletter signup · object | Pageview · object | Product purchase · object | Purchase · object | Join program · object | Review · object | Custom · object | Facebook Like · object | Twitter follow · object | Instagram follow · object | Instagram mention · object | Instagram post hashtag · object | Tiktok follow · object | Tiktok post hashtag · object | Referral · object | Clickthrough · object | Retail purchase · object | Link a retailer account · object | Purchase at a linked retailer · object)[]"},"rewards":{"description":"Ordered list of rewards that belong to this site. Each reward will have one or more variants that indicate its configuration and if it is enabled per tier. Rewards have a `kind` property, and some kinds of rewards will have `properties` that are specific to that reward kind","type":"array","items":{"oneOf":[{"type":"object","title":"Gift card","description":"A gift card that can be used for future orders until its balance runs out","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"gift_card","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"initial_balance":{"type":"object","properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.properties.initial_balance.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.properties.initial_balance.formatted","typeLabel":"string"}},"required":["amount","formatted"],"additionalProperties":false,"description":"The initial balance of the gift card","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.properties.initial_balance","typeLabel":"object"}},"required":["initial_balance"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.0.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.0.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.0.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.0.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.0","typeLabel":"Gift card · object"},{"type":"object","title":"Cart discount voucher","description":"A discount voucher that applies a reduction to the total cost of an order","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"cart_discount_voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"discount_type":{"type":"string","enum":["fixed","percentage"],"description":"The type of discount this voucher will apply to the cart","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.discount_type","typeLabel":"enum\u003cstring>"},"discount":{"oneOf":[{"type":"object","description":"The discount that will apply to the cart. For `fixed` discounts this will be the currency amount. For `percentage` discounts, it will be a number from `1-100`","required":["amount","formatted"],"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.discount.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.discount.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.discount.oneOf.0","typeLabel":"object"},{"type":"object","description":"The discount that will apply to the cart. For `fixed` discounts this will be the currency amount. For `percentage` discounts, it will be a number from `1-100`","required":["percentage","formatted"],"properties":{"percentage":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.discount.oneOf.1.percentage","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.discount.oneOf.1.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.discount.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.discount","typeLabel":"object"},"applies_to_order_type":{"type":"string","enum":["all","one_time","subscription"],"description":"The type of order that this voucher will apply to. One of: `all` (applies to all types of order), `one_time` (applies to one-time orders), `subscription` (applies to subscription orders)","example":"one_time","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.applies_to_order_type","typeLabel":"enum\u003cstring>"},"recurring_cycle_limit":{"oneOf":[{"description":"The number of orders this discount will apply to, for discounts that can apply to subscription orders. If it's `1`, it means the discount will apply only to the first order with which it is used. If `null`, the discount will be applied to any number of orders for as long as it is active","example":1,"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.recurring_cycle_limit.oneOf.0","typeLabel":"number"},{"description":"The number of orders this discount will apply to, for discounts that can apply to subscription orders. If it's `1`, it means the discount will apply only to the first order with which it is used. If `null`, the discount will be applied to any number of orders for as long as it is active","example":1,"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.recurring_cycle_limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.recurring_cycle_limit","typeLabel":"number | null"},"minimum_spend":{"oneOf":[{"type":"object","description":"The minimum spend, if any, for the voucher to apply to the cart","required":["amount","formatted"],"example":{"amount":10,"formatted":"$10"},"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.minimum_spend.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.minimum_spend.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.minimum_spend.oneOf.0","typeLabel":"object"},{"type":"null","description":"The minimum spend, if any, for the voucher to apply to the cart","example":{"amount":10,"formatted":"$10"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.minimum_spend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.minimum_spend","typeLabel":"object | null"},"supports_active_subscriptions":{"description":"Whether or not this discount will also be able to be applied to active subscriptions in Recharge. If true, we will create a Recharge discount in addition to a Shopify discount whenever this reward is claimed.","type":"boolean","uniqueKey":"rewards.items.[INDEX].oneOf.1.properties.supports_active_subscriptions","typeLabel":"boolean"}},"required":["discount_type","discount","applies_to_order_type","recurring_cycle_limit","minimum_spend"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.1.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.1.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.1.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.1.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.1","typeLabel":"Cart discount voucher · object"},{"type":"object","title":"Cart variable discount","description":"A variable-amount discount, e.g. 100 points per $1 discount. This is typically used during checkout to allow shoppers to use points to apply a discount to their cart","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"cart_variable_discount_voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"minimum_discount":{"type":"object","properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_discount.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_discount.formatted","typeLabel":"string"}},"required":["amount","formatted"],"additionalProperties":false,"description":"The minimum discount that can be selected, e.g. 1 for a minimum of $1","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_discount","typeLabel":"object"},"maximum_discount":{"type":"object","properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.maximum_discount.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.maximum_discount.formatted","typeLabel":"string"}},"required":["amount","formatted"],"additionalProperties":false,"description":"The maximum discount that can be selected, e.g. 5 for a maximum of $5","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.maximum_discount","typeLabel":"object"},"minimum_spend_before_discount":{"oneOf":[{"type":"object","description":"The required minimum spend in cart before the reward can be redeemed","required":["amount","formatted"],"example":{"amount":10,"formatted":"$10"},"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_before_discount.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_before_discount.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_before_discount.oneOf.0","typeLabel":"object"},{"type":"null","description":"The required minimum spend in cart before the reward can be redeemed","example":{"amount":10,"formatted":"$10"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_before_discount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_before_discount","typeLabel":"object | null"},"minimum_spend_after_discount":{"oneOf":[{"type":"object","description":"Only allow redemption of a discount value that would leave the cart total above this amount","required":["amount","formatted"],"example":{"amount":10,"formatted":"$10"},"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_after_discount.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_after_discount.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_after_discount.oneOf.0","typeLabel":"object"},{"type":"null","description":"Only allow redemption of a discount value that would leave the cart total above this amount","example":{"amount":10,"formatted":"$10"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_after_discount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.minimum_spend_after_discount","typeLabel":"object | null"},"applies_to_order_type":{"type":"string","enum":["all","one_time","subscription"],"description":"The type of order that this voucher will apply to. One of: `all` (applies to all types of order), `one_time` (applies to one-time orders), `subscription` (applies to subscription orders)","example":"one_time","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties.applies_to_order_type","typeLabel":"enum\u003cstring>"}},"required":["minimum_discount","maximum_discount","minimum_spend_before_discount","minimum_spend_after_discount","applies_to_order_type"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.2.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.2.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.2.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.2.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.2","typeLabel":"Cart variable discount · object"},{"type":"object","title":"Free shipping voucher","description":"A voucher that applies free shipping to an order","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"free_shipping_voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"max_shipping":{"oneOf":[{"type":"object","description":"Free shipping will only be applied if the shipping rate is equal to or less than this amount, or `null` if there is no maximum","required":["amount","formatted"],"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.properties.max_shipping.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.properties.max_shipping.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.properties.max_shipping.oneOf.0","typeLabel":"object"},{"type":"null","description":"Free shipping will only be applied if the shipping rate is equal to or less than this amount, or `null` if there is no maximum","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.properties.max_shipping.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.properties.max_shipping","typeLabel":"object | null"}},"required":["max_shipping"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.3.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.3.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.3.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.3.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.3","typeLabel":"Free shipping voucher · object"},{"type":"object","title":"Product discount voucher","description":"A discount voucher that applies a reduction to a specific product","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"product_discount_voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"product":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.product.id","typeLabel":"string"},"image_url":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.product.image_url.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.product.image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.product.image_url","typeLabel":"string | null"},"variant_id":{"oneOf":[{"description":"The variant ID to apply the discount to. If `null`, the discount can be applied to all this product's variants","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.product.variant_id.oneOf.0","typeLabel":"string"},{"description":"The variant ID to apply the discount to. If `null`, the discount can be applied to all this product's variants","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.product.variant_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.product.variant_id","typeLabel":"string | null"}},"required":["id","image_url","variant_id"],"additionalProperties":false,"description":"The product that this discount applies to","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.product","typeLabel":"object"},"discount":{"type":"object","properties":{"percentage":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.discount.percentage","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.discount.formatted","typeLabel":"string"}},"required":["percentage","formatted"],"additionalProperties":false,"description":"The discount that will apply to the product. Product discounts are always percentage based, so this will be a number from `1-100`","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties.discount","typeLabel":"object"}},"required":["product","discount"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.4.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.4.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.4.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.4.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.4","typeLabel":"Product discount voucher · object"},{"type":"object","title":"Collection discount voucher","description":"A discount voucher that applies a reduction to one or more items in a collection","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"collection_discount_voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"collection":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.collection.id","typeLabel":"string"},"title":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.collection.title.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.collection.title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.collection.title","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.collection.url.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.collection.url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.collection.url","typeLabel":"string | null"}},"required":["id","title","url"],"additionalProperties":false,"description":"The collection that this discount applies to","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.collection","typeLabel":"object"},"discount_type":{"type":"string","enum":["fixed","percentage"],"description":"The type of discount this voucher will apply to items in the collection","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.discount_type","typeLabel":"enum\u003cstring>"},"discount":{"oneOf":[{"type":"object","description":"The discount that will apply to items in the collection. For `fixed` discounts this will be the currency amount. For `percentage` discounts, it will be a number from `1-100`","required":["amount","formatted"],"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.discount.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.discount.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.discount.oneOf.0","typeLabel":"object"},{"type":"object","description":"The discount that will apply to items in the collection. For `fixed` discounts this will be the currency amount. For `percentage` discounts, it will be a number from `1-100`","required":["percentage","formatted"],"properties":{"percentage":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.discount.oneOf.1.percentage","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.discount.oneOf.1.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.discount.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.discount","typeLabel":"object"},"minimum_spend":{"oneOf":[{"type":"object","description":"The minimum spend, if any, for the voucher to apply to the cart","required":["amount","formatted"],"example":{"amount":10,"formatted":"$10"},"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.minimum_spend.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.minimum_spend.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.minimum_spend.oneOf.0","typeLabel":"object"},{"type":"null","description":"The minimum spend, if any, for the voucher to apply to the cart","example":{"amount":10,"formatted":"$10"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.minimum_spend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties.minimum_spend","typeLabel":"object | null"}},"required":["collection","discount_type","discount","minimum_spend"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.5.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.5.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.5.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.5.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.5","typeLabel":"Collection discount voucher · object"},{"type":"object","title":"Product cart","description":"A free product that is added to the cart","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"product_cart","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"product":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.id","typeLabel":"string"},"handle":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.handle.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.handle.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.handle","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.title.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.title","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.url.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.url","typeLabel":"string | null"},"image_url":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.image_url.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.image_url","typeLabel":"string | null"},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants.items.[INDEX].id","typeLabel":"string"},"title":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants.items.[INDEX].title","typeLabel":"string | null"},"inventory_count":{"oneOf":[{"description":"The current inventory count of this product variant, or `null` if inventory is not tracked. If the count is zero, you should ensure it is not selectable by customers when redeeming the reward","type":"integer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants.items.[INDEX].inventory_count.oneOf.0","typeLabel":"integer"},{"description":"The current inventory count of this product variant, or `null` if inventory is not tracked. If the count is zero, you should ensure it is not selectable by customers when redeeming the reward","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants.items.[INDEX].inventory_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants.items.[INDEX].inventory_count","typeLabel":"integer | null"},"sort_key":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants.items.[INDEX].sort_key","typeLabel":"number"}},"required":["id","title","inventory_count","sort_key"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product.variants","typeLabel":"object[]"}},"required":["id","handle","title","url","image_url","variants"],"additionalProperties":false,"description":"The product that can be added to the cart. If the product has more than one variant, the shopper should be able to choose which one to redeem","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.product","typeLabel":"object"},"max_redemptions_per_cart":{"oneOf":[{"description":"The maximum number of times this product can be redeemed per cart, or `null` if there is no limit","type":"integer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.max_redemptions_per_cart.oneOf.0","typeLabel":"integer"},{"description":"The maximum number of times this product can be redeemed per cart, or `null` if there is no limit","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.max_redemptions_per_cart.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.max_redemptions_per_cart","typeLabel":"integer | null"},"cart_requirements":{"type":"object","properties":{"minimum_cart_total":{"oneOf":[{"type":"object","description":"The cart total must be equal to or greater than this amount, or `null` if there is no minimum total","required":["amount","formatted"],"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.cart_requirements.minimum_cart_total.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.cart_requirements.minimum_cart_total.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.cart_requirements.minimum_cart_total.oneOf.0","typeLabel":"object"},{"type":"null","description":"The cart total must be equal to or greater than this amount, or `null` if there is no minimum total","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.cart_requirements.minimum_cart_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.cart_requirements.minimum_cart_total","typeLabel":"object | null"},"minimum_line_item_count":{"oneOf":[{"description":"The cart must contain at least this number of line items, or `null` if there is no required line item count","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.cart_requirements.minimum_line_item_count.oneOf.0","typeLabel":"number"},{"description":"The cart must contain at least this number of line items, or `null` if there is no required line item count","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.cart_requirements.minimum_line_item_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.cart_requirements.minimum_line_item_count","typeLabel":"number | null"}},"required":["minimum_cart_total","minimum_line_item_count"],"additionalProperties":false,"description":"Cart requirements that must be met before the reward can be redeemed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties.cart_requirements","typeLabel":"object"}},"required":["product","max_redemptions_per_cart","cart_requirements"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.6.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.6.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.6.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.6.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.6","typeLabel":"Product cart · object"},{"type":"object","title":"Active subscription discount voucher","description":"A discount that is applied to one or more upcoming recurring subscription orders","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"active_subscription_discount_voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"discount_type":{"type":"string","enum":["fixed","percentage"],"description":"The type of discount this voucher will apply to next order","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.discount_type","typeLabel":"enum\u003cstring>"},"discount":{"oneOf":[{"type":"object","description":"The discount that will apply to the next order. For `fixed` discounts this will be the currency amount. For `percentage` discounts, it will be a number from `1-100`","required":["amount","formatted"],"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.discount.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.discount.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.discount.oneOf.0","typeLabel":"object"},{"type":"object","description":"The discount that will apply to the next order. For `fixed` discounts this will be the currency amount. For `percentage` discounts, it will be a number from `1-100`","required":["percentage","formatted"],"properties":{"percentage":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.discount.oneOf.1.percentage","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.discount.oneOf.1.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.discount.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.discount","typeLabel":"object"},"recurring_cycle_limit":{"oneOf":[{"description":"The number of recurring orders this discount will apply to. If `null`, the discount will be applied to any number of orders for as long as it is active","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.recurring_cycle_limit.oneOf.0","typeLabel":"number"},{"description":"The number of recurring orders this discount will apply to. If `null`, the discount will be applied to any number of orders for as long as it is active","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.recurring_cycle_limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties.recurring_cycle_limit","typeLabel":"number | null"}},"required":["discount_type","discount","recurring_cycle_limit"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.7.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.7.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.7.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.7.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.7","typeLabel":"Active subscription discount voucher · object"},{"type":"object","title":"Active subscription product","description":"A free product that is added to the next recurring subscription order","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"active_subscription_product","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.kind","typeLabel":"string"},"properties":{"type":"object","properties":{"product":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.id","typeLabel":"string"},"handle":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.handle.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.handle.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.handle","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.title.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.title","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.url.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.url","typeLabel":"string | null"},"image_url":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.image_url.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.image_url","typeLabel":"string | null"},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants.items.[INDEX].id","typeLabel":"string"},"title":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants.items.[INDEX].title","typeLabel":"string | null"},"inventory_count":{"oneOf":[{"description":"The current inventory count of this product variant, or `null` if inventory is not tracked. If the count is zero, you should ensure it is not selectable by customers when redeeming the reward","type":"integer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants.items.[INDEX].inventory_count.oneOf.0","typeLabel":"integer"},{"description":"The current inventory count of this product variant, or `null` if inventory is not tracked. If the count is zero, you should ensure it is not selectable by customers when redeeming the reward","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants.items.[INDEX].inventory_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants.items.[INDEX].inventory_count","typeLabel":"integer | null"},"sort_key":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants.items.[INDEX].sort_key","typeLabel":"number"}},"required":["id","title","inventory_count","sort_key"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product.variants","typeLabel":"object[]"}},"required":["id","handle","title","url","image_url","variants"],"additionalProperties":false,"description":"The product that can be added to an active subscription. If the product has more than one variant, the shopper should be able to choose which one to redeem","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties.product","typeLabel":"object"}},"required":["product"],"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.8.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.8.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.8.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.8.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.8","typeLabel":"Active subscription product · object"},{"type":"object","title":"Custom","description":"A custom reward that is fulfilled by the merchant manually or using a webhook, or by issuing a code from a merchant-uploaded pool","required":["id","limit","kind","properties","variants"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.id","typeLabel":"number"},"limit":{"oneOf":[{"type":"object","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","required":["count","interval"],"properties":{"count":{"type":"integer","description":"The number of times this reward can be claimed for a customer in the specified calendar `interval`, e.g. once a week","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.limit.oneOf.0.count","typeLabel":"integer"},"interval":{"oneOf":[{"type":"string","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","enum":["day","week","month","year"],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.limit.oneOf.0.interval.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The calendar interval for this limit. If `null`, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.limit.oneOf.0.interval.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.limit.oneOf.0.interval","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.limit.oneOf.0","typeLabel":"object"},{"type":"null","description":"A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be `null` if the reward has no limit and can therefore be claimed any number of times by the same customer","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.limit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.limit","typeLabel":"object | null"},"kind":{"type":"string","const":"custom","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.kind","typeLabel":"string"},"properties":{"oneOf":[{"type":"object","required":["fulfillment_type","fulfillment_method","fulfillment_webhook_url"],"properties":{"fulfillment_type":{"type":"string","const":"store_fulfillment","description":"Fulfilled by the merchant — manually or via webhook (see `fulfillment_method`).","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.properties.oneOf.0.fulfillment_type","typeLabel":"string"},"fulfillment_method":{"type":"string","enum":["manual","webhook"],"description":"How the merchant fulfils this custom reward.","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.properties.oneOf.0.fulfillment_method","typeLabel":"enum\u003cstring>"},"fulfillment_webhook_url":{"oneOf":[{"description":"The URL to which we'll send a webhook for reward fulfillment, if one is configured","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.properties.oneOf.0.fulfillment_webhook_url.oneOf.0","typeLabel":"string"},{"description":"The URL to which we'll send a webhook for reward fulfillment, if one is configured","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.properties.oneOf.0.fulfillment_webhook_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.properties.oneOf.0.fulfillment_webhook_url","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.properties.oneOf.0","typeLabel":"object"},{"type":"object","required":["fulfillment_type"],"properties":{"fulfillment_type":{"type":"string","const":"voucher","description":"Fulfilled by issuing a code from a merchant-uploaded pool to the customer at claim time.","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.properties.oneOf.1.fulfillment_type","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.properties.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.properties","typeLabel":"object"},"variants":{"description":"A list of variants for this reward. Some aspects of a reward, such as its cost and whether it's enabled, can vary based on tier","type":"array","items":{"type":"object","properties":{"tier_id":{"oneOf":[{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].tier_id.oneOf.0","typeLabel":"number"},{"description":"The tier ID to which this reward variant applies. This will always be `null` if the program does not have tiers enabled","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].tier_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].tier_id","typeLabel":"number | null"},"title":{"type":"string","description":"Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'","example":"$5 voucher","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"string","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"description":"Longer, localized description for this reward, giving the shopper more detail than the title. Where no description is set in the requested language, one from another language is returned in preference to nothing, matching how the title resolves. `null` means no description is set in any language","example":"Spend your points on $5 off your next order","type":"null","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].description","typeLabel":"string | null"},"enabled":{"type":"boolean","description":"Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].enabled","typeLabel":"boolean"},"cost":{"oneOf":[{"type":"object","title":"Fixed cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","points"],"properties":{"kind":{"type":"string","const":"fixed","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].cost.oneOf.0.kind","typeLabel":"string"},"points":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].cost.oneOf.0.points","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].cost.oneOf.0","typeLabel":"Fixed cost · object"},{"type":"object","title":"Variable cost","description":"The cost of this reward in points. Will be one of `fixed` (costs a fixed number of points) or `variable` (cost is multiplied by unit, e.g. 100 points per $1 discount)","required":["kind","unit","points_per_unit"],"properties":{"kind":{"type":"string","const":"variable","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].cost.oneOf.1.kind","typeLabel":"string"},"unit":{"type":"string","const":"discount_amount","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].cost.oneOf.1.unit","typeLabel":"string"},"points_per_unit":{"type":"number","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].cost.oneOf.1.points_per_unit","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].cost.oneOf.1","typeLabel":"Variable cost · object"}],"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].cost","typeLabel":"Fixed cost · object | Variable cost · object"},"cost_text":{"type":"string","description":"Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'","example":"100 points","isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX].cost_text","typeLabel":"string"}},"required":["tier_id","title","description","enabled","cost","cost_text"],"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rewards.items.[INDEX].oneOf.9.variants","typeLabel":"object[]"},"image_url":{"oneOf":[{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"string","uniqueKey":"rewards.items.[INDEX].oneOf.9.image_url.oneOf.0","typeLabel":"string"},{"description":"A display image for this reward, when the merchant has set one: either an image they uploaded or chose for the reward itself, or the reward's product or collection catalog image. `null` when no image is set","type":"null","uniqueKey":"rewards.items.[INDEX].oneOf.9.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"rewards.items.[INDEX].oneOf.9.image_url","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"rewards.items.[INDEX].oneOf.9","typeLabel":"Custom · object"}],"uniqueKey":"rewards.items.[INDEX]","typeLabel":"Gift card · object | Cart discount voucher · object | Cart variable discount · object | Free shipping voucher · object | Product discount voucher · object | Collection discount voucher · object | Product cart · object | Active subscription discount voucher · object | Active subscription product · object | Custom · object"},"isRequired":true,"uniqueKey":"rewards","typeLabel":"(Gift card · object | Cart discount voucher · object | Cart variable discount · object | Free shipping voucher · object | Product discount voucher · object | Collection discount voucher · object | Product cart · object | Active subscription discount voucher · object | Active subscription product · object | Custom · object)[]"},"referee_incentive":{"oneOf":[{"type":"object","title":"Cart Discount Voucher","description":"The referee incentive for the program, included only if one is enabled. This is a description of the incentive and does not include an actual voucher code, which is available through the referee incentive endpoint instead","required":["minimum_spend","incentive_text","kind","discount_kind","discount"],"properties":{"minimum_spend":{"oneOf":[{"type":"object","description":"The minimum spend, if any, for the incentive to apply","required":["amount","formatted"],"example":{"amount":50,"formatted":"$50"},"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.minimum_spend.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.minimum_spend.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.minimum_spend.oneOf.0","typeLabel":"object"},{"type":"null","description":"The minimum spend, if any, for the incentive to apply","example":{"amount":50,"formatted":"$50"},"isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.minimum_spend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.minimum_spend","typeLabel":"object | null"},"incentive_text":{"type":"string","description":"Short localized text explaining the incentive","example":"Get a 10% discount on your order with this code when you spend over $50","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.incentive_text","typeLabel":"string"},"kind":{"type":"string","const":"cart_discount_voucher","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.kind","typeLabel":"string"},"discount_kind":{"type":"string","enum":["fixed","percentage"],"description":"The type of discount this voucher will apply to the cart","example":"percentage","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.discount_kind","typeLabel":"enum\u003cstring>"},"discount":{"oneOf":[{"type":"object","description":"The discount that will apply to the cart. For `fixed` discounts this will be the currency amount. For `percentage` discounts, it will be a percentage from `1-100`","required":["amount","formatted"],"example":{"formatted":"10%"},"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.discount.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.discount.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.discount.oneOf.0","typeLabel":"object"},{"type":"object","description":"The discount that will apply to the cart. For `fixed` discounts this will be the currency amount. For `percentage` discounts, it will be a percentage from `1-100`","required":["percentage","formatted"],"example":{"percentage":10,"formatted":"10%"},"properties":{"percentage":{"type":"number","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.discount.oneOf.1.percentage","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.discount.oneOf.1.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.discount.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.discount","typeLabel":"object"},"maximum_discount":{"description":"The largest discount this voucher can apply. Only present when the incentive is a capped `percentage` discount. `incentive_text` already states the cap","example":{"amount":30,"formatted":"$30"},"type":"object","properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.maximum_discount.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"referee_incentive.oneOf.0.maximum_discount.formatted","typeLabel":"string"}},"required":["amount","formatted"],"additionalProperties":false,"uniqueKey":"referee_incentive.oneOf.0.maximum_discount","typeLabel":"object"},"collection_restriction_text":{"description":"Merchant-authored text naming the products this voucher applies to, when the incentive is restricted to a collection. Unlike `incentive_text` this is not part of the offer sentence — display it alongside, or the offer reads as unrestricted","example":"Valid on full-price skincare only","type":"string","uniqueKey":"referee_incentive.oneOf.0.collection_restriction_text","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"referee_incentive.oneOf.0","typeLabel":"Cart Discount Voucher · object"},{"type":"object","title":"Free Shipping Voucher","description":"The referee incentive for the program, included only if one is enabled. This is a description of the incentive and does not include an actual voucher code, which is available through the referee incentive endpoint instead","required":["minimum_spend","incentive_text","kind"],"properties":{"minimum_spend":{"oneOf":[{"type":"object","description":"The minimum spend, if any, for the incentive to apply","required":["amount","formatted"],"example":{"amount":50,"formatted":"$50"},"properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"referee_incentive.oneOf.1.minimum_spend.oneOf.0.amount","typeLabel":"number"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"referee_incentive.oneOf.1.minimum_spend.oneOf.0.formatted","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"referee_incentive.oneOf.1.minimum_spend.oneOf.0","typeLabel":"object"},{"type":"null","description":"The minimum spend, if any, for the incentive to apply","example":{"amount":50,"formatted":"$50"},"isRequired":true,"uniqueKey":"referee_incentive.oneOf.1.minimum_spend.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"referee_incentive.oneOf.1.minimum_spend","typeLabel":"object | null"},"incentive_text":{"type":"string","description":"Short localized text explaining the incentive","example":"Get a 10% discount on your order with this code when you spend over $50","isRequired":true,"uniqueKey":"referee_incentive.oneOf.1.incentive_text","typeLabel":"string"},"kind":{"type":"string","const":"free_shipping_voucher","isRequired":true,"uniqueKey":"referee_incentive.oneOf.1.kind","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"referee_incentive.oneOf.1","typeLabel":"Free Shipping Voucher · object"}],"uniqueKey":"referee_incentive","typeLabel":"Cart Discount Voucher · object | Free Shipping Voucher · object"}},"required":["channel","currency","language","program","tier_configuration","rules","rewards"],"additionalProperties":false,"example":{"channel":"web","currency":"usd","language":"en","program":{"name":"Lion Rewards"},"tier_configuration":{"boundary_mode":"spend","tiers":[{"id":1,"name":"Silver","benefit_ids":[1],"hidden":false,"kind":"spend","position":1,"lower_bound":{"amount":0,"formatted":"$0"},"upper_bound":{"amount":99.99,"formatted":"$99.99"}},{"id":2,"name":"Gold","benefit_ids":[1,2],"hidden":false,"kind":"spend","position":2,"lower_bound":{"amount":100,"formatted":"$100"},"upper_bound":null}],"tier_benefits":[{"id":1,"label":"Early access to new products","secret":false,"details":null},{"id":2,"label":"Free makeup classes","secret":false,"details":{"plaintext":"Email classes@example.com to sign up to a class\n","html":"\u003cp>Email classes@example.com to sign up to a class\u003c/p>"}}],"membership":{"mode":"rolling","duration_months":12}},"referee_incentive":{"minimum_spend":{"amount":100,"formatted":"$100"},"incentive_text":"Get a 10% discount on your order with this code when you spend over $100","kind":"cart_discount_voucher","discount_kind":"percentage","discount":{"percentage":10,"formatted":"10%"}},"rules":[{"id":1,"kind":"purchase","variants":[{"tier_id":1,"enabled":true,"title":"Make a purchase","description":"Earn points every time you shop with us","result":{"kind":"points","per_currency_unit":1,"points":5},"result_short_text":"5 points per $1"},{"tier_id":2,"enabled":true,"title":"Make a purchase","description":"Earn points every time you shop with us","result":{"kind":"points","per_currency_unit":1,"points":10},"result_short_text":"10 points per $1"}],"limit":null},{"id":2,"kind":"pageview","variants":[{"tier_id":1,"enabled":true,"title":"Visit our online store","description":null,"result":{"kind":"points","per_currency_unit":null,"points":100},"result_short_text":"100 points"},{"tier_id":2,"enabled":true,"title":"Visit our online store","description":null,"result":{"kind":"points","per_currency_unit":null,"points":200},"result_short_text":"200 points"}],"limit":{"count":1,"interval":"week"}},{"id":3,"kind":"review","variants":[{"tier_id":1,"enabled":true,"title":"Leave a review","description":"Tell us what you think of your purchase","result":{"kind":"points","per_currency_unit":null,"points":50},"result_short_text":"50 points","requirements":[{"kind":"text_length","min_length":50,"text":"Review must be at least 50 characters"}],"modifiers":[{"kind":"includes_photo","min_count":1,"bonus":{"kind":"per_count","points":10,"max_points":30},"text":"Include photos for 10 bonus points per photo (up to 30)"},{"kind":"text_length","min_length":200,"bonus":{"kind":"fixed","points":10},"text":"Write at least 200 characters for 10 bonus points"}]},{"tier_id":2,"enabled":true,"title":"Leave a review","description":"Tell us what you think of your purchase","result":{"kind":"points","per_currency_unit":null,"points":100},"result_short_text":"100 points","requirements":[{"kind":"text_length","min_length":50,"text":"Review must be at least 50 characters"}],"modifiers":[{"kind":"includes_photo","min_count":1,"bonus":{"kind":"per_count","points":20,"max_points":60},"text":"Include photos for 20 bonus points per photo (up to 60)"},{"kind":"text_length","min_length":200,"bonus":{"kind":"fixed","points":20},"text":"Write at least 200 characters for 20 bonus points"}]}],"limit":null}],"rewards":[{"id":1,"kind":"cart_discount_voucher","properties":{"discount_type":"fixed","discount":{"amount":5,"formatted":"$5"},"applies_to_order_type":"one_time","recurring_cycle_limit":1,"supports_active_subscriptions":false,"minimum_spend":{"amount":10,"formatted":"$10"}},"variants":[{"tier_id":1,"enabled":true,"title":"$5 discount","description":"Spend your points on $5 off your next order","cost":{"kind":"fixed","points":500},"cost_text":"500 points"},{"tier_id":2,"enabled":true,"title":"$5 discount","description":"Spend your points on $5 off your next order","cost":{"kind":"fixed","points":400},"cost_text":"400 points"}],"limit":null},{"id":2,"kind":"cart_variable_discount_voucher","properties":{"minimum_discount":{"amount":1,"formatted":"$1"},"maximum_discount":{"amount":100,"formatted":"$100"},"applies_to_order_type":"all","minimum_spend_before_discount":null,"minimum_spend_after_discount":null},"variants":[{"tier_id":1,"enabled":false,"title":"Redeem points at checkout","description":null,"cost":{"kind":"variable","unit":"discount_amount","points_per_unit":100},"cost_text":"100 points per $1"},{"tier_id":2,"enabled":true,"title":"Redeem points at checkout","description":null,"cost":{"kind":"variable","unit":"discount_amount","points_per_unit":100},"cost_text":"100 points per $1"}],"limit":null}]},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"channel":"web","currency":"usd","language":"en","program":{"name":"Lion Rewards"},"tier_configuration":{"boundary_mode":"spend","tiers":[{"id":1,"name":"Silver","benefit_ids":[1],"hidden":false,"kind":"spend","position":1,"lower_bound":{"amount":0,"formatted":"$0"},"upper_bound":{"amount":99.99,"formatted":"$99.99"}},{"id":2,"name":"Gold","benefit_ids":[1,2],"hidden":false,"kind":"spend","position":2,"lower_bound":{"amount":100,"formatted":"$100"},"upper_bound":null}],"tier_benefits":[{"id":1,"label":"Early access to new products","secret":false,"details":null},{"id":2,"label":"Free makeup classes","secret":false,"details":{"plaintext":"Email classes@example.com to sign up to a class\n","html":"\u003cp>Email classes@example.com to sign up to a class\u003c/p>"}}],"membership":{"mode":"rolling","duration_months":12}},"referee_incentive":{"minimum_spend":{"amount":100,"formatted":"$100"},"incentive_text":"Get a 10% discount on your order with this code when you spend over $100","kind":"cart_discount_voucher","discount_kind":"percentage","discount":{"percentage":10,"formatted":"10%"}},"rules":[{"id":1,"kind":"purchase","variants":[{"tier_id":1,"enabled":true,"title":"Make a purchase","description":"Earn points every time you shop with us","result":{"kind":"points","per_currency_unit":1,"points":5},"result_short_text":"5 points per $1"},{"tier_id":2,"enabled":true,"title":"Make a purchase","description":"Earn points every time you shop with us","result":{"kind":"points","per_currency_unit":1,"points":10},"result_short_text":"10 points per $1"}],"limit":null},{"id":2,"kind":"pageview","variants":[{"tier_id":1,"enabled":true,"title":"Visit our online store","description":null,"result":{"kind":"points","per_currency_unit":null,"points":100},"result_short_text":"100 points"},{"tier_id":2,"enabled":true,"title":"Visit our online store","description":null,"result":{"kind":"points","per_currency_unit":null,"points":200},"result_short_text":"200 points"}],"limit":{"count":1,"interval":"week"}},{"id":3,"kind":"review","variants":[{"tier_id":1,"enabled":true,"title":"Leave a review","description":"Tell us what you think of your purchase","result":{"kind":"points","per_currency_unit":null,"points":50},"result_short_text":"50 points","requirements":[{"kind":"text_length","min_length":50,"text":"Review must be at least 50 characters"}],"modifiers":[{"kind":"includes_photo","min_count":1,"bonus":{"kind":"per_count","points":10,"max_points":30},"text":"Include photos for 10 bonus points per photo (up to 30)"},{"kind":"text_length","min_length":200,"bonus":{"kind":"fixed","points":10},"text":"Write at least 200 characters for 10 bonus points"}]},{"tier_id":2,"enabled":true,"title":"Leave a review","description":"Tell us what you think of your purchase","result":{"kind":"points","per_currency_unit":null,"points":100},"result_short_text":"100 points","requirements":[{"kind":"text_length","min_length":50,"text":"Review must be at least 50 characters"}],"modifiers":[{"kind":"includes_photo","min_count":1,"bonus":{"kind":"per_count","points":20,"max_points":60},"text":"Include photos for 20 bonus points per photo (up to 60)"},{"kind":"text_length","min_length":200,"bonus":{"kind":"fixed","points":20},"text":"Write at least 200 characters for 20 bonus points"}]}],"limit":null}],"rewards":[{"id":1,"kind":"cart_discount_voucher","properties":{"discount_type":"fixed","discount":{"amount":5,"formatted":"$5"},"applies_to_order_type":"one_time","recurring_cycle_limit":1,"supports_active_subscriptions":false,"minimum_spend":{"amount":10,"formatted":"$10"}},"variants":[{"tier_id":1,"enabled":true,"title":"$5 discount","description":"Spend your points on $5 off your next order","cost":{"kind":"fixed","points":500},"cost_text":"500 points"},{"tier_id":2,"enabled":true,"title":"$5 discount","description":"Spend your points on $5 off your next order","cost":{"kind":"fixed","points":400},"cost_text":"400 points"}],"limit":null},{"id":2,"kind":"cart_variable_discount_voucher","properties":{"minimum_discount":{"amount":1,"formatted":"$1"},"maximum_discount":{"amount":100,"formatted":"$100"},"applies_to_order_type":"all","minimum_spend_before_discount":null,"minimum_spend_after_discount":null},"variants":[{"tier_id":1,"enabled":false,"title":"Redeem points at checkout","description":null,"cost":{"kind":"variable","unit":"discount_amount","points_per_unit":100},"cost_text":"100 points per $1"},{"tier_id":2,"enabled":true,"title":"Redeem points at checkout","description":null,"cost":{"kind":"variable","unit":"discount_amount","points_per_unit":100},"cost_text":"100 points per $1"}],"limit":null}]}}},"exampleType":"generated"}},"exampleType":"generated"},"0c386269-447a-4aea-899b-119e58e73a3a":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"cd2919b4-0339-4c8b-a10a-622be92fad48":{"description":"401","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"\u003cstring>","code":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"b9ebd9dd-9b5e-4c7c-aa03-6d80659f328e":{"description":"403","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","uniqueKey":"error.details.additionalProperties","typeLabel":"string"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"\u003cstring>","code":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"5b5007bc-8b13-4aad-853f-375c47dad0da":{"description":"404","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"5df49900-731e-4dfa-bf36-0fa453575a1d":{"description":"422","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2c1b7761-d280-4bde-8f17-6b8d971b0faa":{"description":"429","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e12f67b3-57c9-4f7e-8f19-78c30dd3522c":{"ProgramApiKey":{"type":"http","scheme":"bearer","description":"An API key linked to a Program in LoyaltyLion, with a set of permissions (scopes). API keys can be created manually, or acquired through an OAuth2 flow. The API key should be provided as a `Bearer` token in the `Authorization` header","scopes":["read_customers"],"schemeName":"ProgramApiKey"}},"eab588ce-cf39-4ef6-ab8e-87410da41463":{"CustomerSessionToken":{"type":"http","scheme":"bearer","description":"A [customer session token](/headless-api/session-tokens): a signed envelope you generate yourself, scoped to a single site and customer and to the [scopes](/headless-api/session-tokens#scopes) you grant it. Safe to hand to a browser or app: it only authorizes customer-self-serve actions for its own customer. Provide it as a `Bearer` token in the `Authorization` header","scopes":["read"],"schemeName":"CustomerSessionToken"}}},"servers":{"5947ccdf-6752-40b7-8a08-71f8c0d385f5":{"url":"https://api.loyaltylion.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key linked to a Program in LoyaltyLion, with a set of permissions (scopes). API keys can be created manually, or acquired through an OAuth2 flow. The API key should be provided as a `Bearer` token in the `Authorization` header","scopes":["read_customers"],"schemeName":"ProgramApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key linked to a Program in LoyaltyLion, with a set of permissions (scopes). API keys can be created manually, or acquired through an OAuth2 flow. The API key should be provided as a `Bearer` token in the `Authorization` header","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ProgramApiKey","name":"Authorization"}],"title":"ProgramApiKey"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"A [customer session token](/headless-api/session-tokens): a signed envelope you generate yourself, scoped to a single site and customer and to the [scopes](/headless-api/session-tokens#scopes) you grant it. Safe to hand to a browser or app: it only authorizes customer-self-serve actions for its own customer. Provide it as a `Bearer` token in the `Authorization` header","scopes":["read"],"schemeName":"CustomerSessionToken"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A [customer session token](/headless-api/session-tokens): a signed envelope you generate yourself, scoped to a single site and customer and to the [scopes](/headless-api/session-tokens#scopes) you grant it. Safe to hand to a browser or app: it only authorizes customer-self-serve actions for its own customer. Provide it as a `Bearer` token in the `Authorization` header","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"CustomerSessionToken","name":"Authorization"}],"title":"CustomerSessionToken"}]},"originalFileLocation":"headless-api/2025-06/openapi.json"},"subdomain":"loyaltylion","siteName":"LoyaltyLion","title":"Get Configuration - LoyaltyLion","navMaps":{"firstHrefInVersion":{"2025-06":{"href":"/headless-api/2025-06/configuration/get-configuration","matchLevel":0},"v2":{"href":"/api-reference/introduction","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T12:59:00.216Z","originalFileLocation":"headless-api/2025-06/configuration/get-configuration.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=\"application-name\" content=\"LoyaltyLion\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_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/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_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/loyaltylion/-HHkKRQ0-0oU9Wqj/_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/loyaltylion/-HHkKRQ0-0oU9Wqj/_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/loyaltylion/-HHkKRQ0-0oU9Wqj/_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/loyaltylion/-HHkKRQ0-0oU9Wqj/_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/loyaltylion/-HHkKRQ0-0oU9Wqj/_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/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get Configuration - LoyaltyLion\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LoyaltyLion\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://loyaltylion.mintlify.app/_mintlify/api/og/v2?division=Configuration\u0026amp;title=Get+Configuration\u0026amp;theme=ba374c8767f6d28b4848a12c\u0026amp;signature=91ea7dff9932a5e7fd2f4f1ba41b4b7dd01773a3f47dca879dad1bc5c1111fff\">\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=\"Get Configuration - LoyaltyLion\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://loyaltylion.mintlify.app/_mintlify/api/og/v2?division=Configuration\u0026amp;title=Get+Configuration\u0026amp;theme=ba374c8767f6d28b4848a12c\u0026amp;signature=91ea7dff9932a5e7fd2f4f1ba41b4b7dd01773a3f47dca879dad1bc5c1111fff\">\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/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LoyaltyLion\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7533f2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/headless-api/2025-06/configuration/get-configuration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.loyaltylion.com/#organization\",\"name\":\"LoyaltyLion\",\"url\":\"https://developers.loyaltylion.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/loyaltylion/qoWgzO-fbs5_an5D/logo/loyaltylion-logo-black.svg?fit=max\u0026auto=format\u0026n=qoWgzO-fbs5_an5D\u0026q=85\u0026s=a8042001d5f93ef344ce190752bfba7d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.loyaltylion.com#website\",\"name\":\"LoyaltyLion\",\"url\":\"https://developers.loyaltylion.com\",\"publisher\":{\"@id\":\"https://developers.loyaltylion.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration#webpage\",\"url\":\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration\",\"name\":\"Get Configuration\",\"dateModified\":\"2026-10-26T12:59:00.216Z\",\"isPartOf\":{\"@id\":\"https://developers.loyaltylion.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"LoyaltyLion\",\"item\":\"https://developers.loyaltylion.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get Configuration\",\"item\":\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration#apireference\",\"headline\":\"Get Configuration\",\"name\":\"Get Configuration\",\"url\":\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration\",\"mainEntityOfPage\":{\"@id\":\"https://developers.loyaltylion.com/headless-api/2025-06/configuration/get-configuration#webpage\"},\"dateModified\":\"2026-10-26T12:59:00.216Z\",\"publisher\":{\"@id\":\"https://developers.loyaltylion.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.loyaltylion.com#website\"}}]}\u003c/script>","siteName":"LoyaltyLion","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/docs/introduction"}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk/overview"}]},{"tab":"Admin API","versions":[{"version":"v2","default":true,"groups":[{"group":"Admin API","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"group":"Authentication","pages":[{"title":"Overview","href":"/api-reference/authentication/overview"},{"title":"API keys","href":"/api-reference/authentication/api-keys"},{"title":"OAuth","href":"/api-reference/authentication/oauth"},{"title":"Token \u0026 secret (deprecated)","href":"/api-reference/authentication/token-secret"}]},{"title":"Pagination","href":"/api-reference/pagination"}]},{"group":"Resources","pages":[{"group":"Identity","pages":[{"title":"Who Am I","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/identity/whoami","href":"/api-reference/v2/resources/whoami"}]},{"group":"Customers","pages":[{"title":"List Customers","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers","href":"/api-reference/v2/resources/customers/list-customers"},{"title":"Update Customer","version":"v2","openapi":"api-reference/v2/openapi.json PATCH /v2/customers/{merchant_id}","href":"/api-reference/v2/resources/customers/update-customer"},{"title":"Add Points","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/{merchant_id}/points","href":"/api-reference/v2/resources/customers/add-points"},{"title":"Remove Points","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/{merchant_id}/remove_points","href":"/api-reference/v2/resources/customers/remove-points"},{"title":"List Available Rewards","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers/{merchant_id}/available_rewards","href":"/api-reference/v2/resources/customers/rewards/list-available-rewards"},{"title":"Redeem Reward","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/{merchant_id}/claimed_rewards","href":"/api-reference/v2/resources/customers/rewards/redeem-reward"},{"title":"Refund Reward","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/{merchant_id}/claimed_rewards/{claimed_reward_id}/refund","href":"/api-reference/v2/resources/customers/rewards/refund-reward"},{"title":"List Transactions","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers/{merchant_id}/transactions","href":"/api-reference/v2/resources/customers/list-transactions"}]},{"group":"Activities","pages":[{"title":"List Activities","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/activities","href":"/api-reference/v2/resources/activities/list-activities"},{"title":"Create Activity","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/activities","href":"/api-reference/v2/resources/activities/create-activity"},{"title":"Update Activity","version":"v2","openapi":"api-reference/v2/openapi.json PUT /v2/activities/{name}/{merchant_id}","href":"/api-reference/v2/resources/activities/update-activity"}]},{"group":"Transactions","pages":[{"title":"List Transactions","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/transactions","href":"/api-reference/v2/resources/transactions/list-transactions"}]},{"group":"Orders","pages":[{"title":"List Orders","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/orders","href":"/api-reference/v2/resources/orders/list-orders"},{"title":"Get Order","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/orders/{merchant_id}","href":"/api-reference/v2/resources/orders/get-order"},{"title":"Create Order","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/orders","href":"/api-reference/v2/resources/orders/create-order"},{"title":"Update Order","version":"v2","openapi":"api-reference/v2/openapi.json PUT /v2/orders/{merchant_id}","href":"/api-reference/v2/resources/orders/update-order"}]},{"group":"Sites","pages":[{"title":"List Sites","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/sites","href":"/api-reference/v2/resources/sites/list-sites"},{"title":"Create WebView Session","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/sites/{site_id}/webviews/sessions","href":"/api-reference/v2/resources/sites/create-webview-session"}]},{"group":"Reviews","pages":[{"title":"Create Review","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/reviews/{platform}","href":"/api-reference/v2/resources/reviews/create-review"},{"title":"Update Review","version":"v2","openapi":"api-reference/v2/openapi.json PUT /v2/reviews/{platform}/{merchant_id}","href":"/api-reference/v2/resources/reviews/update-review"},{"title":"Delete Review","version":"v2","openapi":"api-reference/v2/openapi.json DELETE /v2/reviews/{platform}/{merchant_id}","href":"/api-reference/v2/resources/reviews/delete-review"}]},{"group":"Rewards","pages":[{"title":"Enable Reward","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/rewards/{reward_id}/enable","href":"/api-reference/v2/resources/rewards/enable-reward"},{"title":"Disable Reward","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/rewards/{reward_id}/disable","href":"/api-reference/v2/resources/rewards/disable-reward"}]},{"group":"Emails","pages":[{"title":"List Unsubscribes","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/loyalty_emails/unsubscribes","href":"/api-reference/v2/resources/emails/list-unsubscribes"},{"title":"Create Unsubscribe","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/loyalty_emails/unsubscribes","href":"/api-reference/v2/resources/emails/create-unsubscribe"}]},{"group":"Exports","pages":[{"title":"Customer exports","version":"v2","href":"/api-reference/v2/resources/customers/exports/overview"},{"title":"Create Export","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/exports","href":"/api-reference/v2/resources/customers/exports/create-export"},{"title":"Get Export","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers/exports/{id}","href":"/api-reference/v2/resources/customers/exports/get-export"},{"title":"List Exports","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers/exports","href":"/api-reference/v2/resources/customers/exports/list-exports"}]},{"group":"Webhooks","pages":[{"title":"List Webhooks","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/webhooks","href":"/api-reference/v2/resources/webhooks/list-webhooks"},{"title":"Create Webhook","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/webhooks","href":"/api-reference/v2/resources/webhooks/create-webhook"},{"title":"Delete Webhook","version":"v2","openapi":"api-reference/v2/openapi.json DELETE /v2/webhooks/{webhook_id}","href":"/api-reference/v2/resources/webhooks/delete-webhook"}]}]},{"group":"Webhooks","pages":[{"title":"Introduction","href":"/api-reference/v2/webhooks/overview"},{"group":"Webhook events","pages":[{"title":"customers/update","href":"/api-reference/v2/webhooks/events/customers-update"},{"title":"loyalty_emails/unsubscribe","href":"/api-reference/v2/webhooks/events/loyalty-emails-unsubscribe"},{"title":"rewards/store_fulfilment","href":"/api-reference/v2/webhooks/events/rewards-store-fulfilment"},{"title":"receipts/manual_approval_required","href":"/api-reference/v2/webhooks/events/receipts-manual-approval-required"},{"title":"program_events/customer.enrolled","href":"/api-reference/v2/webhooks/events/program-events/customer-enrolled"},{"title":"program_events/customer.tier_upgraded","href":"/api-reference/v2/webhooks/events/program-events/customer-tier-upgraded"},{"title":"program_events/customer.tier_downgraded","href":"/api-reference/v2/webhooks/events/program-events/customer-tier-downgraded"},{"title":"program_events/customer.reward_available_notification","href":"/api-reference/v2/webhooks/events/program-events/customer-reward-available-notification"},{"title":"program_events/customer.recurring_reward_available_reminder","href":"/api-reference/v2/webhooks/events/program-events/customer-recurring-reward-available-reminder"},{"title":"program_events/customer.claimed_reward","href":"/api-reference/v2/webhooks/events/program-events/customer-claimed-reward"},{"title":"program_events/customer.points_earned","href":"/api-reference/v2/webhooks/events/program-events/customer-points-earned"},{"title":"program_events/customer.referral_complete","href":"/api-reference/v2/webhooks/events/program-events/customer-referral-complete"},{"title":"program_events/customer.rule_completed","href":"/api-reference/v2/webhooks/events/program-events/customer-rule-completed"},{"title":"program_events/customer.approaching_tier_upgrade","href":"/api-reference/v2/webhooks/events/program-events/customers-approaching-tier-upgrade"},{"title":"program_events/customer.moved_to_defected_segment","href":"/api-reference/v2/webhooks/events/program-events/customer-moved-to-defected-segment"},{"title":"program_events/customer.moved_to_loyal_segment","href":"/api-reference/v2/webhooks/events/program-events/customer-moved-to-loyal-segment"},{"title":"program_events/customer.moved_to_at_risk_segment","href":"/api-reference/v2/webhooks/events/program-events/customer-moved-to-at-risk-segment"},{"title":"program_events/customer.approaching_points_expiration","href":"/api-reference/v2/webhooks/events/program-events/customer-approaching-points-expiration"},{"title":"program_events/customer.approaching_reward_expiration","href":"/api-reference/v2/webhooks/events/program-events/customer-approaching-reward-expiration"},{"title":"program_events/customer.receipt_approved","href":"/api-reference/v2/webhooks/events/program-events/customer-receipt-approved"},{"title":"program_events/customer.receipt_declined","href":"/api-reference/v2/webhooks/events/program-events/customer-receipt-declined"}]}]}]}]},{"tab":"Headless API","versions":[{"version":"2025-06","default":true,"groups":[{"group":"Headless API","pages":[{"title":"Introduction","href":"/headless-api/introduction"},{"title":"Customer session tokens","href":"/headless-api/session-tokens"},{"title":"Errors","href":"/headless-api/errors"},{"title":"Changelog","href":"/headless-api/changelog"}]},{"group":"Guides","pages":[{"title":"Referrals","href":"/headless-api/guides/referrals"},{"group":"Shopify Hydrogen","pages":[{"title":"Integrate with Hydrogen","href":"/headless-api/guides/hydrogen/integrate"},{"title":"Free product rewards","description":null,"href":"/headless-api/guides/hydrogen/free-product-rewards"}]}]},{"group":"Resources","pages":[{"group":"Configuration","pages":[{"title":"Get Configuration","version":"v2","openapi":"headless-api/2025-06/openapi.json GET /headless/2025-06/{site_id}/configuration","href":"/headless-api/2025-06/configuration/get-configuration"}]},{"group":"Customers","pages":[{"title":"Get Customer","version":"v2","openapi":"headless-api/2025-06/openapi.json GET /headless/2025-06/{site_id}/customers/{merchant_id}","description":null,"href":"/headless-api/2025-06/customers/get-customer"},{"title":"Initialize Session","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/customers/{merchant_id}/sessions","href":"/headless-api/2025-06/customers/initialize-session"},{"title":"Enroll Customer","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/customers/{merchant_id}/enroll","href":"/headless-api/2025-06/customers/enroll-customer"},{"title":"Set Birthday","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/customers/{merchant_id}/birthday","href":"/headless-api/2025-06/customers/set-birthday"},{"title":"Subscribe to Email Marketing","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/customers/{merchant_id}/email_marketing/subscribe","href":"/headless-api/2025-06/customers/subscribe-email-marketing"}]},{"group":"Referrals","pages":[{"title":"Claim Referee Incentive","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/referrals/referee_incentive","href":"/headless-api/2025-06/referrals/claim-referee-incentive"},{"title":"Track Share","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/referrals/shares","href":"/headless-api/2025-06/referrals/track-share"},{"title":"Register Guest Referrer","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/referrals/guest_registrations","href":"/headless-api/2025-06/referrals/register-guest-referrer"}]},{"group":"Reward redemption","pages":[{"title":"Cart Discount Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/cart_discount_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/cart-discount-voucher"},{"title":"Free Shipping Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/free_shipping_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/free-shipping-voucher"},{"title":"Collection Discount Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/collection_discount_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/collection-discount-voucher"},{"title":"Product Discount Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/product_discount_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/product-discount-voucher"},{"title":"Gift Card","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/gift_card/redeem","href":"/headless-api/2025-06/reward-redemption/gift-card"},{"title":"Active Subscription Discount Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/active_subscription_discount_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/active-subscription-discount-voucher"},{"title":"Active Subscription Product","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/active_subscription_product/redeem","href":"/headless-api/2025-06/reward-redemption/active-subscription-product"},{"title":"Free Product","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/product_cart/redeem","href":"/headless-api/2025-06/reward-redemption/free-product"}]},{"group":"Reward refunds","pages":[{"title":"Free Product","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/product_cart/refund","href":"/headless-api/2025-06/reward-refund/free-product"}]},{"group":"Complete rules","pages":[{"title":"Clickthrough","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/clickthrough/complete","href":"/headless-api/2025-06/complete-rules/clickthrough"},{"title":"Facebook Like","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/facebook_like/complete","href":"/headless-api/2025-06/complete-rules/facebook-like"},{"title":"Instagram Follow","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/instagram_follow/complete","href":"/headless-api/2025-06/complete-rules/instagram-follow"},{"title":"TikTok Follow","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/tiktok_follow/complete","href":"/headless-api/2025-06/complete-rules/tiktok-follow"},{"title":"Twitter/X Follow","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/twitter_follow/complete","href":"/headless-api/2025-06/complete-rules/twitter-follow"}]}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/docs/mcp/overview"}]}]},"title":"Get Configuration - LoyaltyLion","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}