[{"data":1,"prerenderedAt":1012},["ShallowReactive",2],{"navigation_docs":3,"-packages-fluent-js-readme":465,"-packages-fluent-js-readme-surround":1007},[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":284,"body":467,"description":1000,"extension":1001,"links":1002,"meta":1003,"navigation":1004,"path":289,"seo":1005,"stem":290,"__hash__":1006},"docs\u002F3.packages\u002F5.fluent-js\u002F00.readme.md",{"type":468,"value":469,"toc":996},"minimark",[470,480,488,519,524,527,854,862,871,874,977,992],[471,472,473],"blockquote",{},[474,475,476],"p",{},[477,478,479],"strong",{},"Alpha — under active development. Every alpha release may include breaking changes. Pin exact versions during alpha.",[474,481,482,483,487],{},"Create checkouts and manage billing with ",[484,485,486],"code",{},"@getvatly\u002Ffluent"," on your server.\nVatly is the European Merchant of Record for AI, software and digital products.\nInstall the tested alpha pair:",[489,490,495],"pre",{"className":491,"code":492,"language":493,"meta":494,"style":494},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install --save-exact @getvatly\u002Fsdk@0.3.0-alpha.4 @getvatly\u002Ffluent@0.1.0-alpha.2\n","sh","",[484,496,497],{"__ignoreMap":494},[498,499,502,506,510,513,516],"span",{"class":500,"line":501},"line",1,[498,503,505],{"class":504},"sBMFI","npm",[498,507,509],{"class":508},"sfazB"," install",[498,511,512],{"class":508}," --save-exact",[498,514,515],{"class":508}," @getvatly\u002Fsdk@0.3.0-alpha.4",[498,517,518],{"class":508}," @getvatly\u002Ffluent@0.1.0-alpha.2\n",[520,521,523],"h2",{"id":522},"start-a-subscription","Start a subscription",[474,525,526],{},"Use a customer and plan from the key's storefront and mode. Check that the\nsigned-in user owns the customer before calling this function:",[489,528,532],{"className":529,"code":530,"language":531,"meta":494,"style":494},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { VatlyClient } from '@getvatly\u002Fsdk';\nimport { Vatly } from '@getvatly\u002Ffluent';\n\nexport async function startSubscription(apiKey: string, customerId: string, planId: string) {\n  const vatly = new Vatly({\n    api: new VatlyClient({ apiKey }),\n    redirectUrlSuccess: 'https:\u002F\u002Fapp.example.com\u002Fbilling\u002Freturn',\n    redirectUrlCanceled: 'https:\u002F\u002Fapp.example.com\u002Fbilling\u002Fcanceled',\n  });\n  const checkout = await vatly.subscribe({ vatlyId: customerId })\n    .toPlan(planId)\n    .withQuantity(1)\n    .create();\n  return checkout.getUrl(); \u002F\u002F Redirect the customer's browser to this URL.\n}\n","ts",[484,533,534,566,588,595,650,673,700,717,734,744,781,797,813,826,848],{"__ignoreMap":494},[498,535,536,540,544,548,551,554,557,560,563],{"class":500,"line":501},[498,537,539],{"class":538},"s7zQu","import",[498,541,543],{"class":542},"sMK4o"," {",[498,545,547],{"class":546},"sTEyZ"," VatlyClient",[498,549,550],{"class":542}," }",[498,552,553],{"class":538}," from",[498,555,556],{"class":542}," '",[498,558,559],{"class":508},"@getvatly\u002Fsdk",[498,561,562],{"class":542},"'",[498,564,565],{"class":542},";\n",[498,567,569,571,573,576,578,580,582,584,586],{"class":500,"line":568},2,[498,570,539],{"class":538},[498,572,543],{"class":542},[498,574,575],{"class":546}," Vatly",[498,577,550],{"class":542},[498,579,553],{"class":538},[498,581,556],{"class":542},[498,583,486],{"class":508},[498,585,562],{"class":542},[498,587,565],{"class":542},[498,589,591],{"class":500,"line":590},3,[498,592,594],{"emptyLinePlaceholder":593},true,"\n",[498,596,598,601,605,608,612,615,619,622,625,628,631,633,635,637,640,642,644,647],{"class":500,"line":597},4,[498,599,600],{"class":538},"export",[498,602,604],{"class":603},"spNyl"," async",[498,606,607],{"class":603}," function",[498,609,611],{"class":610},"s2Zo4"," startSubscription",[498,613,614],{"class":542},"(",[498,616,618],{"class":617},"sHdIc","apiKey",[498,620,621],{"class":542},":",[498,623,624],{"class":504}," string",[498,626,627],{"class":542},",",[498,629,630],{"class":617}," customerId",[498,632,621],{"class":542},[498,634,624],{"class":504},[498,636,627],{"class":542},[498,638,639],{"class":617}," planId",[498,641,621],{"class":542},[498,643,624],{"class":504},[498,645,646],{"class":542},")",[498,648,649],{"class":542}," {\n",[498,651,653,656,659,662,665,667,670],{"class":500,"line":652},5,[498,654,655],{"class":603},"  const",[498,657,658],{"class":546}," vatly",[498,660,661],{"class":542}," =",[498,663,664],{"class":542}," new",[498,666,575],{"class":610},[498,668,614],{"class":669},"swJcz",[498,671,672],{"class":542},"{\n",[498,674,676,679,681,683,685,687,690,693,695,697],{"class":500,"line":675},6,[498,677,678],{"class":669},"    api",[498,680,621],{"class":542},[498,682,664],{"class":542},[498,684,547],{"class":610},[498,686,614],{"class":669},[498,688,689],{"class":542},"{",[498,691,692],{"class":546}," apiKey",[498,694,550],{"class":542},[498,696,646],{"class":669},[498,698,699],{"class":542},",\n",[498,701,703,706,708,710,713,715],{"class":500,"line":702},7,[498,704,705],{"class":669},"    redirectUrlSuccess",[498,707,621],{"class":542},[498,709,556],{"class":542},[498,711,712],{"class":508},"https:\u002F\u002Fapp.example.com\u002Fbilling\u002Freturn",[498,714,562],{"class":542},[498,716,699],{"class":542},[498,718,720,723,725,727,730,732],{"class":500,"line":719},8,[498,721,722],{"class":669},"    redirectUrlCanceled",[498,724,621],{"class":542},[498,726,556],{"class":542},[498,728,729],{"class":508},"https:\u002F\u002Fapp.example.com\u002Fbilling\u002Fcanceled",[498,731,562],{"class":542},[498,733,699],{"class":542},[498,735,737,740,742],{"class":500,"line":736},9,[498,738,739],{"class":542},"  }",[498,741,646],{"class":669},[498,743,565],{"class":542},[498,745,747,749,752,754,757,759,762,765,767,769,772,774,776,778],{"class":500,"line":746},10,[498,748,655],{"class":603},[498,750,751],{"class":546}," checkout",[498,753,661],{"class":542},[498,755,756],{"class":538}," await",[498,758,658],{"class":546},[498,760,761],{"class":542},".",[498,763,764],{"class":610},"subscribe",[498,766,614],{"class":669},[498,768,689],{"class":542},[498,770,771],{"class":669}," vatlyId",[498,773,621],{"class":542},[498,775,630],{"class":546},[498,777,550],{"class":542},[498,779,780],{"class":669},")\n",[498,782,784,787,790,792,795],{"class":500,"line":783},11,[498,785,786],{"class":542},"    .",[498,788,789],{"class":610},"toPlan",[498,791,614],{"class":669},[498,793,794],{"class":546},"planId",[498,796,780],{"class":669},[498,798,800,802,805,807,811],{"class":500,"line":799},12,[498,801,786],{"class":542},[498,803,804],{"class":610},"withQuantity",[498,806,614],{"class":669},[498,808,810],{"class":809},"sbssI","1",[498,812,780],{"class":669},[498,814,816,818,821,824],{"class":500,"line":815},13,[498,817,786],{"class":542},[498,819,820],{"class":610},"create",[498,822,823],{"class":669},"()",[498,825,565],{"class":542},[498,827,829,832,834,836,839,841,844],{"class":500,"line":828},14,[498,830,831],{"class":538},"  return",[498,833,751],{"class":546},[498,835,761],{"class":542},[498,837,838],{"class":610},"getUrl",[498,840,823],{"class":669},[498,842,843],{"class":542},";",[498,845,847],{"class":846},"sHwdD"," \u002F\u002F Redirect the customer's browser to this URL.\n",[498,849,851],{"class":500,"line":850},15,[498,852,853],{"class":542},"}\n",[474,855,856,857,861],{},"Redirect to the returned URL. Use ",[858,859,860],"a",{"href":313},"webhooks"," to confirm payment,\nnot the return page.",[474,863,864,865,761],{},"For one-off purchases, use ",[858,866,868],{"href":867},"\u002Fpackages\u002Ffluent-js\u002Fcheckouts#one-off-or-mixed-purchases",[484,869,870],{},"checkoutBuilder",[520,872,9],{"id":873},"guides",[875,876,877,890],"table",{},[878,879,880],"thead",{},[881,882,883,887],"tr",{},[884,885,886],"th",{},"Task",[884,888,889],{},"Guide",[891,892,893,903,913,923,932,941,950,959,968],"tbody",{},[881,894,895,899],{},[896,897,898],"td",{},"Set keys, redirects, and error handling",[896,900,901],{},[858,902,173],{"href":292},[881,904,905,908],{},[896,906,907],{},"Connect your database",[896,909,910],{},[858,911,912],{"href":295},"Core concepts and storage",[881,914,915,918],{},[896,916,917],{},"Link customers to your users",[896,919,920],{},[858,921,922],{"href":298},"Customers and bindings",[881,924,925,928],{},[896,926,927],{},"Sell products or start subscriptions",[896,929,930],{},[858,931,80],{"href":301},[881,933,934,937],{},[896,935,936],{},"Swap, cancel, resume, or update billing",[896,938,939],{},[858,940,88],{"href":304},[881,942,943,946],{},[896,944,945],{},"Open invoice history and billing controls",[896,947,948],{},[858,949,193],{"href":310},[881,951,952,955],{},[896,953,954],{},"Verify and process events",[896,956,957],{},[858,958,50],{"href":313},[881,960,961,964],{},[896,962,963],{},"Read invoices, lines, and reversals",[896,965,966],{},[858,967,96],{"href":307},[881,969,970,973],{},[896,971,972],{},"Test your integration",[896,974,975],{},[858,976,58],{"href":316},[474,978,979,980,985,986,991],{},"For field details, see the ",[858,981,280],{"href":982,"rel":983},"https:\u002F\u002Fdocs.vatly.com\u002Fapi-reference",[984],"nofollow",".\nThe ",[858,987,990],{"href":988,"rel":989},"https:\u002F\u002Fdocs.vatly.com\u002Fopenapi.yaml",[984],"OpenAPI spec"," is also available for tooling.",[993,994,995],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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);}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 .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 .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 pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":494,"searchDepth":568,"depth":568,"links":997},[998,999],{"id":522,"depth":568,"text":523},{"id":873,"depth":568,"text":9},"Create checkouts and manage billing with @getvatly\u002Ffluent on your server.","md",null,{},{"title":128},{"title":284,"description":1000},"lbOW308Yi9Z4VVwQzOAcjxhMmMJ-_HSuXktVVfwF73c",[1008,1010],{"title":280,"path":281,"stem":282,"description":1009,"children":-1},"Import VatlyClient from @getvatly\u002Fsdk.",{"title":173,"path":292,"stem":293,"description":1011,"children":-1},"Fluent 0.1.0-alpha.2 requires SDK 0.3.0-alpha.4.",1794594924072]