The Stripe tool allows your agent to manage core e-commerce and billing functions. It can create and manage customers, products, and prices, and generate shareable payment links.

Key Use Cases:

  • On-the-Fly Product Creation: "Create a new product called 'Premium Consulting' and a price of $500 for it."
  • Customer Management: "Create a new customer profile for 'jane.doe@example.com'."
  • Sales Automation: "Generate a payment link for our 'Standard Service' package."

stripe_tool.create_customer

Creates a new customer in Stripe.

Parameters

NameTypeDescription
email string The customer's email address.
name string The customer's full name.
description string An arbitrary string that you can attach to a customer object.
curl -X POST https://toolstream.dev/v1/tools/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "stripe_tool.create_customer",
    "arguments": {
      "email": {
        "type": "string",
        "description": "The customer's email address."
      },
      "name": {
        "type": "string",
        "description": "The customer's full name."
      },
      "description": {
        "type": "string",
        "description": "An arbitrary string that you can attach to a customer object."
      }
    }
  }
}'
import requests
import json

API_KEY = "YOUR_API_KEY"
TOOLSTREAM_URL = "https://toolstream.dev/v1/tools/execute"

payload = {
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "stripe_tool.create_customer",
    "arguments": {
      "email": {
        "type": "string",
        "description": "The customer's email address."
      },
      "name": {
        "type": "string",
        "description": "The customer's full name."
      },
      "description": {
        "type": "string",
        "description": "An arbitrary string that you can attach to a customer object."
      }
    }
  }
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(TOOLSTREAM_URL, headers=headers, data=json.dumps(payload))

if response.status_code == 200:
    result = response.json()
    print(json.dumps(result, indent=2))
else:
    print(f"Error: {response.status_code}")
    print(response.text)

stripe_tool.search_customers

Searches for customers by their email address.

Parameters

NameTypeDescription
email string The email address to search for.
curl -X POST https://toolstream.dev/v1/tools/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "stripe_tool.search_customers",
    "arguments": {
      "email": {
        "type": "string",
        "description": "The email address to search for."
      }
    }
  }
}'
import requests
import json

API_KEY = "YOUR_API_KEY"
TOOLSTREAM_URL = "https://toolstream.dev/v1/tools/execute"

payload = {
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "stripe_tool.search_customers",
    "arguments": {
      "email": {
        "type": "string",
        "description": "The email address to search for."
      }
    }
  }
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(TOOLSTREAM_URL, headers=headers, data=json.dumps(payload))

if response.status_code == 200:
    result = response.json()
    print(json.dumps(result, indent=2))
else:
    print(f"Error: {response.status_code}")
    print(response.text)

stripe_tool.create_product

Creates a new product in Stripe that can be sold.

Parameters

NameTypeDescription
name string The product's name, meant to be displayable to the customer.
curl -X POST https://toolstream.dev/v1/tools/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "stripe_tool.create_product",
    "arguments": {
      "name": {
        "type": "string",
        "description": "The product's name, meant to be displayable to the customer."
      }
    }
  }
}'
import requests
import json

API_KEY = "YOUR_API_KEY"
TOOLSTREAM_URL = "https://toolstream.dev/v1/tools/execute"

payload = {
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "stripe_tool.create_product",
    "arguments": {
      "name": {
        "type": "string",
        "description": "The product's name, meant to be displayable to the customer."
      }
    }
  }
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(TOOLSTREAM_URL, headers=headers, data=json.dumps(payload))

if response.status_code == 200:
    result = response.json()
    print(json.dumps(result, indent=2))
else:
    print(f"Error: {response.status_code}")
    print(response.text)

stripe_tool.create_price

Creates a price for an existing product.

Parameters

NameTypeDescription
product_id string The ID of the product this price is for (e.g., 'prod_...').
unit_amount integer The price in the smallest currency unit (e.g., 1000 for $10.00 USD).
currency string Three-letter ISO currency code, in lowercase (e.g., 'usd').
curl -X POST https://toolstream.dev/v1/tools/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "stripe_tool.create_price",
    "arguments": {
      "product_id": {
        "type": "string",
        "description": "The ID of the product this price is for (e.g., 'prod_...')."
      },
      "unit_amount": {
        "type": "integer",
        "description": "The price in the smallest currency unit (e.g., 1000 for $10.00 USD)."
      },
      "currency": {
        "type": "string",
        "description": "Three-letter ISO currency code, in lowercase (e.g., 'usd')."
      }
    }
  }
}'
import requests
import json

API_KEY = "YOUR_API_KEY"
TOOLSTREAM_URL = "https://toolstream.dev/v1/tools/execute"

payload = {
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "stripe_tool.create_price",
    "arguments": {
      "product_id": {
        "type": "string",
        "description": "The ID of the product this price is for (e.g., 'prod_...')."
      },
      "unit_amount": {
        "type": "integer",
        "description": "The price in the smallest currency unit (e.g., 1000 for $10.00 USD)."
      },
      "currency": {
        "type": "string",
        "description": "Three-letter ISO currency code, in lowercase (e.g., 'usd')."
      }
    }
  }
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(TOOLSTREAM_URL, headers=headers, data=json.dumps(payload))

if response.status_code == 200:
    result = response.json()
    print(json.dumps(result, indent=2))
else:
    print(f"Error: {response.status_code}")
    print(response.text)