Home
cd ../playbooks
Sales & RevenueAdvanced

Stripe Payment Integration

Automate Stripe payment processing, subscription management, invoicing, and financial reporting

10 minutes
By communitySource
#stripe#payments#subscriptions#billing#fintech
CLAUDE.md Template

Download this file and place it in your project folder to get started.

# Stripe Payments

Comprehensive workflow for automating Stripe payment processing and subscription management.

## Core Workflows

### 1. Payment Flow

```
STRIPE PAYMENT FLOW:
┌─────────────────┐
│    Customer     │
│  Payment Intent │
└────────┬────────┘
         ▼
┌─────────────────┐
│    Checkout     │
│  - Card Input   │
│  - Validation   │
└────────┬────────┘
         ▼
┌─────────────────┐
│   Processing    │
│  - Auth         │
│  - Capture      │
└────────┬────────┘
         ▼
┌─────────────────┐
│   Confirmation  │
│  - Receipt      │
│  - Webhook      │
└─────────────────┘
```

### 2. Webhook Events

```yaml
webhook_handlers:
  payment_intent.succeeded:
    actions:
      - fulfill_order
      - send_receipt
      - update_crm
      
  payment_intent.payment_failed:
    actions:
      - notify_customer
      - retry_payment
      - log_failure
      
  customer.subscription.created:
    actions:
      - provision_access
      - send_welcome_email
      - update_metrics
      
  customer.subscription.deleted:
    actions:
      - revoke_access
      - send_offboarding_email
      - trigger_retention_flow
      
  invoice.payment_failed:
    actions:
      - send_dunning_email
      - update_subscription_status
      - create_support_ticket
```

## Subscription Management

### Plan Configuration

```yaml
subscription_plans:
  - name: Starter
    id: plan_starter
    price: 29
    currency: usd
    interval: month
    features:
      - "5 users"
      - "10GB storage"
      - "Email support"
    metadata:
      tier: 1
      
  - name: Growth
    id: plan_growth
    price: 79
    currency: usd
    interval: month
    features:
      - "25 users"
      - "100GB storage"
      - "Priority support"
    metadata:
      tier: 2
      
  - name: Enterprise
    id: plan_enterprise
    price: custom
    interval: month
    features:
      - "Unlimited users"
      - "Unlimited storage"
      - "24/7 support"
      - "Custom integrations"
    metadata:
      tier: 3
```

### Subscription Lifecycle

```yaml
subscription_automation:
  on_create:
    - provision_service
    - send_welcome_email
    - create_customer_record
    - schedule_onboarding_call
    
  on_upgrade:
    - adjust_limits
    - prorate_billing
    - send_upgrade_confirmation
    - unlock_features
    
  on_downgrade:
    - schedule_limit_reduction
    - send_downgrade_notice
    - offer_retention_discount
    
  on_cancel:
    - schedule_access_revocation
    - send_exit_survey
    - trigger_win_back_campaign
    
  on_renewal:
    - send_renewal_receipt
    - update_usage_quotas
    - check_plan_eligibility
```

## Invoice Management

### Invoice Automation

```yaml
invoice_settings:
  defaults:
    auto_advance: true
    collection_method: charge_automatically
    days_until_due: 30
    
  templates:
    header:
      company_name: "{{company}}"
      logo: "{{logo_url}}"
      
    footer:
      payment_terms: "Net 30"
      thank_you: "Thank you for your business!"
      
  automation:
    - event: invoice.created
      actions:
        - add_line_items
        - apply_discounts
        - calculate_tax
        
    - event: invoice.finalized
      actions:
        - send_to_customer
        - log_to_accounting
        
    - event: invoice.paid
      actions:
        - send_receipt
        - update_revenue
```

### Dunning Management

```yaml
dunning_sequence:
  - day: 0
    event: payment_failed
    actions:
      - retry_payment
      - email_template: payment_failed_1
      
  - day: 3
    actions:
      - retry_payment
      - email_template: payment_failed_2
      - sms_reminder
      
  - day: 7
    actions:
      - retry_payment
      - email_template: payment_failed_3
      - mark_at_risk
      
  - day: 14
    actions:
      - final_retry
      - email_template: final_notice
      - pause_subscription
      
  - day: 30
    actions:
      - cancel_subscription
      - email_template: cancellation
      - revoke_access
```

## Checkout Integration

### Checkout Session

```javascript
// Create Checkout Session
const session = await stripe.checkout.sessions.create({
  mode: 'subscription',
  payment_method_types: ['card'],
  line_items: [{
    price: 'price_xxx',
    quantity: 1,
  }],
  success_url: 'https://example.com/success?session_id={CHECKOUT_SESSION_ID}',
  cancel_url: 'https://example.com/cancel',
  customer_email: 'customer@example.com',
  subscription_data: {
    trial_period_days: 14,
    metadata: {
      plan_tier: 'growth'
    }
  },
  allow_promotion_codes: true,
});
```

### Payment Elements

```javascript
// Create Payment Intent
const paymentIntent = await stripe.paymentIntents.create({
  amount: 2000,
  currency: 'usd',
  customer: 'cus_xxx',
  payment_method_types: ['card'],
  metadata: {
    order_id: '12345'
  }
});

// Confirm Payment
const result = await stripe.confirmCardPayment(
  paymentIntent.client_secret,
  {
    payment_method: {
      card: cardElement,
      billing_details: {
        name: 'John Doe'
      }
    }
  }
);
```

## Revenue Analytics

### Dashboard Metrics

```
STRIPE REVENUE DASHBOARD
═══════════════════════════════════════

MRR:          $125,450 (+8.5%)
ARR:          $1,505,400
New MRR:      $12,340
Churned MRR:  $4,120
Net MRR:      +$8,220

SUBSCRIPTION BREAKDOWN:
Active:       892
Trialing:     156
Past Due:     23
Cancelled:    45 (this month)

BY PLAN:
Starter    ████████░░░░░░░░ 45%  │ $28,500
Growth     ██████████░░░░░░ 38%  │ $47,600
Enterprise ██████░░░░░░░░░░ 17%  │ $49,350

CHURN ANALYSIS:
Monthly Churn Rate:  4.2%
MRR Churn:          $4,120
Reasons:
- Price             ████████░░░░ 35%
- Competitor        ██████░░░░░░ 25%
- No longer needed  ████░░░░░░░░ 20%
- Support issues    ███░░░░░░░░░ 12%
- Other             ██░░░░░░░░░░ 8%
```

### Cohort Analysis

```yaml
cohort_metrics:
  - cohort: "2024-01"
    customers: 150
    month_1_retention: 95%
    month_3_retention: 82%
    month_6_retention: 71%
    ltv_estimate: $890
    
  - cohort: "2024-02"
    customers: 180
    month_1_retention: 93%
    month_3_retention: 79%
    ltv_estimate: $820
```

## Fraud Prevention

### Risk Rules

```yaml
radar_rules:
  - name: block_high_risk
    condition: "risk_level = 'highest'"
    action: block
    
  - name: review_elevated_risk
    condition: "risk_level = 'elevated'"
    action: review
    
  - name: block_disposable_email
    condition: "email_domain in @disposable_domains"
    action: block
    
  - name: velocity_check
    condition: "card_country != ip_country"
    action: review
    
  - name: amount_threshold
    condition: "amount > 100000"  # $1000
    action: review
```

## Customer Portal

### Portal Configuration

```yaml
customer_portal:
  features:
    subscription_update:
      enabled: true
      products:
        - product_starter
        - product_growth
        - product_enterprise
      proration_behavior: create_prorations
      
    subscription_cancel:
      enabled: true
      mode: at_period_end
      cancellation_reason:
        enabled: true
        options:
          - "Too expensive"
          - "Missing features"
          - "Switched to competitor"
          - "No longer needed"
          - "Other"
          
    payment_method_update:
      enabled: true
      
    invoice_history:
      enabled: true
      
  branding:
    colors:
      primary: "#5469d4"
    icon: "{{company_icon}}"
```

## Reporting Automation

### Scheduled Reports

```yaml
reports:
  - name: daily_revenue
    schedule: "0 9 * * *"
    metrics:
      - gross_volume
      - net_volume
      - new_customers
      - failed_payments
    destination: slack_finance
    
  - name: weekly_mrr
    schedule: "0 9 * * 1"
    metrics:
      - mrr
      - arr
      - churn_rate
      - expansion_revenue
    destination: email_leadership
    
  - name: monthly_reconciliation
    schedule: "0 9 1 * *"
    metrics:
      - total_revenue
      - fees
      - refunds
      - payouts
    destination: accounting_system
```

## API Examples

### Common Operations

```javascript
// Create Customer
const customer = await stripe.customers.create({
  email: 'customer@example.com',
  name: 'John Doe',
  metadata: {
    user_id: '12345'
  }
});

// Create Subscription
const subscription = await stripe.subscriptions.create({
  customer: customer.id,
  items: [{ price: 'price_xxx' }],
  trial_period_days: 14,
  payment_behavior: 'default_incomplete',
  expand: ['latest_invoice.payment_intent']
});

// Update Subscription
await stripe.subscriptions.update(subscription.id, {
  items: [{
    id: subscription.items.data[0].id,
    price: 'price_new_xxx'
  }],
  proration_behavior: 'create_prorations'
});

// Issue Refund
const refund = await stripe.refunds.create({
  payment_intent: 'pi_xxx',
  amount: 1000  // Partial refund
});
```

## Best Practices

1. **Use Webhooks**: Don't rely on redirect alone
2. **Idempotency Keys**: Prevent duplicate charges
3. **Error Handling**: Graceful failure recovery
4. **PCI Compliance**: Use Stripe Elements
5. **Test Mode**: Validate before production
6. **Monitor Disputes**: Respond promptly
7. **Dunning Strategy**: Recover failed payments
8. **Revenue Recognition**: Track MRR properly
README.md

What This Does

Comprehensive workflow for automating Stripe payment processing and subscription management.


Quick Start

Step 1: Create a Project Folder

mkdir -p ~/Documents/StripePayments

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ~/Documents/StripePayments/

Step 3: Start Working

cd ~/Documents/StripePayments
claude

Best Practices

  1. Use Webhooks: Don't rely on redirect alone
  2. Idempotency Keys: Prevent duplicate charges
  3. Error Handling: Graceful failure recovery
  4. PCI Compliance: Use Stripe Elements
  5. Test Mode: Validate before production
  6. Monitor Disputes: Respond promptly
  7. Dunning Strategy: Recover failed payments
  8. Revenue Recognition: Track MRR properly

$Related Playbooks