Agent Skills

Stripe Payments

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

Install

npx skills add https://github.com/claude-office-skills/skills --skill stripe-payments
SKILL.md

Stripe Payments

Comprehensive skill 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

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

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

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

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

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

// 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

// 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

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

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

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

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

// 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

Related skills

entra-app-registrationmicrosoft606KGuides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.azure-messagingmicrosoft595KTroubleshoot and resolve issues with Azure Messaging SDKs for Event Hubs and Service Bus. Covers connection failures, authentication errors, message processing issues, and SDK configuration problems. WHEN: event hub SDK error, service bus SDK issue, messaging connection failure, AMQP error, event processor host issue, message lock lost, message lock expired, lock renewal, lock renewal batch, send timeout, receiver disconnected, SDK troubleshooting, azure messaging SDK, event hub consumer, servicentra-agent-idmicrosoft328KProvision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmi_path, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmi_path token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registsupabasesupabase298KUse when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase/ssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies, getSession, getUser, getClaims, RLS); Supabase CLI or MCP server; schema changes, migrations, declarative schemas, security audits, Postgres extensions (pg_graphql, pg_cron, pg_vector); deb

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers