From 6e9a5c2a0680779196dd279501e1427ce4e69cd4 Mon Sep 17 00:00:00 2001 From: John Yeo Date: Wed, 3 Dec 2025 20:53:07 +0000 Subject: [PATCH] fix: portal return url --- .../handleBillingPortal/createBillingPortalSession.ts | 1 + .../handleBillingPortal/handleCreateBillingPortal.ts | 5 +++-- shared/api/customers/customerOpModels.ts | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/server/src/internal/customers/handlers/handleBillingPortal/createBillingPortalSession.ts b/server/src/internal/customers/handlers/handleBillingPortal/createBillingPortalSession.ts index 373611023..cbe0dc716 100644 --- a/server/src/internal/customers/handlers/handleBillingPortal/createBillingPortalSession.ts +++ b/server/src/internal/customers/handlers/handleBillingPortal/createBillingPortalSession.ts @@ -43,6 +43,7 @@ export const createBillingPortalSession = async ({ } // 1. Try to create billing portal session + try { return await stripeCli.billingPortal.sessions.create({ customer: stripeCustomerId, diff --git a/server/src/internal/customers/handlers/handleBillingPortal/handleCreateBillingPortal.ts b/server/src/internal/customers/handlers/handleBillingPortal/handleCreateBillingPortal.ts index 645bb1fd1..0f84ef022 100644 --- a/server/src/internal/customers/handlers/handleBillingPortal/handleCreateBillingPortal.ts +++ b/server/src/internal/customers/handlers/handleBillingPortal/handleCreateBillingPortal.ts @@ -19,7 +19,8 @@ export const handleCreateBillingPortal = createRoute({ const { db, org, env } = ctx; const { return_url: returnUrl } = c.req.valid("query"); const { customer_id: customerId } = c.req.param(); - const { configuration_id: configurationId } = c.req.valid("json") ?? {}; + const { configuration_id: configurationId, return_url: returnUrl2 } = + c.req.valid("json") ?? {}; const customer = await CusService.get({ db, @@ -35,7 +36,7 @@ export const handleCreateBillingPortal = createRoute({ const session = await createBillingPortalSession({ ctx, customer, - returnUrl, + returnUrl: returnUrl2 || returnUrl, configurationId, }); diff --git a/shared/api/customers/customerOpModels.ts b/shared/api/customers/customerOpModels.ts index 98535bcfb..cc5909ba4 100644 --- a/shared/api/customers/customerOpModels.ts +++ b/shared/api/customers/customerOpModels.ts @@ -159,6 +159,10 @@ export const GetBillingPortalBodySchema = z description: "Stripe billing portal configuration ID. Create configurations in your Stripe dashboard.", }), + return_url: z.string().optional().meta({ + description: + "URL to redirect to when back button is clicked in the billing portal", + }), }) .optional();