diff --git a/packages/features/ee/billing/api/webhook/_invoice.paid.org.ts b/packages/features/ee/billing/api/webhook/_invoice.paid.org.ts index a79fa0b901..c40d2dbdb2 100644 --- a/packages/features/ee/billing/api/webhook/_invoice.paid.org.ts +++ b/packages/features/ee/billing/api/webhook/_invoice.paid.org.ts @@ -78,6 +78,16 @@ const handler = async (data: SWHMap["invoice.paid"]["data"]) => { stripeSubscriptionId: organizationOnboarding.stripeSubscriptionId, }) ); + + if (organizationOnboarding.isComplete) { + // If the organization is already complete, there is nothing to do + // Repeat requests can come for recurring payments + return { + success: true, + message: "Onboarding already completed, skipping", + }; + } + const { organization } = await createOrganizationFromOnboarding({ organizationOnboarding, paymentSubscriptionId,