home / skills / composiohq / awesome-claude-skills / braintree-automation

braintree-automation skill

/braintree-automation

This skill automates Braintree payment workflows via Stripe-compatible tooling, enabling customers, subscriptions, payments, and transactions management.

npx playbooks add skill composiohq/awesome-claude-skills --skill braintree-automation

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
7.0 KB
---
name: Braintree Automation
description: "Braintree Automation: manage payment processing via Stripe-compatible tools for customers, subscriptions, payment methods, and transactions"
requires:
  mcp: [rube]
---

# Braintree Automation

Automate payment processing operations via Stripe-compatible tooling including managing customers, subscriptions, payment methods, balance transactions, and customer searches. The Composio platform routes Braintree payment workflows through the Stripe toolkit for unified payment management.

**Toolkit docs:** [composio.dev/toolkits/braintree](https://composio.dev/toolkits/braintree)

---

## Setup

This skill requires the **Rube MCP server** connected at `https://rube.app/mcp`.

Before executing any tools, ensure an active connection exists for the `stripe` toolkit. If no connection is active, initiate one via `RUBE_MANAGE_CONNECTIONS`.

---

## Core Workflows

### 1. Create and Manage Customers

Create new customers and retrieve existing customer details.

**Tools:**
- `STRIPE_CREATE_CUSTOMER` -- Create a new customer
- `STRIPE_GET_CUSTOMERS_CUSTOMER` -- Retrieve a customer by ID
- `STRIPE_POST_CUSTOMERS_CUSTOMER` -- Update an existing customer
- `STRIPE_LIST_CUSTOMERS` -- List customers with pagination
- `STRIPE_GET_V1_CUSTOMERS_SEARCH_CUSTOMERS` -- Search customers by email, name, metadata

**Key Parameters for `STRIPE_CREATE_CUSTOMER`:**
- `email` -- Customer's primary email address
- `name` -- Full name or business name
- `phone` -- Phone number with country code
- `description` -- Internal reference notes
- `address` -- Billing address object with `line1`, `city`, `state`, `postal_code`, `country`

**Key Parameters for `STRIPE_GET_V1_CUSTOMERS_SEARCH_CUSTOMERS`:**
- `query` (required) -- Stripe Search Query Language. Must use `field:value` syntax:
  - `email:'[email protected]'` -- Exact match (case insensitive)
  - `name~'John'` -- Substring match (min 3 chars)
  - `metadata['key']:'value'` -- Metadata search
  - `created>1609459200` -- Timestamp comparison
  - Combine with `AND` or `OR` (max 10 clauses, cannot mix)
- `limit` -- Results per page (1--100, default 10)

**Example:**
```
Tool: STRIPE_CREATE_CUSTOMER
Arguments:
  email: "[email protected]"
  name: "Jane Doe"
  description: "Enterprise plan customer"
  address: {
    "line1": "123 Main St",
    "city": "San Francisco",
    "state": "CA",
    "postal_code": "94105",
    "country": "US"
  }
```

---

### 2. Manage Subscriptions

Create subscriptions and view customer subscription details.

**Tools:**
- `STRIPE_CREATE_SUBSCRIPTION` -- Create a new subscription for an existing customer
- `STRIPE_GET_CUSTOMERS_CUSTOMER_SUBSCRIPTIONS` -- List all subscriptions for a customer
- `STRIPE_GET_CUSTOMERS_CUSTOMER_SUBS_SUB_EXPOSED_ID` -- Get a specific subscription

**Key Parameters for `STRIPE_CREATE_SUBSCRIPTION`:**
- `customer` (required) -- Customer ID, e.g., `"cus_xxxxxxxxxxxxxx"`
- `items` (required) -- Array of subscription items, each with:
  - `price` -- Price ID, e.g., `"price_xxxxxxxxxxxxxx"` (use this OR `price_data`)
  - `price_data` -- Inline price definition with `currency`, `product`, `unit_amount`, `recurring`
  - `quantity` -- Item quantity
- `default_payment_method` -- Payment method ID (not required for trials or invoice billing)
- `trial_period_days` -- Trial days (no payment required during trial)
- `collection_method` -- `"charge_automatically"` (default) or `"send_invoice"`
- `cancel_at_period_end` -- Cancel at end of billing period (boolean)

**Key Parameters for `STRIPE_GET_CUSTOMERS_CUSTOMER_SUBSCRIPTIONS`:**
- `customer` (required) -- Customer ID
- `status` -- Filter: `"active"`, `"all"`, `"canceled"`, `"trialing"`, `"past_due"`, etc.
- `limit` -- Results per page (1--100, default 10)

**Example:**
```
Tool: STRIPE_CREATE_SUBSCRIPTION
Arguments:
  customer: "cus_abc123"
  items: [{"price": "price_xyz789", "quantity": 1}]
  trial_period_days: 14
```

---

### 3. Manage Payment Methods

List and attach payment methods to customers.

**Tools:**
- `STRIPE_GET_CUSTOMERS_CUSTOMER_PAYMENT_METHODS` -- List a customer's payment methods
- `STRIPE_ATTACH_PAYMENT_METHOD` -- Attach a payment method to a customer

**Key Parameters for `STRIPE_GET_CUSTOMERS_CUSTOMER_PAYMENT_METHODS`:**
- `customer` (required) -- Customer ID
- `type` -- Filter by type: `"card"`, `"sepa_debit"`, `"us_bank_account"`, etc.
- `limit` -- Results per page (1--100, default 10)

**Example:**
```
Tool: STRIPE_GET_CUSTOMERS_CUSTOMER_PAYMENT_METHODS
Arguments:
  customer: "cus_abc123"
  type: "card"
  limit: 10
```

---

### 4. View Balance Transactions

Retrieve the history of balance changes for a customer.

**Tool:** `STRIPE_GET_CUSTOMERS_CUSTOMER_BALANCE_TRANSACTIONS`

**Key Parameters:**
- `customer` (required) -- Customer ID
- `created` -- Filter by creation date with comparison operators: `{"gte": 1609459200}` or `{"gt": 1609459200, "lt": 1640995200}`
- `invoice` -- Filter by related invoice ID
- `limit` -- Results per page (1--100)
- `starting_after` / `ending_before` -- Pagination cursors

**Example:**
```
Tool: STRIPE_GET_CUSTOMERS_CUSTOMER_BALANCE_TRANSACTIONS
Arguments:
  customer: "cus_abc123"
  limit: 25
  created: {"gte": 1704067200}
```

---

## Known Pitfalls

| Pitfall | Detail |
|---------|--------|
| **Search query syntax** | `STRIPE_GET_V1_CUSTOMERS_SEARCH_CUSTOMERS` requires field-prefixed queries (e.g., `email:'x'`). Bare strings without field prefixes are invalid and will error. |
| **Subscription payment method** | `default_payment_method` is not required if using `trial_period_days` or `collection_method='send_invoice'`. Otherwise, the subscription may fail to activate. |
| **Payment method attachment** | A `PaymentMethod` must be in a detached state before attaching to a customer. Already-attached methods will error. |
| **Pagination cursors** | Use `starting_after`/`ending_before` with object IDs, not page numbers. Extract the last/first object ID from each response. |
| **Balance amounts in cents** | All monetary amounts are in the smallest currency unit (e.g., cents for USD). 1000 = $10.00. |
| **Subscription status default** | `GET_CUSTOMERS_CUSTOMER_SUBSCRIPTIONS` excludes canceled subscriptions by default. Pass `status: "all"` to include them. |

---

## Quick Reference

| Tool Slug | Description |
|-----------|-------------|
| `STRIPE_CREATE_CUSTOMER` | Create a new customer |
| `STRIPE_GET_CUSTOMERS_CUSTOMER` | Retrieve a customer by ID |
| `STRIPE_POST_CUSTOMERS_CUSTOMER` | Update an existing customer |
| `STRIPE_LIST_CUSTOMERS` | List customers with pagination |
| `STRIPE_GET_V1_CUSTOMERS_SEARCH_CUSTOMERS` | Search customers by attributes |
| `STRIPE_CREATE_SUBSCRIPTION` | Create a subscription for a customer |
| `STRIPE_GET_CUSTOMERS_CUSTOMER_SUBSCRIPTIONS` | List customer subscriptions |
| `STRIPE_GET_CUSTOMERS_CUSTOMER_SUBS_SUB_EXPOSED_ID` | Get a specific subscription |
| `STRIPE_GET_CUSTOMERS_CUSTOMER_PAYMENT_METHODS` | List customer payment methods |
| `STRIPE_ATTACH_PAYMENT_METHOD` | Attach payment method to customer |
| `STRIPE_GET_CUSTOMERS_CUSTOMER_BALANCE_TRANSACTIONS` | List customer balance transactions |

---

*Powered by [Composio](https://composio.dev)*

Overview

This skill automates payment processing using Stripe-compatible tooling routed through the Composio Braintree toolkit. It provides programmatic operations for customers, subscriptions, payment methods, balance transactions, and customer search. Designed for use with the Rube MCP server and an active Stripe toolkit connection.

How this skill works

The skill exposes a set of toolkit actions that map common billing operations to Stripe-style API calls: create/update/list customers, search customers with Stripe Search Query Language, create and manage subscriptions, attach and list payment methods, and inspect balance transactions. Before running tools, ensure an active connection to the stripe toolkit on the Rube MCP server. Use provided parameters and pagination cursors to control queries and results.

When to use it

  • Onboard new customers and maintain customer records programmatically
  • Create, modify, or inspect subscriptions and trial behavior
  • Attach or list customer payment methods and verify attachment state
  • Search customers by email, name, metadata, or creation date
  • Audit balance transactions and reconcile payment histories

Best practices

  • Always confirm an active stripe toolkit connection on Rube MCP before calling tools
  • Use field-prefixed Stripe Search Query Language (email:, name~, metadata['key']:) to avoid search errors
  • Pass pagination cursors (starting_after / ending_before) using object IDs returned by responses, not page numbers
  • Send monetary amounts in the smallest currency unit (e.g., cents) to avoid rounding errors
  • Ensure PaymentMethod objects are detached before calling attach to avoid attachment errors

Example use cases

  • Create a customer with billing address and attach a saved card to start a subscription
  • Search for customers created after a timestamp and export matching records for support
  • Provision a 14-day trial subscription without requiring a default payment method
  • List a customer’s payment methods (type: card) to display in a billing UI
  • Fetch recent balance transactions filtered by creation date to reconcile payouts

FAQ

What connection is required to run tools?

An active connection to the stripe toolkit via the Rube MCP server (https://rube.app/mcp) is required before executing any tools.

How do I search customers by email or metadata?

Use STRIPE_GET_V1_CUSTOMERS_SEARCH_CUSTOMERS with a field-prefixed query like email:'[email protected]' or metadata['plan']:'enterprise'. Combine clauses with AND/OR (max 10 clauses).

Why did attaching a payment method fail?

Attachment fails if the PaymentMethod is already attached. A PaymentMethod must be detached before using STRIPE_ATTACH_PAYMENT_METHOD to attach to a different customer.

How are money amounts represented?

All monetary amounts use the smallest currency unit (for USD, cents). For example, 1000 equals $10.00.