Skip to main content

Journey Overview

Preconditions

  • User has completed registration
  • User profile is complete (or minimum required)
  • User does not have an active membership (or upgrading)
  • At least one membership plan is published

Journey Flow

Detailed Steps

1

Browse Membership Plans

Member navigates to Membership Plans page.Displayed Information per Plan:
  • Plan name and description
  • Price (monthly/annual options)
  • Feature list with checkmarks
  • “Most Popular” or “Best Value” badges
  • “Current Plan” indicator if applicable
Sorting/Filtering:
  • Plans ordered by price (low to high) or featured
  • Category filter if multiple plan types exist
2

Compare Plans

Member reviews plan comparison table:
3

Select Plan

Member clicks “Select” or “Choose Plan” button.If plan has pricing tiers:
  • Monthly billing option
  • Annual billing (with discount, e.g., “Save 20%”)
  • Multi-year options if available
If upgrading:
  • Shows prorated amount
  • Explains billing change
4

Apply Promo Code (Optional)

Member enters promotional code:Promo Code Types:
  • Percentage discount (e.g., 25% off)
  • Fixed amount discount (e.g., $50 off)
  • Free trial extension
  • First month/year free
Validation:
  • Code exists and is active
  • Code applies to selected plan
  • Code not already used by member
  • Code within usage limits
Display:
  • Original price shown struck through
  • Discount amount displayed
  • New total calculated
5

Review Order

Order summary displayed:
6

Enter Payment Details

Stripe Elements embedded payment form:Payment Methods:
  • Credit/Debit Card (Visa, Mastercard, Amex)
  • Digital Wallets (Apple Pay, Google Pay)
  • Bank Transfer (if enabled)
Card Form Fields:
  • Card number
  • Expiry date
  • CVC
  • Cardholder name
  • Billing address (if required)
Saved Cards:
  • If returning customer, show saved payment methods
  • Option to add new card
7

Process Payment

Member clicks “Complete Purchase”:
  1. Frontend validates card details
  2. Stripe creates PaymentIntent
  3. 3D Secure authentication if required
  4. Payment processed
  5. Webhook received by backend
  6. Membership record created/updated
8

Confirmation

On successful payment:
  • Success message displayed
  • Membership activated immediately
  • Confirmation email sent with:
    • Invoice/receipt
    • Membership details
    • Welcome information
    • Getting started guide
  • Redirected to dashboard or welcome page

Payment Failure Handling

Subscription Management

After purchase, member can:
  • View active subscription in profile
  • See next billing date
  • Update payment method
  • Download invoices
  • Cancel/downgrade (with confirmation)

Group/Corporate Membership

If member is part of a corporate plan:
  • Plan may be pre-assigned
  • Payment handled by organization
  • Member sees “Sponsored by [Company]”
  • No payment required from individual

Acceptance Criteria

Frontend

  • Plan comparison page with feature matrix
  • Pricing toggle (monthly/annual)
  • Promo code input with validation
  • Order summary with real-time calculation
  • Stripe Elements payment form integration
  • Saved payment methods display
  • 3D Secure modal handling
  • Loading states during payment processing
  • Success confirmation page
  • Error handling with clear messages

Backend

  • GET /api/membership-plans - List available plans
  • GET /api/membership-plans/{id} - Plan details
  • POST /api/membership/subscribe - Create subscription
  • POST /api/promo-codes/validate - Validate promo code
  • POST /api/payments/create-intent - Create Stripe PaymentIntent
  • Webhook handler for payment_intent.succeeded
  • Webhook handler for customer.subscription.created

Permissions

  • Any authenticated user can view plans
  • Only members without active subscription can purchase

Business Rules

  • Promo codes validated against plan and usage limits
  • Tax calculated based on member location
  • Annual plans show monthly equivalent price
  • Upgrading prorates remaining value
  • Membership active immediately on payment success

Error Handling

  • Payment failures logged with Stripe error codes
  • Failed payments trigger support notification
  • Partial failures (payment ok, membership creation failed) handled gracefully