Stripe Integration
Overview
Section titled “Overview”Enable your agents to manage payments, subscriptions, and customer billing through Stripe. Handle customer data, process subscriptions, manage products, and track financial transactions to streamline your payment workflows with AI-powered automation.
Prerequisites
Section titled “Prerequisites”Before using the Stripe integration, ensure you have:
- A CrewAI AMP account with an active subscription
- A Stripe account with appropriate API permissions
- Connected your Stripe account through the Integrations page
Setting Up Stripe Integration
Section titled “Setting Up Stripe Integration”1. Connect Your Stripe Account
Section titled “1. Connect Your Stripe Account”- Navigate to CrewAI AMP Integrations
- Find Stripe in the Authentication Integrations section
- Click Connect and complete the OAuth flow
- Grant the necessary permissions for payment processing
- Copy your Enterprise Token from Integration Settings
2. Install Required Package
Section titled “2. Install Required Package”uv add crewai-tools3. Environment Variable Setup
Section titled “3. Environment Variable Setup”export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"Or add it to your .env file:
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_tokenAvailable Tools
Section titled “Available Tools”Customer Management
Section titled “Customer Management”stripe/create_customer
Description: Create a new customer in your Stripe account.
Parameters:
emailCreateCustomer(string, required): Customer’s email addressname(string, optional): Customer’s full namedescription(string, optional): Customer description for internal referencemetadataCreateCustomer(object, optional): Additional metadata as key-value pairs (e.g.,{"field1": 1, "field2": 2})
stripe/get_customer_by_id
Description: Retrieve a specific customer by their Stripe customer ID.
Parameters:
idGetCustomer(string, required): The Stripe customer ID to retrieve
stripe/get_customers
Description: Retrieve a list of customers with optional filtering.
Parameters:
emailGetCustomers(string, optional): Filter customers by email addresscreatedAfter(string, optional): Filter customers created after this date (Unix timestamp)createdBefore(string, optional): Filter customers created before this date (Unix timestamp)limitGetCustomers(string, optional): Maximum number of customers to return (defaults to 10)
stripe/update_customer
Description: Update an existing customer’s information.
Parameters:
customerId(string, required): The ID of the customer to updateemailUpdateCustomer(string, optional): Updated email addressname(string, optional): Updated customer namedescription(string, optional): Updated customer descriptionmetadataUpdateCustomer(object, optional): Updated metadata as key-value pairs
Subscription Management
Section titled “Subscription Management”stripe/create_subscription
Description: Create a new subscription for a customer.
Parameters:
customerIdCreateSubscription(string, required): The customer ID for whom the subscription will be createdplan(string, required): The plan ID for the subscription - Use Connect Portal Workflow Settings to allow users to select a planmetadataCreateSubscription(object, optional): Additional metadata for the subscription
stripe/get_subscriptions
Description: Retrieve subscriptions with optional filtering.
Parameters:
customerIdGetSubscriptions(string, optional): Filter subscriptions by customer IDsubscriptionStatus(string, optional): Filter by subscription status - Options: incomplete, incomplete_expired, trialing, active, past_due, canceled, unpaidlimitGetSubscriptions(string, optional): Maximum number of subscriptions to return (defaults to 10)
Product Management
Section titled “Product Management”stripe/create_product
Description: Create a new product in your Stripe catalog.
Parameters:
productName(string, required): The product namedescription(string, optional): Product descriptionmetadataProduct(object, optional): Additional product metadata as key-value pairs
stripe/get_product_by_id
Description: Retrieve a specific product by its Stripe product ID.
Parameters:
productId(string, required): The Stripe product ID to retrieve
stripe/get_products
Description: Retrieve a list of products with optional filtering.
Parameters:
createdAfter(string, optional): Filter products created after this date (Unix timestamp)createdBefore(string, optional): Filter products created before this date (Unix timestamp)limitGetProducts(string, optional): Maximum number of products to return (defaults to 10)
Financial Operations
Section titled “Financial Operations”stripe/get_balance_transactions
Description: Retrieve balance transactions from your Stripe account.
Parameters:
balanceTransactionType(string, optional): Filter by transaction type - Options: charge, refund, payment, payment_refundpaginationParameters(object, optional): Pagination settingspageCursor(string, optional): Page cursor for pagination
stripe/get_plans
Description: Retrieve subscription plans from your Stripe account.
Parameters:
isPlanActive(boolean, optional): Filter by plan status - true for active plans, false for inactive planspaginationParameters(object, optional): Pagination settingspageCursor(string, optional): Page cursor for pagination
Usage Examples
Section titled “Usage Examples”Basic Stripe Agent Setup
Section titled “Basic Stripe Agent Setup”from crewai import Agent, Task, Crewfrom crewai import Agent, Task, Crew
# Create an agent with Stripe capabilitiesstripe_agent = Agent( role="Payment Manager", goal="Manage customer payments, subscriptions, and billing operations efficiently", backstory="An AI assistant specialized in payment processing and subscription management.", apps=['stripe'] # All Stripe actions will be available)
# Task to create a new customercreate_customer_task = Task( agent=stripe_agent, expected_output="Customer created successfully with customer ID")
# Run the taskcrew = Crew( agents=[stripe_agent], tasks=[create_customer_task])
crew.kickoff()Filtering Specific Stripe Tools
Section titled “Filtering Specific Stripe Tools”billing_manager = Agent( role="Billing Manager", goal="Handle customer billing, subscriptions, and payment processing", backstory="An experienced billing manager who handles subscription lifecycle and payment operations.", apps=['stripe'])
# Task to manage billing operationsbilling_task = Task( description="Create a new customer and set up their premium subscription plan", agent=billing_manager, expected_output="Customer created and subscription activated successfully")
crew = Crew( agents=[billing_manager], tasks=[billing_task])
crew.kickoff()Subscription Management
Section titled “Subscription Management”from crewai import Agent, Task, Crew
subscription_manager = Agent( role="Subscription Manager", goal="Manage customer subscriptions and optimize recurring revenue", backstory="An AI assistant that specializes in subscription lifecycle management and customer retention.", apps=['stripe'])
# Task to manage subscription operationssubscription_task = Task( description=""" 1. Create a new product "Premium Service Plan" with advanced features 2. Set up subscription plans with different tiers 3. Create customers and assign them to appropriate plans 4. Monitor subscription status and handle billing issues """, agent=subscription_manager, expected_output="Subscription management system configured with customers and active plans")
crew = Crew( agents=[subscription_manager], tasks=[subscription_task])
crew.kickoff()Financial Analytics and Reporting
Section titled “Financial Analytics and Reporting”from crewai import Agent, Task, Crew
financial_analyst = Agent( role="Financial Analyst", goal="Analyze payment data and generate financial insights", backstory="An analytical AI that excels at extracting insights from payment and subscription data.", apps=['stripe'])
# Complex task involving financial analysisanalytics_task = Task( description=""" 1. Retrieve balance transactions for the current month 2. Analyze customer payment patterns and subscription trends 3. Identify high-value customers and subscription performance 4. Generate monthly financial performance report """, agent=financial_analyst, expected_output="Comprehensive financial analysis with payment insights and recommendations")
crew = Crew( agents=[financial_analyst], tasks=[analytics_task])
crew.kickoff()Subscription Status Reference
Section titled “Subscription Status Reference”Understanding subscription statuses:
- incomplete - Subscription requires payment method or payment confirmation
- incomplete_expired - Subscription expired before payment was confirmed
- trialing - Subscription is in trial period
- active - Subscription is active and current
- past_due - Payment failed but subscription is still active
- canceled - Subscription has been canceled
- unpaid - Payment failed and subscription is no longer active
Metadata Usage
Section titled “Metadata Usage”Metadata allows you to store additional information about customers, subscriptions, and products:
{ "customer_segment": "enterprise", "acquisition_source": "google_ads", "lifetime_value": "high", "custom_field_1": "value1"}This integration enables comprehensive payment and subscription management automation, allowing your AI agents to handle billing operations seamlessly within your Stripe ecosystem.