Creates a payment link: a shareable URL that generates a checkout session each time a customer
opens it. The mode is determined by line_items — it becomes subscription if any price is
recurring, otherwise payment; pass mode=setup to save a payment method without a charge
(setup mode requires a label and empty line_items). Creating a link may create supporting
objects as a side effect: inline price_data provisions a Product and Price (in Stripe and
Flex), inline shipping rate data creates a Shipping Rate, and inline coupon_data discounts
create Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline
coupon data.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Flex Documentation","colors":{"primary":"#0070FA","light":"#BAB3FF","dark":"#0B0077"},"logo":{"light":"https://mintcdn.com/flex-87/1kILreF5HcjIKLdi/logo/light.svg?fit=max\u0026auto=format\u0026n=1kILreF5HcjIKLdi\u0026q=85\u0026s=f703a75bc80df014f4849a7225b4879f","dark":"https://mintcdn.com/flex-87/1kILreF5HcjIKLdi/logo/dark.svg?fit=max\u0026auto=format\u0026n=1kILreF5HcjIKLdi\u0026q=85\u0026s=1aabf14d790c002d1740276fdbced9ab"},"favicon":"https://mintcdn.com/flex-87/liG_HQMgKKwndFp8/favicon.svg?fit=max\u0026auto=format\u0026n=liG_HQMgKKwndFp8\u0026q=85\u0026s=82a2993b4fffbf19268067f48e898bed","navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.withflex.com/"}},"footer":{"socials":{"github":"https://github.com/JoinFlexHealth","linkedin":"https://www.linkedin.com/company/withflex","x":"https://x.com/paywithflex","instagram":"https://www.instagram.com/paywithflex"}},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","latex":true},"navigation":{"global":{"anchors":[{"anchor":"Status","icon":"wifi","href":"https://statuspage.incident.io/with-flex"},{"anchor":"Support","icon":"mail","href":"mailto:support@withflex.com"},{"anchor":"Website","icon":"laptop","href":"https://www.withflex.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"flex-87","hasAudioNarration":false,"actualSubdomain":"flex-87","customDomains":["docs.withflex.com"],"gitSource":{"type":"github","owner":"joinflexhealth","repo":"flex","deployBranch":"main","contentDirectory":"flex-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae374b5b3f002741c1ab41f","collectionId":"02d9944d-fd1b-4f89-a595-9c3890413440","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae374b5b3f002741c1ab41f"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae3cfd39c57ecccbea1d926","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":188},{"language":"default","tag":"Guides","count":51},{"language":"default","tag":"Integration","count":29},{"language":"default","tag":"Marketing","count":21},{"language":"default","tag":"Checkout Sessions","count":13},{"language":"default","tag":"Subscriptions","count":12},{"language":"default","tag":"Products","count":9},{"language":"default","tag":"Disputes","count":8},{"language":"default","tag":"Shopify","count":7},{"language":"default","tag":"Overview","count":7}]},"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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#topbar-cta-button span.bg-primary-dark{background-color:#0b0077!important}html.dark #topbar-cta-button span.bg-primary-dark{background-color:#bab3ff1a!important;border-color:#bab3ff;border-width:1px}.content img,[data-content] img,article img,main img{border:1px solid #e8eaed!important}.content img.rounded,[data-content] img.rounded,article img.rounded,main img.rounded{border:.5px solid #e8eaed!important}.brand-logo-grid img,.doc-screenshot img,.nav-logo,img.nav-logo,img.no-border{border:0!important}.dark .nav-anchor:hover .mr-4.rounded-md.p-1.shadow-sm,.nav-anchor:hover .mr-4.rounded-md.p-1.shadow-sm{--tw-ring-opacity:1!important;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important;filter:none!important}.nav-anchor:hover .mr-4.rounded-md.p-1.shadow-sm{background:rgba(17,24,39,.05)!important;background-color:rgba(17,24,39,.05)!important;color:#1f2937!important}.dark .nav-anchor:hover .mr-4.rounded-md.p-1.shadow-sm{background:rgba(229,231,235,.05)!important;background-color:rgba(229,231,235,.05)!important;color:#d1d5db!important}.group:hover .group-hover\\:ring-0{--tw-ring-opacity:1!important;--tw-ring-color:rgba(17, 24, 39, 0.05)!important}.dark .group:hover .group-hover\\:ring-0{--tw-ring-opacity:1!important;--tw-ring-color:rgba(55, 65, 81, 0.4)!important}.nav-anchor:hover .secondary-opacity.group-hover\\:fill-primary-dark.group-hover\\:bg-white{background-color:currentColor!important;fill:none!important}.nav-anchor:hover .secondary-opacity{background-color:#1f2937!important}.dark .nav-anchor:hover .secondary-opacity{background-color:#d1d5db!important}.nav-anchor .mr-4.rounded-md.p-1.shadow-sm[style*=background]{background:inherit!important;background-color:inherit!important}.nav-anchor:hover .mr-4.rounded-md.p-1.shadow-sm[style*=background]{background:rgba(17,24,39,.05)!important;background-color:rgba(17,24,39,.05)!important}.dark .nav-anchor:hover .mr-4.rounded-md.p-1.shadow-sm[style*=background]{background:rgba(229,231,235,.05)!important;background-color:rgba(229,231,235,.05)!important}.nav-anchor:hover .h-4.w-4.secondary-opacity{background-color:currentColor!important}.inline-flex.items-center.gap-1\\.5.text-sm.text-gray-500 a{color:#0070fa!important}.inline-flex.items-center.gap-1\\.5.text-sm.text-gray-500 a:hover{color:#0b0077!important}html.dark .inline-flex.items-center.gap-1\\.5.text-sm a{color:#bab3ff!important}html.dark .inline-flex.items-center.gap-1\\.5.text-sm a:hover{color:#fff!important}.lucide.lucide-chevron-right{stroke:#0070fa!important}html.dark .lucide.lucide-chevron-right{stroke:#bab3ff!important}"}],"page":{"pagePath":"api-reference/payment-links/create-payment-link","slug":"/api-reference/payment-links/create-payment-link","pageMetadata":{"title":"Create Payment Link","description":"Creates a payment link: a shareable URL that generates a checkout session each time a customer\nopens it. The mode is determined by `line_items` — it becomes `subscription` if any price is\nrecurring, otherwise `payment`; pass `mode=setup` to save a payment method without a charge\n(setup mode requires a `label` and empty `line_items`). Creating a link may create supporting\nobjects as a side effect: inline `price_data` provisions a Product and Price (in Stripe and\nFlex), inline shipping rate data creates a Shipping Rate, and inline `coupon_data` discounts\ncreate Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline\ncoupon data.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment_links","href":"/api-reference/payment-links/create-payment-link","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Creates a payment link: a shareable URL that generates a checkout session each time a customer\\nopens it. The mode is determined by \", _jsx(_components.code, {\n children: \"line_items\"\n }), \" — it becomes \", _jsx(_components.code, {\n children: \"subscription\"\n }), \" if any price is\\nrecurring, otherwise \", _jsx(_components.code, {\n children: \"payment\"\n }), \"; pass \", _jsx(_components.code, {\n children: \"mode=setup\"\n }), \" to save a payment method without a charge\\n(setup mode requires a \", _jsx(_components.code, {\n children: \"label\"\n }), \" and empty \", _jsx(_components.code, {\n children: \"line_items\"\n }), \"). Creating a link may create supporting\\nobjects as a side effect: inline \", _jsx(_components.code, {\n children: \"price_data\"\n }), \" provisions a Product and Price (in Stripe and\\nFlex), inline shipping rate data creates a Shipping Rate, and inline \", _jsx(_components.code, {\n children: \"coupon_data\"\n }), \" discounts\\ncreate Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline\\ncoupon data.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Payment Link","description":"Creates a payment link: a shareable URL that generates a checkout session each time a customer\nopens it. The mode is determined by `line_items` — it becomes `subscription` if any price is\nrecurring, otherwise `payment`; pass `mode=setup` to save a payment method without a charge\n(setup mode requires a `label` and empty `line_items`). Creating a link may create supporting\nobjects as a side effect: inline `price_data` provisions a Product and Price (in Stripe and\nFlex), inline shipping rate data creates a Shipping Rate, and inline `coupon_data` discounts\ncreate Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline\ncoupon data.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment_links","href":"/api-reference/payment-links/create-payment-link","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/flex-87/f0156321fafa1974/postcss.config.js"],"openApiReferenceData":{"operation":{"tags":["Payment Links"],"summary":"Create Payment Link","description":"Creates a payment link: a shareable URL that generates a checkout session each time a customer\nopens it. The mode is determined by `line_items` — it becomes `subscription` if any price is\nrecurring, otherwise `payment`; pass `mode=setup` to save a payment method without a charge\n(setup mode requires a `label` and empty `line_items`). Creating a link may create supporting\nobjects as a side effect: inline `price_data` provisions a Product and Price (in Stripe and\nFlex), inline shipping rate data creates a Shipping Rate, and inline `coupon_data` discounts\ncreate Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline\ncoupon data.","operationId":"v1.payment_links.create","requestBody":"c7d9e5f6-a590-4e8e-9dc3-6c0b3217d7c7","responses":{"200":"9dda22d9-7bbe-46f7-aff9-e7f03fd96375","401":"18adf288-6fb5-425a-8fa1-83dd0942515b","403":"0cabcf40-0df4-4ff6-b585-7d351594386e","404":"f34a56b0-d91f-4d6d-8bb0-671593cc285a","409":"c79f773e-397d-411d-80e4-b0725ffc7a48","422":"2f703d64-0cba-44ce-afab-552e4f6f98a3","429":"f19d1edd-3998-4ce3-aa99-a53b4d4eb77e"},"method":"post","type":"path","servers":["080577c1-39a5-4498-bb49-d7daab803f21"],"security":["26834da7-2a24-4de5-b97c-6bf0af826119"],"path":"/v1/payment_links","baseUrlOptions":["https://api.withflex.com"],"title":"Create Payment Link","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"description":"An envelope wrapping a single payment link object.","content":{"application/json":{"schema":{"description":"An envelope wrapping a single payment link object.","type":"object","required":["payment_link"],"properties":{"payment_link":{"description":"The payment link.","type":"object","properties":{"line_items":{"oneOf":[{"description":"The line items representing what is being sold. Required for payment/subscription modes. Must be empty or omitted for setup mode.","type":"array","items":{"description":"A line item to add to a Checkout Session, referencing an existing Price or supplying inline price data, together with the quantity and any per-item shipping or tax.","type":"object","required":["quantity"],"properties":{"quantity":{"description":"The quantity of the line item being purchased.","type":"integer","format":"int32","minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].quantity","typeLabel":"integer\u003cint32>"},"price":{"oneOf":[{"description":"The ID of the Price object. One of price or price_data is required. If both are sent, price wins and price_data is ignored.","type":"string","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"description":"The ID of the Price object. One of price or price_data is required. If both are sent, price wins and price_data is ignored.","type":"null","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price","typeLabel":"string | null"},"price_data":{"oneOf":[{"type":"object","description":"Data used to generate a new Price object inline. One of price or price_data is required. If both are sent, price wins and price_data is ignored; price_data alone is used as-sent.","required":["unit_amount"],"example":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"properties":{"unit_amount":{"description":"A positive integer in cents (or 0 for a free price) representing how much to charge.","type":"integer","format":"int64","minimum":0,"example":2500,"maximum":4294967295,"isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.unit_amount","typeLabel":"integer\u003cint64>"},"description":{"oneOf":[{"description":"A brief description of the price.","type":"string","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.description.oneOf.0","typeLabel":"string"},{"description":"A brief description of the price.","type":"null","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.description","typeLabel":"string | null"},"recurring":{"oneOf":[{"type":"object","description":"The recurring components of a price such as interval and trial period days.","required":["interval"],"example":{"interval":"day","interval_count":0,"trial_period_days":0},"properties":{"interval":{"description":"The billing cadence for the price.","type":"string","enum":["day","week","month","year"],"example":"day","isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.interval","typeLabel":"enum\u003cstring>"},"interval_count":{"oneOf":[{"description":"The number of intervals","type":"integer","format":"int64","minimum":0,"maximum":4294967295,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.interval_count.oneOf.0","typeLabel":"integer\u003cint64>"},{"description":"The number of intervals","type":"null","format":"int64","minimum":0,"maximum":4294967295,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.interval_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.interval_count","typeLabel":"integer\u003cint64> | null"},"trial_period_days":{"oneOf":[{"description":"The number of trial period days before the customer is charged for the first time. Whole days only. For a precise trial-end timestamp (e.g. non-integer days), use `subscription_data.trial_end` on the Create Checkout Session request instead.","type":"integer","format":"int64","minimum":0,"maximum":4294967295,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.trial_period_days.oneOf.0","typeLabel":"integer\u003cint64>"},{"description":"The number of trial period days before the customer is charged for the first time. Whole days only. For a precise trial-end timestamp (e.g. non-integer days), use `subscription_data.trial_end` on the Create Checkout Session request instead.","type":"null","format":"int64","minimum":0,"maximum":4294967295,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.trial_period_days.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.trial_period_days","typeLabel":"integer\u003cint64> | null"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0","typeLabel":"object"},{"type":"null","description":"The recurring components of a price such as interval and trial period days.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring","typeLabel":"object | null"},"metadata":{"oneOf":[{"description":"Metadata to attach to the price.","type":"object","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.metadata.oneOf.0","typeLabel":"object"},{"description":"Metadata to attach to the price.","type":"null","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.metadata","typeLabel":"object | null"},"product":{"description":"The ID of the product that this price will belong to.","type":"string","example":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product","typeLabel":"string"},"product_data":{"description":"Data used to generate a new Product object inline.","type":"object","required":["name"],"properties":{"name":{"description":"The product's name, meant to be displayed to the customer.","type":"string","example":"Example","isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.name","typeLabel":"string"},"description":{"oneOf":[{"description":"The product's description, a short blurb meant to be displayed to the customer.","type":"string","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.description.oneOf.0","typeLabel":"string"},{"description":"The product's description, a short blurb meant to be displayed to the customer.","type":"null","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.description","typeLabel":"string | null"},"upc_code":{"oneOf":[{"description":"The product's UPC code. If provided, this will be used to check whether the product is on the eligible product list.","type":"string","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.upc_code.oneOf.0","typeLabel":"string"},{"description":"The product's UPC code. If provided, this will be used to check whether the product is on the eligible product list.","type":"null","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.upc_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.upc_code","typeLabel":"string | null"},"gtin":{"oneOf":[{"description":"The product's GTIN. If provided, this will be used to check whether the product is on the eligible product list.","type":"string","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.gtin.oneOf.0","typeLabel":"string"},{"description":"The product's GTIN. If provided, this will be used to check whether the product is on the eligible product list.","type":"null","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.gtin.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.gtin","typeLabel":"string | null"},"reference_gtin":{"oneOf":[{"description":"If the product is HSA/FSA eligible through private label, this should be provided.","type":"string","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.reference_gtin.oneOf.0","typeLabel":"string"},{"description":"If the product is HSA/FSA eligible through private label, this should be provided.","type":"null","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.reference_gtin.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.reference_gtin","typeLabel":"string | null"},"url":{"oneOf":[{"description":"A URL of a publicly-accessible image of the product.","type":"string","example":"https://example.com","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.url.oneOf.0","typeLabel":"string"},{"description":"A URL of a publicly-accessible image of the product.","type":"null","example":"https://example.com","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.url","typeLabel":"string | null"},"client_reference_id":{"oneOf":[{"description":"An optional identifier for the product set by the client. Immutable after creation.","type":"string","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.client_reference_id.oneOf.0","typeLabel":"string"},{"description":"An optional identifier for the product set by the client. Immutable after creation.","type":"null","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.client_reference_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.client_reference_id","typeLabel":"string | null"},"metadata":{"oneOf":[{"description":"Set of key-value pairs that you can attach to a product. This can be useful for storing additional information about the product in a structured format.","type":"object","additionalProperties":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata.oneOf.0.additionalProperties","typeLabel":"string"},"example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata.oneOf.0","typeLabel":"object"},{"description":"Set of key-value pairs that you can attach to a product. This can be useful for storing additional information about the product in a structured format.","type":"null","additionalProperties":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata.oneOf.1.additionalProperties","typeLabel":"string"},"example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata","typeLabel":"object | null"},"image_urls":{"oneOf":[{"description":"URLs of publicly-accessible product images for eligibility determination.","type":"array","items":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.image_urls.oneOf.0.items.[INDEX]","typeLabel":"string"},"example":["https://example.com/image.png"],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.image_urls.oneOf.0","typeLabel":"string[]"},{"description":"URLs of publicly-accessible product images for eligibility determination.","type":"null","items":{"type":"string"},"example":["https://example.com/image.png"],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.image_urls.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.image_urls","typeLabel":"string[] | null"},"categories":{"oneOf":[{"description":"Product categories (e.g., \"Vitamins\", \"First Aid\").","type":"array","items":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.categories.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.categories.oneOf.0","typeLabel":"string[]"},{"description":"Product categories (e.g., \"Vitamins\", \"First Aid\").","type":"null","items":{"type":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.categories","typeLabel":"string[] | null"},"components":{"oneOf":[{"description":"Product components or ingredients (e.g., \"Vitamin C\", \"Zinc\").","type":"array","items":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.components.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.components.oneOf.0","typeLabel":"string[]"},{"description":"Product components or ingredients (e.g., \"Vitamin C\", \"Zinc\").","type":"null","items":{"type":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.components.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.components","typeLabel":"string[] | null"}},"example":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data","typeLabel":"object"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Data used to generate a new Price object inline. One of price or price_data is required. If both are sent, price wins and price_data is ignored; price_data alone is used as-sent.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data","typeLabel":"object | null"},"shipping_options":{"oneOf":[{"type":"object","description":"Shipping rate options for the line item.","example":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"properties":{"shipping_rate_id":{"oneOf":[{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"string","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_id.oneOf.0","typeLabel":"string"},{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"null","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_id","typeLabel":"string | null"},"shipping_rate_data":{"oneOf":[{"type":"object","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`.","required":["amount","display_name"],"example":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}},"properties":{"display_name":{"description":"The name shown to the customer at checkout (e.g., `Standard Shipping`). Must be at least 2 characters.","type":"string","minLength":2,"example":"Example","isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.display_name","typeLabel":"string"},"amount":{"description":"The shipping cost, in the smallest currency unit (e.g., `500` = $5.00 USD). Charged in USD.","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.amount","typeLabel":"integer\u003cint32>"},"metadata":{"oneOf":[{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"object","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.metadata.oneOf.0","typeLabel":"object"},{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"null","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.metadata","typeLabel":"object | null"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data","typeLabel":"object | null"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0","typeLabel":"object"},{"type":"null","description":"Shipping rate options for the line item.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options","typeLabel":"object | null"},"tax_rate":{"oneOf":[{"type":"object","description":"Tax rate for a specific line item","required":["amount"],"example":{"amount":2500},"properties":{"amount":{"description":"The tax amount to apply, in the smallest currency unit (e.g., `175` = $1.75 USD).","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].tax_rate.oneOf.0.amount","typeLabel":"integer\u003cint32>"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].tax_rate.oneOf.0","typeLabel":"object"},{"type":"null","description":"Tax rate for a specific line item","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].tax_rate.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].tax_rate","typeLabel":"object | null"},"components":{"oneOf":[{"description":"The components of this line item's build, e.g. the ingredients of a bowl. A supplied list is the whole build for this order and is never merged with anything stored on the product. Omit it entirely for a fixed-recipe product, whose build is read from its own `medical_meal_recipe_v1` metadata instead; an explicit empty list is rejected. Each entry names its component by `component_id` or by your own `client_reference_id`, and must resolve to a component you own or a shared one. At most 50 entries per line item.","type":"array","items":{"description":"One component of a line item's build, as sent at checkout.","type":"object","properties":{"quantity":{"description":"How many portions of the component. A standard build is `1.0`, which is also the default when omitted. Must be a positive, finite number.","default":1,"type":"number","format":"double","example":1,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].quantity","typeLabel":"number\u003cdouble>"},"dressing_mode":{"oneOf":[{"type":"string","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","enum":["MIXED","ON_THE_SIDE"],"example":"MIXED","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].dressing_mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].dressing_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].dressing_mode","typeLabel":"enum\u003cstring> | null"},"component_id":{"description":"The component's `fcomp_` identifier, from `/v1/product_components`. The component must be one of yours or one of Flex's shared components. Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","example":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].component_id","typeLabel":"string"},"client_reference_id":{"description":"Your own identifier for the component, as registered on `/v1/product_components` (CON-1550). Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].client_reference_id","typeLabel":"string"}},"example":{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX]","typeLabel":"object"},"maxItems":50,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0","typeLabel":"object[]"},{"description":"The components of this line item's build, e.g. the ingredients of a bowl. A supplied list is the whole build for this order and is never merged with anything stored on the product. Omit it entirely for a fixed-recipe product, whose build is read from its own `medical_meal_recipe_v1` metadata instead; an explicit empty list is rejected. Each entry names its component by `component_id` or by your own `client_reference_id`, and must resolve to a component you own or a shared one. At most 50 entries per line item.","type":"null","items":{"description":"One component of a line item's build, as sent at checkout.","type":"object","properties":{"quantity":{"description":"How many portions of the component. A standard build is `1.0`, which is also the default when omitted. Must be a positive, finite number.","default":1,"type":"number","format":"double","example":1},"dressing_mode":{"oneOf":[{"type":"string","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","enum":["MIXED","ON_THE_SIDE"],"example":"MIXED"},{"type":"null","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog."}]},"component_id":{"description":"The component's `fcomp_` identifier, from `/v1/product_components`. The component must be one of yours or one of Flex's shared components. Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","example":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"client_reference_id":{"description":"Your own identifier for the component, as registered on `/v1/product_components` (CON-1550). Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string"}},"example":{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}},"maxItems":50,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components","typeLabel":"object[] | null"}},"example":{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"payment_link.line_items.oneOf.0","typeLabel":"object[]"},{"description":"The line items representing what is being sold. Required for payment/subscription modes. Must be empty or omitted for setup mode.","type":"null","items":{"description":"A line item to add to a Checkout Session, referencing an existing Price or supplying inline price data, together with the quantity and any per-item shipping or tax.","type":"object","required":["quantity"],"properties":{"price":{"oneOf":[{"description":"The ID of the Price object. One of price or price_data is required. If both are sent, price wins and price_data is ignored.","type":"string","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},{"description":"The ID of the Price object. One of price or price_data is required. If both are sent, price wins and price_data is ignored.","type":"null","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA"}]},"price_data":{"oneOf":[{"type":"object","description":"Data used to generate a new Price object inline. One of price or price_data is required. If both are sent, price wins and price_data is ignored; price_data alone is used as-sent.","required":["unit_amount"],"example":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"properties":{"description":{"oneOf":[{"description":"A brief description of the price.","type":"string","example":"Premium SPF 50 mineral sunscreen"},{"description":"A brief description of the price.","type":"null","example":"Premium SPF 50 mineral sunscreen"}]},"unit_amount":{"description":"A positive integer in cents (or 0 for a free price) representing how much to charge.","type":"integer","format":"int64","minimum":0,"example":2500,"maximum":4294967295},"recurring":{"oneOf":[{"type":"object","description":"The recurring components of a price such as interval and trial period days.","required":["interval"],"example":{"interval":"day","interval_count":0,"trial_period_days":0},"properties":{"interval":{"description":"The billing cadence for the price.","type":"string","enum":["day","week","month","year"],"example":"day"},"interval_count":{"oneOf":[{"description":"The number of intervals","type":"integer","format":"int64","minimum":0,"maximum":4294967295},{"description":"The number of intervals","type":"null","format":"int64","minimum":0,"maximum":4294967295}]},"trial_period_days":{"oneOf":[{"description":"The number of trial period days before the customer is charged for the first time. Whole days only. For a precise trial-end timestamp (e.g. non-integer days), use `subscription_data.trial_end` on the Create Checkout Session request instead.","type":"integer","format":"int64","minimum":0,"maximum":4294967295},{"description":"The number of trial period days before the customer is charged for the first time. Whole days only. For a precise trial-end timestamp (e.g. non-integer days), use `subscription_data.trial_end` on the Create Checkout Session request instead.","type":"null","format":"int64","minimum":0,"maximum":4294967295}]}}},{"type":"null","description":"The recurring components of a price such as interval and trial period days."}]},"metadata":{"oneOf":[{"description":"Metadata to attach to the price.","type":"object","example":{"order_id":"8842","channel":"shopify"}},{"description":"Metadata to attach to the price.","type":"null","example":{"order_id":"8842","channel":"shopify"}}]},"product":{"description":"The ID of the product that this price will belong to.","type":"string","example":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"product_data":{"description":"Data used to generate a new Product object inline.","type":"object","required":["name"],"properties":{"name":{"description":"The product's name, meant to be displayed to the customer.","type":"string","example":"Example"},"description":{"oneOf":[{"description":"The product's description, a short blurb meant to be displayed to the customer.","type":"string","example":"Premium SPF 50 mineral sunscreen"},{"description":"The product's description, a short blurb meant to be displayed to the customer.","type":"null","example":"Premium SPF 50 mineral sunscreen"}]},"upc_code":{"oneOf":[{"description":"The product's UPC code. If provided, this will be used to check whether the product is on the eligible product list.","type":"string","example":"example_value"},{"description":"The product's UPC code. If provided, this will be used to check whether the product is on the eligible product list.","type":"null","example":"example_value"}]},"gtin":{"oneOf":[{"description":"The product's GTIN. If provided, this will be used to check whether the product is on the eligible product list.","type":"string","example":"example_value"},{"description":"The product's GTIN. If provided, this will be used to check whether the product is on the eligible product list.","type":"null","example":"example_value"}]},"reference_gtin":{"oneOf":[{"description":"If the product is HSA/FSA eligible through private label, this should be provided.","type":"string","example":"example_value"},{"description":"If the product is HSA/FSA eligible through private label, this should be provided.","type":"null","example":"example_value"}]},"url":{"oneOf":[{"description":"A URL of a publicly-accessible image of the product.","type":"string","example":"https://example.com"},{"description":"A URL of a publicly-accessible image of the product.","type":"null","example":"https://example.com"}]},"client_reference_id":{"oneOf":[{"description":"An optional identifier for the product set by the client. Immutable after creation.","type":"string","example":"example_value"},{"description":"An optional identifier for the product set by the client. Immutable after creation.","type":"null","example":"example_value"}]},"metadata":{"oneOf":[{"description":"Set of key-value pairs that you can attach to a product. This can be useful for storing additional information about the product in a structured format.","type":"object","additionalProperties":{"type":"string"},"example":{"order_id":"8842","channel":"shopify"}},{"description":"Set of key-value pairs that you can attach to a product. This can be useful for storing additional information about the product in a structured format.","type":"null","additionalProperties":{"type":"string"},"example":{"order_id":"8842","channel":"shopify"}}]},"image_urls":{"oneOf":[{"description":"URLs of publicly-accessible product images for eligibility determination.","type":"array","items":{"type":"string"},"example":["https://example.com/image.png"]},{"description":"URLs of publicly-accessible product images for eligibility determination.","type":"null","items":{"type":"string"},"example":["https://example.com/image.png"]}]},"categories":{"oneOf":[{"description":"Product categories (e.g., \"Vitamins\", \"First Aid\").","type":"array","items":{"type":"string"}},{"description":"Product categories (e.g., \"Vitamins\", \"First Aid\").","type":"null","items":{"type":"string"}}]},"components":{"oneOf":[{"description":"Product components or ingredients (e.g., \"Vitamin C\", \"Zinc\").","type":"array","items":{"type":"string"}},{"description":"Product components or ingredients (e.g., \"Vitamin C\", \"Zinc\").","type":"null","items":{"type":"string"}}]}},"example":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}}}},{"type":"null","description":"Data used to generate a new Price object inline. One of price or price_data is required. If both are sent, price wins and price_data is ignored; price_data alone is used as-sent."}]},"quantity":{"description":"The quantity of the line item being purchased.","type":"integer","format":"int32","minimum":-2147483648,"maximum":2147483647},"shipping_options":{"oneOf":[{"type":"object","description":"Shipping rate options for the line item.","example":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"properties":{"shipping_rate_id":{"oneOf":[{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"string","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"null","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA"}]},"shipping_rate_data":{"oneOf":[{"type":"object","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`.","required":["amount","display_name"],"example":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}},"properties":{"display_name":{"description":"The name shown to the customer at checkout (e.g., `Standard Shipping`). Must be at least 2 characters.","type":"string","minLength":2,"example":"Example"},"amount":{"description":"The shipping cost, in the smallest currency unit (e.g., `500` = $5.00 USD). Charged in USD.","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647},"metadata":{"oneOf":[{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"object","example":{"order_id":"8842","channel":"shopify"}},{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"null","example":{"order_id":"8842","channel":"shopify"}}]}}},{"type":"null","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`."}]}}},{"type":"null","description":"Shipping rate options for the line item."}]},"tax_rate":{"oneOf":[{"type":"object","description":"Tax rate for a specific line item","required":["amount"],"example":{"amount":2500},"properties":{"amount":{"description":"The tax amount to apply, in the smallest currency unit (e.g., `175` = $1.75 USD).","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647}}},{"type":"null","description":"Tax rate for a specific line item"}]},"components":{"oneOf":[{"description":"The components of this line item's build, e.g. the ingredients of a bowl. A supplied list is the whole build for this order and is never merged with anything stored on the product. Omit it entirely for a fixed-recipe product, whose build is read from its own `medical_meal_recipe_v1` metadata instead; an explicit empty list is rejected. Each entry names its component by `component_id` or by your own `client_reference_id`, and must resolve to a component you own or a shared one. At most 50 entries per line item.","type":"array","items":{"description":"One component of a line item's build, as sent at checkout.","type":"object","properties":{"quantity":{"description":"How many portions of the component. A standard build is `1.0`, which is also the default when omitted. Must be a positive, finite number.","default":1,"type":"number","format":"double","example":1},"dressing_mode":{"oneOf":[{"type":"string","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","enum":["MIXED","ON_THE_SIDE"],"example":"MIXED"},{"type":"null","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog."}]},"component_id":{"description":"The component's `fcomp_` identifier, from `/v1/product_components`. The component must be one of yours or one of Flex's shared components. Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","example":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"client_reference_id":{"description":"Your own identifier for the component, as registered on `/v1/product_components` (CON-1550). Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string"}},"example":{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}},"maxItems":50},{"description":"The components of this line item's build, e.g. the ingredients of a bowl. A supplied list is the whole build for this order and is never merged with anything stored on the product. Omit it entirely for a fixed-recipe product, whose build is read from its own `medical_meal_recipe_v1` metadata instead; an explicit empty list is rejected. Each entry names its component by `component_id` or by your own `client_reference_id`, and must resolve to a component you own or a shared one. At most 50 entries per line item.","type":"null","items":{"description":"One component of a line item's build, as sent at checkout.","type":"object","properties":{"quantity":{"description":"How many portions of the component. A standard build is `1.0`, which is also the default when omitted. Must be a positive, finite number.","default":1,"type":"number","format":"double","example":1},"dressing_mode":{"oneOf":[{"type":"string","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","enum":["MIXED","ON_THE_SIDE"],"example":"MIXED"},{"type":"null","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog."}]},"component_id":{"description":"The component's `fcomp_` identifier, from `/v1/product_components`. The component must be one of yours or one of Flex's shared components. Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","example":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"client_reference_id":{"description":"Your own identifier for the component, as registered on `/v1/product_components` (CON-1550). Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string"}},"example":{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}},"maxItems":50}]}},"example":{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}},"uniqueKey":"payment_link.line_items.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items","typeLabel":"object[] | null"},"label":{"oneOf":[{"description":"Custom name shown for the payment link. When omitted, a label is auto-generated from the first line item's product (e.g. \"Product name and 2 more\"). Required for setup mode, where there are no products to derive a name from.","type":"string","example":"Example","uniqueKey":"payment_link.label.oneOf.0","typeLabel":"string"},{"description":"Custom name shown for the payment link. When omitted, a label is auto-generated from the first line item's product (e.g. \"Product name and 2 more\"). Required for setup mode, where there are no products to derive a name from.","type":"null","example":"Example","uniqueKey":"payment_link.label.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.label","typeLabel":"string | null"},"shipping_address_collection":{"oneOf":[{"description":"Whether to collect a shipping address from the customer at checkout. Defaults to `false`.","type":"boolean","example":false,"uniqueKey":"payment_link.shipping_address_collection.oneOf.0","typeLabel":"boolean"},{"description":"Whether to collect a shipping address from the customer at checkout. Defaults to `false`.","type":"null","example":false,"uniqueKey":"payment_link.shipping_address_collection.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.shipping_address_collection","typeLabel":"boolean | null"},"shipping_options":{"oneOf":[{"type":"object","description":"Shipping rate applied to checkout sessions generated from this link. Provide either an existing shipping rate ID or inline shipping rate data; inline data creates a new Shipping Rate. When omitted, no shipping fee is applied.","example":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"properties":{"shipping_rate_id":{"oneOf":[{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"string","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_id.oneOf.0","typeLabel":"string"},{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"null","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_id","typeLabel":"string | null"},"shipping_rate_data":{"oneOf":[{"type":"object","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`.","required":["amount","display_name"],"example":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}},"properties":{"display_name":{"description":"The name shown to the customer at checkout (e.g., `Standard Shipping`). Must be at least 2 characters.","type":"string","minLength":2,"example":"Example","isRequired":true,"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_data.oneOf.0.display_name","typeLabel":"string"},"amount":{"description":"The shipping cost, in the smallest currency unit (e.g., `500` = $5.00 USD). Charged in USD.","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_data.oneOf.0.amount","typeLabel":"integer\u003cint32>"},"metadata":{"oneOf":[{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"object","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_data.oneOf.0.metadata.oneOf.0","typeLabel":"object"},{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"null","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_data.oneOf.0.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_data.oneOf.0.metadata","typeLabel":"object | null"}},"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`.","uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_data","typeLabel":"object | null"}},"uniqueKey":"payment_link.shipping_options.oneOf.0","typeLabel":"object"},{"type":"null","description":"Shipping rate applied to checkout sessions generated from this link. Provide either an existing shipping rate ID or inline shipping rate data; inline data creates a new Shipping Rate. When omitted, no shipping fee is applied.","uniqueKey":"payment_link.shipping_options.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.shipping_options","typeLabel":"object | null"},"metadata":{"oneOf":[{"description":"Set of key-value pairs you can attach to the payment link for storing additional structured information.","type":"object","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.metadata.oneOf.0","typeLabel":"object"},{"description":"Set of key-value pairs you can attach to the payment link for storing additional structured information.","type":"null","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.metadata","typeLabel":"object | null"},"payment_intent_data":{"oneOf":[{"type":"object","description":"Parameters passed through to the PaymentIntent created during checkout, such as the capture method and payment-intent-level metadata.","required":["capture_method"],"example":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"properties":{"capture_method":{"description":"How the PaymentIntent is captured: `automatic` captures the funds immediately after the customer authorizes the payment, `automatic_async` captures asynchronously, and `manual` authorizes the payment and requires a separate capture. Required when `payment_intent_data` is supplied; `automatic` is used when `payment_intent_data` is omitted entirely.","type":"string","enum":["automatic","automatic_async","manual"],"example":"automatic","isRequired":true,"uniqueKey":"payment_link.payment_intent_data.oneOf.0.capture_method","typeLabel":"enum\u003cstring>"},"metadata":{"oneOf":[{"description":"Set of key-value pairs attached to the PaymentIntent created during checkout, for storing additional structured information.","type":"object","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.payment_intent_data.oneOf.0.metadata.oneOf.0","typeLabel":"object"},{"description":"Set of key-value pairs attached to the PaymentIntent created during checkout, for storing additional structured information.","type":"null","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.payment_intent_data.oneOf.0.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.payment_intent_data.oneOf.0.metadata","typeLabel":"object | null"}},"uniqueKey":"payment_link.payment_intent_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Parameters passed through to the PaymentIntent created during checkout, such as the capture method and payment-intent-level metadata.","uniqueKey":"payment_link.payment_intent_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.payment_intent_data","typeLabel":"object | null"},"after_completion":{"oneOf":[{"type":"object","description":"Behavior after the customer completes a checkout session generated from this link. When omitted, defaults to showing the hosted confirmation page.","required":["type"],"example":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"properties":{"type":{"description":"The behavior to apply after completion: `hosted_confirmation` (Default) shows a Flex-hosted confirmation page, and `redirect` sends the customer to a URL you specify.","type":"string","enum":["redirect","hosted_confirmation"],"example":"redirect","isRequired":true,"uniqueKey":"payment_link.after_completion.oneOf.0.type","typeLabel":"enum\u003cstring>"},"hosted_confirmation":{"oneOf":[{"type":"object","description":"Configuration for the hosted confirmation page. Applies when `type` is `hosted_confirmation`; `null` otherwise.","example":{"custom_message":"Premium SPF 50 mineral sunscreen"},"properties":{"custom_message":{"oneOf":[{"description":"A custom message displayed to the customer on the hosted confirmation page.","type":"string","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.after_completion.oneOf.0.hosted_confirmation.oneOf.0.custom_message.oneOf.0","typeLabel":"string"},{"description":"A custom message displayed to the customer on the hosted confirmation page.","type":"null","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.after_completion.oneOf.0.hosted_confirmation.oneOf.0.custom_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.after_completion.oneOf.0.hosted_confirmation.oneOf.0.custom_message","typeLabel":"string | null"}},"uniqueKey":"payment_link.after_completion.oneOf.0.hosted_confirmation.oneOf.0","typeLabel":"object"},{"type":"null","description":"Configuration for the hosted confirmation page. Applies when `type` is `hosted_confirmation`; `null` otherwise.","uniqueKey":"payment_link.after_completion.oneOf.0.hosted_confirmation.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.after_completion.oneOf.0.hosted_confirmation","typeLabel":"object | null"},"redirect":{"oneOf":[{"type":"object","description":"Configuration for the post-completion redirect. Applies when `type` is `redirect`; `null` otherwise.","required":["url"],"example":{"url":"https://example.com"},"properties":{"url":{"description":"The URL the customer is redirected to after completing the checkout.","type":"string","format":"uri","example":"https://example.com","isRequired":true,"uniqueKey":"payment_link.after_completion.oneOf.0.redirect.oneOf.0.url","typeLabel":"string\u003curi>"}},"uniqueKey":"payment_link.after_completion.oneOf.0.redirect.oneOf.0","typeLabel":"object"},{"type":"null","description":"Configuration for the post-completion redirect. Applies when `type` is `redirect`; `null` otherwise.","uniqueKey":"payment_link.after_completion.oneOf.0.redirect.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.after_completion.oneOf.0.redirect","typeLabel":"object | null"}},"uniqueKey":"payment_link.after_completion.oneOf.0","typeLabel":"object"},{"type":"null","description":"Behavior after the customer completes a checkout session generated from this link. When omitted, defaults to showing the hosted confirmation page.","uniqueKey":"payment_link.after_completion.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.after_completion","typeLabel":"object | null"},"allow_promotion_codes":{"oneOf":[{"description":"Whether customers may enter promotion codes at checkout. Defaults to `false`.","type":"boolean","example":false,"uniqueKey":"payment_link.allow_promotion_codes.oneOf.0","typeLabel":"boolean"},{"description":"Whether customers may enter promotion codes at checkout. Defaults to `false`.","type":"null","example":false,"uniqueKey":"payment_link.allow_promotion_codes.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.allow_promotion_codes","typeLabel":"boolean | null"},"origin":{"oneOf":[{"type":"string","description":"The integration or surface this payment link originated from. `null` for links created directly via the API. Setting `renewal` is rejected: that origin is reserved for sessions Flex mints itself.","enum":["shopify","shopline","prepurchase","postpurchase","renewal"],"example":"shopify","uniqueKey":"payment_link.origin.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The integration or surface this payment link originated from. `null` for links created directly via the API. Setting `renewal` is rejected: that origin is reserved for sessions Flex mints itself.","uniqueKey":"payment_link.origin.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.origin","typeLabel":"enum\u003cstring> | null"},"tax_rate":{"oneOf":[{"type":"object","description":"Session-level flat tax amount in cents (e.g., 500 = $5.00)","required":["amount"],"example":{"amount":2500},"properties":{"amount":{"description":"The tax amount to apply, in the smallest currency unit (e.g., `175` = $1.75 USD).","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.tax_rate.oneOf.0.amount","typeLabel":"integer\u003cint32>"}},"uniqueKey":"payment_link.tax_rate.oneOf.0","typeLabel":"object"},{"type":"null","description":"Session-level flat tax amount in cents (e.g., 500 = $5.00)","uniqueKey":"payment_link.tax_rate.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.tax_rate","typeLabel":"object | null"},"discounts":{"oneOf":[{"description":"Discounts to apply when generating checkout sessions. Supports existing coupon IDs or inline coupon creation via coupon_data.","type":"array","items":{"description":"Specifies a discount to apply, as one of: an existing coupon referenced by ID, an existing promotion code referenced by ID, or inline coupon data to create a new coupon and apply it.","type":"object","properties":{"coupon_id":{"description":"ID of an existing Coupon to apply.","type":"string","example":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_id","typeLabel":"string"},"promo_code_id":{"description":"ID of an existing PromoCode to apply. The discount is sourced from the coupon the promotion code references.","type":"string","example":"fpromo_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].promo_code_id","typeLabel":"string"},"coupon_data":{"description":"Inline coupon parameters used to create a new Coupon, which is then applied.","type":"object","required":["name"],"properties":{"name":{"description":"Name of the coupon displayed to customers.","type":"string","example":"Coupon","isRequired":true,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.name","typeLabel":"string"},"applies_to":{"oneOf":[{"type":"object","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order.","required":["products"],"example":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"properties":{"products":{"description":"The product that this coupon applies to.","type":"array","items":{"type":"string","example":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.0.products.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.0.products","typeLabel":"string[]"}},"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.0","typeLabel":"object"},{"type":"object","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order.","required":["prices"],"properties":{"prices":{"description":"The price that this coupon applies to.","type":"array","items":{"type":"string","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.1.prices.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.1.prices","typeLabel":"string[]"}},"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.1","typeLabel":"object"},{"type":"object","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order.","required":["fee_types"],"properties":{"fee_types":{"description":"The fee types that this coupon applies to.","type":"array","items":{"description":"The kind of fee applied to a checkout session: a Letter of Medical Necessity consultation fee, or a custom fee you define.","type":"string","enum":["lmn_consultation","custom"],"example":"lmn_consultation","uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.2.fee_types.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.2.fee_types","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.2","typeLabel":"object"},{"type":"string","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order.","enum":["shipping"],"example":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.3","typeLabel":"enum\u003cstring>"},{"type":"null","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order.","uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to.oneOf.4","typeLabel":"null"}],"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.applies_to","typeLabel":"object · object · object · enum\u003cstring> · null"},"amount_off":{"oneOf":[{"description":"A positive integer representing the amount to subtract from an invoice total (required if percent_off is not passed).","type":"integer","format":"int32","maximum":2147483647,"example":100,"minimum":-2147483648,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.amount_off.oneOf.0","typeLabel":"integer\u003cint32>"},{"description":"A positive integer representing the amount to subtract from an invoice total (required if percent_off is not passed).","type":"null","format":"int32","maximum":2147483647,"example":100,"minimum":-2147483648,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.amount_off.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.amount_off","typeLabel":"integer\u003cint32> | null"},"duration":{"oneOf":[{"type":"string","description":"Specifies how long the discount will be in effect if used on a subscription. Defaults to once.","enum":["once","repeating","forever"],"x-ms-enum":{"name":"CouponDuration","modelAsString":false,"values":[{"value":"once","name":"Once","description":"Applies to the first charge from a subscription with this coupon applied."},{"value":"repeating","name":"Repeating","description":"Applies to charges in the first duration_in_months months from a subscription with this coupon applied."},{"value":"forever","name":"Forever","description":"Applies to all charges from a subscription with this coupon applied."}]},"example":"once","uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.duration.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Specifies how long the discount will be in effect if used on a subscription. Defaults to once.","example":"once","uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.duration","typeLabel":"enum\u003cstring> | null"},"duration_in_months":{"oneOf":[{"description":"Required only if duration is repeating, in which case it must be a positive integer that specifies the number of months the discount will be in effect.","type":"integer","format":"int32","maximum":2147483647,"minimum":-2147483648,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.duration_in_months.oneOf.0","typeLabel":"integer\u003cint32>"},{"description":"Required only if duration is repeating, in which case it must be a positive integer that specifies the number of months the discount will be in effect.","type":"null","format":"int32","maximum":2147483647,"minimum":-2147483648,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.duration_in_months.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.duration_in_months","typeLabel":"integer\u003cint32> | null"},"percent_off":{"oneOf":[{"description":"A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if amount_off is not passed).","type":"number","format":"double","example":10,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.percent_off.oneOf.0","typeLabel":"number\u003cdouble>"},{"description":"A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if amount_off is not passed).","type":"null","format":"double","example":10,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.percent_off.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.percent_off","typeLabel":"number\u003cdouble> | null"},"max_redemptions":{"oneOf":[{"description":"A positive integer specifying the number of times the coupon can be redeemed before it’s no longer valid.","type":"integer","format":"int32","maximum":2147483647,"example":100,"minimum":-2147483648,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.max_redemptions.oneOf.0","typeLabel":"integer\u003cint32>"},{"description":"A positive integer specifying the number of times the coupon can be redeemed before it’s no longer valid.","type":"null","format":"int32","maximum":2147483647,"example":100,"minimum":-2147483648,"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.max_redemptions.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.max_redemptions","typeLabel":"integer\u003cint32> | null"},"metadata":{"oneOf":[{"description":"Metadata to attach to this coupon.","type":"object","example":{"key":"value"},"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.metadata.oneOf.0","typeLabel":"object"},{"description":"Metadata to attach to this coupon.","type":"null","example":{"key":"value"},"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data.metadata","typeLabel":"object | null"}},"example":{"applies_to":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"name":"Coupon","amount_off":100,"duration":"once","percent_off":10,"max_redemptions":100,"metadata":{"key":"value"}},"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX].coupon_data","typeLabel":"object"}},"example":{"coupon_id":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA","promo_code_id":"fpromo_01J9XR8M3K7VZ8N2YB4WJ6T0RA","coupon_data":{"applies_to":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"name":"Coupon","amount_off":100,"duration":"once","percent_off":10,"max_redemptions":100,"metadata":{"key":"value"}}},"uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"payment_link.discounts.oneOf.0","typeLabel":"object[]"},{"description":"Discounts to apply when generating checkout sessions. Supports existing coupon IDs or inline coupon creation via coupon_data.","type":"null","items":{"description":"Specifies a discount to apply, as one of: an existing coupon referenced by ID, an existing promotion code referenced by ID, or inline coupon data to create a new coupon and apply it.","type":"object","properties":{"coupon_id":{"description":"ID of an existing Coupon to apply.","type":"string","example":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"promo_code_id":{"description":"ID of an existing PromoCode to apply. The discount is sourced from the coupon the promotion code references.","type":"string","example":"fpromo_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"coupon_data":{"description":"Inline coupon parameters used to create a new Coupon, which is then applied.","type":"object","required":["name"],"properties":{"applies_to":{"oneOf":[{"type":"object","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order.","required":["products"],"example":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"properties":{"products":{"description":"The product that this coupon applies to.","type":"array","items":{"type":"string","example":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"}}}},{"type":"object","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order.","required":["prices"],"properties":{"prices":{"description":"The price that this coupon applies to.","type":"array","items":{"type":"string","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA"}}}},{"type":"object","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order.","required":["fee_types"],"properties":{"fee_types":{"description":"The fee types that this coupon applies to.","type":"array","items":{"description":"The kind of fee applied to a checkout session: a Letter of Medical Necessity consultation fee, or a custom fee you define.","type":"string","enum":["lmn_consultation","custom"],"example":"lmn_consultation"}}}},{"type":"string","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order.","enum":["shipping"],"example":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]}},{"type":"null","description":"An object containing directions for what this Coupon will apply discounts to. If null, the coupon applies to the entire order."}]},"name":{"description":"Name of the coupon displayed to customers.","type":"string","example":"Coupon"},"amount_off":{"oneOf":[{"description":"A positive integer representing the amount to subtract from an invoice total (required if percent_off is not passed).","type":"integer","format":"int32","maximum":2147483647,"example":100,"minimum":-2147483648},{"description":"A positive integer representing the amount to subtract from an invoice total (required if percent_off is not passed).","type":"null","format":"int32","maximum":2147483647,"example":100,"minimum":-2147483648}]},"duration":{"oneOf":[{"type":"string","description":"Specifies how long the discount will be in effect if used on a subscription. Defaults to once.","enum":["once","repeating","forever"],"x-ms-enum":{"name":"CouponDuration","modelAsString":false,"values":[{"value":"once","name":"Once","description":"Applies to the first charge from a subscription with this coupon applied."},{"value":"repeating","name":"Repeating","description":"Applies to charges in the first duration_in_months months from a subscription with this coupon applied."},{"value":"forever","name":"Forever","description":"Applies to all charges from a subscription with this coupon applied."}]},"example":"once"},{"type":"null","description":"Specifies how long the discount will be in effect if used on a subscription. Defaults to once.","example":"once"}]},"duration_in_months":{"oneOf":[{"description":"Required only if duration is repeating, in which case it must be a positive integer that specifies the number of months the discount will be in effect.","type":"integer","format":"int32","maximum":2147483647,"minimum":-2147483648},{"description":"Required only if duration is repeating, in which case it must be a positive integer that specifies the number of months the discount will be in effect.","type":"null","format":"int32","maximum":2147483647,"minimum":-2147483648}]},"percent_off":{"oneOf":[{"description":"A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if amount_off is not passed).","type":"number","format":"double","example":10},{"description":"A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if amount_off is not passed).","type":"null","format":"double","example":10}]},"max_redemptions":{"oneOf":[{"description":"A positive integer specifying the number of times the coupon can be redeemed before it’s no longer valid.","type":"integer","format":"int32","maximum":2147483647,"example":100,"minimum":-2147483648},{"description":"A positive integer specifying the number of times the coupon can be redeemed before it’s no longer valid.","type":"null","format":"int32","maximum":2147483647,"example":100,"minimum":-2147483648}]},"metadata":{"oneOf":[{"description":"Metadata to attach to this coupon.","type":"object","example":{"key":"value"}},{"description":"Metadata to attach to this coupon.","type":"null","example":{"key":"value"}}]}},"example":{"applies_to":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"name":"Coupon","amount_off":100,"duration":"once","percent_off":10,"max_redemptions":100,"metadata":{"key":"value"}}}},"example":{"coupon_id":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA","promo_code_id":"fpromo_01J9XR8M3K7VZ8N2YB4WJ6T0RA","coupon_data":{"applies_to":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"name":"Coupon","amount_off":100,"duration":"once","percent_off":10,"max_redemptions":100,"metadata":{"key":"value"}}}},"uniqueKey":"payment_link.discounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.discounts","typeLabel":"object[] | null"},"mode":{"oneOf":[{"type":"string","description":"The mode of the checkout session. Defaults to \"payment\". `reimbursement` is rejected with `mode_not_supported`. Use \"setup\" to save a payment method without charging.","enum":["payment","subscription","off_session","setup","reimbursement"],"example":"payment","uniqueKey":"payment_link.mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The mode of the checkout session. Defaults to \"payment\". `reimbursement` is rejected with `mode_not_supported`. Use \"setup\" to save a payment method without charging.","uniqueKey":"payment_link.mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.mode","typeLabel":"enum\u003cstring> | null"},"setup_future_use":{"oneOf":[{"type":"string","description":"Controls how the payment method is saved for future use on checkout sessions generated from this link. Use \"off_session\" to save the card for future merchant-initiated charges, or \"on_session\" for payments where the customer is present. When omitted, defaults based on mode (\"setup\" → \"off_session\", otherwise \"on_session\").","enum":["on_session","off_session"],"x-ms-enum":{"name":"FutureUse","modelAsString":false,"values":[{"value":"on_session","name":"OnSession","description":"Standard payments requiring customer auth"},{"value":"off_session","name":"OffSession","description":"Allows payments without the customer present in the flow"}]},"example":"on_session","uniqueKey":"payment_link.setup_future_use.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Controls how the payment method is saved for future use on checkout sessions generated from this link. Use \"off_session\" to save the card for future merchant-initiated charges, or \"on_session\" for payments where the customer is present. When omitted, defaults based on mode (\"setup\" → \"off_session\", otherwise \"on_session\").","uniqueKey":"payment_link.setup_future_use.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.setup_future_use","typeLabel":"enum\u003cstring> | null"}},"example":{"line_items":[{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}],"label":"Example","shipping_address_collection":false,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"metadata":{"order_id":"8842","channel":"shopify"},"payment_intent_data":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"after_completion":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"allow_promotion_codes":false,"origin":"shopify","tax_rate":{"amount":2500},"discounts":[{"coupon_id":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA","promo_code_id":"fpromo_01J9XR8M3K7VZ8N2YB4WJ6T0RA","coupon_data":{"applies_to":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"name":"Coupon","amount_off":100,"duration":"once","percent_off":10,"max_redemptions":100,"metadata":{"key":"value"}}}],"mode":"payment","setup_future_use":"on_session"},"isRequired":true,"uniqueKey":"payment_link","typeLabel":"object"}},"example":{"payment_link":{"line_items":[{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}],"label":"Example","shipping_address_collection":false,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"metadata":{"order_id":"8842","channel":"shopify"},"payment_intent_data":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"after_completion":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"allow_promotion_codes":false,"origin":"shopify","tax_rate":{"amount":2500},"discounts":[{"coupon_id":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA","promo_code_id":"fpromo_01J9XR8M3K7VZ8N2YB4WJ6T0RA","coupon_data":{"applies_to":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"name":"Coupon","amount_off":100,"duration":"once","percent_off":10,"max_redemptions":100,"metadata":{"key":"value"}}}],"mode":"payment","setup_future_use":"on_session"}},"uniqueKey":"","typeLabel":"object"},"example":{"payment_link":{"line_items":[{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}],"label":"Example","shipping_address_collection":false,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"metadata":{"order_id":"8842","channel":"shopify"},"payment_intent_data":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"after_completion":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"allow_promotion_codes":false,"origin":"shopify","tax_rate":{"amount":2500},"discounts":[{"coupon_id":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA","promo_code_id":"fpromo_01J9XR8M3K7VZ8N2YB4WJ6T0RA","coupon_data":{"applies_to":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"name":"Coupon","amount_off":100,"duration":"once","percent_off":10,"max_redemptions":100,"metadata":{"key":"value"}}}],"mode":"payment","setup_future_use":"on_session"}},"examples":{"Example":{"title":"Example","value":{"payment_link":{"line_items":[{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}],"label":"Example","shipping_address_collection":false,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"metadata":{"order_id":"8842","channel":"shopify"},"payment_intent_data":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"after_completion":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"allow_promotion_codes":false,"origin":"shopify","tax_rate":{"amount":2500},"discounts":[{"coupon_id":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA","promo_code_id":"fpromo_01J9XR8M3K7VZ8N2YB4WJ6T0RA","coupon_data":{"applies_to":{"products":["fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"]},"name":"Coupon","amount_off":100,"duration":"once","percent_off":10,"max_redemptions":100,"metadata":{"key":"value"}}}],"mode":"payment","setup_future_use":"on_session"}}}},"exampleType":"examples"}},"required":true,"exampleType":"examples"},"responses":{"9dda22d9-7bbe-46f7-aff9-e7f03fd96375":{"description":"An envelope wrapping a single payment link object.","content":{"application/json":{"schema":{"description":"An envelope wrapping a single payment link object.","type":"object","required":["payment_link"],"properties":{"payment_link":{"description":"The payment link.","type":"object","required":["active","after_completion","allow_promotion_codes","created_at","payment_link_id","setup_future_use","shipping_address_collection","test_mode","url"],"properties":{"payment_link_id":{"description":"Unique identifier for the Payment Link","type":"string","example":"fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA","isRequired":true,"uniqueKey":"payment_link.payment_link_id","typeLabel":"string"},"active":{"description":"Whether the payment link is currently active. If false, the link can no longer be used to generate checkout sessions and customers visiting the URL will be shown a not-found page.","type":"boolean","example":false,"isRequired":true,"uniqueKey":"payment_link.active","typeLabel":"boolean"},"allow_promotion_codes":{"description":"Whether promo codes are enabled","type":"boolean","example":false,"isRequired":true,"uniqueKey":"payment_link.allow_promotion_codes","typeLabel":"boolean"},"shipping_address_collection":{"description":"Whether we want to collect shipping details at checkout time","type":"boolean","example":false,"isRequired":true,"uniqueKey":"payment_link.shipping_address_collection","typeLabel":"boolean"},"url":{"description":"The public URL that can be shared with customers.","type":"string","example":"https://example.com","isRequired":true,"uniqueKey":"payment_link.url","typeLabel":"string"},"created_at":{"description":"Time at which the object was created. ISO 8601 format.","type":"string","example":"2026-06-15T14:30:00Z","isRequired":true,"uniqueKey":"payment_link.created_at","typeLabel":"string"},"after_completion":{"description":"Behavior after the purchase is complete.","type":"object","required":["type"],"properties":{"type":{"description":"The behavior to apply after completion: `hosted_confirmation` (Default) shows a Flex-hosted confirmation page, and `redirect` sends the customer to a URL you specify.","type":"string","enum":["redirect","hosted_confirmation"],"example":"redirect","isRequired":true,"uniqueKey":"payment_link.after_completion.type","typeLabel":"enum\u003cstring>"},"hosted_confirmation":{"oneOf":[{"type":"object","description":"Configuration for the hosted confirmation page. Applies when `type` is `hosted_confirmation`; `null` otherwise.","example":{"custom_message":"Premium SPF 50 mineral sunscreen"},"properties":{"custom_message":{"oneOf":[{"description":"A custom message displayed to the customer on the hosted confirmation page.","type":"string","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.after_completion.hosted_confirmation.oneOf.0.custom_message.oneOf.0","typeLabel":"string"},{"description":"A custom message displayed to the customer on the hosted confirmation page.","type":"null","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.after_completion.hosted_confirmation.oneOf.0.custom_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.after_completion.hosted_confirmation.oneOf.0.custom_message","typeLabel":"string | null"}},"uniqueKey":"payment_link.after_completion.hosted_confirmation.oneOf.0","typeLabel":"object"},{"type":"null","description":"Configuration for the hosted confirmation page. Applies when `type` is `hosted_confirmation`; `null` otherwise.","uniqueKey":"payment_link.after_completion.hosted_confirmation.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.after_completion.hosted_confirmation","typeLabel":"object | null"},"redirect":{"oneOf":[{"type":"object","description":"Configuration for the post-completion redirect. Applies when `type` is `redirect`; `null` otherwise.","required":["url"],"example":{"url":"https://example.com"},"properties":{"url":{"description":"The URL the customer is redirected to after completing the checkout.","type":"string","format":"uri","example":"https://example.com","isRequired":true,"uniqueKey":"payment_link.after_completion.redirect.oneOf.0.url","typeLabel":"string\u003curi>"}},"uniqueKey":"payment_link.after_completion.redirect.oneOf.0","typeLabel":"object"},{"type":"null","description":"Configuration for the post-completion redirect. Applies when `type` is `redirect`; `null` otherwise.","uniqueKey":"payment_link.after_completion.redirect.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.after_completion.redirect","typeLabel":"object | null"}},"example":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"isRequired":true,"uniqueKey":"payment_link.after_completion","typeLabel":"object"},"setup_future_use":{"type":"string","enum":["on_session","off_session"],"x-ms-enum":{"name":"FutureUse","modelAsString":false,"values":[{"value":"on_session","name":"OnSession","description":"Standard payments requiring customer auth"},{"value":"off_session","name":"OffSession","description":"Allows payments without the customer present in the flow"}]},"description":"How the payment method is saved for future use on checkout sessions generated from this link. \"off_session\" keeps the card on file for future merchant-initiated charges; \"on_session\" requires the customer to be present for future payments.","example":"on_session","isRequired":true,"uniqueKey":"payment_link.setup_future_use","typeLabel":"enum\u003cstring>"},"test_mode":{"description":"Whether the payment link was created in test mode","type":"boolean","example":false,"isRequired":true,"uniqueKey":"payment_link.test_mode","typeLabel":"boolean"},"label":{"oneOf":[{"description":"Provided or generated label for the payment link.","type":"string","example":"Example","uniqueKey":"payment_link.label.oneOf.0","typeLabel":"string"},{"description":"Provided or generated label for the payment link.","type":"null","example":"Example","uniqueKey":"payment_link.label.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.label","typeLabel":"string | null"},"line_items":{"oneOf":[{"description":"The line items representing what is being sold.","type":"array","items":{"description":"A line item to add to a Checkout Session, referencing an existing Price or supplying inline price data, together with the quantity and any per-item shipping or tax.","type":"object","required":["quantity"],"properties":{"quantity":{"description":"The quantity of the line item being purchased.","type":"integer","format":"int32","minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].quantity","typeLabel":"integer\u003cint32>"},"price":{"oneOf":[{"description":"The ID of the Price object. One of price or price_data is required. If both are sent, price wins and price_data is ignored.","type":"string","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"description":"The ID of the Price object. One of price or price_data is required. If both are sent, price wins and price_data is ignored.","type":"null","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price","typeLabel":"string | null"},"price_data":{"oneOf":[{"type":"object","description":"Data used to generate a new Price object inline. One of price or price_data is required. If both are sent, price wins and price_data is ignored; price_data alone is used as-sent.","required":["unit_amount"],"example":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"properties":{"unit_amount":{"description":"A positive integer in cents (or 0 for a free price) representing how much to charge.","type":"integer","format":"int64","minimum":0,"example":2500,"maximum":4294967295,"isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.unit_amount","typeLabel":"integer\u003cint64>"},"description":{"oneOf":[{"description":"A brief description of the price.","type":"string","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.description.oneOf.0","typeLabel":"string"},{"description":"A brief description of the price.","type":"null","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.description","typeLabel":"string | null"},"recurring":{"oneOf":[{"type":"object","description":"The recurring components of a price such as interval and trial period days.","required":["interval"],"example":{"interval":"day","interval_count":0,"trial_period_days":0},"properties":{"interval":{"description":"The billing cadence for the price.","type":"string","enum":["day","week","month","year"],"example":"day","isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.interval","typeLabel":"enum\u003cstring>"},"interval_count":{"oneOf":[{"description":"The number of intervals","type":"integer","format":"int64","minimum":0,"maximum":4294967295,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.interval_count.oneOf.0","typeLabel":"integer\u003cint64>"},{"description":"The number of intervals","type":"null","format":"int64","minimum":0,"maximum":4294967295,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.interval_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.interval_count","typeLabel":"integer\u003cint64> | null"},"trial_period_days":{"oneOf":[{"description":"The number of trial period days before the customer is charged for the first time. Whole days only. For a precise trial-end timestamp (e.g. non-integer days), use `subscription_data.trial_end` on the Create Checkout Session request instead.","type":"integer","format":"int64","minimum":0,"maximum":4294967295,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.trial_period_days.oneOf.0","typeLabel":"integer\u003cint64>"},{"description":"The number of trial period days before the customer is charged for the first time. Whole days only. For a precise trial-end timestamp (e.g. non-integer days), use `subscription_data.trial_end` on the Create Checkout Session request instead.","type":"null","format":"int64","minimum":0,"maximum":4294967295,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.trial_period_days.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0.trial_period_days","typeLabel":"integer\u003cint64> | null"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.0","typeLabel":"object"},{"type":"null","description":"The recurring components of a price such as interval and trial period days.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.recurring","typeLabel":"object | null"},"metadata":{"oneOf":[{"description":"Metadata to attach to the price.","type":"object","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.metadata.oneOf.0","typeLabel":"object"},{"description":"Metadata to attach to the price.","type":"null","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.metadata","typeLabel":"object | null"},"product":{"description":"The ID of the product that this price will belong to.","type":"string","example":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product","typeLabel":"string"},"product_data":{"description":"Data used to generate a new Product object inline.","type":"object","required":["name"],"properties":{"name":{"description":"The product's name, meant to be displayed to the customer.","type":"string","example":"Example","isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.name","typeLabel":"string"},"description":{"oneOf":[{"description":"The product's description, a short blurb meant to be displayed to the customer.","type":"string","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.description.oneOf.0","typeLabel":"string"},{"description":"The product's description, a short blurb meant to be displayed to the customer.","type":"null","example":"Premium SPF 50 mineral sunscreen","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.description","typeLabel":"string | null"},"upc_code":{"oneOf":[{"description":"The product's UPC code. If provided, this will be used to check whether the product is on the eligible product list.","type":"string","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.upc_code.oneOf.0","typeLabel":"string"},{"description":"The product's UPC code. If provided, this will be used to check whether the product is on the eligible product list.","type":"null","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.upc_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.upc_code","typeLabel":"string | null"},"gtin":{"oneOf":[{"description":"The product's GTIN. If provided, this will be used to check whether the product is on the eligible product list.","type":"string","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.gtin.oneOf.0","typeLabel":"string"},{"description":"The product's GTIN. If provided, this will be used to check whether the product is on the eligible product list.","type":"null","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.gtin.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.gtin","typeLabel":"string | null"},"reference_gtin":{"oneOf":[{"description":"If the product is HSA/FSA eligible through private label, this should be provided.","type":"string","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.reference_gtin.oneOf.0","typeLabel":"string"},{"description":"If the product is HSA/FSA eligible through private label, this should be provided.","type":"null","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.reference_gtin.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.reference_gtin","typeLabel":"string | null"},"url":{"oneOf":[{"description":"A URL of a publicly-accessible image of the product.","type":"string","example":"https://example.com","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.url.oneOf.0","typeLabel":"string"},{"description":"A URL of a publicly-accessible image of the product.","type":"null","example":"https://example.com","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.url","typeLabel":"string | null"},"client_reference_id":{"oneOf":[{"description":"An optional identifier for the product set by the client. Immutable after creation.","type":"string","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.client_reference_id.oneOf.0","typeLabel":"string"},{"description":"An optional identifier for the product set by the client. Immutable after creation.","type":"null","example":"example_value","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.client_reference_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.client_reference_id","typeLabel":"string | null"},"metadata":{"oneOf":[{"description":"Set of key-value pairs that you can attach to a product. This can be useful for storing additional information about the product in a structured format.","type":"object","additionalProperties":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata.oneOf.0.additionalProperties","typeLabel":"string"},"example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata.oneOf.0","typeLabel":"object"},{"description":"Set of key-value pairs that you can attach to a product. This can be useful for storing additional information about the product in a structured format.","type":"null","additionalProperties":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata.oneOf.1.additionalProperties","typeLabel":"string"},"example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.metadata","typeLabel":"object | null"},"image_urls":{"oneOf":[{"description":"URLs of publicly-accessible product images for eligibility determination.","type":"array","items":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.image_urls.oneOf.0.items.[INDEX]","typeLabel":"string"},"example":["https://example.com/image.png"],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.image_urls.oneOf.0","typeLabel":"string[]"},{"description":"URLs of publicly-accessible product images for eligibility determination.","type":"null","items":{"type":"string"},"example":["https://example.com/image.png"],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.image_urls.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.image_urls","typeLabel":"string[] | null"},"categories":{"oneOf":[{"description":"Product categories (e.g., \"Vitamins\", \"First Aid\").","type":"array","items":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.categories.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.categories.oneOf.0","typeLabel":"string[]"},{"description":"Product categories (e.g., \"Vitamins\", \"First Aid\").","type":"null","items":{"type":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.categories","typeLabel":"string[] | null"},"components":{"oneOf":[{"description":"Product components or ingredients (e.g., \"Vitamin C\", \"Zinc\").","type":"array","items":{"type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.components.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.components.oneOf.0","typeLabel":"string[]"},{"description":"Product components or ingredients (e.g., \"Vitamin C\", \"Zinc\").","type":"null","items":{"type":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.components.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data.components","typeLabel":"string[] | null"}},"example":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0.product_data","typeLabel":"object"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Data used to generate a new Price object inline. One of price or price_data is required. If both are sent, price wins and price_data is ignored; price_data alone is used as-sent.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].price_data","typeLabel":"object | null"},"shipping_options":{"oneOf":[{"type":"object","description":"Shipping rate options for the line item.","example":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"properties":{"shipping_rate_id":{"oneOf":[{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"string","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_id.oneOf.0","typeLabel":"string"},{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"null","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_id","typeLabel":"string | null"},"shipping_rate_data":{"oneOf":[{"type":"object","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`.","required":["amount","display_name"],"example":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}},"properties":{"display_name":{"description":"The name shown to the customer at checkout (e.g., `Standard Shipping`). Must be at least 2 characters.","type":"string","minLength":2,"example":"Example","isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.display_name","typeLabel":"string"},"amount":{"description":"The shipping cost, in the smallest currency unit (e.g., `500` = $5.00 USD). Charged in USD.","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.amount","typeLabel":"integer\u003cint32>"},"metadata":{"oneOf":[{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"object","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.metadata.oneOf.0","typeLabel":"object"},{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"null","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0.metadata","typeLabel":"object | null"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0.shipping_rate_data","typeLabel":"object | null"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.0","typeLabel":"object"},{"type":"null","description":"Shipping rate options for the line item.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].shipping_options","typeLabel":"object | null"},"tax_rate":{"oneOf":[{"type":"object","description":"Tax rate for a specific line item","required":["amount"],"example":{"amount":2500},"properties":{"amount":{"description":"The tax amount to apply, in the smallest currency unit (e.g., `175` = $1.75 USD).","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].tax_rate.oneOf.0.amount","typeLabel":"integer\u003cint32>"}},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].tax_rate.oneOf.0","typeLabel":"object"},{"type":"null","description":"Tax rate for a specific line item","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].tax_rate.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].tax_rate","typeLabel":"object | null"},"components":{"oneOf":[{"description":"The components of this line item's build, e.g. the ingredients of a bowl. A supplied list is the whole build for this order and is never merged with anything stored on the product. Omit it entirely for a fixed-recipe product, whose build is read from its own `medical_meal_recipe_v1` metadata instead; an explicit empty list is rejected. Each entry names its component by `component_id` or by your own `client_reference_id`, and must resolve to a component you own or a shared one. At most 50 entries per line item.","type":"array","items":{"description":"One component of a line item's build, as sent at checkout.","type":"object","properties":{"quantity":{"description":"How many portions of the component. A standard build is `1.0`, which is also the default when omitted. Must be a positive, finite number.","default":1,"type":"number","format":"double","example":1,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].quantity","typeLabel":"number\u003cdouble>"},"dressing_mode":{"oneOf":[{"type":"string","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","enum":["MIXED","ON_THE_SIDE"],"example":"MIXED","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].dressing_mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].dressing_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].dressing_mode","typeLabel":"enum\u003cstring> | null"},"component_id":{"description":"The component's `fcomp_` identifier, from `/v1/product_components`. The component must be one of yours or one of Flex's shared components. Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","example":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].component_id","typeLabel":"string"},"client_reference_id":{"description":"Your own identifier for the component, as registered on `/v1/product_components` (CON-1550). Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX].client_reference_id","typeLabel":"string"}},"example":{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0.items.[INDEX]","typeLabel":"object"},"maxItems":50,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.0","typeLabel":"object[]"},{"description":"The components of this line item's build, e.g. the ingredients of a bowl. A supplied list is the whole build for this order and is never merged with anything stored on the product. Omit it entirely for a fixed-recipe product, whose build is read from its own `medical_meal_recipe_v1` metadata instead; an explicit empty list is rejected. Each entry names its component by `component_id` or by your own `client_reference_id`, and must resolve to a component you own or a shared one. At most 50 entries per line item.","type":"null","items":{"description":"One component of a line item's build, as sent at checkout.","type":"object","properties":{"quantity":{"description":"How many portions of the component. A standard build is `1.0`, which is also the default when omitted. Must be a positive, finite number.","default":1,"type":"number","format":"double","example":1},"dressing_mode":{"oneOf":[{"type":"string","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","enum":["MIXED","ON_THE_SIDE"],"example":"MIXED"},{"type":"null","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog."}]},"component_id":{"description":"The component's `fcomp_` identifier, from `/v1/product_components`. The component must be one of yours or one of Flex's shared components. Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","example":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"client_reference_id":{"description":"Your own identifier for the component, as registered on `/v1/product_components` (CON-1550). Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string"}},"example":{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}},"maxItems":50,"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX].components","typeLabel":"object[] | null"}},"example":{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]},"uniqueKey":"payment_link.line_items.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"payment_link.line_items.oneOf.0","typeLabel":"object[]"},{"description":"The line items representing what is being sold.","type":"null","items":{"description":"A line item to add to a Checkout Session, referencing an existing Price or supplying inline price data, together with the quantity and any per-item shipping or tax.","type":"object","required":["quantity"],"properties":{"price":{"oneOf":[{"description":"The ID of the Price object. One of price or price_data is required. If both are sent, price wins and price_data is ignored.","type":"string","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},{"description":"The ID of the Price object. One of price or price_data is required. If both are sent, price wins and price_data is ignored.","type":"null","example":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA"}]},"price_data":{"oneOf":[{"type":"object","description":"Data used to generate a new Price object inline. One of price or price_data is required. If both are sent, price wins and price_data is ignored; price_data alone is used as-sent.","required":["unit_amount"],"example":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"properties":{"description":{"oneOf":[{"description":"A brief description of the price.","type":"string","example":"Premium SPF 50 mineral sunscreen"},{"description":"A brief description of the price.","type":"null","example":"Premium SPF 50 mineral sunscreen"}]},"unit_amount":{"description":"A positive integer in cents (or 0 for a free price) representing how much to charge.","type":"integer","format":"int64","minimum":0,"example":2500,"maximum":4294967295},"recurring":{"oneOf":[{"type":"object","description":"The recurring components of a price such as interval and trial period days.","required":["interval"],"example":{"interval":"day","interval_count":0,"trial_period_days":0},"properties":{"interval":{"description":"The billing cadence for the price.","type":"string","enum":["day","week","month","year"],"example":"day"},"interval_count":{"oneOf":[{"description":"The number of intervals","type":"integer","format":"int64","minimum":0,"maximum":4294967295},{"description":"The number of intervals","type":"null","format":"int64","minimum":0,"maximum":4294967295}]},"trial_period_days":{"oneOf":[{"description":"The number of trial period days before the customer is charged for the first time. Whole days only. For a precise trial-end timestamp (e.g. non-integer days), use `subscription_data.trial_end` on the Create Checkout Session request instead.","type":"integer","format":"int64","minimum":0,"maximum":4294967295},{"description":"The number of trial period days before the customer is charged for the first time. Whole days only. For a precise trial-end timestamp (e.g. non-integer days), use `subscription_data.trial_end` on the Create Checkout Session request instead.","type":"null","format":"int64","minimum":0,"maximum":4294967295}]}}},{"type":"null","description":"The recurring components of a price such as interval and trial period days."}]},"metadata":{"oneOf":[{"description":"Metadata to attach to the price.","type":"object","example":{"order_id":"8842","channel":"shopify"}},{"description":"Metadata to attach to the price.","type":"null","example":{"order_id":"8842","channel":"shopify"}}]},"product":{"description":"The ID of the product that this price will belong to.","type":"string","example":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"product_data":{"description":"Data used to generate a new Product object inline.","type":"object","required":["name"],"properties":{"name":{"description":"The product's name, meant to be displayed to the customer.","type":"string","example":"Example"},"description":{"oneOf":[{"description":"The product's description, a short blurb meant to be displayed to the customer.","type":"string","example":"Premium SPF 50 mineral sunscreen"},{"description":"The product's description, a short blurb meant to be displayed to the customer.","type":"null","example":"Premium SPF 50 mineral sunscreen"}]},"upc_code":{"oneOf":[{"description":"The product's UPC code. If provided, this will be used to check whether the product is on the eligible product list.","type":"string","example":"example_value"},{"description":"The product's UPC code. If provided, this will be used to check whether the product is on the eligible product list.","type":"null","example":"example_value"}]},"gtin":{"oneOf":[{"description":"The product's GTIN. If provided, this will be used to check whether the product is on the eligible product list.","type":"string","example":"example_value"},{"description":"The product's GTIN. If provided, this will be used to check whether the product is on the eligible product list.","type":"null","example":"example_value"}]},"reference_gtin":{"oneOf":[{"description":"If the product is HSA/FSA eligible through private label, this should be provided.","type":"string","example":"example_value"},{"description":"If the product is HSA/FSA eligible through private label, this should be provided.","type":"null","example":"example_value"}]},"url":{"oneOf":[{"description":"A URL of a publicly-accessible image of the product.","type":"string","example":"https://example.com"},{"description":"A URL of a publicly-accessible image of the product.","type":"null","example":"https://example.com"}]},"client_reference_id":{"oneOf":[{"description":"An optional identifier for the product set by the client. Immutable after creation.","type":"string","example":"example_value"},{"description":"An optional identifier for the product set by the client. Immutable after creation.","type":"null","example":"example_value"}]},"metadata":{"oneOf":[{"description":"Set of key-value pairs that you can attach to a product. This can be useful for storing additional information about the product in a structured format.","type":"object","additionalProperties":{"type":"string"},"example":{"order_id":"8842","channel":"shopify"}},{"description":"Set of key-value pairs that you can attach to a product. This can be useful for storing additional information about the product in a structured format.","type":"null","additionalProperties":{"type":"string"},"example":{"order_id":"8842","channel":"shopify"}}]},"image_urls":{"oneOf":[{"description":"URLs of publicly-accessible product images for eligibility determination.","type":"array","items":{"type":"string"},"example":["https://example.com/image.png"]},{"description":"URLs of publicly-accessible product images for eligibility determination.","type":"null","items":{"type":"string"},"example":["https://example.com/image.png"]}]},"categories":{"oneOf":[{"description":"Product categories (e.g., \"Vitamins\", \"First Aid\").","type":"array","items":{"type":"string"}},{"description":"Product categories (e.g., \"Vitamins\", \"First Aid\").","type":"null","items":{"type":"string"}}]},"components":{"oneOf":[{"description":"Product components or ingredients (e.g., \"Vitamin C\", \"Zinc\").","type":"array","items":{"type":"string"}},{"description":"Product components or ingredients (e.g., \"Vitamin C\", \"Zinc\").","type":"null","items":{"type":"string"}}]}},"example":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}}}},{"type":"null","description":"Data used to generate a new Price object inline. One of price or price_data is required. If both are sent, price wins and price_data is ignored; price_data alone is used as-sent."}]},"quantity":{"description":"The quantity of the line item being purchased.","type":"integer","format":"int32","minimum":-2147483648,"maximum":2147483647},"shipping_options":{"oneOf":[{"type":"object","description":"Shipping rate options for the line item.","example":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"properties":{"shipping_rate_id":{"oneOf":[{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"string","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},{"description":"ID of an existing shipping rate to apply. Provide this or `shipping_rate_data`.","type":"null","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA"}]},"shipping_rate_data":{"oneOf":[{"type":"object","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`.","required":["amount","display_name"],"example":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}},"properties":{"display_name":{"description":"The name shown to the customer at checkout (e.g., `Standard Shipping`). Must be at least 2 characters.","type":"string","minLength":2,"example":"Example"},"amount":{"description":"The shipping cost, in the smallest currency unit (e.g., `500` = $5.00 USD). Charged in USD.","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647},"metadata":{"oneOf":[{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"object","example":{"order_id":"8842","channel":"shopify"}},{"description":"Set of key-value pairs you can attach to the shipping rate for storing additional structured information.","type":"null","example":{"order_id":"8842","channel":"shopify"}}]}}},{"type":"null","description":"Inline shipping rate parameters used to create a new shipping rate. Provide this or `shipping_rate_id`."}]}}},{"type":"null","description":"Shipping rate options for the line item."}]},"tax_rate":{"oneOf":[{"type":"object","description":"Tax rate for a specific line item","required":["amount"],"example":{"amount":2500},"properties":{"amount":{"description":"The tax amount to apply, in the smallest currency unit (e.g., `175` = $1.75 USD).","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647}}},{"type":"null","description":"Tax rate for a specific line item"}]},"components":{"oneOf":[{"description":"The components of this line item's build, e.g. the ingredients of a bowl. A supplied list is the whole build for this order and is never merged with anything stored on the product. Omit it entirely for a fixed-recipe product, whose build is read from its own `medical_meal_recipe_v1` metadata instead; an explicit empty list is rejected. Each entry names its component by `component_id` or by your own `client_reference_id`, and must resolve to a component you own or a shared one. At most 50 entries per line item.","type":"array","items":{"description":"One component of a line item's build, as sent at checkout.","type":"object","properties":{"quantity":{"description":"How many portions of the component. A standard build is `1.0`, which is also the default when omitted. Must be a positive, finite number.","default":1,"type":"number","format":"double","example":1},"dressing_mode":{"oneOf":[{"type":"string","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","enum":["MIXED","ON_THE_SIDE"],"example":"MIXED"},{"type":"null","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog."}]},"component_id":{"description":"The component's `fcomp_` identifier, from `/v1/product_components`. The component must be one of yours or one of Flex's shared components. Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","example":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"client_reference_id":{"description":"Your own identifier for the component, as registered on `/v1/product_components` (CON-1550). Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string"}},"example":{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}},"maxItems":50},{"description":"The components of this line item's build, e.g. the ingredients of a bowl. A supplied list is the whole build for this order and is never merged with anything stored on the product. Omit it entirely for a fixed-recipe product, whose build is read from its own `medical_meal_recipe_v1` metadata instead; an explicit empty list is rejected. Each entry names its component by `component_id` or by your own `client_reference_id`, and must resolve to a component you own or a shared one. At most 50 entries per line item.","type":"null","items":{"description":"One component of a line item's build, as sent at checkout.","type":"object","properties":{"quantity":{"description":"How many portions of the component. A standard build is `1.0`, which is also the default when omitted. Must be a positive, finite number.","default":1,"type":"number","format":"double","example":1},"dressing_mode":{"oneOf":[{"type":"string","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog.","enum":["MIXED","ON_THE_SIDE"],"example":"MIXED"},{"type":"null","description":"How the dressing was ordered: mixed into the bowl or served on the side. Only meaningful for dressing components; ignored otherwise. A mixed-in dressing counts toward eligibility gating, an on-the-side one does not, and an omitted mode is treated as mixed in (the conservative direction). Taken as sent — not cross-checked against the catalog."}]},"component_id":{"description":"The component's `fcomp_` identifier, from `/v1/product_components`. The component must be one of yours or one of Flex's shared components. Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string","example":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"client_reference_id":{"description":"Your own identifier for the component, as registered on `/v1/product_components` (CON-1550). Each entry names at least one of `component_id` or `client_reference_id`; if both are sent, `component_id` wins and the reference is ignored.","type":"string"}},"example":{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}},"maxItems":50}]}},"example":{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}},"uniqueKey":"payment_link.line_items.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.line_items","typeLabel":"object[] | null"},"shipping_options":{"oneOf":[{"type":"object","description":"The shipping rate options applied to the session.","required":["shipping_amount","shipping_rate_id"],"example":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_amount":2500,"display_name":"Example"},"properties":{"shipping_rate_id":{"description":"ID of the applied shipping rate.","type":"string","example":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","isRequired":true,"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_rate_id","typeLabel":"string"},"shipping_amount":{"description":"The shipping cost, in the smallest currency unit (e.g., `500` = $5.00 USD). Charged in USD.","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.shipping_options.oneOf.0.shipping_amount","typeLabel":"integer\u003cint32>"},"display_name":{"oneOf":[{"description":"The display name of the shipping rate (e.g., \"Standard Shipping\", \"Express\").","type":"string","example":"Example","uniqueKey":"payment_link.shipping_options.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"description":"The display name of the shipping rate (e.g., \"Standard Shipping\", \"Express\").","type":"null","example":"Example","uniqueKey":"payment_link.shipping_options.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.shipping_options.oneOf.0.display_name","typeLabel":"string | null"}},"uniqueKey":"payment_link.shipping_options.oneOf.0","typeLabel":"object"},{"type":"null","description":"The shipping rate options applied to the session.","uniqueKey":"payment_link.shipping_options.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.shipping_options","typeLabel":"object | null"},"metadata":{"oneOf":[{"description":"Metadata to attach to the payment session","type":"object","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.metadata.oneOf.0","typeLabel":"object"},{"description":"Metadata to attach to the payment session","type":"null","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.metadata","typeLabel":"object | null"},"payment_intent_data":{"oneOf":[{"type":"object","description":"Indicates the parameters to be passed to PaymentIntent creation during checkout.","required":["capture_method"],"example":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"properties":{"capture_method":{"description":"How the PaymentIntent is captured: `automatic` captures the funds immediately after the customer authorizes the payment, `automatic_async` captures asynchronously, and `manual` authorizes the payment and requires a separate capture. Required when `payment_intent_data` is supplied; `automatic` is used when `payment_intent_data` is omitted entirely.","type":"string","enum":["automatic","automatic_async","manual"],"example":"automatic","isRequired":true,"uniqueKey":"payment_link.payment_intent_data.oneOf.0.capture_method","typeLabel":"enum\u003cstring>"},"metadata":{"oneOf":[{"description":"Set of key-value pairs attached to the PaymentIntent created during checkout, for storing additional structured information.","type":"object","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.payment_intent_data.oneOf.0.metadata.oneOf.0","typeLabel":"object"},{"description":"Set of key-value pairs attached to the PaymentIntent created during checkout, for storing additional structured information.","type":"null","example":{"order_id":"8842","channel":"shopify"},"uniqueKey":"payment_link.payment_intent_data.oneOf.0.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.payment_intent_data.oneOf.0.metadata","typeLabel":"object | null"}},"uniqueKey":"payment_link.payment_intent_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Indicates the parameters to be passed to PaymentIntent creation during checkout.","uniqueKey":"payment_link.payment_intent_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.payment_intent_data","typeLabel":"object | null"},"origin":{"oneOf":[{"type":"string","description":"Origin of the payment link","enum":["shopify","shopline","prepurchase","postpurchase","renewal"],"example":"shopify","uniqueKey":"payment_link.origin.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Origin of the payment link","uniqueKey":"payment_link.origin.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.origin","typeLabel":"enum\u003cstring> | null"},"tax_rate":{"oneOf":[{"type":"object","description":"Session-level flat tax amount in cents (e.g., 500 = $5.00)","required":["amount"],"example":{"amount":2500},"properties":{"amount":{"description":"The tax amount to apply, in the smallest currency unit (e.g., `175` = $1.75 USD).","type":"integer","format":"int32","example":2500,"minimum":-2147483648,"maximum":2147483647,"isRequired":true,"uniqueKey":"payment_link.tax_rate.oneOf.0.amount","typeLabel":"integer\u003cint32>"}},"uniqueKey":"payment_link.tax_rate.oneOf.0","typeLabel":"object"},{"type":"null","description":"Session-level flat tax amount in cents (e.g., 500 = $5.00)","uniqueKey":"payment_link.tax_rate.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.tax_rate","typeLabel":"object | null"},"discounts":{"oneOf":[{"description":"Pre-stored coupon IDs to apply as discounts when generating checkout sessions","type":"array","items":{"type":"string","example":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA","uniqueKey":"payment_link.discounts.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"payment_link.discounts.oneOf.0","typeLabel":"string[]"},{"description":"Pre-stored coupon IDs to apply as discounts when generating checkout sessions","type":"null","items":{"type":"string","example":"fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"},"uniqueKey":"payment_link.discounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment_link.discounts","typeLabel":"string[] | null"}},"example":{"payment_link_id":"fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA","label":"Example","active":false,"line_items":[{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}],"allow_promotion_codes":false,"shipping_address_collection":false,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_amount":2500,"display_name":"Example"},"metadata":{"order_id":"8842","channel":"shopify"},"url":"https://example.com","created_at":"2026-06-15T14:30:00Z","payment_intent_data":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"after_completion":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"origin":"shopify","tax_rate":{"amount":2500},"discounts":["fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"],"setup_future_use":"on_session","test_mode":false},"isRequired":true,"uniqueKey":"payment_link","typeLabel":"object"}},"example":{"payment_link":{"payment_link_id":"fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA","label":"Example","active":false,"line_items":[{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}],"allow_promotion_codes":false,"shipping_address_collection":false,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_amount":2500,"display_name":"Example"},"metadata":{"order_id":"8842","channel":"shopify"},"url":"https://example.com","created_at":"2026-06-15T14:30:00Z","payment_intent_data":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"after_completion":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"origin":"shopify","tax_rate":{"amount":2500},"discounts":["fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"],"setup_future_use":"on_session","test_mode":false}},"uniqueKey":"","typeLabel":"object"},"example":{"payment_link":{"payment_link_id":"fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA","label":"Example","active":false,"line_items":[{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}],"allow_promotion_codes":false,"shipping_address_collection":false,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_amount":2500,"display_name":"Example"},"metadata":{"order_id":"8842","channel":"shopify"},"url":"https://example.com","created_at":"2026-06-15T14:30:00Z","payment_intent_data":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"after_completion":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"origin":"shopify","tax_rate":{"amount":2500},"discounts":["fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"],"setup_future_use":"on_session","test_mode":false}},"examples":{"Example":{"title":"Example","value":{"payment_link":{"payment_link_id":"fplink_01J9XR8M3K7VZ8N2YB4WJ6T0RA","label":"Example","active":false,"line_items":[{"price":"fprice_01J9XR8M3K7VZ8N2YB4WJ6T0RA","price_data":{"description":"Premium SPF 50 mineral sunscreen","unit_amount":2500,"recurring":{"interval":"day","interval_count":0,"trial_period_days":0},"metadata":{"order_id":"8842","channel":"shopify"},"product":"fprod_01J9XR8M3K7VZ8N2YB4WJ6T0RA","product_data":{"name":"Example","description":"Premium SPF 50 mineral sunscreen","upc_code":"example_value","gtin":"example_value","reference_gtin":"example_value","url":"https://example.com","client_reference_id":"example_value","metadata":{"order_id":"8842","channel":"shopify"},"image_urls":["https://example.com/image.png"],"categories":["string"],"components":["string"]}},"quantity":0,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_rate_data":{"display_name":"Example","amount":2500,"metadata":{"order_id":"8842","channel":"shopify"}}},"tax_rate":{"amount":2500},"components":[{"quantity":1,"dressing_mode":"MIXED","component_id":"fcomp_01J9XR8M3K7VZ8N2YB4WJ6T0RA","client_reference_id":"string"}]}],"allow_promotion_codes":false,"shipping_address_collection":false,"shipping_options":{"shipping_rate_id":"fshr_01J9XR8M3K7VZ8N2YB4WJ6T0RA","shipping_amount":2500,"display_name":"Example"},"metadata":{"order_id":"8842","channel":"shopify"},"url":"https://example.com","created_at":"2026-06-15T14:30:00Z","payment_intent_data":{"capture_method":"automatic","metadata":{"order_id":"8842","channel":"shopify"}},"after_completion":{"type":"redirect","hosted_confirmation":{"custom_message":"Premium SPF 50 mineral sunscreen"},"redirect":{"url":"https://example.com"}},"origin":"shopify","tax_rate":{"amount":2500},"discounts":["fcoup_01J9XR8M3K7VZ8N2YB4WJ6T0RA"],"setup_future_use":"on_session","test_mode":false}}}},"exampleType":"examples"}},"exampleType":"examples"},"18adf288-6fb5-425a-8fa1-83dd0942515b":{"description":"Unauthorized","content":{"application/json":{"schema":{"title":"HttpError","description":"The error response returned when a request cannot be completed.","type":"object","required":["code","detail"],"properties":{"code":{"description":"A short machine-readable error code identifying the type of error.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"description":"A human-readable explanation of what went wrong.","type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"example":{"code":"string","detail":"string"},"uniqueKey":"","typeLabel":"HttpError · object"},"example":{"code":"string","detail":"string"},"examples":{"Example":{"title":"Example","value":{"code":"string","detail":"string"}}},"exampleType":"examples"}},"exampleType":"examples"},"0cabcf40-0df4-4ff6-b585-7d351594386e":{"description":"Forbidden","content":{"application/json":{"schema":{"title":"HttpError","description":"The error response returned when a request cannot be completed.","type":"object","required":["code","detail"],"properties":{"code":{"description":"A short machine-readable error code identifying the type of error.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"description":"A human-readable explanation of what went wrong.","type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"example":{"code":"string","detail":"string"},"uniqueKey":"","typeLabel":"HttpError · object"},"example":{"code":"string","detail":"string"},"examples":{"Example":{"title":"Example","value":{"code":"string","detail":"string"}}},"exampleType":"examples"}},"exampleType":"examples"},"f34a56b0-d91f-4d6d-8bb0-671593cc285a":{"description":"Not Found","content":{"application/json":{"schema":{"title":"HttpError","description":"The error response returned when a request cannot be completed.","type":"object","required":["code","detail"],"properties":{"code":{"description":"A short machine-readable error code identifying the type of error.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"description":"A human-readable explanation of what went wrong.","type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"example":{"code":"string","detail":"string"},"uniqueKey":"","typeLabel":"HttpError · object"},"example":{"code":"string","detail":"string"},"examples":{"Example":{"title":"Example","value":{"code":"string","detail":"string"}}},"exampleType":"examples"}},"exampleType":"examples"},"c79f773e-397d-411d-80e4-b0725ffc7a48":{"description":"Conflict","content":{"application/json":{"schema":{"title":"HttpError","description":"The error response returned when a request cannot be completed.","type":"object","required":["code","detail"],"properties":{"code":{"description":"A short machine-readable error code identifying the type of error.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"description":"A human-readable explanation of what went wrong.","type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"example":{"code":"string","detail":"string"},"uniqueKey":"","typeLabel":"HttpError · object"},"example":{"code":"string","detail":"string"},"examples":{"Example":{"title":"Example","value":{"code":"string","detail":"string"}}},"exampleType":"examples"}},"exampleType":"examples"},"2f703d64-0cba-44ce-afab-552e4f6f98a3":{"description":"Validation Error","content":{"application/json":{"schema":{"description":"The error response returned when request validation fails (HTTP 422).","type":"object","required":["detail"],"properties":{"detail":{"description":"The list of validation errors, one entry per invalid field.","type":"array","items":{"description":"Validation errors have their own schema to provide context for invalid requests eg. mismatched types and out of bounds values. There may be any number of these per 422 UNPROCESSABLE ENTITY error.","type":"object","required":["loc","msg","type"],"properties":{"loc":{"description":"The location as a [`Vec`] of [`String`]s -- often in the form `[\"body\", \"field_name\"]`, `[\"query\", \"field_name\"]`, etc. They may, however, be arbitarily deep.","type":"array","items":{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"string[]"},"msg":{"description":"The message accompanying the validation error item.","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"description":"The type of error, often \"type_error\" or \"value_error\", but sometimes with more context like as \"value_error.number.not_ge\"","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"}},"example":{"loc":["string"],"msg":"string","type":"string"},"uniqueKey":"detail.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"detail","typeLabel":"object[]"}},"example":{"detail":[{"loc":["string"],"msg":"string","type":"string"}]},"uniqueKey":"","typeLabel":"object"},"example":{"detail":[{"loc":["string"],"msg":"string","type":"string"}]},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["string"],"msg":"string","type":"string"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"f19d1edd-3998-4ce3-aa99-a53b4d4eb77e":{"description":"Too Many Requests","content":{"application/json":{"schema":{"title":"HttpError","description":"The error response returned when a request cannot be completed.","type":"object","required":["code","detail"],"properties":{"code":{"description":"A short machine-readable error code identifying the type of error.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"description":"A human-readable explanation of what went wrong.","type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"example":{"code":"string","detail":"string"},"uniqueKey":"","typeLabel":"HttpError · object"},"example":{"code":"string","detail":"string"},"examples":{"Example":{"title":"Example","value":{"code":"string","detail":"string"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"26834da7-2a24-4de5-b97c-6bf0af826119":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Use a Bearer token to access this API.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"080577c1-39a5-4498-bb49-d7daab803f21":{"url":"https://api.withflex.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Use a Bearer token to access this API.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Use a Bearer token to access this API.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"flex-87","siteName":"Flex Documentation","title":"Create Payment Link - Flex Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T22:54:20.565Z","originalFileLocation":"api-reference/payment-links/create-payment-link.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a payment link: a shareable URL that generates a checkout session each time a customer opens it. The mode is determined by line_items — it becomes subscription if any price is recurring, otherwise payment; pass mode=setup to save a payment method without a charge (setup mode requires a label and empty line_items). Creating a link may create supporting objects as a side effect: inline price_data provisions a Product and Price (in Stripe and Flex), inline shipping rate data creates a Shipping Rate, and inline coupon_data discounts create Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline coupon data.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Flex Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/flex-87/uZDAr5goax7LGN2W/_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/flex-87/uZDAr5goax7LGN2W/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/flex-87/uZDAr5goax7LGN2W/_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/flex-87/uZDAr5goax7LGN2W/_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/flex-87/uZDAr5goax7LGN2W/_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/flex-87/uZDAr5goax7LGN2W/_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/flex-87/uZDAr5goax7LGN2W/_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/flex-87/uZDAr5goax7LGN2W/_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/flex-87/uZDAr5goax7LGN2W/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Payment Link - Flex Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a payment link: a shareable URL that generates a checkout session each time a customer opens it. The mode is determined by line_items — it becomes subscription if any price is recurring, otherwise payment; pass mode=setup to save a payment method without a charge (setup mode requires a label and empty line_items). Creating a link may create supporting objects as a side effect: inline price_data provisions a Product and Price (in Stripe and Flex), inline shipping rate data creates a Shipping Rate, and inline coupon_data discounts create Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline coupon data.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Flex Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.withflex.com/api-reference/payment-links/create-payment-link\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://flex-87.mintlify.app/_mintlify/api/og/v2?division=Payment+Links\u0026amp;title=Create+Payment+Link\u0026amp;description=Creates+a+payment+link%3A+a+shareable+URL+that+generates+a+checkout+session+each+time+a+customer%0Aopens+it.+The+mode+is+determined+by+%60line_items%60+%E2%80%94+it+becomes+%60su\u0026amp;theme=166c4e73f0167deeef40f76e\u0026amp;signature=d61e49aab4a959ee6b53621ada698a5cd3b424dd6b3442dcc7c1fc7f7c3a18b0\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create Payment Link - Flex Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a payment link: a shareable URL that generates a checkout session each time a customer opens it. The mode is determined by line_items — it becomes subscription if any price is recurring, otherwise payment; pass mode=setup to save a payment method without a charge (setup mode requires a label and empty line_items). Creating a link may create supporting objects as a side effect: inline price_data provisions a Product and Price (in Stripe and Flex), inline shipping rate data creates a Shipping Rate, and inline coupon_data discounts create Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline coupon data.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://flex-87.mintlify.app/_mintlify/api/og/v2?division=Payment+Links\u0026amp;title=Create+Payment+Link\u0026amp;description=Creates+a+payment+link%3A+a+shareable+URL+that+generates+a+checkout+session+each+time+a+customer%0Aopens+it.+The+mode+is+determined+by+%60line_items%60+%E2%80%94+it+becomes+%60su\u0026amp;theme=166c4e73f0167deeef40f76e\u0026amp;signature=d61e49aab4a959ee6b53621ada698a5cd3b424dd6b3442dcc7c1fc7f7c3a18b0\">\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/flex-87/uZDAr5goax7LGN2W/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Flex Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0070FA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.withflex.com/api-reference/payment-links/create-payment-link\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/payment-links/create-payment-link.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.withflex.com/#organization\",\"name\":\"Flex Documentation\",\"url\":\"https://docs.withflex.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/flex-87/1kILreF5HcjIKLdi/logo/light.svg?fit=max\u0026auto=format\u0026n=1kILreF5HcjIKLdi\u0026q=85\u0026s=f703a75bc80df014f4849a7225b4879f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.withflex.com#website\",\"name\":\"Flex Documentation\",\"url\":\"https://docs.withflex.com\",\"publisher\":{\"@id\":\"https://docs.withflex.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.withflex.com/api-reference/payment-links/create-payment-link#webpage\",\"url\":\"https://docs.withflex.com/api-reference/payment-links/create-payment-link\",\"name\":\"Create Payment Link\",\"description\":\"Creates a payment link: a shareable URL that generates a checkout session each time a customer opens it. The mode is determined by line_items — it becomes subscription if any price is recurring, otherwise payment; pass mode=setup to save a payment method without a charge (setup mode requires a label and empty line_items). Creating a link may create supporting objects as a side effect: inline price_data provisions a Product and Price (in Stripe and Flex), inline shipping rate data creates a Shipping Rate, and inline coupon_data discounts create Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline coupon data.\",\"dateModified\":\"2026-10-28T22:54:20.565Z\",\"isPartOf\":{\"@id\":\"https://docs.withflex.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.withflex.com/api-reference/payment-links/create-payment-link#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.withflex.com/api-reference/payment-links/create-payment-link#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.withflex.com/api-reference/shipping-rates/list-shipping-rates\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Payment Links\",\"item\":\"https://docs.withflex.com/api-reference/payment-links/list-payment-links\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create Payment Link\",\"item\":\"https://docs.withflex.com/api-reference/payment-links/create-payment-link\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.withflex.com/api-reference/payment-links/create-payment-link#apireference\",\"headline\":\"Create Payment Link\",\"name\":\"Create Payment Link\",\"description\":\"Creates a payment link: a shareable URL that generates a checkout session each time a customer opens it. The mode is determined by line_items — it becomes subscription if any price is recurring, otherwise payment; pass mode=setup to save a payment method without a charge (setup mode requires a label and empty line_items). Creating a link may create supporting objects as a side effect: inline price_data provisions a Product and Price (in Stripe and Flex), inline shipping rate data creates a Shipping Rate, and inline coupon_data discounts create Coupons. Promotion codes are not accepted as discounts here — use coupon IDs or inline coupon data.\",\"url\":\"https://docs.withflex.com/api-reference/payment-links/create-payment-link\",\"mainEntityOfPage\":{\"@id\":\"https://docs.withflex.com/api-reference/payment-links/create-payment-link#webpage\"},\"dateModified\":\"2026-10-28T22:54:20.565Z\",\"publisher\":{\"@id\":\"https://docs.withflex.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.withflex.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Flex Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Flex Documentation","nav":{"global":{"anchors":[{"anchor":"Status","icon":"wifi","href":"https://statuspage.incident.io/with-flex"},{"anchor":"Support","icon":"mail","href":"mailto:support@withflex.com"},{"anchor":"Website","icon":"laptop","href":"https://www.withflex.com"}]},"tabs":[{"tab":"Welcome","pages":[{"title":"Welcome","href":""}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/developer-guides/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Overview","pages":[{"title":"Introduction to the Flex API","sidebarTitle":"Introduction","href":"/api-reference/introduction"},{"title":"Expanding Resources","sidebarTitle":"Expanding Resources","href":"/api-reference/expanding-resources"}]},{"group":"API Reference","pages":[{"group":"Shipping Rates","pages":[{"title":"List Shipping Rates","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/shipping_rates","href":"/api-reference/shipping-rates/list-shipping-rates"},{"title":"Create Shipping Rate","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/shipping_rates","href":"/api-reference/shipping-rates/create-shipping-rate"},{"title":"Get Shipping Rate","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/shipping_rates/{id}","href":"/api-reference/shipping-rates/get-shipping-rate"},{"title":"Update Shipping Rate","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/shipping_rates/{id}","href":"/api-reference/shipping-rates/update-shipping-rate"}]},{"group":"Disputes","pages":[{"title":"List Disputes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/disputes","href":"/api-reference/disputes/list-disputes"},{"title":"Count Disputes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/disputes/count","href":"/api-reference/disputes/count-disputes"},{"title":"Get Dispute","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/disputes/{dispute_id}","href":"/api-reference/disputes/get-dispute"},{"title":"Update Dispute","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/disputes/{dispute_id}","href":"/api-reference/disputes/update-dispute"},{"title":"Close Dispute","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/disputes/{dispute_id}/close","href":"/api-reference/disputes/close-dispute"}]},{"group":"Events","pages":[{"title":"Retry Event","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/events/{id}/retry","href":"/api-reference/events/retry-event"}]},{"group":"Checkout Sessions","pages":[{"title":"List Checkout Sessions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/checkout/sessions","href":"/api-reference/checkout-sessions/list-checkout-sessions"},{"title":"Create Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions","href":"/api-reference/checkout-sessions/create-checkout-session"},{"title":"Get Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/checkout/sessions/{id}","href":"/api-reference/checkout-sessions/get-checkout-session"},{"title":"Get Line Items","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/checkout/sessions/{id}/line_items","href":"/api-reference/checkout-sessions/get-line-items"},{"title":"Confirm Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions/{id}/confirm","href":"/api-reference/checkout-sessions/confirm-checkout-session"},{"title":"Capture Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions/{id}/capture","href":"/api-reference/checkout-sessions/capture-checkout-session"},{"title":"Preview Capture Allocation","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions/{id}/capture_allocation","href":"/api-reference/checkout-sessions/preview-capture-allocation"},{"title":"Reauth Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions/{id}/reauth","href":"/api-reference/checkout-sessions/reauth-checkout-session"},{"title":"Refund Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions/{id}/refund","href":"/api-reference/checkout-sessions/refund-checkout-session"},{"title":"Preview Refund Allocation","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions/{id}/refund_allocation","href":"/api-reference/checkout-sessions/preview-refund-allocation"},{"title":"Cancel Auth Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions/{id}/cancel","href":"/api-reference/checkout-sessions/cancel-auth-checkout-session"},{"title":"Resend Checkout Session Receipts","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions/{id}/receipts/resend","href":"/api-reference/checkout-sessions/resend-checkout-session-receipts"},{"title":"Resend Checkout Session Lomn","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/sessions/{id}/lomn/resend","href":"/api-reference/checkout-sessions/resend-checkout-session-lomn"}]},{"group":"Coupons","pages":[{"title":"List Coupons","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/coupons","href":"/api-reference/coupons/list-coupons"},{"title":"Create Coupon","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/coupons","href":"/api-reference/coupons/create-coupon"},{"title":"Get Coupon","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/coupons/{id}","href":"/api-reference/coupons/get-coupon"}]},{"group":"Customers","pages":[{"title":"List customers","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers","href":"/api-reference/customers/list-customers"},{"title":"Create or update a customer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers","href":"/api-reference/customers/create-or-update-a-customer"},{"title":"Retrieve a customer","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/{id}","href":"/api-reference/customers/retrieve-a-customer"},{"title":"Delete a customer","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/customers/{id}","href":"/api-reference/customers/delete-a-customer"},{"title":"Update a customer","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/customers/{id}","href":"/api-reference/customers/update-a-customer"},{"title":"List a customer's payment methods","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/{id}/payment_methods","href":"/api-reference/customers/list-a-customers-payment-methods"},{"title":"Retrieve a customer's payment method","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/{id}/payment_methods/{pm_id}","href":"/api-reference/customers/retrieve-a-customers-payment-method"}]},{"group":"Exports","pages":[{"title":"List Exports","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/exports","href":"/api-reference/exports/list-exports"},{"title":"Create Export","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/exports","href":"/api-reference/exports/create-export"},{"title":"Get Export","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/exports/{id}","href":"/api-reference/exports/get-export"},{"title":"Cancel Export","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/exports/{id}/cancel","href":"/api-reference/exports/cancel-export"},{"title":"Create Export Url","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/exports/{id}/presigned_url","href":"/api-reference/exports/create-export-url"}]},{"group":"Invoices","pages":[{"title":"List Invoices","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/invoices","href":"/api-reference/invoices/list-invoices"},{"title":"Get Invoice","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/invoices/{id}","href":"/api-reference/invoices/get-invoice"},{"title":"Mark Invoice Uncollectible","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/invoices/{id}/mark_uncollectible","href":"/api-reference/invoices/mark-invoice-uncollectible"}]},{"group":"Products","pages":[{"title":"List Product Components","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/product_components","href":"/api-reference/products/list-product-components"},{"title":"Create Product Component","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/product_components","href":"/api-reference/products/create-product-component"},{"title":"Get Product Component","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/product_components/{id}","href":"/api-reference/products/get-product-component"},{"title":"Update Product Component","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/product_components/{id}","href":"/api-reference/products/update-product-component"},{"title":"List Products","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products","href":"/api-reference/products/list-products"},{"title":"Create Product","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/products","href":"/api-reference/products/create-product"},{"title":"Processing Status","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products/processing_status","href":"/api-reference/products/processing-status"},{"title":"Get Product","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products/{id}","href":"/api-reference/products/get-product"},{"title":"Update Product","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/products/{id}","href":"/api-reference/products/update-product"}]},{"group":"Payment Intents","pages":[{"title":"List Payment Intents","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment_intents","href":"/api-reference/payment-intents/list-payment-intents"},{"title":"Get Payment Intent","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment_intents/{id}","href":"/api-reference/payment-intents/get-payment-intent"},{"title":"Send Receipt","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment_intents/{id}/receipt","href":"/api-reference/payment-intents/send-receipt"},{"title":"Cancel Payment Intent","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment_intents/{id}/cancel","href":"/api-reference/payment-intents/cancel-payment-intent"}]},{"group":"Payment Links","pages":[{"title":"List Payment Links","description":"Returns a list of your payment links. Only active links are returned; archived (inactive)\nlinks are omitted. Results are ordered by ID descending. Supports cursor pagination via\n`starting_after`/`ending_before`; `offset` is deprecated. Line items and discounts are not\nexpanded here — retrieve a single link to load them.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment_links","href":"/api-reference/payment-links/list-payment-links"},{"title":"Create Payment Link","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment_links","href":"/api-reference/payment-links/create-payment-link"},{"title":"Get Payment Link","description":"Retrieves the details of an existing payment link, including its line items and applied\ndiscounts. If the link has no label yet, one is generated from its first line item's product\nand persisted before the link is returned.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment_links/{id}","href":"/api-reference/payment-links/get-payment-link"},{"title":"Update Payment Link","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/payment_links/{id}","href":"/api-reference/payment-links/update-payment-link"}]},{"group":"Payouts","pages":[{"title":"List Payouts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payouts","href":"/api-reference/payouts/list-payouts"}]},{"group":"Prices","pages":[{"title":"List Prices","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/prices","href":"/api-reference/prices/list-prices"},{"title":"Create Price","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/prices","href":"/api-reference/prices/create-price"},{"title":"Get Price","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/prices/{id}","href":"/api-reference/prices/get-price"},{"title":"Update Price","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/prices/{id}","href":"/api-reference/prices/update-price"}]},{"group":"Promo Codes","pages":[{"title":"List Promo Codes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/promo_codes","href":"/api-reference/promo-codes/list-promo-codes"},{"title":"Create Promo Code","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/promo_codes","href":"/api-reference/promo-codes/create-promo-code"},{"title":"Get Promo Code","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/promo_codes/{id}","href":"/api-reference/promo-codes/get-promo-code"},{"title":"Update Promo Code","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/promo_codes/{id}","href":"/api-reference/promo-codes/update-promo-code"}]},{"group":"Refunds","pages":[{"title":"List Refunds","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/refunds","href":"/api-reference/refunds/list-refunds"},{"title":"Create Refund","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/refunds","href":"/api-reference/refunds/create-refund"},{"title":"Get Refund","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/refunds/{refund_id}","href":"/api-reference/refunds/get-refund"},{"title":"Update Refund","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/refunds/{refund_id}","href":"/api-reference/refunds/update-refund"}]},{"group":"Reviews","pages":[{"title":"List Reviews","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reviews","href":"/api-reference/reviews/list-reviews"},{"title":"Get Review","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reviews/{review_id}","href":"/api-reference/reviews/get-review"}]},{"group":"Subscriptions","pages":[{"title":"List Subscriptions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/subscriptions","href":"/api-reference/subscriptions/list-subscriptions"},{"title":"Get Subscription","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/subscriptions/{id}","href":"/api-reference/subscriptions/get-subscription"},{"title":"Cancel Subscription","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/subscriptions/{id}","href":"/api-reference/subscriptions/cancel-subscription"},{"title":"Update Subscription","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/subscriptions/{id}","href":"/api-reference/subscriptions/update-subscription"},{"title":"Resend Subscription Receipts","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/subscriptions/{id}/receipts/resend","href":"/api-reference/subscriptions/resend-subscription-receipts"},{"title":"Get Refund Preview","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/subscriptions/{id}/refund_preview","href":"/api-reference/subscriptions/get-refund-preview"},{"title":"Pause Subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/subscriptions/{id}/pause","href":"/api-reference/subscriptions/pause-subscription"},{"title":"Update Pause","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/subscriptions/{id}/pause","href":"/api-reference/subscriptions/update-pause"},{"title":"Resume Subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/subscriptions/{id}/resume","href":"/api-reference/subscriptions/resume-subscription"},{"title":"Stop a failed resume and keep the subscription paused","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/subscriptions/{id}/resume/cancel","href":"/api-reference/subscriptions/stop-a-failed-resume-and-keep-the-subscription-paused"}]},{"group":"Balance Transactions","pages":[{"title":"List Balance Transactions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/balance_transactions","href":"/api-reference/balance-transactions/list-balance-transactions"}]},{"group":"Setup Intents","pages":[{"title":"List Setup Intents","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/setup_intents","href":"/api-reference/setup-intents/list-setup-intents"},{"title":"Create Setup Intent","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/setup_intents","href":"/api-reference/setup-intents/create-setup-intent"},{"title":"Get Setup Intent","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/setup_intents/{id}","href":"/api-reference/setup-intents/get-setup-intent"}]},{"group":"Captures","pages":[{"title":"List captures","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/captures","href":"/api-reference/captures/list-captures"},{"title":"Retrieve a capture","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/captures/{capture_id}","href":"/api-reference/captures/retrieve-a-capture"},{"title":"Update a capture","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/captures/{capture_id}","href":"/api-reference/captures/update-a-capture"}]},{"group":"Files","pages":[{"title":"List Files","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/files","href":"/api-reference/files/list-files"},{"title":"Create File","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/files","href":"/api-reference/files/create-file"},{"title":"Retrieve File","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/files/{id}","href":"/api-reference/files/retrieve-file"}]}]}]},{"tab":"Compliance","pages":[{"title":"Compliance","href":"/compliance/introduction"}]},{"tab":"Marketing","pages":[{"title":"Marketing","href":"/merchant-success/introduction"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Create Payment Link - Flex Documentation","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}