[{"data":1,"prerenderedAt":738},["ShallowReactive",2],{"navigation":3,"\u002Fintegrations\u002Fstripe":178,"\u002Fintegrations\u002Fstripe-surround":733},[4,23,78,95,123,143,158],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",false,{"title":24,"icon":22,"path":25,"stem":26,"children":27,"page":22},"Sign-in","\u002Fsign-in","2.sign-in",[28,33,38,43,48,53,58,63,68,73],{"title":29,"path":30,"stem":31,"icon":32},"Sign-in pages","\u002Fsign-in\u002Fpages","2.sign-in\u002F1.pages","i-lucide-log-in",{"title":34,"path":35,"stem":36,"icon":37},"Several accounts","\u002Fsign-in\u002Fmulti-session","2.sign-in\u002F10.multi-session","i-lucide-users-round",{"title":39,"path":40,"stem":41,"icon":42},"Account page","\u002Fsign-in\u002Faccount","2.sign-in\u002F2.account","i-lucide-circle-user",{"title":44,"path":45,"stem":46,"icon":47},"Other methods","\u002Fsign-in\u002Fmethods","2.sign-in\u002F3.methods","i-lucide-key-square",{"title":49,"path":50,"stem":51,"icon":52},"Sign-in providers","\u002Fsign-in\u002Fproviders","2.sign-in\u002F4.providers","i-lucide-share-2",{"title":54,"path":55,"stem":56,"icon":57},"Two-factor","\u002Fsign-in\u002Ftwo-factor","2.sign-in\u002F5.two-factor","i-lucide-shield-check",{"title":59,"path":60,"stem":61,"icon":62},"Passkeys","\u002Fsign-in\u002Fpasskeys","2.sign-in\u002F6.passkeys","i-lucide-fingerprint",{"title":64,"path":65,"stem":66,"icon":67},"Phone numbers","\u002Fsign-in\u002Fphone-numbers","2.sign-in\u002F7.phone-numbers","i-lucide-smartphone",{"title":69,"path":70,"stem":71,"icon":72},"Signing in devices","\u002Fsign-in\u002Fdevices","2.sign-in\u002F8.devices","i-lucide-tv",{"title":74,"path":75,"stem":76,"icon":77},"Security","\u002Fsign-in\u002Fsecurity","2.sign-in\u002F9.security","i-lucide-lock-keyhole",{"title":79,"path":80,"stem":81,"children":82,"icon":22},"Organizations","\u002Forganizations","3.organizations\u002F1.index",[83,85,90],{"title":79,"path":80,"stem":81,"icon":84},"i-lucide-building-2",{"title":86,"path":87,"stem":88,"icon":89},"Roles","\u002Forganizations\u002Froles","3.organizations\u002F2.roles","i-lucide-shield",{"title":91,"path":92,"stem":93,"icon":94},"Single sign-on","\u002Forganizations\u002Fsso","3.organizations\u002F3.sso","i-lucide-key-round",{"title":96,"path":97,"stem":98,"children":99,"icon":22},"Admin dashboard","\u002Fadmin","4.admin\u002F1.index",[100,103,108,113,118],{"title":101,"path":97,"stem":98,"icon":102},"Overview","i-lucide-layout-dashboard",{"title":104,"path":105,"stem":106,"icon":107},"Managing users","\u002Fadmin\u002Fusers","4.admin\u002F2.users","i-lucide-user-cog",{"title":109,"path":110,"stem":111,"icon":112},"Staff roles","\u002Fadmin\u002Froles","4.admin\u002F3.roles","i-lucide-shield-user",{"title":114,"path":115,"stem":116,"icon":117},"Audit log","\u002Fadmin\u002Faudit-log","4.admin\u002F4.audit-log","i-lucide-history",{"title":119,"path":120,"stem":121,"icon":122},"Your own pages","\u002Fadmin\u002Fextending","4.admin\u002F5.extending","i-lucide-layout-panel-left",{"title":124,"icon":22,"path":125,"stem":126,"children":127,"page":22},"Integrations","\u002Fintegrations","5.integrations",[128,133,138],{"title":129,"path":130,"stem":131,"icon":132},"Stripe","\u002Fintegrations\u002Fstripe","5.integrations\u002F1.stripe","i-simple-icons-stripe",{"title":134,"path":135,"stem":136,"icon":137},"API keys","\u002Fintegrations\u002Fapi-keys","5.integrations\u002F2.api-keys","i-lucide-key",{"title":139,"path":140,"stem":141,"icon":142},"Tokens","\u002Fintegrations\u002Ftokens","5.integrations\u002F3.tokens","i-lucide-ticket",{"title":144,"icon":22,"path":145,"stem":146,"children":147,"page":22},"Customization","\u002Fcustomization","6.customization",[148,153],{"title":149,"path":150,"stem":151,"icon":152},"Emails","\u002Fcustomization\u002Femails","6.customization\u002F1.emails","i-lucide-mail",{"title":154,"path":155,"stem":156,"icon":157},"Languages","\u002Fcustomization\u002Flanguages","6.customization\u002F2.languages","i-lucide-languages",{"title":159,"icon":22,"path":160,"stem":161,"children":162,"page":22},"Reference","\u002Freference","7.reference",[163,168,173],{"title":164,"path":165,"stem":166,"icon":167},"How it works","\u002Freference\u002Fhow-it-works","7.reference\u002F1.how-it-works","i-lucide-cog",{"title":169,"path":170,"stem":171,"icon":172},"API reference","\u002Freference\u002Fapi","7.reference\u002F2.api","i-lucide-braces",{"title":174,"path":175,"stem":176,"icon":177},"Contributing","\u002Freference\u002Fcontributing","7.reference\u002F3.contributing","i-lucide-git-pull-request",{"id":179,"title":180,"body":181,"description":726,"extension":727,"links":728,"meta":729,"navigation":730,"path":130,"seo":731,"stem":131,"__hash__":732},"docs\u002F5.integrations\u002F1.stripe.md","Subscriptions with Stripe",{"type":182,"value":183,"toc":719},"minimark",[184,189,201,206,608,612,620,634,638,641,645,700,704,715],[185,186],"screenshot",{"alt":187,"name":188},"The account page's billing tab: the current plan, and the plans to choose from","account-billing",[190,191,192,193,200],"p",{},"Better Auth's ",[194,195,199],"a",{"href":196,"rel":197},"https:\u002F\u002Fbetter-auth.com\u002Fdocs\u002Fplugins\u002Fstripe",[198],"nofollow","Stripe plugin",".",[202,203,205],"h2",{"id":204},"turning-it-on","Turning it on",[207,208,210,215,245,249,519,523,550,555,559,566,590,593,597],"steps",{"level":209},"3",[211,212,214],"h3",{"id":213},"install-the-packages","Install the packages",[216,217,223],"pre",{"className":218,"code":219,"filename":220,"language":221,"meta":222,"style":222},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @better-auth\u002Fstripe stripe\n","Terminal","bash","",[224,225,226],"code",{"__ignoreMap":222},[227,228,231,235,239,242],"span",{"class":229,"line":230},"line",1,[227,232,234],{"class":233},"sBMFI","pnpm",[227,236,238],{"class":237},"sfazB"," add",[227,240,241],{"class":237}," @better-auth\u002Fstripe",[227,243,244],{"class":237}," stripe\n",[211,246,248],{"id":247},"add-your-plans","Add your plans",[216,250,255],{"className":251,"code":252,"filename":253,"language":254,"meta":222,"style":222},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  betterAuthUi: {\n    stripe: {\n      enabled: true,\n      plans: [\n        { name: 'basic', priceId: 'price_…', limits: { projects: 5 } },\n        {\n          name: 'pro',\n          priceId: 'price_…',\n          annualDiscountPriceId: 'price_…', \u002F\u002F offers \"Pay yearly\"\n          limits: { projects: 50 },\n          freeTrial: { days: 14 }\n        }\n      ]\n    }\n  }\n})\n","nuxt.config.ts","ts",[224,256,257,278,291,301,316,327,387,393,410,426,446,465,486,492,498,504,510],{"__ignoreMap":222},[227,258,259,263,266,270,274],{"class":229,"line":230},[227,260,262],{"class":261},"s7zQu","export",[227,264,265],{"class":261}," default",[227,267,269],{"class":268},"s2Zo4"," defineNuxtConfig",[227,271,273],{"class":272},"sTEyZ","(",[227,275,277],{"class":276},"sMK4o","{\n",[227,279,281,285,288],{"class":229,"line":280},2,[227,282,284],{"class":283},"swJcz","  betterAuthUi",[227,286,287],{"class":276},":",[227,289,290],{"class":276}," {\n",[227,292,294,297,299],{"class":229,"line":293},3,[227,295,296],{"class":283},"    stripe",[227,298,287],{"class":276},[227,300,290],{"class":276},[227,302,304,307,309,313],{"class":229,"line":303},4,[227,305,306],{"class":283},"      enabled",[227,308,287],{"class":276},[227,310,312],{"class":311},"sfNiH"," true",[227,314,315],{"class":276},",\n",[227,317,319,322,324],{"class":229,"line":318},5,[227,320,321],{"class":283},"      plans",[227,323,287],{"class":276},[227,325,326],{"class":272}," [\n",[227,328,330,333,336,338,341,344,347,350,353,355,357,360,362,364,367,369,372,375,377,381,384],{"class":229,"line":329},6,[227,331,332],{"class":276},"        {",[227,334,335],{"class":283}," name",[227,337,287],{"class":276},[227,339,340],{"class":276}," '",[227,342,343],{"class":237},"basic",[227,345,346],{"class":276},"'",[227,348,349],{"class":276},",",[227,351,352],{"class":283}," priceId",[227,354,287],{"class":276},[227,356,340],{"class":276},[227,358,359],{"class":237},"price_…",[227,361,346],{"class":276},[227,363,349],{"class":276},[227,365,366],{"class":283}," limits",[227,368,287],{"class":276},[227,370,371],{"class":276}," {",[227,373,374],{"class":283}," projects",[227,376,287],{"class":276},[227,378,380],{"class":379},"sbssI"," 5",[227,382,383],{"class":276}," }",[227,385,386],{"class":276}," },\n",[227,388,390],{"class":229,"line":389},7,[227,391,392],{"class":276},"        {\n",[227,394,396,399,401,403,406,408],{"class":229,"line":395},8,[227,397,398],{"class":283},"          name",[227,400,287],{"class":276},[227,402,340],{"class":276},[227,404,405],{"class":237},"pro",[227,407,346],{"class":276},[227,409,315],{"class":276},[227,411,413,416,418,420,422,424],{"class":229,"line":412},9,[227,414,415],{"class":283},"          priceId",[227,417,287],{"class":276},[227,419,340],{"class":276},[227,421,359],{"class":237},[227,423,346],{"class":276},[227,425,315],{"class":276},[227,427,429,432,434,436,438,440,442],{"class":229,"line":428},10,[227,430,431],{"class":283},"          annualDiscountPriceId",[227,433,287],{"class":276},[227,435,340],{"class":276},[227,437,359],{"class":237},[227,439,346],{"class":276},[227,441,349],{"class":276},[227,443,445],{"class":444},"sHwdD"," \u002F\u002F offers \"Pay yearly\"\n",[227,447,449,452,454,456,458,460,463],{"class":229,"line":448},11,[227,450,451],{"class":283},"          limits",[227,453,287],{"class":276},[227,455,371],{"class":276},[227,457,374],{"class":283},[227,459,287],{"class":276},[227,461,462],{"class":379}," 50",[227,464,386],{"class":276},[227,466,468,471,473,475,478,480,483],{"class":229,"line":467},12,[227,469,470],{"class":283},"          freeTrial",[227,472,287],{"class":276},[227,474,371],{"class":276},[227,476,477],{"class":283}," days",[227,479,287],{"class":276},[227,481,482],{"class":379}," 14",[227,484,485],{"class":276}," }\n",[227,487,489],{"class":229,"line":488},13,[227,490,491],{"class":276},"        }\n",[227,493,495],{"class":229,"line":494},14,[227,496,497],{"class":272},"      ]\n",[227,499,501],{"class":229,"line":500},15,[227,502,503],{"class":276},"    }\n",[227,505,507],{"class":229,"line":506},16,[227,508,509],{"class":276},"  }\n",[227,511,513,516],{"class":229,"line":512},17,[227,514,515],{"class":276},"}",[227,517,518],{"class":272},")\n",[211,520,522],{"id":521},"set-your-stripe-keys-in-the-environment","Set your Stripe keys in the environment",[216,524,527],{"className":218,"code":525,"filename":526,"language":221,"meta":222,"style":222},"STRIPE_SECRET_KEY=sk_…\nSTRIPE_WEBHOOK_SECRET=whsec_…\n",".env",[224,528,529,540],{"__ignoreMap":222},[227,530,531,534,537],{"class":229,"line":230},[227,532,533],{"class":272},"STRIPE_SECRET_KEY",[227,535,536],{"class":276},"=",[227,538,539],{"class":237},"sk_…\n",[227,541,542,545,547],{"class":229,"line":280},[227,543,544],{"class":272},"STRIPE_WEBHOOK_SECRET",[227,546,536],{"class":276},[227,548,549],{"class":237},"whsec_…\n",[190,551,552,553,200],{},"They're read at runtime, never from ",[224,554,253],{},[211,556,558],{"id":557},"point-a-stripe-webhook-at-your-app","Point a Stripe webhook at your app",[190,560,561,562,565],{},"In Stripe's dashboard, add a webhook to ",[224,563,564],{},"https:\u002F\u002Fyour-site\u002Fapi\u002Fauth\u002Fstripe\u002Fwebhook"," with these events:",[567,568,569,575,580,585],"ul",{},[570,571,572],"li",{},[224,573,574],{},"checkout.session.completed",[570,576,577],{},[224,578,579],{},"customer.subscription.created",[570,581,582],{},[224,583,584],{},"customer.subscription.updated",[570,586,587],{},[224,588,589],{},"customer.subscription.deleted",[190,591,592],{},"The webhook is Better Auth's; the module doesn't change it.",[211,594,596],{"id":595},"run-better-auths-migrations","Run Better Auth's migrations",[190,598,599,600,603,604,607],{},"The plugin adds a ",[224,601,602],{},"subscription"," table and a ",[224,605,606],{},"stripeCustomerId"," column on users.",[202,609,611],{"id":610},"what-people-get","What people get",[190,613,614,615,619],{},"A ",[616,617,618],"strong",{},"Billing"," tab on the account page:",[567,621,622,625,628,631],{},[570,623,624],{},"their current plan, active or on a free trial, and when it renews or ends;",[570,626,627],{},"the plans, with their limits and trials, to choose or switch to, through Stripe Checkout and back to the tab;",[570,629,630],{},"cancelling, through Stripe's billing portal, and resuming before it ends;",[570,632,633],{},"\"Invoices and payment\", which opens Stripe's billing portal.",[202,635,637],{"id":636},"in-the-admin","In the admin",[190,639,640],{},"Each user's subscriptions (plan, status, renewal) on their page, read-only: billing changes go through Stripe.",[202,642,644],{"id":643},"options","Options",[646,647,648,654,688,694],"field-group",{},[649,650],"field",{"name":651,"type":652,"default":653},"enabled","boolean","false",[649,655,658],{"name":656,"type":657},"plans","StripePlan[]",[190,659,660,661,664,665,668,669,672,673,676,677,315,680,683,684,687],{},"Your plans. Each has a ",[224,662,663],{},"name",", a ",[224,666,667],{},"priceId"," (or ",[224,670,671],{},"lookupKey","), and optionally ",[224,674,675],{},"annualDiscountPriceId",", ",[224,678,679],{},"limits",[224,681,682],{},"freeTrial: { days }"," and ",[224,685,686],{},"group"," (plans of the same group replace each other).",[649,689,691],{"name":690,"type":652,"default":653},"createCustomerOnSignUp",[190,692,693],{},"A Stripe customer for every new account, at sign-up. Otherwise one is made at the first checkout.",[649,695,697],{"name":696,"type":652,"default":653},"requireEmailVerification",[190,698,699],{},"Only users with a verified email can subscribe.",[202,701,703],{"id":702},"not-yet","Not yet",[567,705,706,709,712],{},[570,707,708],{},"A plan filter on the users list.",[570,710,711],{},"Giving a role while a plan is active: do it in Better Auth's subscription hooks for now.",[570,713,714],{},"Organization subscriptions.",[716,717,718],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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":222,"searchDepth":230,"depth":280,"links":720},[721,722,723,724,725],{"id":204,"depth":280,"text":205},{"id":610,"depth":280,"text":611},{"id":636,"depth":280,"text":637},{"id":643,"depth":280,"text":644},{"id":702,"depth":280,"text":703},"Plans, Checkout, the billing portal, and each user's subscription in the admin.","md",null,{},{"title":129,"icon":132},{"title":180,"description":726},"boxRMIzBbOtAfUk7mOQxg2A_i1xqFMhFq6hGDvv3_Tc",[734,736],{"title":119,"path":120,"stem":121,"description":735,"icon":122,"children":-1},"Add your app's pages to the admin dashboard, or replace the module's.",{"title":134,"path":135,"stem":136,"description":737,"icon":137,"children":-1},"Keys for people's scripts, bots and integrations, with permissions.",1793019844847]