Skip to main content

Purpose

Retrieves subscription status directly from Stripe, including trial period information. This enables the frontend to display how many days remain in a user’s free trial.

Architecture

How Trial Days Are Calculated

  1. Retrieve Subscription: Fetch the subscription object from Stripe using stripe.Subscription.retrieve(subscription_id)
  2. Check Status: Verify subscription.status === "trialing"
  3. Get Trial End: Extract subscription.trial_end (Unix timestamp in seconds)
  4. Calculate Remaining Days:

Response Format

Fallback Behavior

If Stripe API fails, the endpoint falls back to returning the subscription_status stored in clerk_organization_details table, with trial_end and days_remaining as null.

Code Location