Sales & RevenueAdvanced
Stripe Payment Integration
Automate Stripe payment processing, subscription management, invoicing, and financial reporting
#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 properlyREADME.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
- Use Webhooks: Don't rely on redirect alone
- Idempotency Keys: Prevent duplicate charges
- Error Handling: Graceful failure recovery
- PCI Compliance: Use Stripe Elements
- Test Mode: Validate before production
- Monitor Disputes: Respond promptly
- Dunning Strategy: Recover failed payments
- Revenue Recognition: Track MRR properly