Customer paid on Stripe but your app still says Free? Check this

Ship ItChecked against the official source

The short answer

If you built it with Lovable's Stripe integration, it doesn't use webhooks by default: your app checks payment and subscription status directly with Stripe, and recognizes a subscriber when the email they sign in with matches the email on their Stripe customer record. Paid with one email, signed in with another? No match. If your app does use webhooks, Stripe retries failed deliveries for up to three days in live mode, and the same event can arrive more than once, or out of order.

What to do

  1. Ask the customer which email they paid with, and compare it with the email they sign in with.
  2. Using webhooks? In Stripe, open Workbench, then Webhooks, then Event deliveries. Failed deliveries show there with their status code.
  3. Going live? Switch all three: the live API key, the live price IDs and the live webhook secret. Test and live mode use different ones.

Source

Checked on 3 Oct 2026. Prices, limits and settings change, so check the source before you rely on them.

Related