Skip to main content

Documentation Index

Fetch the complete documentation index at: https://memberpulseptyltd.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Journey Overview

AttributeValue
Journey IDUJ-M-005
ActorMember with failed payment
GoalResolve payment issue and restore/maintain membership
TriggerPayment fails for renewal, event, or other purchase
OutcomePayment successful, access restored

Preconditions

  • Member has attempted a payment
  • Payment was declined or failed
  • Member has access to update payment method

Journey Flow

Detailed Steps

1

Payment Failure Detection

System detects payment failure via:
  • Stripe webhook: payment_intent.payment_failed
  • Stripe webhook: invoice.payment_failed
  • Real-time checkout error
Failure recorded with:
  • Timestamp
  • Amount
  • Failure reason (Stripe error code)
  • Attempt number
  • Payment method used
2

Immediate Notification

Member receives immediate notification:In-App:
  • Banner on dashboard: “Payment failed - Action required”
  • Modal if currently in checkout
Email (sent immediately):
Subject: Action Required: Payment Failed

Hi [Name],

Your payment of $[amount] for [item] was unsuccessful.

Reason: [friendly error message]

Please update your payment method to resolve this issue:
[Update Payment Button]

If you need assistance, contact our support team.
3

Dunning Sequence (Subscriptions)

For subscription renewals, automated retry schedule:
DayAction
0Initial failure, email sent
1Auto-retry #1
3Auto-retry #2, email reminder
5Auto-retry #3
7Final retry, urgent email
10Membership suspended, final notice
14Membership cancelled (grace period end)
4

Member Updates Payment Method

Member clicks recovery link:
  1. Directed to payment update page
  2. Current (failed) method shown
  3. Option to:
    • Update existing card details
    • Add new card
    • Use saved alternative card
    • Try digital wallet (Apple/Google Pay)
  4. New card validated with $0 authorization
  5. New card set as default
5

Retry Payment

After updating payment method:Automatic Retry:
  • System immediately retries failed payment
  • Uses new default payment method
  • Member sees processing indicator
Manual Retry:
  • Member clicks “Retry Payment”
  • Full checkout flow with new card
6

Success Confirmation

On successful payment:
  • Success message displayed
  • Confirmation email sent
  • Invoice generated
  • Membership/access restored
  • Failure record marked resolved
  • Dunning sequence cancelled

Payment Failure Types

Failure TypeCommon CausesSystem Response
Card DeclinedInsufficient funds, card limitRetry with different card
Card ExpiredPast expiry dateUpdate card details
Authentication Failed3D Secure rejectedRetry authentication
Network ErrorTemporary connectivityAuto-retry
Fraud BlockSuspicious activityContact bank
Invalid CardIncorrect detailsRe-enter card

Recovery UI States

┌────────────────────────────────────────────────────────────┐
│ ⚠️ Payment Failed                                          │
│                                                            │
│ Your membership renewal payment of $99.00 failed.          │
│ Please update your payment method to maintain access.      │
│                                                            │
│ [Update Payment Method]  [Contact Support]                 │
└────────────────────────────────────────────────────────────┘

Smart Retry Logic

System implements intelligent retry:
FactorOptimization
Time of dayRetry at different times
Day of weekAvoid weekends for business cards
Card typeDifferent retry intervals
Previous successPrioritize previously working methods
Failure reasonSkip retries for hard declines

Escalation Path

If automated recovery fails:
  1. Day 7: Support team notified
  2. Day 10: Member account flagged
  3. Day 14: Account manager outreach (if applicable)
  4. Manual options:
    • Phone payment
    • Invoice/bank transfer
    • Payment plan arrangement

Acceptance Criteria

Frontend

  • Payment failure banner on dashboard
  • Payment update page with current card shown
  • Stripe Elements for new card entry
  • Error messages in plain language (not codes)
  • Retry button with loading state
  • Success confirmation on resolution
  • Email links deep-link to recovery page

Backend

  • POST /api/payments/update-method - Update payment method
  • POST /api/payments/retry - Retry failed payment
  • GET /api/payments/failures - Get pending failures
  • Webhook: payment_intent.payment_failed
  • Webhook: invoice.payment_failed
  • Scheduled dunning job

Permissions

  • Member can only resolve their own failures
  • Support can manually resolve on behalf

Business Rules

  • Maximum 4 auto-retries before stopping
  • Grace period access during recovery window
  • Hard declines (fraud, stolen) not retried
  • Payment method update resets retry counter

Error Handling

  • All failure reasons mapped to friendly messages
  • Stripe error codes logged for debugging
  • Support notified of repeated failures