From b62df3b629deee27b810399f41c788445d1fc967 Mon Sep 17 00:00:00 2001 From: Brian Love Date: Sun, 24 May 2026 20:49:05 -0700 Subject: [PATCH] chore(stripe): regenerate price IDs after subscription sync MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ran scripts/stripe/sync-products.ts against the live Stripe test-mode account after PR #532 landed. The script created 4 recurring prices (monthly + annual × developer_seat + team) and archived the prior one-time-payment prices. Operational follow-ups completed in parallel: - DB migration 0002 applied to the minting Neon DB (stripe_payment_id → stripe_subscription_id) - Webhook endpoint we_1TZcsHGYRsLErhxbdN2JTFTr enabled_events updated: customer.subscription.{created,updated,deleted}, invoice.paid, charge.refunded (dropped checkout.session.completed) Co-Authored-By: Claude Opus 4.7 (1M context) --- pricing/tiers.generated.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pricing/tiers.generated.ts b/pricing/tiers.generated.ts index aedd6752..8c2853cf 100644 --- a/pricing/tiers.generated.ts +++ b/pricing/tiers.generated.ts @@ -4,7 +4,7 @@ import type { TierSlug, BillingCycle } from './tiers.config'; type BuyableSlug = Exclude; -// Empty stub — run `STRIPE_SECRET_KEY=sk_... pnpm tsx scripts/stripe/sync-products.ts` -// to populate. Until that runs, the checkout API returns a 503 with a helpful -// message. -export const STRIPE_PRICE_IDS: Partial>> = {}; +export const STRIPE_PRICE_IDS: Partial>> = { + developer_seat: { monthly: "price_1TapR1GYRsLErhxb83221xMU", annual: "price_1TapR1GYRsLErhxb67dc67h1" }, + team: { monthly: "price_1TapR2GYRsLErhxbBbrJMLpk", annual: "price_1TapR2GYRsLErhxbYsWAkYuE" }, +};