From a536de91c2d592e8274ae432673026d9b2907c5c Mon Sep 17 00:00:00 2001 From: Bereket Engida <86073083+Bekacru@users.noreply.github.com> Date: Sat, 26 Jul 2025 12:07:55 -0700 Subject: [PATCH] fix(stripe): update customer id should also trigger secondary storage update (#3635) * fix: update customer id should also update secondary storage * chore: add changeset --- .changeset/huge-needles-smell.md | 5 +++++ packages/stripe/src/index.ts | 22 +++++----------------- packages/stripe/src/types.ts | 10 ---------- 3 files changed, 10 insertions(+), 27 deletions(-) create mode 100644 .changeset/huge-needles-smell.md diff --git a/.changeset/huge-needles-smell.md b/.changeset/huge-needles-smell.md new file mode 100644 index 0000000000..3afd8b374a --- /dev/null +++ b/.changeset/huge-needles-smell.md @@ -0,0 +1,5 @@ +--- +"@better-auth/stripe": patch +--- + +Fix an issue where updating Stripe customer ID wasn't properly syncing with secondary storage during user creation \ No newline at end of file diff --git a/packages/stripe/src/index.ts b/packages/stripe/src/index.ts index a1eb307bbb..d0fd3fb372 100644 --- a/packages/stripe/src/index.ts +++ b/packages/stripe/src/index.ts @@ -18,7 +18,6 @@ import { onSubscriptionUpdated, } from "./hooks"; import type { - Customer, InputSubscription, StripeOptions, StripePlan, @@ -1123,26 +1122,15 @@ export const stripe = (options: O) => { userId: user.id, }, }); - const customer = await ctx.context.adapter.update( - { - model: "user", - update: { - stripeCustomerId: stripeCustomer.id, - }, - where: [ - { - field: "id", - value: user.id, - }, - ], - }, - ); - if (!customer) { + const updatedUser = + await ctx.context.internalAdapter.updateUser(user.id, { + stripeCustomerId: stripeCustomer.id, + }); + if (!updatedUser) { logger.error("#BETTER_AUTH: Failed to create customer"); } else { await options.onCustomerCreate?.( { - customer, stripeCustomer, user, }, diff --git a/packages/stripe/src/types.ts b/packages/stripe/src/types.ts index 775b4b24da..2130ae79b3 100644 --- a/packages/stripe/src/types.ts +++ b/packages/stripe/src/types.ts @@ -187,7 +187,6 @@ export interface StripeOptions { */ onCustomerCreate?: ( data: { - customer: Customer; stripeCustomer: Stripe.Customer; user: User; }, @@ -330,13 +329,4 @@ export interface StripeOptions { schema?: InferOptionSchema; } -export interface Customer { - id: string; - stripeCustomerId?: string; - userId: string; - createdAt: Date; - updatedAt: Date; -} - export interface InputSubscription extends Omit {} -export interface InputCustomer extends Omit {}