# Stripe Direct Connection

## Links

- Product page URL: https://www.agentpmt.com/marketplace/stripe-direct-connection
- Product markdown URL: https://www.agentpmt.com/marketplace/stripe-direct-connection?format=agent-md
- Product JSON URL: https://www.agentpmt.com/marketplace/stripe-direct-connection?format=agent-json

## Overview

- Product ID: 6962caed5d4cf4d4b6af40f5
- Vendor: Apoth3osis
- Type: connector
- Unit type: request
- Price: 500 credits
- Categories: Finance & Accounting, E-commerce & Product Catalog, Donation & Payment Processing, Payment Mechanisms
- Generated at: 2026-05-07T21:36:04.710Z

### Page Description

Connect your AI agents to Stripe in seconds. The Stripe Direct Connection plugs straight into Stripe's official hosted MCP server, giving agents full read/write control over customers, products, prices, subscriptions, invoices, refunds, payment links, coupons, and disputes — no SDK install, no integration code, just one credential.

Use it to launch SaaS subscription billing with recurring monthly or annual prices, automate accounts receivable by issuing and finalizing invoices, generate hosted Stripe Checkout payment links for e-commerce orders, run customer-support refund flows with reason tracking, manage promotional coupon campaigns, and retrieve real-time account balances. The integration also supports Stripe's full query syntax for searching payment intents, charges, customers, and invoices, plus an interactive integration recommender that maps your business requirements to the right Stripe products (Checkout, Elements, Billing, Connect). Built for agentic workflows in SaaS billing, e-commerce, marketplace payments, donation processing, and finance automation.

### Agent Description

Stripe payments, subscriptions, invoicing, refunds, disputes, and balance — full read/write via Stripe's official MCP server. Manage customers, products, prices, payment links, coupons; search resources with Stripe query syntax; pull docs and integration plans on demand.

## Details

### Details

Connect your AI agents to Stripe in seconds. The Stripe Direct Connection plugs straight into Stripe's official hosted MCP server, giving agents full read/write control over customers, products, prices, subscriptions, invoices, refunds, payment links, coupons, and disputes — no SDK install, no integration code, just one credential.

Use it to launch SaaS subscription billing with recurring monthly or annual prices, automate accounts receivable by issuing and finalizing invoices, generate hosted Stripe Checkout payment links for e-commerce orders, run customer-support refund flows with reason tracking, manage promotional coupon campaigns, and retrieve real-time account balances. The integration also supports Stripe's full query syntax for searching payment intents, charges, customers, and invoices, plus an interactive integration recommender that maps your business requirements to the right Stripe products (Checkout, Elements, Billing, Connect). Built for agentic workflows in SaaS billing, e-commerce, marketplace payments, donation processing, and finance automation.

### Actions

- `search_stripe_documentation` (5 credits): Search the Stripe documentation for the given question and language. It takes two arguments: - question (str): The user question to search an answer for in the Stripe documentation. - language (str, optional): The programming language to search for in the the documentation.
- `get_stripe_account_info` (5 credits): This will get the account info for the logged in Stripe account.
- `create_customer` (5 credits): This tool will create a customer in Stripe. It takes two arguments: - name (str): The name of the customer. - email (str, optional): The email of the customer.
- `list_customers` (5 credits): This tool will fetch a list of Customers from Stripe. It takes two arguments: - limit (int, optional): The number of customers to return. - email (str, optional): A case-sensitive filter on the list based on the customer's email field.
- `create_product` (5 credits): This tool will create a product in Stripe. It takes two arguments: - name (str): The name of the product. - description (str, optional): The description of the product.
- `list_products` (5 credits): This tool will fetch a list of Products from Stripe. It takes one optional argument: - limit (int, optional): The number of products to return.
- `create_price` (5 credits): This tool will create a price in Stripe. If a product has not already been specified, a product should be created first. It takes three arguments: - product (str): The ID of the product to create the price for. - unit_amount (int): The unit amount of the price in currency minor units, e.g. cents for USD and yen for JPY. - currency (str): The currency of the price.
- `list_prices` (5 credits): This tool will fetch a list of Prices from Stripe. It takes two arguments. - product (str, optional): The ID of the product to list prices for. - limit (int, optional): The number of prices to return. Note that the price unit_amount returned is in currency minor units, e.g. cents for USD and yen for JPY.
- `create_payment_link` (5 credits): This tool will create a payment link in Stripe. It takes two arguments: - price (str): The ID of the price to create the payment link for. - quantity (int): The quantity of the product to include in the payment link.
- `create_invoice` (5 credits): This tool will create an invoice in Stripe. It takes two arguments: - customer (str): The ID of the customer to create the invoice for. - days_until_due (int, optional): The number of days until the invoice is due.
- `list_invoices` (5 credits): This tool will fetch a list of Invoices from Stripe. It takes two arguments: - customer (str, optional): The ID of the customer to list invoices for. - limit (int, optional): The number of invoices to return.
- `create_invoice_item` (5 credits): This tool will create an invoice item in Stripe. It takes three arguments: - customer (str): The ID of the customer to create the invoice item for. - price (str): The ID of the price to create the invoice item for. - invoice (str): The ID of the invoice to create the invoice item for.
- `finalize_invoice` (5 credits): This tool will finalize an invoice in Stripe. It takes one argument: - invoice (str): The ID of the invoice to finalize.
- `retrieve_balance` (5 credits): This tool will retrieve the balance from Stripe. It takes no input.
- `create_refund` (5 credits): This tool will refund a payment intent in Stripe. It takes three arguments: - payment_intent (str): The ID of the payment intent to refund. - amount (int, optional): The amount to refund in currency minor units, e.g. cents for USD and yen for JPY. - reason (str, optional): The reason for the refund. Options: "duplicate", "fraudulent", "requested_by_customer".
- `list_payment_intents` (5 credits): This tool will list payment intents in Stripe. It takes two arguments: - customer (str, optional): The ID of the customer to list payment intents for. - limit (int, optional): The number of payment intents to return. Note that the payment intent amount returned is in currency minor units, e.g. cents for USD and yen for JPY.
- `list_subscriptions` (5 credits): This tool will list all subscriptions in Stripe. It takes four arguments: - customer (str, optional): The ID of the customer to list subscriptions for. - price (str, optional): The ID of the price to list subscriptions for. - status (str, optional): The status of the subscriptions to list. - limit (int, optional): The number of subscriptions to return.
- `cancel_subscription` (5 credits): This tool will cancel a subscription in Stripe. It takes the following arguments: - subscription (str, required): The ID of the subscription to cancel.
- `update_subscription` (5 credits): This tool will update an existing subscription in Stripe. If changing an existing subscription item, the existing subscription item has to be set to deleted and the new one has to be added. It takes the following arguments: - subscription (str, required): The ID of the subscription to update. - proration_behavior (str, optional): Determines how to handle prorations when the subscription items change. Options: 'create_prorations', 'none', 'always_invoice', 'none_implicit'. - items (array, optional): A list of subscription items to update, add, or remove. Each item can have the following properties: - id (str, optional): The ID of the subscription item to modify. - price (str, optional): The ID of the price to switch to. - quantity (int, optional): The quantity of the plan to subscribe to. - deleted (bool, optional): Whether to delete this item.
- `list_coupons` (5 credits): This tool will fetch a list of Coupons from Stripe. It takes one optional argument: - limit (int, optional): The number of coupons to return.
- `create_coupon` (5 credits): This tool will create a coupon in Stripe. It takes several arguments: - name (str): The name of the coupon. Only use one of percent_off or amount_off, not both: - percent_off (number, optional): The percentage discount to apply (between 0 and 100). - amount_off (number, optional): The amount to subtract from an invoice (in currency minor units, e.g. cents for USD and yen for JPY). Optional arguments for duration. Use if specific duration is desired, otherwise default to 'once'. - duration (str, optional): How long the discount will last ('once', 'repeating', or 'forever'). Defaults to 'once'. - duration_in_months (number, optional): The number of months the discount will last if duration is repeating.
- `update_dispute` (5 credits): When you receive a dispute, contacting your customer is always the best first step. If that doesn't work, you can submit evidence to help resolve the dispute in your favor. This tool helps. It takes the following arguments: - dispute (string): The ID of the dispute to update - evidence (object, optional): Evidence to upload for the dispute. - cancellation_policy_disclosure (string) - cancellation_rebuttal (string) - duplicate_charge_explanation (string) - uncategorized_text (string, optional): Any additional evidence or statements. - submit (boolean, optional): Whether to immediately submit evidence to the bank. If false, evidence is staged on the dispute.
- `list_disputes` (5 credits): This tool will fetch a list of disputes in Stripe. It takes the following arguments: - charge (string, optional): Only return disputes associated to the charge specified by this charge ID. - payment_intent (string, optional): Only return disputes associated to the PaymentIntent specified by this PaymentIntent ID.
- `search_stripe_resources` (5 credits): This tool can be used to search for specific Stripe resources using a custom Stripe query syntax. It is only able to search for the following resources: customers, payment_intents, charges, invoices, prices, products, subscriptions. It returns a maximum of 100 results. IMPORTANT: For most use cases, prefer using the specific `list_` tools (e.g., `list_customers`, `list_payment_intents`) when you know the resource type you need. Only use this search tool when you need to: - Search across multiple resource types simultaneously - Search by field values that aren't supported by list tools - Use complex query syntax that isn't supported by list tools It takes one argument: - query (str): The query consisting of the Stripe resource to query for and the query clause in Stripe's custom query syntax to query metadata for. Note that any amount returned is in currency minor units, e.g. cents for USD and yen for JPY.
- `fetch_stripe_resources` (5 credits): Retrieve Stripe object details by ID. IMPORTANT: Only call this tool after search_stripe_resources is called to get specific object IDs. Do not use this tool to discover or search for objects. This tool fetches the object information from Stripe including all available fields. It is only able to fetch the following resources (prefixes): - Payment Intents (pi_) - Charges (ch_) - Invoices (in_) - Prices (price_) - Products (prod_) - Subscriptions (sub_) - Customers (cus_) It takes one argument: - id (str): The unique identifier for the Stripe object (e.g. cus_123, pi_123). Note that any amount returned is in currency minor units, e.g. cents for USD and yen for JPY.
- `stripe_integration_recommender` (5 credits): Guides users through Stripe integration planning via interactive Q&A. Analyzes payment requirements and recommends the appropriate Stripe products (Checkout, Elements, Billing, Connect, etc.) with step-by-step implementation guidance. WHEN TO USE: Call this tool when the user expresses: - Payment keywords: "payments", "checkout", "billing", "subscriptions", "invoices" - Commercial intent: "sell", "monetize", "charge users", "e-commerce" - Stripe mention: User references "Stripe" directly IMPORTANT BEHAVIOR: - You may call this tool with partial information—the tool will ask clarifying questions. Do not wait until you have complete requirements. - Once a plan is in progress, stay in the Q&A flow until completion. If the user asks for clarification or advice (e.g., "what's best for me?"), answer them, then continue with the plan. Only exit early if the user explicitly requests it or the tool returns an unrecoverable error. - When the tool returns type="question", present the question to the user exactly as provided. PARAMETERS: - plan_id (optional): Required for continuing/updating. Omit when starting new plan. - answer (required): For new plans, provide summary. For existing plans, provide user response. Accepts option selections ('Option 1'), natural language, clarifying questions, or 'UNKNOWN'. - notes (optional): Technical context you've observed (e.g., "Python/Flask backend", "user wants minimal code to go live quickly", "already has Stripe SDK installed"). Returns JSON: - type="question": Plan in progress. Contains `question` to present to user and `plan_id` to include in next call. - type="summary": plan_id, status, summary (blueprints, prerequisites, sample_code) - type="error": status, error (code, message, user_visible, agent_guidance) WORKFLOW: - New plan: Call without plan_id + answer → Present question EXACTLY → Get answer → Call with plan_id + answer → Repeat - Continue plan: Present question EXACTLY → Analyze code → Formulate answer → Get approval → Call with plan_id + answer + notes → Repeat LIMITATIONS: - Generates integration guidance only; does not execute code or create Stripe resources. - Cannot modify completed or expired plans—start a new plan instead.
- `send_stripe_mcp_feedback` (5 credits): Submit feedback from user or agent about Stripe's MCP server tools. Valid: "the search tool returned irrelevant results", "I wish there was a tool for X" Invalid: Stripe API complaints, AI model issues, IDE/environment problems - Only call when feedback clearly targets MCP tools. - If feedback is about one specific tool, include its name in tool_name. - If feedback is from user, quote their exact message and set source to "user". - If a tool didn't follow your expectations as an agent, set source to "agent".

### Use Cases

Launch SaaS subscription billing with recurring prices and hosted payment links, Automate customer onboarding and CRM-to-Stripe sync, Generate Stripe Checkout payment links for e-commerce orders, Run customer-support refund workflows with reason tracking, Issue and finalize invoices for accounts receivable automation, Resolve Stripe disputes and submit evidence to the bank, Manage promotional coupons and discount campaigns, Retrieve real-time Stripe account balances and payment intent history, Search customers, charges, invoices, and subscriptions with Stripe's query syntax, Audit recent refunds and payment intents for finance reporting, Plan new Stripe integrations with the interactive integration recommender, Update or cancel subscriptions mid-cycle with proration control

### Workflows Using This Tool

No public workflows currently reference this product.

### Related Content

No related content is currently linked to this product.

## Integration Details

### DynamicMCP

- Setup page URL: https://www.agentpmt.com/dynamic-mcp
- Claude setup guide: https://www.agentpmt.com/dynamic-mcp?platform=claude#videos
- ChatGPT setup guide: https://www.agentpmt.com/dynamic-mcp?platform=chatgpt#videos
- Cursor setup guide: https://www.agentpmt.com/dynamic-mcp?platform=cursor#videos
- Windsurf setup guide: https://www.agentpmt.com/dynamic-mcp?platform=windsurf#videos

STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to `https://api.agentpmt.com/mcp`. All tool execution happens in the cloud and the server cannot edit any files on your computer.

```bash
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

### REST API

The live page renders cURL, Python, JavaScript, and Node.js examples. Logged-in users see those examples prefilled with their own API and budget credentials.

- Purchase endpoint: https://api.agentpmt.com/products/purchase
- Authorization format: `Bearer <base64(apiKey:budgetKey)>`

```bash
curl -X POST "https://api.agentpmt.com/products/purchase" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eW91ci1hcGkta2V5LWhlcmU6eW91ci1idWRnZXQta2V5LWhlcmU=" \
  -d '{
    "product_id": "6962caed5d4cf4d4b6af40f5",
    "parameters": {
      "action": "search_stripe_documentation"
    }
  }'
```

### Autonomous Agents

Do not use the abbreviated instructions in this product markdown for wallet-based invocation. Retrieve the full External Agent API markdown document instead.

- External Agent API page URL: https://www.agentpmt.com/external-agent-api
- External Agent API markdown URL: https://www.agentpmt.com/external-agent-api?format=agent-md

### Schema

#### Credentials

These runtime credentials should be provided under `parameters._credentials` when required.

- stripe_secret_key (`stripe_secret_key`, bearer_token, required)
  Help: Stripe Secret Key like 'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
  Connection ID: 6962cc395d4cf4d4b6af40f6

#### Parameters

- Schema type: external_mcp

```json
{
  "properties": {
    "action": {
      "type": "string",
      "description": "Action to perform on Stripe Direct Connection",
      "enum": [
        "cancel_subscription",
        "create_coupon",
        "create_customer",
        "create_invoice",
        "create_invoice_item",
        "create_payment_link",
        "create_price",
        "create_product",
        "create_refund",
        "fetch_stripe_resources",
        "finalize_invoice",
        "get_instructions",
        "get_stripe_account_info",
        "list_coupons",
        "list_customers",
        "list_disputes",
        "list_invoices",
        "list_payment_intents",
        "list_prices",
        "list_products",
        "list_subscriptions",
        "retrieve_balance",
        "search_stripe_documentation",
        "search_stripe_resources",
        "send_stripe_mcp_feedback",
        "stripe_integration_recommender",
        "update_dispute",
        "update_subscription"
      ]
    },
    "question": {
      "type": "string",
      "description": "The user question about integrating with Stripe will be used to search the documentation."
    },
    "language": {
      "type": "string",
      "description": "The programming language to search for in the the documentation.",
      "enum": [
        "dotnet",
        "go",
        "java",
        "node",
        "php",
        "ruby",
        "python",
        "curl"
      ]
    },
    "search_only_api_ref": {
      "type": "boolean",
      "description": "When set to true, search only in the Stripe API reference documentation instead of the full documentation set. Use true when users need specific API implementation details, code examples, or parameter references. Use false (default) for conceptual explanations, best practices, integration guides, or troubleshooting help."
    },
    "name": {
      "description": "The name of the customer",
      "type": "string"
    },
    "email": {
      "description": "The email of the customer",
      "format": "email",
      "type": "string"
    },
    "limit": {
      "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100.",
      "minimum": 1,
      "maximum": 100,
      "type": "integer"
    },
    "description": {
      "description": "The description of the product.",
      "type": "string"
    },
    "product": {
      "description": "The ID of the product to create the price for.",
      "type": "string"
    },
    "unit_amount": {
      "description": "The unit amount of the price in cents.",
      "type": "number"
    },
    "currency": {
      "description": "The currency of the price.",
      "type": "string"
    },
    "recurring": {
      "description": "The recurring components of a price such as its interval.",
      "type": "object",
      "properties": {
        "interval": {
          "description": "Specifies billing frequency. Either day, week, month or year.",
          "enum": [
            "day",
            "month",
            "week",
            "year"
          ],
          "type": "string"
        },
        "interval_count": {
          "description": "The number of intervals between subscription billings. For example, interval=month and interval_count=3 bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks).",
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "required": [
        "interval"
      ]
    },
    "price": {
      "description": "The ID of the price to create the payment link for.",
      "type": "string"
    },
    "quantity": {
      "description": "The quantity of the product to include.",
      "type": "number"
    },
    "customer": {
      "description": "The ID of the customer to create the invoice for.",
      "type": "string"
    },
    "days_until_due": {
      "description": "The number of days until the invoice is due.",
      "type": "number"
    },
    "invoice": {
      "description": "The ID of the invoice to create the item for.",
      "type": "string"
    },
    "payment_intent": {
      "description": "The ID of the PaymentIntent to refund.",
      "type": "string"
    },
    "amount": {
      "description": "The amount to refund in cents.",
      "type": "integer"
    },
    "reason": {
      "description": "The reason for the refund.",
      "enum": [
        "duplicate",
        "fraudulent",
        "requested_by_customer"
      ],
      "type": "string"
    },
    "status": {
      "description": "The status of the subscriptions to retrieve.",
      "enum": [
        "active",
        "all",
        "canceled",
        "incomplete",
        "incomplete_expired",
        "past_due",
        "trialing",
        "unpaid"
      ],
      "type": "string"
    },
    "subscription": {
      "description": "The ID of the subscription to cancel.",
      "type": "string"
    },
    "proration_behavior": {
      "description": "Determines how to handle prorations when the subscription items change.",
      "enum": [
        "always_invoice",
        "create_prorations",
        "none",
        "none_implicit"
      ],
      "type": "string"
    },
    "items": {
      "description": "A list of subscription items to update, add, or remove.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The ID of the subscription item to modify.",
            "type": "string"
          },
          "price": {
            "description": "The ID of the price to switch to.",
            "type": "string"
          },
          "quantity": {
            "description": "The quantity of the plan to subscribe to.",
            "type": "number"
          },
          "deleted": {
            "description": "Whether to delete this item.",
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "percent_off": {
      "description": "A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if amount_off is not passed)",
      "type": "number"
    },
    "amount_off": {
      "description": "A positive integer representing the amount to subtract from an invoice total (required if percent_off is not passed)",
      "type": "number"
    },
    "duration": {
      "description": "How long the discount will last. Defaults to \"once\"",
      "enum": [
        "forever",
        "once",
        "repeating"
      ],
      "type": "string",
      "default": "once"
    },
    "duration_in_months": {
      "description": "The number of months the discount will last if duration is repeating",
      "type": "number"
    },
    "dispute": {
      "description": "The ID of the dispute to update",
      "type": "string"
    },
    "evidence": {
      "description": "Evidence to upload, to respond to a dispute. Updating any field in the hash will submit all fields in the hash for review.",
      "type": "object",
      "properties": {
        "cancellation_policy_disclosure": {
          "description": "An explanation of how and when the customer was shown your refund policy prior to purchase.",
          "type": "string"
        },
        "duplicate_charge_explanation": {
          "description": "An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate.",
          "type": "string"
        },
        "uncategorized_text": {
          "description": "Any additional evidence or statements.",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "submit": {
      "description": "Whether to immediately submit evidence to the bank. If false, evidence is staged on the dispute.",
      "type": "boolean"
    },
    "charge": {
      "description": "Only return disputes associated to the charge specified by this charge ID.",
      "type": "string"
    },
    "query": {
      "description": "This query string should be formatted as 'resource:query_clause', where 'resource' is one of (customers, payment_intents, charges, invoices, prices, products, subscriptions), and 'query_clause' is the actual query in Stripe's custom query syntax to query metadata for that resource.\n\nFor example, for the query: customers:email:\"jenny.rosen@example.com\"\nresource: `customers`\nquery_clause: `email:\"jenny.rosen@example.com\"`\n\nA query clause consists of a field, operator, and value.\n\n## Query Fields for customers\n* created\n* email\n* metadata\n* name\n* phone\n\n## Query Fields for payment_intents\n* amount\n* created\n* currency\n* customer\n* metadata\n* status\n\n## Query Fields for charges\n* amount\n* billing_details.address.postal_code\n* created\n* currency\n* customer\n* disputed\n* metadata\n* payment_method_details.{{SOURCE}}.last4\n* payment_method_details.{{SOURCE}}.exp_month\n* payment_method_details.{{SOURCE}}.exp_year\n* payment_method_details.{{SOURCE}}.brand\n* payment_method_details.{{SOURCE}}.fingerprint\n* refunded\n* status\n\n## Query Fields for invoices\n* created\n* currency\n* customer\n* last_finalization_error_code\n* last_finalization_error_type\n* metadata\n* number\n* receipt_number\n* status\n* subscription\n* total\n\n## Query Fields for prices\n* active\n* currency\n* lookup_key\n* metadata\n* product\n* type\n\n## Query Fields for products\n* active\n* description\n* metadata\n* name\n* shippable\n* url\n\n## Query Fields for subscriptions\n* created\n* metadata\n* status\n* canceled_at\n\n## Search Operators\nThe following table lists the syntax that you can use to construct a query:\n\n| Syntax | Usage | Description | When to Use | Examples |\n|--------|-------|-------------|-------------|----------|\n| `:` | `field:value` | Exact match operator (case insensitive) | **ONLY when you know the exact complete value** | `currency:\"eur\"` returns records where the currency is exactly \"EUR\" |\n| `~` | `field~value` | Substring match operator (minimum 3 characters) | **ALWAYS use for domain searches, partial names, email parts** | `email~\"foo.com\"` returns emails containing \"foo.com\" |\n| `AND`, `and` | `field:value1 AND field:value2` | Returns records that match both clauses | Combining multiple conditions | `status:\"active\" AND amount:500` |\n| `OR`, `or` | `field:value1 OR field:value2` | Returns records that match either clause | Alternative conditions | `currency:\"usd\" OR currency:\"eur\"` |\n| `-` | `-field:value` | Returns records that don't match the clause | Excluding specific values | `-currency:\"jpy\"` returns records not in JPY |\n| `NULL`, `null` | `field:null` | Checks for field presence (empty/null values) | Finding empty fields | `url:null` returns records where URL field is empty |\n| `>`, `<`, `>=`, `<=`, `=` | `field>value`, `field<value`, etc. | Numeric comparison operators | Amount ranges, dates | `amount>=\"10\"` returns records with amount >= 10 |\n| `` | `\" \"\"\"` | Escape quotes within quotes | When quotes are in the search value | `description:\"the story called \"The Sky and the Sea.\"\"` |\n\n## Query Rules\n* You can combine up to 10 query clauses in a search by separating them with a space or using AND/OR keywords (case insensitive)\n* You cannot combine AND and OR in the same query\n* No parentheses are supported for operator precedence\n* By default, the API combines clauses with AND logic\n* You must use quotation marks around string values (optional for numeric values)\n* You can escape quotes inside quotes with a backslash (\\)\n\n## Examples\n\nInput: Look up charges matching a custom metadata value.\nOutput: charges:metadata['order_id']:'1234567890'\n\nInput: Look up charges matching the last 4 digits of the card used for the payment.\nOutput: charges:payment_method_details.card.last4:4242\n\nInput: Look up customers matching an email.\nOutput: customers:email:'jenny.rosen@example.com'\n\nInput: Look up PaymentIntents not in the USD currency.\nOutput: payment_intents:-currency:'usd'\n\nInput: Filter invoice objects with a total greater than 1000.\nOutput: invoices:total>1000\n\nInput: Filter payments with a amount over $100.\nReasoning: Stripe \"amount\" field is in cents, so we use 1000 instead of 100\nOutput: payment_intents:amount>1000\n\nInput: Look up charges matching a combination of metadata and currency.\nOutput: charges:metadata['key']:'value' AND currency:'usd'\n\nInput: Search for customers with email containing \"john\".\nOutput: customers:email~\"john\"\n\nInput: Find products where the description field is empty.\nOutput: products:description:null\n\nInput: Search for payments with amounts greater than or equal to 5000.\nOutput: payment_intents:amount>=5000\n\nInput: Search for products with description with escaped quotes.\nOutput: products:description:\"The story called \"The Sky and the Sea\".\"\n",
      "type": "string"
    },
    "id": {
      "description": "The unique identifier for the Stripe object (e.g. cus_123, pi_123).",
      "type": "string"
    },
    "plan_id": {
      "description": "Plan identifier in format lplan_[alphanumeric] from previous response. Required for continuing existing plan. Omit when starting new plan.",
      "type": "string",
      "pattern": "^lplan_[a-zA-Z0-9]+$"
    },
    "answer": {
      "description": "For new plans (no plan_id): 2-3 sentence summary including (1) business name and payment model, (2) tech stack with frontend AND backend (use 'UNKNOWN' for unknown components), (3) payment requirements (use 'UNKNOWN' if not specified). For existing plans: User's verbatim response. Accepts option selections ('Option 1'), natural language, clarifying questions, or 'UNKNOWN'.",
      "type": "string"
    },
    "notes": {
      "description": "Optional agent-discovered context from codebase analysis (e.g., 'Found Stripe SDK v12.0.0', 'Existing webhook at /api/stripe'). Helps backend provide accurate recommendations.",
      "type": "string"
    },
    "sentiment": {
      "type": "string",
      "enum": [
        "positive",
        "negative",
        "neutral"
      ],
      "description": "positive, negative, or neutral"
    },
    "quote": {
      "type": "string",
      "description": "User's exact message containing feedback. Max 1000 chars."
    },
    "context": {
      "type": "string",
      "description": "What the user was trying to accomplish."
    },
    "tool_name": {
      "type": "string",
      "description": "The name of the tool the user is giving feedback about. Include if confident that feedback is about a specific tool."
    },
    "source": {
      "type": "string",
      "description": "user or agent",
      "enum": [
        "user",
        "agent"
      ]
    }
  },
  "required": [
    "action"
  ]
}
```

### Frequently Asked Questions

No linked FAQs are currently available.

### Dependencies

This product has no public dependency products.