Mint a signed hosted-checkout token (cs_…). The returned url is the page you
send the payer to · the only place a card is ever collected.
mode=payment · one-time charge of price × quantity.
mode=subscription · opens a subscription and bills its first cycle. Needs a
billingMode: subscription product
(CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT), and is the only way to sell
one · a recurring product in mode=payment or in a lineItems basket is refused
(PRODUCT_REQUIRES_SUBSCRIPTION), since it would be charged once and never renew.
Renewals are driven by Suby. quantity sets the seats; to add seats later use
change-plan.
mode=setup · stores a card without charging, for later off-session debits
(POST /v3/payments/off-session). No Payment is created. Requires a pay_as_you_goproductId, which names what the payer authorises without pricing the page. A
priced product here is refused (CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT), a
per-use one on any other mode too (PRODUCT_PRICED_PER_USE).
Optional key (≤255 chars, e.g. a UUID v4) making this POST safe to retry · the response is cached 24h and a retry with the SAME key replays it instead of re-executing. The same key with a different body → 422 IDEMPOTENCY_KEY_CONFLICT; a retry while the first is in flight → 409.
Maximum string length: 255
Example:
"5f3b9c2e-1a4d-4f2b-9c31-7e2a1b6d8c04"
Body
application/json
mode=payment takes exactly ONE pricing intent · productId, lineItems (no recurring product in a basket) or priceCents + currency. mode=subscription takes productId alone. mode=setup takes none and rejects lineItems, priceCents, currency, discountCode and taxBehavior · its productId names, it does not price.
MoR VAT · exclusive adds VAT on top, inclusive extracts it. Signed into the session. Defaults to the product's; with lineItems or a bare priceCents, to exclusive · a basket consults none of its lines, so a bundle of TTC prices must say inclusive. Inert on crypto.
Pre-apply a promo code. Validated here and again at pay · an unknown, deactivated, expired, exhausted, wrong-currency or non-applicable code is rejected 422 DISCOUNT_CODE_* rather than signed into the session and silently dropped at payment time.
Key-value pairs. ≤50 keys, keys ≤40 chars, values are
strings ≤500 chars (or null to clear). Nested structures must be
JSON-stringified into a single string value.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Suby.fi","colors":{"primary":"#2F5BFF","light":"#6E8CFF","dark":"#1E3ECC"},"logo":{"light":"https://mintcdn.com/suby/78hmNhVo7Bl_AwU_/logo/dark.png?fit=max\u0026auto=format\u0026n=78hmNhVo7Bl_AwU_\u0026q=85\u0026s=5a8b457489b514aac7397c50d3db89fd","dark":"https://mintcdn.com/suby/78hmNhVo7Bl_AwU_/logo/white.png?fit=max\u0026auto=format\u0026n=78hmNhVo7Bl_AwU_\u0026q=85\u0026s=24b2f25a962d5405a87e21b992972103","href":"https://suby.fi"},"favicon":"https://mintcdn.com/suby/78hmNhVo7Bl_AwU_/logo/icon.png?fit=max\u0026auto=format\u0026n=78hmNhVo7Bl_AwU_\u0026q=85\u0026s=ca6a8614c28bf9d93ddfdea94f947bf2","navbar":{"links":[{"href":"https://app.suby.fi","label":"Dashboard v2"}],"primary":{"type":"button","label":"Get API key","href":"https://app.suby.fi/dashboard/settings"}},"footer":{"socials":{"website":"https://suby.fi","discord":"https://discord.com/invite/C8dxBm3hpj"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"suby","hasAudioNarration":false,"actualSubdomain":"suby","customDomains":["docs.suby.fi"],"gitSource":{"type":"github","owner":"subyhq","repo":"suby-monorepo","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ada11330d9ece1d40e85bba","collectionId":"8aa6702d-ba15-44c3-a3cf-bcd9d3875091","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ada11330d9ece1d40e85bba"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6adb382225425974785cb3c5","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API Reference","count":46},{"language":"default","tag":"Documentation","count":42},{"language":"default","tag":"Endpoints","count":39},{"language":"default","tag":"Platform","count":28},{"language":"default","tag":"Guides","count":15},{"language":"default","tag":"Features","count":14},{"language":"default","tag":"Bots","count":10},{"language":"default","tag":"Merchants","count":10},{"language":"default","tag":"Subscriptions","count":8},{"language":"default","tag":"Overview","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v3-beta/api-reference/checkout/create-a-checkout-session","slug":"/v3-beta/api-reference/checkout/create-a-checkout-session","pageMetadata":{"title":"Create a checkout session","description":"Mint a signed hosted-checkout token (`cs_…`). The returned `url` is the page you\nsend the payer to · the only place a card is ever collected.\n\n**`mode=payment`** · one-time charge of price × `quantity`.\n\n**`mode=subscription`** · opens a subscription and bills its first cycle. Needs a\n`billingMode: subscription` product\n(`CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT`), and is the only way to sell\none · a recurring product in `mode=payment` or in a `lineItems` basket is refused\n(`PRODUCT_REQUIRES_SUBSCRIPTION`), since it would be charged once and never renew.\nRenewals are driven by Suby. `quantity` sets the seats; to add seats later use\n`change-plan`.\n\n**`mode=setup`** · stores a card without charging, for later off-session debits\n(`POST /v3/payments/off-session`). No Payment is created. Requires a `pay_as_you_go`\n`productId`, which names what the payer authorises without pricing the page. A\npriced product here is refused (`CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT`), a\nper-use one on any other mode too (`PRODUCT_PRICED_PER_USE`).\n","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/checkout/sessions","href":"/v3-beta/api-reference/checkout/create-a-checkout-session","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Mint a signed hosted-checkout token (\", _jsx(_components.code, {\n children: \"cs_…\"\n }), \"). The returned \", _jsx(_components.code, {\n children: \"url\"\n }), \" is the page you\\nsend the payer to · the only place a card is ever collected.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: _jsx(_components.code, {\n children: \"mode=payment\"\n })\n }), \" · one-time charge of price × \", _jsx(_components.code, {\n children: \"quantity\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: _jsx(_components.code, {\n children: \"mode=subscription\"\n })\n }), \" · opens a subscription and bills its first cycle. Needs a\\n\", _jsx(_components.code, {\n children: \"billingMode: subscription\"\n }), \" product\\n(\", _jsx(_components.code, {\n children: \"CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT\"\n }), \"), and is the only way to sell\\none · a recurring product in \", _jsx(_components.code, {\n children: \"mode=payment\"\n }), \" or in a \", _jsx(_components.code, {\n children: \"lineItems\"\n }), \" basket is refused\\n(\", _jsx(_components.code, {\n children: \"PRODUCT_REQUIRES_SUBSCRIPTION\"\n }), \"), since it would be charged once and never renew.\\nRenewals are driven by Suby. \", _jsx(_components.code, {\n children: \"quantity\"\n }), \" sets the seats; to add seats later use\\n\", _jsx(_components.code, {\n children: \"change-plan\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: _jsx(_components.code, {\n children: \"mode=setup\"\n })\n }), \" · stores a card without charging, for later off-session debits\\n(\", _jsx(_components.code, {\n children: \"POST /v3/payments/off-session\"\n }), \"). No Payment is created. Requires a \", _jsx(_components.code, {\n children: \"pay_as_you_go\"\n }), \"\\n\", _jsx(_components.code, {\n children: \"productId\"\n }), \", which names what the payer authorises without pricing the page. A\\npriced product here is refused (\", _jsx(_components.code, {\n children: \"CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT\"\n }), \"), a\\nper-use one on any other mode too (\", _jsx(_components.code, {\n children: \"PRODUCT_PRICED_PER_USE\"\n }), \").\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a checkout session","description":"Mint a signed hosted-checkout token (`cs_…`). The returned `url` is the page you\nsend the payer to · the only place a card is ever collected.\n\n**`mode=payment`** · one-time charge of price × `quantity`.\n\n**`mode=subscription`** · opens a subscription and bills its first cycle. Needs a\n`billingMode: subscription` product\n(`CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT`), and is the only way to sell\none · a recurring product in `mode=payment` or in a `lineItems` basket is refused\n(`PRODUCT_REQUIRES_SUBSCRIPTION`), since it would be charged once and never renew.\nRenewals are driven by Suby. `quantity` sets the seats; to add seats later use\n`change-plan`.\n\n**`mode=setup`** · stores a card without charging, for later off-session debits\n(`POST /v3/payments/off-session`). No Payment is created. Requires a `pay_as_you_go`\n`productId`, which names what the payer authorises without pricing the page. A\npriced product here is refused (`CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT`), a\nper-use one on any other mode too (`PRODUCT_PRICED_PER_USE`).\n","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/checkout/sessions","href":"/v3-beta/api-reference/checkout/create-a-checkout-session","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Checkout"],"summary":"Create a checkout session","operationId":"createCheckoutSession","description":"Mint a signed hosted-checkout token (`cs_…`). The returned `url` is the page you\nsend the payer to · the only place a card is ever collected.\n\n**`mode=payment`** · one-time charge of price × `quantity`.\n\n**`mode=subscription`** · opens a subscription and bills its first cycle. Needs a\n`billingMode: subscription` product\n(`CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT`), and is the only way to sell\none · a recurring product in `mode=payment` or in a `lineItems` basket is refused\n(`PRODUCT_REQUIRES_SUBSCRIPTION`), since it would be charged once and never renew.\nRenewals are driven by Suby. `quantity` sets the seats; to add seats later use\n`change-plan`.\n\n**`mode=setup`** · stores a card without charging, for later off-session debits\n(`POST /v3/payments/off-session`). No Payment is created. Requires a `pay_as_you_go`\n`productId`, which names what the payer authorises without pricing the page. A\npriced product here is refused (`CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT`), a\nper-use one on any other mode too (`PRODUCT_PRICED_PER_USE`).\n","parameters":["edcc7988-4f2f-4e0d-aa20-770bcd7fa9a8"],"requestBody":"ae3d03bc-4d84-4678-9d23-3ed95ccdd3b9","responses":{"201":"bf61e16c-3ee6-46c6-a242-dd8dee93df93","401":"976a4ad5-6740-48fa-994d-0a81a5100dcc","422":"e5a8eeab-fa6b-4c8e-b0fb-89bc0a7cbf3c"},"method":"post","type":"path","servers":["62375d65-62da-41e1-863d-c10b0af1f3b6"],"security":["164323c1-4b00-4c8f-85da-d2ba943b0a12"],"path":"/v3/checkout/sessions","baseUrlOptions":["https://api.beta.suby.fi"],"title":"Create a checkout session","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"edcc7988-4f2f-4e0d-aa20-770bcd7fa9a8":{"name":"Idempotency-Key","in":"header","required":false,"description":"Optional key (≤255 chars, e.g. a UUID v4) making this POST safe to retry · the response is cached 24h and a retry with the SAME key replays it instead of re-executing. The same key with a different body → `422 IDEMPOTENCY_KEY_CONFLICT`; a retry while the first is in flight → `409`.","schema":{"type":"string","maxLength":255,"example":"5f3b9c2e-1a4d-4f2b-9c31-7e2a1b6d8c04","isRequired":false,"description":"Optional key (≤255 chars, e.g. a UUID v4) making this POST safe to retry · the response is cached 24h and a retry with the SAME key replays it instead of re-executing. The same key with a different body → `422 IDEMPOTENCY_KEY_CONFLICT`; a retry while the first is in flight → `409`.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["mode","successUrl","cancelUrl"],"description":"`mode=payment` takes exactly ONE pricing intent · `productId`, `lineItems` (no recurring product in a basket) or `priceCents` + `currency`. `mode=subscription` takes `productId` alone. `mode=setup` takes none and rejects `lineItems`, `priceCents`, `currency`, `discountCode` and `taxBehavior` · its `productId` names, it does not price.\n","properties":{"mode":{"type":"string","enum":["payment","subscription","setup"],"description":"`payment` one-time charge · `subscription` opens a subscription and bills cycle 1 · `setup` stores a card without charging.","isRequired":true,"uniqueKey":"mode","typeLabel":"enum\u003cstring>"},"successUrl":{"type":"string","format":"uri","description":"Redirect after a successful payment.","isRequired":true,"uniqueKey":"successUrl","typeLabel":"string\u003curi>"},"cancelUrl":{"type":"string","format":"uri","description":"Redirect if the payer cancels.","isRequired":true,"uniqueKey":"cancelUrl","typeLabel":"string\u003curi>"},"productId":{"type":"string","example":"pro_abc123","description":"Pricing intent A · a single product. Exclusive with `lineItems` / `priceCents`. On `mode=setup` it names rather than prices.","uniqueKey":"productId","typeLabel":"string"},"lineItems":{"type":"array","minItems":1,"maxItems":20,"description":"Pricing intent B · 1–20 product lines charged as one Payment. Exclusive with `productId` / `priceCents`.","items":{"type":"object","required":["productId"],"properties":{"productId":{"type":"string","example":"pro_abc123","isRequired":true,"uniqueKey":"lineItems.items.[INDEX].productId","typeLabel":"string"},"quantity":{"type":"integer","minimum":1,"maximum":999,"default":1,"uniqueKey":"lineItems.items.[INDEX].quantity","typeLabel":"integer"},"adjustable":{"type":"boolean","description":"Let the payer change the quantity within [`min`, `max`].","uniqueKey":"lineItems.items.[INDEX].adjustable","typeLabel":"boolean"},"min":{"type":"integer","minimum":0,"maximum":999,"uniqueKey":"lineItems.items.[INDEX].min","typeLabel":"integer"},"max":{"type":"integer","minimum":1,"maximum":999,"uniqueKey":"lineItems.items.[INDEX].max","typeLabel":"integer"}},"uniqueKey":"lineItems.items.[INDEX]","typeLabel":"object"},"uniqueKey":"lineItems","typeLabel":"object[]"},"quantity":{"type":"integer","minimum":1,"maximum":999,"description":"Units of `productId` (default 1). Editable by the payer only if the product has `adjustableQuantity`. Not on `mode=setup`.","uniqueKey":"quantity","typeLabel":"integer"},"priceCents":{"type":"string","pattern":"^[1-9]\\\\d*$","example":"1999","description":"Pricing intent C · ad-hoc amount in minor units, string of digits. Requires `currency`. Exclusive with `productId` / `lineItems`.","uniqueKey":"priceCents","typeLabel":"string"},"currency":{"type":"string","enum":["EUR","USD"],"description":"Required with `priceCents`. Any other currency is refused with `VALIDATION_ERROR` · send the amount in USD or EUR and the payer's bank converts it.","uniqueKey":"currency","typeLabel":"enum\u003cstring>"},"displayName":{"type":"string","maxLength":200,"description":"Label on the hosted page + Payment snapshot. Defaults to the product's (or the payment link's).","uniqueKey":"displayName","typeLabel":"string"},"displayDescription":{"oneOf":[{"type":"string","maxLength":500,"description":"Copy under the label. Same fallback as `displayName`.","uniqueKey":"displayDescription.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":500,"description":"Copy under the label. Same fallback as `displayName`.","uniqueKey":"displayDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"displayDescription","typeLabel":"string | null"},"taxBehavior":{"type":"string","enum":["inclusive","exclusive"],"description":"MoR VAT · `exclusive` adds VAT on top, `inclusive` extracts it. Signed into the session. Defaults to the product's; with `lineItems` or a bare `priceCents`, to `exclusive` · a basket consults none of its lines, so a bundle of TTC prices must say `inclusive`. Inert on crypto.","uniqueKey":"taxBehavior","typeLabel":"enum\u003cstring>"},"customer":{"type":"object","description":"Optional · the hosted page collects the identity otherwise. `id` binds the session to a known customer, `email` only pre-fills.","properties":{"id":{"type":"string","example":"cus_abc123","description":"An existing customer.","uniqueKey":"customer.id","typeLabel":"string"},"email":{"type":"string","format":"email","maxLength":320,"description":"Creates the customer if no one holds this address.","uniqueKey":"customer.email","typeLabel":"string\u003cemail>"},"firstName":{"type":"string","maxLength":100,"uniqueKey":"customer.firstName","typeLabel":"string"},"lastName":{"type":"string","maxLength":100,"uniqueKey":"customer.lastName","typeLabel":"string"}},"uniqueKey":"customer","typeLabel":"object"},"discountCode":{"type":"string","maxLength":40,"description":"Pre-apply a promo code. Validated here and again at pay · an unknown, deactivated, expired, exhausted, wrong-currency or non-applicable code is rejected `422 DISCOUNT_CODE_*` rather than signed into the session and silently dropped at payment time.","uniqueKey":"discountCode","typeLabel":"string"},"savePaymentMethod":{"type":"boolean","default":false,"description":"Store the card once the charge captures, for later off-session debits. `mode=payment` only · a setup session does this by definition.","uniqueKey":"savePaymentMethod","typeLabel":"boolean"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"metadata.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata.additionalProperties","typeLabel":"string | null"},"description":"Key-value pairs. ≤50 keys, keys ≤40 chars, values are\nstrings ≤500 chars (or `null` to clear). Nested structures must be\nJSON-stringified into a single string value.\n","uniqueKey":"metadata","typeLabel":"object"},"customFields":{"type":"array","maxItems":10,"description":"Extra fields collected on the hosted checkout page (max 10).","items":{"type":"object","required":["key","label","type"],"properties":{"key":{"type":"string","maxLength":50,"pattern":"^[a-z0-9_]+$","description":"Response-map key.","isRequired":true,"uniqueKey":"customFields.items.[INDEX].key","typeLabel":"string"},"label":{"type":"string","maxLength":100,"isRequired":true,"uniqueKey":"customFields.items.[INDEX].label","typeLabel":"string"},"type":{"type":"string","enum":["input","select","checkbox"],"isRequired":true,"uniqueKey":"customFields.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","uniqueKey":"customFields.items.[INDEX].required","typeLabel":"boolean"},"placeholder":{"type":"string","maxLength":200,"uniqueKey":"customFields.items.[INDEX].placeholder","typeLabel":"string"},"options":{"type":"array","description":"Required (≥1) when `type=select`.","items":{"type":"object","required":["value","label"],"properties":{"value":{"type":"string","maxLength":100,"isRequired":true,"uniqueKey":"customFields.items.[INDEX].options.items.[INDEX].value","typeLabel":"string"},"label":{"type":"string","maxLength":100,"isRequired":true,"uniqueKey":"customFields.items.[INDEX].options.items.[INDEX].label","typeLabel":"string"}},"uniqueKey":"customFields.items.[INDEX].options.items.[INDEX]","typeLabel":"object"},"uniqueKey":"customFields.items.[INDEX].options","typeLabel":"object[]"},"validation":{"type":"object","description":"`type=input` only · client-side regex.","properties":{"regex":{"type":"string","maxLength":500,"uniqueKey":"customFields.items.[INDEX].validation.regex","typeLabel":"string"},"errorMessage":{"type":"string","maxLength":200,"uniqueKey":"customFields.items.[INDEX].validation.errorMessage","typeLabel":"string"}},"uniqueKey":"customFields.items.[INDEX].validation","typeLabel":"object"},"defaultValue":{"type":"string","maxLength":500,"description":"Merchant pre-fill (editable).","uniqueKey":"customFields.items.[INDEX].defaultValue","typeLabel":"string"}},"uniqueKey":"customFields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"customFields","typeLabel":"object[]"},"expiresIn":{"type":"integer","minimum":60,"maximum":604800,"description":"Session TTL in seconds (default 24h, max 7d).","uniqueKey":"expiresIn","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"successUrl":"\u003cstring>","cancelUrl":"\u003cstring>","productId":"pro_abc123","lineItems":[{"productId":"pro_abc123","quantity":1,"adjustable":true,"min":499,"max":500}],"quantity":500,"priceCents":"1999","displayName":"\u003cstring>","displayDescription":"\u003cstring>","customer":{"id":"cus_abc123","email":"jsmith@example.com","firstName":"\u003cstring>","lastName":"\u003cstring>"},"discountCode":"\u003cstring>","savePaymentMethod":false,"metadata":{},"customFields":[{"key":"\u003cstring>","label":"\u003cstring>","required":true,"placeholder":"\u003cstring>","options":[{"value":"\u003cstring>","label":"\u003cstring>"}],"validation":{"regex":"\u003cstring>","errorMessage":"\u003cstring>"},"defaultValue":"\u003cstring>"}],"expiresIn":302430}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"bf61e16c-3ee6-46c6-a242-dd8dee93df93":{"description":"Checkout session created","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"data":{"type":"object","description":"Endpoint-specific payload.","properties":{"id":{"type":"string","example":"cs_abc123","uniqueKey":"data.id","typeLabel":"string"},"organizationId":{"type":"string","uniqueKey":"data.organizationId","typeLabel":"string"},"mode":{"type":"string","enum":["payment","subscription","setup"],"description":"Echoed from the create call.","uniqueKey":"data.mode","typeLabel":"enum\u003cstring>"},"productId":{"oneOf":[{"type":"string","uniqueKey":"data.productId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.productId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.productId","typeLabel":"string | null"},"lineItems":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","uniqueKey":"data.lineItems.oneOf.0.items.[INDEX].productId","typeLabel":"string"},"quantity":{"type":"integer","uniqueKey":"data.lineItems.oneOf.0.items.[INDEX].quantity","typeLabel":"integer"},"adjustable":{"type":"boolean","uniqueKey":"data.lineItems.oneOf.0.items.[INDEX].adjustable","typeLabel":"boolean"},"min":{"type":"integer","uniqueKey":"data.lineItems.oneOf.0.items.[INDEX].min","typeLabel":"integer"},"max":{"type":"integer","uniqueKey":"data.lineItems.oneOf.0.items.[INDEX].max","typeLabel":"integer"}},"uniqueKey":"data.lineItems.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.lineItems.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"productId":{"type":"string"},"quantity":{"type":"integer"},"adjustable":{"type":"boolean"},"min":{"type":"integer"},"max":{"type":"integer"}}},"uniqueKey":"data.lineItems.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.lineItems","typeLabel":"object[] | null"},"quantity":{"oneOf":[{"type":"integer","description":"Quantity set on the session, or null.","uniqueKey":"data.quantity.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Quantity set on the session, or null.","uniqueKey":"data.quantity.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.quantity","typeLabel":"integer | null"},"amount":{"oneOf":[{"type":"integer","uniqueKey":"data.amount.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"data.amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.amount","typeLabel":"integer | null"},"currency":{"oneOf":[{"type":"string","uniqueKey":"data.currency.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.currency.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.currency","typeLabel":"string | null"},"displayName":{"oneOf":[{"type":"string","uniqueKey":"data.displayName.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.displayName.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.displayName","typeLabel":"string | null"},"taxBehavior":{"oneOf":[{"type":"string","enum":["inclusive","exclusive"],"description":"What THIS session signed, or null when it named none · the charge then uses the product's own `taxInclusive` on a `productId` session, and `exclusive` on a `lineItems` or ad-hoc one (a basket is never priced from its lines).","uniqueKey":"data.taxBehavior.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["inclusive","exclusive"],"description":"What THIS session signed, or null when it named none · the charge then uses the product's own `taxInclusive` on a `productId` session, and `exclusive` on a `lineItems` or ad-hoc one (a basket is never priced from its lines).","uniqueKey":"data.taxBehavior.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.taxBehavior","typeLabel":"enum\u003cstring> | null"},"allowPromo":{"type":"boolean","uniqueKey":"data.allowPromo","typeLabel":"boolean"},"customerId":{"oneOf":[{"type":"string","uniqueKey":"data.customerId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.customerId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.customerId","typeLabel":"string | null"},"customerEmail":{"oneOf":[{"type":"string","uniqueKey":"data.customerEmail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.customerEmail.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.customerEmail","typeLabel":"string | null"},"customerFirstName":{"oneOf":[{"type":"string","uniqueKey":"data.customerFirstName.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.customerFirstName.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.customerFirstName","typeLabel":"string | null"},"customerLastName":{"oneOf":[{"type":"string","uniqueKey":"data.customerLastName.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.customerLastName.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.customerLastName","typeLabel":"string | null"},"successUrl":{"oneOf":[{"type":"string","uniqueKey":"data.successUrl.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.successUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.successUrl","typeLabel":"string | null"},"cancelUrl":{"oneOf":[{"type":"string","uniqueKey":"data.cancelUrl.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.cancelUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.cancelUrl","typeLabel":"string | null"},"discountCode":{"oneOf":[{"type":"string","uniqueKey":"data.discountCode.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.discountCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.discountCode","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","additionalProperties":true,"uniqueKey":"data.metadata.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"uniqueKey":"data.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.metadata","typeLabel":"object | null"},"customFields":{"oneOf":[{"type":"array","items":{"type":"object","required":["key","label","type"],"properties":{"key":{"type":"string","maxLength":50,"pattern":"^[a-z0-9_]+$","description":"Response-map key.","isRequired":true,"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].key","typeLabel":"string"},"label":{"type":"string","maxLength":100,"isRequired":true,"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].label","typeLabel":"string"},"type":{"type":"string","enum":["input","select","checkbox"],"isRequired":true,"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","uniqueKey":"data.customFields.oneOf.0.items.[INDEX].required","typeLabel":"boolean"},"placeholder":{"type":"string","maxLength":200,"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].placeholder","typeLabel":"string"},"options":{"type":"array","description":"Required (≥1) when `type=select`.","items":{"type":"object","required":["value","label"],"properties":{"value":{"type":"string","maxLength":100,"isRequired":true,"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].options.items.[INDEX].value","typeLabel":"string"},"label":{"type":"string","maxLength":100,"isRequired":true,"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].options.items.[INDEX].label","typeLabel":"string"}},"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].options.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].options","typeLabel":"object[]"},"validation":{"type":"object","description":"`type=input` only · client-side regex.","properties":{"regex":{"type":"string","maxLength":500,"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].validation.regex","typeLabel":"string"},"errorMessage":{"type":"string","maxLength":200,"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].validation.errorMessage","typeLabel":"string"}},"uniqueKey":"data.customFields.oneOf.0.items.[INDEX].validation","typeLabel":"object"},"defaultValue":{"type":"string","maxLength":500,"description":"Merchant pre-fill (editable).","uniqueKey":"data.customFields.oneOf.0.items.[INDEX].defaultValue","typeLabel":"string"}},"uniqueKey":"data.customFields.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.customFields.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["key","label","type"],"properties":{"key":{"type":"string","maxLength":50,"pattern":"^[a-z0-9_]+$","description":"Response-map key."},"label":{"type":"string","maxLength":100},"type":{"type":"string","enum":["input","select","checkbox"]},"required":{"type":"boolean"},"placeholder":{"type":"string","maxLength":200},"options":{"type":"array","description":"Required (≥1) when `type=select`.","items":{"type":"object","required":["value","label"],"properties":{"value":{"type":"string","maxLength":100},"label":{"type":"string","maxLength":100}}}},"validation":{"type":"object","description":"`type=input` only · client-side regex.","properties":{"regex":{"type":"string","maxLength":500},"errorMessage":{"type":"string","maxLength":200}}},"defaultValue":{"type":"string","maxLength":500,"description":"Merchant pre-fill (editable)."}}},"uniqueKey":"data.customFields.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.customFields","typeLabel":"object[] | null"},"status":{"type":"string","enum":["OPEN","EXPIRED","COMPLETED"],"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"token":{"type":"string","example":"cs_abc123.eyJpZCI6….Kx9f…","description":"The full signed token, `cs_\u003cid>.\u003cpayload>.\u003csignature>`. Pass THIS · not `id` · to `GET /v3/checkout/sessions/{token}`. Checkout sessions are stateless: there is no stored row, the payload *is* the token, so a bare `id` carries nothing to verify.","uniqueKey":"data.token","typeLabel":"string"},"url":{"type":"string","description":"Hosted checkout page · redirect the customer here.","uniqueKey":"data.url","typeLabel":"string"},"expiresAt":{"type":"integer","description":"Epoch milliseconds.","uniqueKey":"data.expiresAt","typeLabel":"integer"},"createdAt":{"type":"integer","description":"Epoch milliseconds.","uniqueKey":"data.createdAt","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"data":{"id":"cs_abc123","organizationId":"\u003cstring>","mode":"payment","productId":"\u003cstring>","lineItems":[{"productId":"\u003cstring>","quantity":123,"adjustable":true,"min":123,"max":123}],"quantity":123,"amount":123,"currency":"\u003cstring>","displayName":"\u003cstring>","taxBehavior":"inclusive","allowPromo":true,"customerId":"\u003cstring>","customerEmail":"\u003cstring>","customerFirstName":"\u003cstring>","customerLastName":"\u003cstring>","successUrl":"\u003cstring>","cancelUrl":"\u003cstring>","discountCode":"\u003cstring>","metadata":{},"customFields":[{"key":"\u003cstring>","label":"\u003cstring>","type":"input","required":true,"placeholder":"\u003cstring>","options":[{"value":"\u003cstring>","label":"\u003cstring>"}],"validation":{"regex":"\u003cstring>","errorMessage":"\u003cstring>"},"defaultValue":"\u003cstring>"}],"status":"OPEN","token":"cs_abc123.eyJpZCI6….Kx9f…","url":"\u003cstring>","expiresAt":123,"createdAt":123},"message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"976a4ad5-6740-48fa-994d-0a81a5100dcc":{"description":"Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","required":["success","error"],"properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"string","description":"Machine-readable error code.","example":"NOT_FOUND","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","example":"Resource not found","uniqueKey":"message","typeLabel":"string"},"data":{"description":"Optional error detail.","uniqueKey":"data","typeLabel":"any"}},"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"error":"UNAUTHORIZED","message":"Invalid or missing API key"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":"UNAUTHORIZED","message":"Invalid or missing API key"}}},"exampleType":"examples"}},"exampleType":"examples"},"e5a8eeab-fa6b-4c8e-b0fb-89bc0a7cbf3c":{"description":"Validation error · more than one pricing intent (`productId` + `priceCents` is rejected, not resolved to the product price), a pricing field on `mode=setup`, a `mode=subscription` on a non-recurring product (`CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT`), a per-use product outside `mode=setup` (`PRODUCT_PRICED_PER_USE`) or a priced one inside it (`CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT`), or a `discountCode` that does not redeem (`DISCOUNT_CODE_NOT_FOUND`, `_INACTIVE`, `_EXPIRED`, `_EXHAUSTED`, `_CURRENCY_MISMATCH`, `_NOT_APPLICABLE`).","content":{"application/json":{"schema":{"type":"object","required":["success","error"],"properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"string","description":"Machine-readable error code.","example":"NOT_FOUND","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","example":"Resource not found","uniqueKey":"message","typeLabel":"string"},"data":{"description":"Optional error detail.","uniqueKey":"data","typeLabel":"any"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":"NOT_FOUND","message":"Resource not found","data":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"164323c1-4b00-4c8f-85da-d2ba943b0a12":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Suby-Api-Key","description":"Secret API key. `sk_live_…` (production) or `sk_sandbox_…` (sandbox).","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"62375d65-62da-41e1-863d-c10b0af1f3b6":{"url":"https://api.beta.suby.fi","description":"Production + sandbox (environment selected by API key prefix)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Suby-Api-Key","description":"Secret API key. `sk_live_…` (production) or `sk_sandbox_…` (sandbox).","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"X-Suby-Api-Key","type":"string","description":"Secret API key. `sk_live_…` (production) or `sk_sandbox_…` (sandbox).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-Suby-Api-Key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"v3-beta/api-reference/openapi.yaml"},"subdomain":"suby","siteName":"Suby.fi","title":"Create a checkout session - Suby.fi","navMaps":{"firstHrefInVersion":{"v3-beta":{"href":"/v3-beta/api-reference/checkout/create-a-checkout-session","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T13:35:53.992Z","originalFileLocation":"v3-beta/api-reference/checkout/create-a-checkout-session.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=\"Mint a signed hosted-checkout token (cs_…). The returned url is the page you send the payer to · the only place a card is ever collected. mode=payment · one-time charge of price × quantity. mode=subscription · opens a subscription and bills its first cycle. Needs a billingMode: subscription product (CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT), and is the only way to sell one · a recurring product in mode=payment or in a lineItems basket is refused (PRODUCT_REQUIRES_SUBSCRIPTION), since it would be charged once and never renew. Renewals are driven by Suby. quantity sets the seats; to add seats later use change-plan. mode=setup · stores a card without charging, for later off-session debits (POST /v3/payments/off-session). No Payment is created. Requires a pay_as_you_go productId, which names what the payer authorises without pricing the page. A priced product here is refused (CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT), a per-use one on any other mode too (PRODUCT_PRICED_PER_USE).\">\u003cmeta data-mint-head name=\"application-name\" content=\"Suby.fi\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/suby/K5zAxKZCvFlEOxIM/_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/suby/K5zAxKZCvFlEOxIM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/suby/K5zAxKZCvFlEOxIM/_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/suby/K5zAxKZCvFlEOxIM/_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/suby/K5zAxKZCvFlEOxIM/_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/suby/K5zAxKZCvFlEOxIM/_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/suby/K5zAxKZCvFlEOxIM/_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/suby/K5zAxKZCvFlEOxIM/_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/suby/K5zAxKZCvFlEOxIM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a checkout session - Suby.fi\">\u003cmeta data-mint-head property=\"og:description\" content=\"Mint a signed hosted-checkout token (cs_…). The returned url is the page you send the payer to · the only place a card is ever collected. mode=payment · one-time charge of price × quantity. mode=subscription · opens a subscription and bills its first cycle. Needs a billingMode: subscription product (CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT), and is the only way to sell one · a recurring product in mode=payment or in a lineItems basket is refused (PRODUCT_REQUIRES_SUBSCRIPTION), since it would be charged once and never renew. Renewals are driven by Suby. quantity sets the seats; to add seats later use change-plan. mode=setup · stores a card without charging, for later off-session debits (POST /v3/payments/off-session). No Payment is created. Requires a pay_as_you_go productId, which names what the payer authorises without pricing the page. A priced product here is refused (CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT), a per-use one on any other mode too (PRODUCT_PRICED_PER_USE).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Suby.fi\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://suby.mintlify.app/_mintlify/api/og/v2?division=Checkout\u0026amp;title=Create+a+checkout+session\u0026amp;description=Mint+a+signed+hosted-checkout+token+%28%60cs_%E2%80%A6%60%29.+The+returned+%60url%60+is+the+page+you%0Asend+the+payer+to+%C2%B7+the+only+place+a+card+is+ever+collected.%0A%0A**%60mode%3Dpayment%60*\u0026amp;theme=69a80b99b04499f8ba92403e\u0026amp;signature=2eb39292a0a198d7b74f3e53d3756e0309dc3e06f357f3e2998261400d57148b\">\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 a checkout session - Suby.fi\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Mint a signed hosted-checkout token (cs_…). The returned url is the page you send the payer to · the only place a card is ever collected. mode=payment · one-time charge of price × quantity. mode=subscription · opens a subscription and bills its first cycle. Needs a billingMode: subscription product (CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT), and is the only way to sell one · a recurring product in mode=payment or in a lineItems basket is refused (PRODUCT_REQUIRES_SUBSCRIPTION), since it would be charged once and never renew. Renewals are driven by Suby. quantity sets the seats; to add seats later use change-plan. mode=setup · stores a card without charging, for later off-session debits (POST /v3/payments/off-session). No Payment is created. Requires a pay_as_you_go productId, which names what the payer authorises without pricing the page. A priced product here is refused (CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT), a per-use one on any other mode too (PRODUCT_PRICED_PER_USE).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://suby.mintlify.app/_mintlify/api/og/v2?division=Checkout\u0026amp;title=Create+a+checkout+session\u0026amp;description=Mint+a+signed+hosted-checkout+token+%28%60cs_%E2%80%A6%60%29.+The+returned+%60url%60+is+the+page+you%0Asend+the+payer+to+%C2%B7+the+only+place+a+card+is+ever+collected.%0A%0A**%60mode%3Dpayment%60*\u0026amp;theme=69a80b99b04499f8ba92403e\u0026amp;signature=2eb39292a0a198d7b74f3e53d3756e0309dc3e06f357f3e2998261400d57148b\">\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/suby/K5zAxKZCvFlEOxIM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Suby.fi\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2F5BFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v3-beta/api-reference/checkout/create-a-checkout-session.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.suby.fi/#organization\",\"name\":\"Suby.fi\",\"url\":\"https://docs.suby.fi\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/suby/78hmNhVo7Bl_AwU_/logo/dark.png?fit=max\u0026auto=format\u0026n=78hmNhVo7Bl_AwU_\u0026q=85\u0026s=5a8b457489b514aac7397c50d3db89fd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.suby.fi#website\",\"name\":\"Suby.fi\",\"url\":\"https://docs.suby.fi\",\"publisher\":{\"@id\":\"https://docs.suby.fi/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session#webpage\",\"url\":\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session\",\"name\":\"Create a checkout session\",\"description\":\"Mint a signed hosted-checkout token (cs_…). The returned url is the page you send the payer to · the only place a card is ever collected. mode=payment · one-time charge of price × quantity. mode=subscription · opens a subscription and bills its first cycle. Needs a billingMode: subscription product (CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT), and is the only way to sell one · a recurring product in mode=payment or in a lineItems basket is refused (PRODUCT_REQUIRES_SUBSCRIPTION), since it would be charged once and never renew. Renewals are driven by Suby. quantity sets the seats; to add seats later use change-plan. mode=setup · stores a card without charging, for later off-session debits (POST /v3/payments/off-session). No Payment is created. Requires a pay_as_you_go productId, which names what the payer authorises without pricing the page. A priced product here is refused (CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT), a per-use one on any other mode too (PRODUCT_PRICED_PER_USE).\",\"dateModified\":\"2026-10-22T13:35:53.992Z\",\"isPartOf\":{\"@id\":\"https://docs.suby.fi#website\"},\"breadcrumb\":{\"@id\":\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.suby.fi/v3-beta/api-reference/products/list-products\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a checkout session\",\"item\":\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session#apireference\",\"headline\":\"Create a checkout session\",\"name\":\"Create a checkout session\",\"description\":\"Mint a signed hosted-checkout token (cs_…). The returned url is the page you send the payer to · the only place a card is ever collected. mode=payment · one-time charge of price × quantity. mode=subscription · opens a subscription and bills its first cycle. Needs a billingMode: subscription product (CHECKOUT_SUBSCRIPTION_REQUIRES_RECURRING_PRODUCT), and is the only way to sell one · a recurring product in mode=payment or in a lineItems basket is refused (PRODUCT_REQUIRES_SUBSCRIPTION), since it would be charged once and never renew. Renewals are driven by Suby. quantity sets the seats; to add seats later use change-plan. mode=setup · stores a card without charging, for later off-session debits (POST /v3/payments/off-session). No Payment is created. Requires a pay_as_you_go productId, which names what the payer authorises without pricing the page. A priced product here is refused (CHECKOUT_SETUP_REQUIRES_PER_USE_PRODUCT), a per-use one on any other mode too (PRODUCT_PRICED_PER_USE).\",\"url\":\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session\",\"mainEntityOfPage\":{\"@id\":\"https://docs.suby.fi/v3-beta/api-reference/checkout/create-a-checkout-session#webpage\"},\"dateModified\":\"2026-10-22T13:35:53.992Z\",\"publisher\":{\"@id\":\"https://docs.suby.fi/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.suby.fi#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Suby.fi\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Suby.fi","nav":{"global":null,"versions":[{"version":"v3-beta","default":true,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/v3-beta/docs/introduction/AI"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/v3-beta/docs/guides/discord/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/v3-beta/api-reference/overview"},{"group":"Get started","pages":[{"title":"Introduction","href":"/v3-beta/introduction"},{"title":"Authentication","href":"/v3-beta/authentication"},{"title":"Quickstart","href":"/v3-beta/quickstart"}]},{"group":"Core concepts","pages":[{"title":"Idempotency","href":"/v3-beta/idempotency"},{"title":"Webhooks","href":"/v3-beta/webhooks"},{"title":"Errors \u0026 responses","href":"/v3-beta/errors"}]}]},{"group":"Endpoints","pages":[{"group":"Products","pages":[{"title":"List products","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/products","href":"/v3-beta/api-reference/products/list-products"},{"title":"Create a product","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/products","href":"/v3-beta/api-reference/products/create-a-product"},{"title":"Retrieve a product","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/products/{id}","href":"/v3-beta/api-reference/products/retrieve-a-product"},{"title":"Update a product","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml patch /v3/products/{id}","href":"/v3-beta/api-reference/products/update-a-product"},{"title":"Take a product off sale","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/products/{id}/archive","href":"/v3-beta/api-reference/products/take-a-product-off-sale"},{"title":"Put a product back on sale","description":"Move the product back to `ACTIVE`. Empty body.","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/products/{id}/unarchive","href":"/v3-beta/api-reference/products/put-a-product-back-on-sale"}]},{"group":"Checkout","pages":[{"title":"Create a checkout session","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/checkout/sessions","href":"/v3-beta/api-reference/checkout/create-a-checkout-session"},{"title":"Retrieve a checkout session","description":"Re-hydrate a signed session. An expired token returns 200 with\n`status=EXPIRED`.\n\nPass the **`token`** from the create response (or the `cs_…` segment of\n`url`) · *not* `id`. Sessions are stateless: the payload is carried in\nthe token itself, so a bare id has nothing to verify against and returns\n`400 CHECKOUT_SESSION_NOT_FOUND`.\n","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/checkout/sessions/{token}","href":"/v3-beta/api-reference/checkout/retrieve-a-checkout-session"}]},{"group":"Payments","pages":[{"title":"List payments","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/payments","href":"/v3-beta/api-reference/payments/list-payments"},{"title":"Retrieve a payment","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/payments/{id}","href":"/v3-beta/api-reference/payments/retrieve-a-payment"},{"title":"Get the receipt (JSON)","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/payments/{id}/receipt","href":"/v3-beta/api-reference/payments/get-the-receipt-json"},{"title":"Get the receipt (PDF)","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/payments/{id}/receipt.pdf","href":"/v3-beta/api-reference/payments/get-the-receipt-pdf"},{"title":"Debit a stored card, off-session","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/payments/off-session","href":"/v3-beta/api-reference/payments/debit-a-stored-card-off-session"},{"title":"Refund a captured payment","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/payments/{id}/refund","href":"/v3-beta/api-reference/payments/refund-a-captured-payment"}]},{"group":"Subscriptions","pages":[{"title":"List subscriptions","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/subscriptions","href":"/v3-beta/api-reference/subscriptions/list-subscriptions"},{"title":"Retrieve a subscription","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/subscriptions/{id}","href":"/v3-beta/api-reference/subscriptions/retrieve-a-subscription"},{"title":"Cancel a subscription","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/subscriptions/{id}/cancel","href":"/v3-beta/api-reference/subscriptions/cancel-a-subscription"},{"title":"Change the plan or the quantity","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/subscriptions/{id}/change-plan","href":"/v3-beta/api-reference/subscriptions/change-the-plan-or-the-quantity"},{"title":"Price a plan or quantity change","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/subscriptions/{id}/change-plan/preview","href":"/v3-beta/api-reference/subscriptions/price-a-plan-or-quantity-change"},{"title":"Call off a scheduled plan change","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/subscriptions/{id}/cancel-plan-change","href":"/v3-beta/api-reference/subscriptions/call-off-a-scheduled-plan-change"},{"title":"Retry a failing renewal now","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/subscriptions/{id}/retry-renewal","href":"/v3-beta/api-reference/subscriptions/retry-a-failing-renewal-now"},{"title":"Change the expiration date","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/subscriptions/{id}/period-end","href":"/v3-beta/api-reference/subscriptions/change-the-expiration-date"}]},{"group":"Discount Codes","pages":[{"title":"List discount codes","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/discount-codes","href":"/v3-beta/api-reference/discount-codes/list-discount-codes"},{"title":"Create a discount code","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/discount-codes","href":"/v3-beta/api-reference/discount-codes/create-a-discount-code"},{"title":"Retrieve a discount code","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/discount-codes/{id}","href":"/v3-beta/api-reference/discount-codes/retrieve-a-discount-code"},{"title":"Delete a discount code","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml delete /v3/discount-codes/{id}","href":"/v3-beta/api-reference/discount-codes/delete-a-discount-code"},{"title":"Update a discount code","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml patch /v3/discount-codes/{id}","href":"/v3-beta/api-reference/discount-codes/update-a-discount-code"}]},{"group":"Crypto","pages":[{"title":"Chains and tokens this account accepts","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/crypto/assets","href":"/v3-beta/api-reference/crypto/chains-and-tokens-this-account-accepts"},{"title":"Price a fiat amount in a token","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/crypto/quote","href":"/v3-beta/api-reference/crypto/price-a-fiat-amount-in-a-token"},{"title":"Create a crypto charge","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/crypto/charges","href":"/v3-beta/api-reference/crypto/create-a-crypto-charge"}]},{"group":"Customers","pages":[{"title":"List customers","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/customers","href":"/v3-beta/api-reference/customers/list-customers"},{"title":"Create (or get) a customer","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/customers","href":"/v3-beta/api-reference/customers/create-or-get-a-customer"},{"title":"Retrieve a customer","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/customers/{id}","href":"/v3-beta/api-reference/customers/retrieve-a-customer"},{"title":"Update a customer","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml patch /v3/customers/{id}","href":"/v3-beta/api-reference/customers/update-a-customer"}]},{"group":"Payment Methods","pages":[{"title":"List saved payment methods","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml get /v3/customers/{id}/payment-methods","href":"/v3-beta/api-reference/payment-methods/list-saved-payment-methods"},{"title":"Revoke a saved payment method","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml delete /v3/customers/{id}/payment-methods/{pmId}","href":"/v3-beta/api-reference/payment-methods/revoke-a-saved-payment-method"}]},{"group":"Licence Key","pages":[{"title":"Is this licence key still valid","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/licenses/validate","href":"/v3-beta/api-reference/licence-key/is-this-licence-key-still-valid"},{"title":"Take a seat for one machine","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/licenses/activate","href":"/v3-beta/api-reference/licence-key/take-a-seat-for-one-machine"},{"title":"Free a machine's seat","deprecated":null,"version":null,"openapi":"/v3-beta/api-reference/openapi.yaml post /v3/licenses/deactivate","href":"/v3-beta/api-reference/licence-key/free-a-machines-seat"}]}]}]}]}]},"title":"Create a checkout session - Suby.fi","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}