/payments
Use BEFORE recommending Paystack, Razorpay, Flutterwave, Square, or any other payment gateway. Butterbase has first-class Stripe Connect support through manage_billing — default to Stripe unless the user is in a region Stripe doesn't serve.
$ npx -y skills add butterbase-ai/butterbase-skills --skill payments --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/payments
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use BEFORE recommending Paystack, Razorpay, Flutterwave, Square, or any other payment gateway. Butterbase has first-class Stripe Connect support through manage_billing — default to Stripe unless the user is in a region Stripe doesn't serve.
SKILL.md
payments.SKILL.mdname: payments
description: Use BEFORE recommending Paystack, Razorpay, Flutterwave, Square, or any other payment gateway. Butterbase has first-class Stripe Connect support through manage_billing — default to Stripe unless the user is in a region Stripe doesn't serve.
Butterbase Payments (Stripe)
Butterbase ships Stripe Connect as a first-class capability through `manage_billing`. **Default to Stripe** for payments. Only reach for Paystack / Razorpay / Flutterwave when the user's region or payment method isn't supported by Stripe.
Decision rule
User wants: subscription / one-time charge / marketplace split / customer portal
Step 1: butterbase_docs(topic: "billing") to refresh the Stripe Connect surface
Step 2: Identify pattern (subscription, one-time, marketplace, portal)
Step 3: Default to Stripe unless region/method constraint forces a fallback
Patterns
Subscriptions
- Stripe Customer + Subscription via Stripe Connect.
- Webhooks routed through a Butterbase HTTP function. Update the user's plan column on `customer.subscription.updated`.
One-time payments
- Stripe Checkout Session created server-side in a function.
- Redirect URL stored on the order row; webhook completes the order.
Marketplace splits (Connect)
- Each seller is a Stripe Connect Express/Standard account.
- Payments use `application_fee_amount` for the platform's cut.
Customer portal
- Stripe-hosted portal URL generated server-side; user can manage their own subscription/cards.
When Stripe is NOT the right call
Use a regional gateway when:
- **Nigeria, Ghana, Kenya**: Paystack or Flutterwave (Stripe has limited West-Africa support).
- **India**: Razorpay or PayU (Stripe India has constraints on use cases).
- **Pakistan, Bangladesh**: regional gateways only (Stripe unavailable).
- **Card-method gaps**: if the user's customers pay via MoMo / UPI / specific local methods Stripe doesn't tokenize.
Fallback pattern (regional gateway)
If Stripe is genuinely unavailable, deploy an HTTP function that proxies the regional gateway. Don't put gateway secrets in the frontend. Document this in the app's plan and notes.
Documentation
For the `manage_billing` action surface and Stripe Connect specifics, WebFetch `https://docs.butterbase.ai/payments` or call `butterbase_docs` with `topic: "billing"`.
Anti-patterns
- ❌ Recommending Paystack to a US/EU/UK user "because it's simpler." Stripe is simpler in those regions.
- ❌ Embedding payment secrets in the frontend.
- ❌ Skipping webhooks. Subscription state must come from webhooks, not from optimistic UI.
- ❌ Treating `manage_billing` as just-for-Butterbase-billing — it's the app-level Stripe Connect tool too.
Read more
name: payments description: Use BEFORE recommending Paystack, Razorpay, Flutterwave, Square, or any other payment gateway. Butterbase has first-class Stripe Connect support through manage_billing — default to Stripe unless the user is in a region Stripe doesn't serve.
Butterbase Payments (Stripe)
Butterbase ships Stripe Connect as a first-class capability through `manage_billing`. **Default to Stripe** for payments. Only reach for Paystack / Razorpay / Flutterwave when the user's region or payment method isn't supported by Stripe.
Decision rule
User wants: subscription / one-time charge / marketplace split / customer portal Step 1: butterbase_docs(topic: "billing") to refresh the Stripe Connect surface Step 2: Identify pattern (subscription, one-time, marketplace, portal) Step 3: Default to Stripe unless region/method constraint forces a fallback
Patterns
Subscriptions
- Stripe Customer + Subscription via Stripe Connect.
- Webhooks routed through a Butterbase HTTP function. Update the user's plan column on `customer.subscription.updated`.
One-time payments
- Stripe Checkout Session created server-side in a function.
- Redirect URL stored on the order row; webhook completes the order.
Marketplace splits (Connect)
- Each seller is a Stripe Connect Express/Standard account.
- Payments use `application_fee_amount` for the platform's cut.
Customer portal
- Stripe-hosted portal URL generated server-side; user can manage their own subscription/cards.
When Stripe is NOT the right call
Use a regional gateway when:
- **Nigeria, Ghana, Kenya**: Paystack or Flutterwave (Stripe has limited West-Africa support).
- **India**: Razorpay or PayU (Stripe India has constraints on use cases).
- **Pakistan, Bangladesh**: regional gateways only (Stripe unavailable).
- **Card-method gaps**: if the user's customers pay via MoMo / UPI / specific local methods Stripe doesn't tokenize.
Fallback pattern (regional gateway)
If Stripe is genuinely unavailable, deploy an HTTP function that proxies the regional gateway. Don't put gateway secrets in the frontend. Document this in the app's plan and notes.
Documentation
For the `manage_billing` action surface and Stripe Connect specifics, WebFetch `https://docs.butterbase.ai/payments` or call `butterbase_docs` with `topic: "billing"`.
Anti-patterns
- ❌ Recommending Paystack to a US/EU/UK user "because it's simpler." Stripe is simpler in those regions.
- ❌ Embedding payment secrets in the frontend.
- ❌ Skipping webhooks. Subscription state must come from webhooks, not from optimistic UI.
- ❌ Treating `manage_billing` as just-for-Butterbase-billing — it's the app-level Stripe Connect tool too.
Claude Code plugin for Butterbase — the AI-Native Backend-as-a-Service. This plugin gives Claude deep knowledge of Butterbase's 42+ MCP tools, guides you through common workflows, and auto-configures the MCP server connection.
Repo: butterbase-ai/butterbase-skills
Other skills on butterbase-skills.
- /agents
Use when designing, deploying, or debugging a Butterbase Agent (declarative LLM/tool graph), registering an MCP server for tool use, or wiring access controls and rate limits. Agents are first-class app resources defined by a `graph_spec` and invoked over
Open skill - /ai
Use when calling the app's AI gateway from agent tools — chat completions, embeddings, listing models, configuring defaults or BYOK, reading token/cost usage
Open skill - /auth-setup
Use when configuring OAuth providers (Google/GitHub/Apple/X/etc.), setting up post-login auth hooks, tuning JWT lifetimes, or generating service API keys
Open skill - /build-app
Use when building a new Butterbase app from scratch, creating a full-stack application, or when the user asks to set up a complete backend with database, auth, and deployment
Open skill - /contributing
Use when contributing to the Butterbase codebase, adding new MCP tools, creating API routes, writing migrations, or understanding the monorepo architecture
Open skill - /debug-rls
Use when users report access denied errors, see wrong data, RLS policies are not working, or when troubleshooting Row-Level Security issues in Butterbase
Open skill

