[{"data":1,"prerenderedAt":1123},["ShallowReactive",2],{"navigation_docs":3,"-packages-fluent-js-checkouts":465,"-packages-fluent-js-checkouts-surround":1118},[4,8,62,115,450],{"title":5,"path":6,"stem":7},"Introduction","\u002Fintroduction","0.introduction",{"title":9,"path":10,"stem":11,"children":12,"page":61},"Guides","\u002Fguides","1.guides",[13,17,21,25,29,33,37,41,45,49,53,57],{"title":14,"path":15,"stem":16},"Quickstart","\u002Fguides\u002Fquickstart","1.guides\u002F1.quickstart",{"title":18,"path":19,"stem":20},"Payouts & Settlement","\u002Fguides\u002Fpayouts","1.guides\u002F10.payouts",{"title":22,"path":23,"stem":24},"Customer Emails","\u002Fguides\u002Fcustomer-emails","1.guides\u002F11.customer-emails",{"title":26,"path":27,"stem":28},"Build your own integration","\u002Fguides\u002Fbuild-your-own-integration","1.guides\u002F2.build-your-own-integration",{"title":30,"path":31,"stem":32},"Selling Workflow","\u002Fguides\u002Fselling-workflow","1.guides\u002F2.selling-workflow",{"title":34,"path":35,"stem":36},"Vatly SDKs","\u002Fguides\u002Fsdks","1.guides\u002F3.sdks",{"title":38,"path":39,"stem":40},"Authentication","\u002Fguides\u002Fauthentication","1.guides\u002F4.authentication",{"title":42,"path":43,"stem":44},"Pagination","\u002Fguides\u002Fpagination","1.guides\u002F5.pagination",{"title":46,"path":47,"stem":48},"Errors","\u002Fguides\u002Ferrors","1.guides\u002F6.errors",{"title":50,"path":51,"stem":52},"Webhooks","\u002Fguides\u002Fwebhooks","1.guides\u002F7.webhooks",{"title":54,"path":55,"stem":56},"Idempotency","\u002Fguides\u002Fidempotency","1.guides\u002F8.idempotency",{"title":58,"path":59,"stem":60},"Testing","\u002Fguides\u002Ftesting","1.guides\u002F9.testing",false,{"title":63,"path":64,"stem":65,"children":66,"page":61},"Api Reference","\u002Fapi-reference","2.api-reference",[67,71,75,79,83,87,91,95,99,103,107,111],{"title":68,"path":69,"stem":70},"Customers","\u002Fapi-reference\u002Fcustomers","2.api-reference\u002F1.customers",{"title":72,"path":73,"stem":74},"Webhook Endpoints","\u002Fapi-reference\u002Fwebhook-endpoints","2.api-reference\u002F10.webhook-endpoints",{"title":76,"path":77,"stem":78},"Test helpers","\u002Fapi-reference\u002Ftest-helpers","2.api-reference\u002F11.test-helpers",{"title":80,"path":81,"stem":82},"Checkouts","\u002Fapi-reference\u002Fcheckouts","2.api-reference\u002F2.checkouts",{"title":84,"path":85,"stem":86},"One-off Products","\u002Fapi-reference\u002Fone-off-products","2.api-reference\u002F3.one-off-products",{"title":88,"path":89,"stem":90},"Subscriptions","\u002Fapi-reference\u002Fsubscriptions","2.api-reference\u002F4.subscriptions",{"title":92,"path":93,"stem":94},"Subscription Plans","\u002Fapi-reference\u002Fsubscription-plans","2.api-reference\u002F5.subscription-plans",{"title":96,"path":97,"stem":98},"Orders","\u002Fapi-reference\u002Forders","2.api-reference\u002F6.orders",{"title":100,"path":101,"stem":102},"Order Refunds","\u002Fapi-reference\u002Frefunds","2.api-reference\u002F7.refunds",{"title":104,"path":105,"stem":106},"Refunds","\u002Fapi-reference\u002Fglobal-refunds","2.api-reference\u002F8.global-refunds",{"title":108,"path":109,"stem":110},"Chargebacks","\u002Fapi-reference\u002Fchargebacks","2.api-reference\u002F9.chargebacks",{"title":112,"path":113,"stem":114},"Webhook Events","\u002Fapi-reference\u002Fwebhook-events","2.api-reference\u002F99.webhook-events",{"title":116,"path":117,"stem":118,"children":119},"Packages","\u002Fpackages","3.packages",[120,122,164,210,244,283,318,366,408],{"title":116,"path":117,"stem":121},"3.packages\u002Findex",{"title":123,"path":124,"stem":125,"children":126,"page":61},"PHP SDK","\u002Fpackages\u002Fphp","3.packages\u002F1.php",[127,131,134,137,140,144,147,151,154,157,160],{"title":128,"path":129,"stem":130},"Getting started","\u002Fpackages\u002Fphp\u002Freadme","3.packages\u002F1.php\u002F00.readme",{"title":68,"path":132,"stem":133},"\u002Fpackages\u002Fphp\u002Fcustomers","3.packages\u002F1.php\u002F02.customers",{"title":80,"path":135,"stem":136},"\u002Fpackages\u002Fphp\u002Fcheckouts","3.packages\u002F1.php\u002F03.checkouts",{"title":88,"path":138,"stem":139},"\u002Fpackages\u002Fphp\u002Fsubscriptions","3.packages\u002F1.php\u002F04.subscriptions",{"title":141,"path":142,"stem":143},"Subscription plans","\u002Fpackages\u002Fphp\u002Fsubscriptionplans","3.packages\u002F1.php\u002F05.subscriptionplans",{"title":96,"path":145,"stem":146},"\u002Fpackages\u002Fphp\u002Forders","3.packages\u002F1.php\u002F06.orders",{"title":148,"path":149,"stem":150},"One-off products","\u002Fpackages\u002Fphp\u002Foneoffproducts","3.packages\u002F1.php\u002F07.oneoffproducts",{"title":104,"path":152,"stem":153},"\u002Fpackages\u002Fphp\u002Frefunds","3.packages\u002F1.php\u002F08.refunds",{"title":108,"path":155,"stem":156},"\u002Fpackages\u002Fphp\u002Fchargebacks","3.packages\u002F1.php\u002F09.chargebacks",{"title":50,"path":158,"stem":159},"\u002Fpackages\u002Fphp\u002Fwebhooks","3.packages\u002F1.php\u002F10.webhooks",{"title":161,"path":162,"stem":163},"Webhook URLs","\u002Fpackages\u002Fphp\u002Fwebhookendpoints","3.packages\u002F1.php\u002F11.webhookendpoints",{"title":165,"path":166,"stem":167,"children":168,"page":61},"PHP Fluent","\u002Fpackages\u002Ffluent-php","3.packages\u002F2.fluent-php",[169,172,176,180,183,186,189,192,196,199,203,207],{"title":128,"path":170,"stem":171},"\u002Fpackages\u002Ffluent-php\u002Freadme","3.packages\u002F2.fluent-php\u002F00.readme",{"title":173,"path":174,"stem":175},"Configuration","\u002Fpackages\u002Ffluent-php\u002Fconfiguration","3.packages\u002F2.fluent-php\u002F01.configuration",{"title":177,"path":178,"stem":179},"Core concepts","\u002Fpackages\u002Ffluent-php\u002Fcoreconcepts","3.packages\u002F2.fluent-php\u002F02.coreconcepts",{"title":68,"path":181,"stem":182},"\u002Fpackages\u002Ffluent-php\u002Fcustomers","3.packages\u002F2.fluent-php\u002F03.customers",{"title":80,"path":184,"stem":185},"\u002Fpackages\u002Ffluent-php\u002Fcheckouts","3.packages\u002F2.fluent-php\u002F04.checkouts",{"title":88,"path":187,"stem":188},"\u002Fpackages\u002Ffluent-php\u002Fsubscriptions","3.packages\u002F2.fluent-php\u002F05.subscriptions",{"title":96,"path":190,"stem":191},"\u002Fpackages\u002Ffluent-php\u002Forders","3.packages\u002F2.fluent-php\u002F06.orders",{"title":193,"path":194,"stem":195},"Customer portal","\u002Fpackages\u002Ffluent-php\u002Fcustomerportal","3.packages\u002F2.fluent-php\u002F07.customerportal",{"title":50,"path":197,"stem":198},"\u002Fpackages\u002Ffluent-php\u002Fwebhooks","3.packages\u002F2.fluent-php\u002F08.webhooks",{"title":200,"path":201,"stem":202},"Webhook event flow","\u002Fpackages\u002Ffluent-php\u002Fwebhook-flow","3.packages\u002F2.fluent-php\u002F09.webhook-flow",{"title":204,"path":205,"stem":206},"Existing tables","\u002Fpackages\u002Ffluent-php\u002Fhost-owns-its-tables","3.packages\u002F2.fluent-php\u002F10.host-owns-its-tables",{"title":58,"path":208,"stem":209},"\u002Fpackages\u002Ffluent-php\u002Ftesting","3.packages\u002F2.fluent-php\u002F11.testing",{"title":211,"path":212,"stem":213,"children":214,"page":61},"Laravel","\u002Fpackages\u002Flaravel","3.packages\u002F3.laravel",[215,218,221,224,227,230,233,236,240],{"title":128,"path":216,"stem":217},"\u002Fpackages\u002Flaravel\u002Freadme","3.packages\u002F3.laravel\u002F00.readme",{"title":173,"path":219,"stem":220},"\u002Fpackages\u002Flaravel\u002Fconfiguration","3.packages\u002F3.laravel\u002F01.configuration",{"title":68,"path":222,"stem":223},"\u002Fpackages\u002Flaravel\u002Fcustomers","3.packages\u002F3.laravel\u002F02.customers",{"title":80,"path":225,"stem":226},"\u002Fpackages\u002Flaravel\u002Fcheckouts","3.packages\u002F3.laravel\u002F03.checkouts",{"title":88,"path":228,"stem":229},"\u002Fpackages\u002Flaravel\u002Fsubscriptions","3.packages\u002F3.laravel\u002F04.subscriptions",{"title":96,"path":231,"stem":232},"\u002Fpackages\u002Flaravel\u002Forders","3.packages\u002F3.laravel\u002F05.orders",{"title":50,"path":234,"stem":235},"\u002Fpackages\u002Flaravel\u002Fwebhooks","3.packages\u002F3.laravel\u002F06.webhooks",{"title":237,"path":238,"stem":239},"Comparison","\u002Fpackages\u002Flaravel\u002Fcomparison","3.packages\u002F3.laravel\u002F07.comparison",{"title":241,"path":242,"stem":243},"Migrating from Cashier","\u002Fpackages\u002Flaravel\u002Fmigrating-to-vatly","3.packages\u002F3.laravel\u002F08.migrating-to-vatly",{"title":245,"path":246,"stem":247,"children":248,"page":61},"JavaScript SDK","\u002Fpackages\u002Fjavascript","3.packages\u002F4.javascript",[249,252,255,258,261,264,267,270,273,276,279],{"title":128,"path":250,"stem":251},"\u002Fpackages\u002Fjavascript\u002Freadme","3.packages\u002F4.javascript\u002F00.readme",{"title":68,"path":253,"stem":254},"\u002Fpackages\u002Fjavascript\u002Fcustomers","3.packages\u002F4.javascript\u002F02.customers",{"title":80,"path":256,"stem":257},"\u002Fpackages\u002Fjavascript\u002Fcheckouts","3.packages\u002F4.javascript\u002F03.checkouts",{"title":88,"path":259,"stem":260},"\u002Fpackages\u002Fjavascript\u002Fsubscriptions","3.packages\u002F4.javascript\u002F04.subscriptions",{"title":141,"path":262,"stem":263},"\u002Fpackages\u002Fjavascript\u002Fsubscriptionplans","3.packages\u002F4.javascript\u002F05.subscriptionplans",{"title":96,"path":265,"stem":266},"\u002Fpackages\u002Fjavascript\u002Forders","3.packages\u002F4.javascript\u002F06.orders",{"title":148,"path":268,"stem":269},"\u002Fpackages\u002Fjavascript\u002Foneoffproducts","3.packages\u002F4.javascript\u002F07.oneoffproducts",{"title":104,"path":271,"stem":272},"\u002Fpackages\u002Fjavascript\u002Frefunds","3.packages\u002F4.javascript\u002F08.refunds",{"title":108,"path":274,"stem":275},"\u002Fpackages\u002Fjavascript\u002Fchargebacks","3.packages\u002F4.javascript\u002F09.chargebacks",{"title":50,"path":277,"stem":278},"\u002Fpackages\u002Fjavascript\u002Fwebhooks","3.packages\u002F4.javascript\u002F10.webhooks",{"title":280,"path":281,"stem":282},"API reference","\u002Fpackages\u002Fjavascript\u002Fapi","3.packages\u002F4.javascript\u002F12.api",{"title":284,"path":285,"stem":286,"children":287,"page":61},"JavaScript Fluent","\u002Fpackages\u002Ffluent-js","3.packages\u002F5.fluent-js",[288,291,294,297,300,303,306,309,312,315],{"title":128,"path":289,"stem":290},"\u002Fpackages\u002Ffluent-js\u002Freadme","3.packages\u002F5.fluent-js\u002F00.readme",{"title":173,"path":292,"stem":293},"\u002Fpackages\u002Ffluent-js\u002Fconfiguration","3.packages\u002F5.fluent-js\u002F01.configuration",{"title":177,"path":295,"stem":296},"\u002Fpackages\u002Ffluent-js\u002Fcoreconcepts","3.packages\u002F5.fluent-js\u002F02.coreconcepts",{"title":68,"path":298,"stem":299},"\u002Fpackages\u002Ffluent-js\u002Fcustomers","3.packages\u002F5.fluent-js\u002F03.customers",{"title":80,"path":301,"stem":302},"\u002Fpackages\u002Ffluent-js\u002Fcheckouts","3.packages\u002F5.fluent-js\u002F04.checkouts",{"title":88,"path":304,"stem":305},"\u002Fpackages\u002Ffluent-js\u002Fsubscriptions","3.packages\u002F5.fluent-js\u002F05.subscriptions",{"title":96,"path":307,"stem":308},"\u002Fpackages\u002Ffluent-js\u002Forders","3.packages\u002F5.fluent-js\u002F06.orders",{"title":193,"path":310,"stem":311},"\u002Fpackages\u002Ffluent-js\u002Fcustomerportal","3.packages\u002F5.fluent-js\u002F07.customerportal",{"title":50,"path":313,"stem":314},"\u002Fpackages\u002Ffluent-js\u002Fwebhooks","3.packages\u002F5.fluent-js\u002F08.webhooks",{"title":58,"path":316,"stem":317},"\u002Fpackages\u002Ffluent-js\u002Ftesting","3.packages\u002F5.fluent-js\u002F11.testing",{"title":319,"path":320,"stem":321,"children":322,"page":61},"Python SDK","\u002Fpackages\u002Fpython","3.packages\u002F6.python",[323,326,329,332,335,338,341,344,347,350,353,356,359,362],{"title":128,"path":324,"stem":325},"\u002Fpackages\u002Fpython\u002Freadme","3.packages\u002F6.python\u002F00.readme",{"title":173,"path":327,"stem":328},"\u002Fpackages\u002Fpython\u002Fconfiguration","3.packages\u002F6.python\u002F01.configuration",{"title":68,"path":330,"stem":331},"\u002Fpackages\u002Fpython\u002Fcustomers","3.packages\u002F6.python\u002F02.customers",{"title":80,"path":333,"stem":334},"\u002Fpackages\u002Fpython\u002Fcheckouts","3.packages\u002F6.python\u002F03.checkouts",{"title":88,"path":336,"stem":337},"\u002Fpackages\u002Fpython\u002Fsubscriptions","3.packages\u002F6.python\u002F04.subscriptions",{"title":141,"path":339,"stem":340},"\u002Fpackages\u002Fpython\u002Fsubscriptionplans","3.packages\u002F6.python\u002F05.subscriptionplans",{"title":96,"path":342,"stem":343},"\u002Fpackages\u002Fpython\u002Forders","3.packages\u002F6.python\u002F06.orders",{"title":148,"path":345,"stem":346},"\u002Fpackages\u002Fpython\u002Foneoffproducts","3.packages\u002F6.python\u002F07.oneoffproducts",{"title":104,"path":348,"stem":349},"\u002Fpackages\u002Fpython\u002Frefunds","3.packages\u002F6.python\u002F08.refunds",{"title":108,"path":351,"stem":352},"\u002Fpackages\u002Fpython\u002Fchargebacks","3.packages\u002F6.python\u002F09.chargebacks",{"title":50,"path":354,"stem":355},"\u002Fpackages\u002Fpython\u002Fwebhooks","3.packages\u002F6.python\u002F10.webhooks",{"title":161,"path":357,"stem":358},"\u002Fpackages\u002Fpython\u002Fwebhookendpoints","3.packages\u002F6.python\u002F11.webhookendpoints",{"title":280,"path":360,"stem":361},"\u002Fpackages\u002Fpython\u002Fapi","3.packages\u002F6.python\u002F12.api",{"title":363,"path":364,"stem":365},"Development","\u002Fpackages\u002Fpython\u002Fdevelopment","3.packages\u002F6.python\u002F13.development",{"title":367,"path":368,"stem":369,"children":370,"page":61},"Python Fluent","\u002Fpackages\u002Ffluent-python","3.packages\u002F7.fluent-python",[371,374,377,380,383,386,389,392,395,398,401,405],{"title":128,"path":372,"stem":373},"\u002Fpackages\u002Ffluent-python\u002Freadme","3.packages\u002F7.fluent-python\u002F00.readme",{"title":173,"path":375,"stem":376},"\u002Fpackages\u002Ffluent-python\u002Fconfiguration","3.packages\u002F7.fluent-python\u002F01.configuration",{"title":177,"path":378,"stem":379},"\u002Fpackages\u002Ffluent-python\u002Fcoreconcepts","3.packages\u002F7.fluent-python\u002F02.coreconcepts",{"title":68,"path":381,"stem":382},"\u002Fpackages\u002Ffluent-python\u002Fcustomers","3.packages\u002F7.fluent-python\u002F03.customers",{"title":80,"path":384,"stem":385},"\u002Fpackages\u002Ffluent-python\u002Fcheckouts","3.packages\u002F7.fluent-python\u002F04.checkouts",{"title":88,"path":387,"stem":388},"\u002Fpackages\u002Ffluent-python\u002Fsubscriptions","3.packages\u002F7.fluent-python\u002F05.subscriptions",{"title":96,"path":390,"stem":391},"\u002Fpackages\u002Ffluent-python\u002Forders","3.packages\u002F7.fluent-python\u002F06.orders",{"title":193,"path":393,"stem":394},"\u002Fpackages\u002Ffluent-python\u002Fcustomerportal","3.packages\u002F7.fluent-python\u002F07.customerportal",{"title":50,"path":396,"stem":397},"\u002Fpackages\u002Ffluent-python\u002Fwebhooks","3.packages\u002F7.fluent-python\u002F08.webhooks",{"title":58,"path":399,"stem":400},"\u002Fpackages\u002Ffluent-python\u002Ftesting","3.packages\u002F7.fluent-python\u002F11.testing",{"title":402,"path":403,"stem":404},"Porting","\u002Fpackages\u002Ffluent-python\u002Fporting","3.packages\u002F7.fluent-python\u002F12.porting",{"title":363,"path":406,"stem":407},"\u002Fpackages\u002Ffluent-python\u002Fdevelopment","3.packages\u002F7.fluent-python\u002F13.development",{"title":409,"path":410,"stem":411,"children":412,"page":61},"Django","\u002Fpackages\u002Fdjango","3.packages\u002F8.django",[413,416,420,423,427,431,434,437,440,444,447],{"title":128,"path":414,"stem":415},"\u002Fpackages\u002Fdjango\u002Freadme","3.packages\u002F8.django\u002F00.readme",{"title":417,"path":418,"stem":419},"Installation","\u002Fpackages\u002Fdjango\u002Finstallation","3.packages\u002F8.django\u002F01.installation",{"title":173,"path":421,"stem":422},"\u002Fpackages\u002Fdjango\u002Fconfiguration","3.packages\u002F8.django\u002F02.configuration",{"title":424,"path":425,"stem":426},"Billable models","\u002Fpackages\u002Fdjango\u002Fbillablemodels","3.packages\u002F8.django\u002F03.billablemodels",{"title":428,"path":429,"stem":430},"Checkout","\u002Fpackages\u002Fdjango\u002Fcheckout","3.packages\u002F8.django\u002F04.checkout",{"title":88,"path":432,"stem":433},"\u002Fpackages\u002Fdjango\u002Fbilling","3.packages\u002F8.django\u002F05.billing",{"title":193,"path":435,"stem":436},"\u002Fpackages\u002Fdjango\u002Fcustomerportal","3.packages\u002F8.django\u002F06.customerportal",{"title":50,"path":438,"stem":439},"\u002Fpackages\u002Fdjango\u002Fwebhooks","3.packages\u002F8.django\u002F07.webhooks",{"title":441,"path":442,"stem":443},"Admin","\u002Fpackages\u002Fdjango\u002Fadmin","3.packages\u002F8.django\u002F08.admin",{"title":58,"path":445,"stem":446},"\u002Fpackages\u002Fdjango\u002Ftesting","3.packages\u002F8.django\u002F09.testing",{"title":363,"path":448,"stem":449},"\u002Fpackages\u002Fdjango\u002Fdevelopment","3.packages\u002F8.django\u002F10.development",{"title":451,"path":452,"stem":453,"children":454},"Integrations","\u002Fintegrations","4.integrations",[455,457,461],{"title":451,"path":452,"stem":456},"4.integrations\u002Findex",{"title":458,"path":459,"stem":460},"Lovable payments with Vatly","\u002Fintegrations\u002Flovable","4.integrations\u002F1.lovable",{"title":462,"path":463,"stem":464},"Bolt payments with Vatly","\u002Fintegrations\u002Fbolt","4.integrations\u002F2.bolt",{"id":466,"title":80,"body":467,"description":1111,"extension":1112,"links":1113,"meta":1114,"navigation":1115,"path":301,"seo":1116,"stem":302,"__hash__":1117},"docs\u002F3.packages\u002F5.fluent-js\u002F04.checkouts.md",{"type":468,"value":469,"toc":1106},"minimark",[470,479,484,815,834,838,1027,1043,1047,1065,1071,1084,1102],[471,472,473,474,478],"p",{},"Create a hosted payment page, then redirect the customer to ",[475,476,477],"code",{},"checkout.getUrl()",".",[480,481,483],"h2",{"id":482},"one-off-or-mixed-purchases","One-off or mixed purchases",[485,486,491],"pre",{"className":487,"code":488,"language":489,"meta":490,"style":490},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import type { Vatly } from '@getvatly\u002Ffluent';\n\nexport async function buyProduct(\n  vatly: Vatly, customerId: string, productId: string, purchaseId: string,\n) {\n  const checkout = await vatly.checkoutBuilder({ vatlyId: customerId })\n    .withItems([{ id: productId, quantity: 2 }])\n    .withMetadata({ purchaseId })\n    .withLocale('en_US')\n    .create({}, { idempotencyKey: `checkout:${purchaseId}` });\n  return { id: checkout.id, url: checkout.getUrl() };\n}\n","ts","",[475,492,493,532,539,559,604,613,655,692,710,729,770,809],{"__ignoreMap":490},[494,495,498,502,505,509,513,516,519,522,526,529],"span",{"class":496,"line":497},"line",1,[494,499,501],{"class":500},"s7zQu","import",[494,503,504],{"class":500}," type",[494,506,508],{"class":507},"sMK4o"," {",[494,510,512],{"class":511},"sTEyZ"," Vatly",[494,514,515],{"class":507}," }",[494,517,518],{"class":500}," from",[494,520,521],{"class":507}," '",[494,523,525],{"class":524},"sfazB","@getvatly\u002Ffluent",[494,527,528],{"class":507},"'",[494,530,531],{"class":507},";\n",[494,533,535],{"class":496,"line":534},2,[494,536,538],{"emptyLinePlaceholder":537},true,"\n",[494,540,542,545,549,552,556],{"class":496,"line":541},3,[494,543,544],{"class":500},"export",[494,546,548],{"class":547},"spNyl"," async",[494,550,551],{"class":547}," function",[494,553,555],{"class":554},"s2Zo4"," buyProduct",[494,557,558],{"class":507},"(\n",[494,560,562,566,569,572,575,578,580,583,585,588,590,592,594,597,599,601],{"class":496,"line":561},4,[494,563,565],{"class":564},"sHdIc","  vatly",[494,567,568],{"class":507},":",[494,570,512],{"class":571},"sBMFI",[494,573,574],{"class":507},",",[494,576,577],{"class":564}," customerId",[494,579,568],{"class":507},[494,581,582],{"class":571}," string",[494,584,574],{"class":507},[494,586,587],{"class":564}," productId",[494,589,568],{"class":507},[494,591,582],{"class":571},[494,593,574],{"class":507},[494,595,596],{"class":564}," purchaseId",[494,598,568],{"class":507},[494,600,582],{"class":571},[494,602,603],{"class":507},",\n",[494,605,607,610],{"class":496,"line":606},5,[494,608,609],{"class":507},")",[494,611,612],{"class":507}," {\n",[494,614,616,619,622,625,628,631,633,636,640,643,646,648,650,652],{"class":496,"line":615},6,[494,617,618],{"class":547},"  const",[494,620,621],{"class":511}," checkout",[494,623,624],{"class":507}," =",[494,626,627],{"class":500}," await",[494,629,630],{"class":511}," vatly",[494,632,478],{"class":507},[494,634,635],{"class":554},"checkoutBuilder",[494,637,639],{"class":638},"swJcz","(",[494,641,642],{"class":507},"{",[494,644,645],{"class":638}," vatlyId",[494,647,568],{"class":507},[494,649,577],{"class":511},[494,651,515],{"class":507},[494,653,654],{"class":638},")\n",[494,656,658,661,664,667,669,672,674,676,678,681,683,687,689],{"class":496,"line":657},7,[494,659,660],{"class":507},"    .",[494,662,663],{"class":554},"withItems",[494,665,666],{"class":638},"([",[494,668,642],{"class":507},[494,670,671],{"class":638}," id",[494,673,568],{"class":507},[494,675,587],{"class":511},[494,677,574],{"class":507},[494,679,680],{"class":638}," quantity",[494,682,568],{"class":507},[494,684,686],{"class":685},"sbssI"," 2",[494,688,515],{"class":507},[494,690,691],{"class":638},"])\n",[494,693,695,697,700,702,704,706,708],{"class":496,"line":694},8,[494,696,660],{"class":507},[494,698,699],{"class":554},"withMetadata",[494,701,639],{"class":638},[494,703,642],{"class":507},[494,705,596],{"class":511},[494,707,515],{"class":507},[494,709,654],{"class":638},[494,711,713,715,718,720,722,725,727],{"class":496,"line":712},9,[494,714,660],{"class":507},[494,716,717],{"class":554},"withLocale",[494,719,639],{"class":638},[494,721,528],{"class":507},[494,723,724],{"class":524},"en_US",[494,726,528],{"class":507},[494,728,654],{"class":638},[494,730,732,734,737,739,742,744,747,749,752,755,758,761,764,766,768],{"class":496,"line":731},10,[494,733,660],{"class":507},[494,735,736],{"class":554},"create",[494,738,639],{"class":638},[494,740,741],{"class":507},"{},",[494,743,508],{"class":507},[494,745,746],{"class":638}," idempotencyKey",[494,748,568],{"class":507},[494,750,751],{"class":507}," `",[494,753,754],{"class":524},"checkout:",[494,756,757],{"class":507},"${",[494,759,760],{"class":511},"purchaseId",[494,762,763],{"class":507},"}`",[494,765,515],{"class":507},[494,767,609],{"class":638},[494,769,531],{"class":507},[494,771,773,776,778,780,782,784,786,789,791,794,796,798,800,803,806],{"class":496,"line":772},11,[494,774,775],{"class":500},"  return",[494,777,508],{"class":507},[494,779,671],{"class":638},[494,781,568],{"class":507},[494,783,621],{"class":511},[494,785,478],{"class":507},[494,787,788],{"class":511},"id",[494,790,574],{"class":507},[494,792,793],{"class":638}," url",[494,795,568],{"class":507},[494,797,621],{"class":511},[494,799,478],{"class":507},[494,801,802],{"class":554},"getUrl",[494,804,805],{"class":638},"() ",[494,807,808],{"class":507},"};\n",[494,810,812],{"class":496,"line":811},12,[494,813,814],{"class":507},"}\n",[471,816,817,818,822,823,826,827,830,831,833],{},"Set both redirect URLs in ",[819,820,821],"a",{"href":292},"configuration",", or use\n",[475,824,825],{},"withRedirectUrlSuccess(url)"," and ",[475,828,829],{},"withRedirectUrlCanceled(url)"," on the builder.\n",[475,832,663],{}," appends items and supports mixed carts.",[480,835,837],{"id":836},"subscription-checkout","Subscription checkout",[485,839,841],{"className":487,"code":840,"language":489,"meta":490,"style":490},"import type { Vatly } from '@getvatly\u002Ffluent';\n\nexport async function startSubscription(\n  vatly: Vatly, customerId: string, planId: string, purchaseId: string,\n) {\n  return vatly.subscribe({ vatlyId: customerId })\n    .toPlan(planId)\n    .withQuantity(3)\n    .withTrialDays(14)\n    .create({}, { idempotencyKey: `subscribe:${purchaseId}` });\n}\n",[475,842,843,865,869,882,917,923,948,962,976,990,1023],{"__ignoreMap":490},[494,844,845,847,849,851,853,855,857,859,861,863],{"class":496,"line":497},[494,846,501],{"class":500},[494,848,504],{"class":500},[494,850,508],{"class":507},[494,852,512],{"class":511},[494,854,515],{"class":507},[494,856,518],{"class":500},[494,858,521],{"class":507},[494,860,525],{"class":524},[494,862,528],{"class":507},[494,864,531],{"class":507},[494,866,867],{"class":496,"line":534},[494,868,538],{"emptyLinePlaceholder":537},[494,870,871,873,875,877,880],{"class":496,"line":541},[494,872,544],{"class":500},[494,874,548],{"class":547},[494,876,551],{"class":547},[494,878,879],{"class":554}," startSubscription",[494,881,558],{"class":507},[494,883,884,886,888,890,892,894,896,898,900,903,905,907,909,911,913,915],{"class":496,"line":561},[494,885,565],{"class":564},[494,887,568],{"class":507},[494,889,512],{"class":571},[494,891,574],{"class":507},[494,893,577],{"class":564},[494,895,568],{"class":507},[494,897,582],{"class":571},[494,899,574],{"class":507},[494,901,902],{"class":564}," planId",[494,904,568],{"class":507},[494,906,582],{"class":571},[494,908,574],{"class":507},[494,910,596],{"class":564},[494,912,568],{"class":507},[494,914,582],{"class":571},[494,916,603],{"class":507},[494,918,919,921],{"class":496,"line":606},[494,920,609],{"class":507},[494,922,612],{"class":507},[494,924,925,927,929,931,934,936,938,940,942,944,946],{"class":496,"line":615},[494,926,775],{"class":500},[494,928,630],{"class":511},[494,930,478],{"class":507},[494,932,933],{"class":554},"subscribe",[494,935,639],{"class":638},[494,937,642],{"class":507},[494,939,645],{"class":638},[494,941,568],{"class":507},[494,943,577],{"class":511},[494,945,515],{"class":507},[494,947,654],{"class":638},[494,949,950,952,955,957,960],{"class":496,"line":657},[494,951,660],{"class":507},[494,953,954],{"class":554},"toPlan",[494,956,639],{"class":638},[494,958,959],{"class":511},"planId",[494,961,654],{"class":638},[494,963,964,966,969,971,974],{"class":496,"line":694},[494,965,660],{"class":507},[494,967,968],{"class":554},"withQuantity",[494,970,639],{"class":638},[494,972,973],{"class":685},"3",[494,975,654],{"class":638},[494,977,978,980,983,985,988],{"class":496,"line":712},[494,979,660],{"class":507},[494,981,982],{"class":554},"withTrialDays",[494,984,639],{"class":638},[494,986,987],{"class":685},"14",[494,989,654],{"class":638},[494,991,992,994,996,998,1000,1002,1004,1006,1008,1011,1013,1015,1017,1019,1021],{"class":496,"line":731},[494,993,660],{"class":507},[494,995,736],{"class":554},[494,997,639],{"class":638},[494,999,741],{"class":507},[494,1001,508],{"class":507},[494,1003,746],{"class":638},[494,1005,568],{"class":507},[494,1007,751],{"class":507},[494,1009,1010],{"class":524},"subscribe:",[494,1012,757],{"class":507},[494,1014,760],{"class":511},[494,1016,763],{"class":507},[494,1018,515],{"class":507},[494,1020,609],{"class":638},[494,1022,531],{"class":507},[494,1024,1025],{"class":496,"line":772},[494,1026,814],{"class":507},[471,1028,1029,1031,1032,1035,1036,1038,1039,1042],{},[475,1030,933],{}," makes no request until ",[475,1033,1034],{},"create()",", which creates a checkout, not a\nsubscription. The subscription builder uses one plan; use ",[475,1037,635],{}," for\nmixed carts. Quantity and trial days must be positive safe integers. Omit trial\nmethods for no trial, or use ",[475,1040,1041],{},"withTrialEndsAt(date)"," to round up to whole days.",[480,1044,1046],{"id":1045},"payloads-and-retries","Payloads and retries",[471,1048,1049,1050,1053,1054,1057,1058,1061,1062,478],{},"Use a new builder per purchase. ",[475,1051,1052],{},"payload(overrides?)"," returns a detached request\nsnapshot without calling the API. ",[475,1055,1056],{},"create(overrides?, requestOptions?)"," returns the\nSDK checkout plus ",[475,1059,1060],{},"getUrl()",". On plain SDK checkouts, read ",[475,1063,1064],{},"links.checkoutUrl.href",[471,1066,1067,1068,1070],{},"Persist the purchase ID before calling ",[475,1069,1034],{},". Reuse its idempotency key on\nretries; use a new key for a new purchase. Validate customer, product, price, and\nredirect overrides on the server rather than passing browser input through.",[471,1072,1073,826,1076,1079,1080,1083],{},[475,1074,1075],{},"inTestmode()",[475,1077,1078],{},"inLiveMode()"," check the API key's mode; they do not change it.\nFor a known customer, ",[819,1081,1082],{"href":298},"create or bind them first"," and authorize their\nID. An email-only profile does not create a customer. Omit the profile for an\nanonymous checkout where the API supports it.",[471,1085,1086,1087,1090,1091,1097,1098,478],{},"Save the checkout ID. Confirm payment through ",[819,1088,1089],{"href":313},"webhooks",", not the return page.\nFor product and checkout fields, see the ",[819,1092,1096],{"href":1093,"rel":1094},"https:\u002F\u002Fdocs.vatly.com\u002Fapi-reference\u002Fcheckouts",[1095],"nofollow","Checkouts API reference","\nand ",[819,1099,92],{"href":1100,"rel":1101},"https:\u002F\u002Fdocs.vatly.com\u002Fapi-reference\u002Fsubscription-plans",[1095],[1103,1104,1105],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":490,"searchDepth":534,"depth":534,"links":1107},[1108,1109,1110],{"id":482,"depth":534,"text":483},{"id":836,"depth":534,"text":837},{"id":1045,"depth":534,"text":1046},"Create a hosted payment page, then redirect the customer to checkout.getUrl().","md",null,{},{"title":80},{"title":80,"description":1111},"zjIZ70mYZK0Ni3jPOH4IMB9R1elLw85IC9j1JOyZBKk",[1119,1121],{"title":68,"path":298,"stem":299,"description":1120,"children":-1},"Find or create a Vatly customer for your signed-in user.",{"title":88,"path":304,"stem":305,"description":1122,"children":-1},"Change an existing subscription with vatly.subscription(localRecord).",1794594930697]