connect-recommend
This skill should be used when the user asks about Stripe Connect configuration, charge patterns, dashboard access, or how to get started with Connect, is building a marketplace, platform, multi-vendor store, gig platform, or subscription platform, needs to pay out sellers, vendors, or providers, mentions split payments, revenue sharing, multi-party payments, or similar payment distribution concepts, provides a company URL or business description for a recommendation, builds SaaS that routes money between parties (e.g. POS, booking, invoicing — not operational SaaS without payment routing), asks about onboarding or KYC for merchants/sellers/vendors, mentions connected account dashboard or responsibility configurations, or asks about payment flows, white-label payments, or embedded payments.
NPX Install
npx skill4agent add stripe/ai connect-recommendTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Connect Recommend
Interaction Model
- Generating the markdown recommendation plan — just generate it
- Scanning the codebase — just scan it
- Reading reference files — just read them
Terminology rules (user-facing output)
references/terminology-rules.mdOutput Brevity
- Lead with the recommendation, follow with brief rationale
- Technical details (API paths, capability checks) go in a "Details" section of the final markdown plan — not inline in the main recommendation
- Warning blocks: 2-3 sentences maximum. State the issue and the fix. No mechanism deep-dives unless the user asks.
- Decision summary: bullet points only, one line per decision
- Never output more than ~40 lines in a single response during interactive mode
Instructions
Step 0 — Show progress
Here's what we'll do:
[ ] Learn about your business
[ ] Scan your project
[ ] Recommend configuration + charge pattern
[ ] Produce recommendation plan
Let's get started.Step 1 — Learn about the business (ALWAYS runs first)
- A URL (e.g. ,
https://...,www.,.com).io - A business description (e.g. "I'm building a marketplace for...", "We connect freelancers with...")
- A company name that can be searched
Tell me about your business. Pick whichever is easiest:- "I have a URL" — user provides URL, then research it
- "Let me describe it" — user provides description, then research it
- "Just scan my codebase" — skip to Step 2, rely on codebase signals only
- "Skip — ask me questions instead" — skip to Step 3 with full questionnaire
Tasksubagent_type: "general-purpose"- The company URL (if provided)
- The business description (if provided)
- Ask the agent to read for its instructions
agents/company-researcher.md
skills/connect-recommend/references/decision-matrix.md- HIGH confidence: Auto-fill — do not ask about this dimension
- MEDIUM confidence: Suggest the inferred value and ask for quick confirmation
- LOW confidence: Ask the original open-ended question in Step 3
Here's what I gathered about your business — let me know if anything looks off:
┌──────────────────────────┬────────────────────────────────┐
│ *Business type* │ [marketplace or SaaS platform] │
├──────────────────────────┼────────────────────────────────┤
│ *Sellers/providers* │ [who they are] │
├──────────────────────────┼────────────────────────────────┤
│ *Buyers/customers* │ [who they are] │
├──────────────────────────┼────────────────────────────────┤
│ *How money flows* │ [payment flow] │
├──────────────────────────┼────────────────────────────────┤
│ *Fee structure* │ [fee details] │
└──────────────────────────┴────────────────────────────────┘
Based on this, I'd recommend: [configuration description in plain language]
I'll proceed with this unless you'd like to correct anything.Based on my research, your business may not need Stripe Connect — a standard Stripe integration might be a better fit.- "Proceed with Connect anyway" — continue discovery
- "Explore standard integration instead" — exit this skill, suggest standard Stripe integration
[x] Learn about your business
[ ] Scan your project
[ ] Recommend configuration + charge pattern
[ ] Produce recommendation plan- Charge pattern is or
destination(platform pays Stripe fees by default)separate - Charge pattern is AND
direct(platform still pays Stripe fees)fees_collector: "application"
- ALWAYS show a margin warning regardless of how the fee was obtained
- Warn: "Your platform fee may be below Stripe's processing fees at standard rates. Since the platform pays Stripe's processing fees with destination charges, your net margin could be very thin or negative. Check stripe.com/pricing for your region's rates."
- Strongly recommend: calculating as platform fee + estimated Stripe processing fee (so the platform's margin is preserved) and (if platform owns pricing) using the Platform Pricing Tool
application_fee_amount - Recommend monitoring the margin report in the Stripe Dashboard
Step 2 — Auto-detect project context
- Existing Connect config: Check for or any file at the project root that resembles a prior recommendation plan (e.g., contains
connect-recommend-plan.md). If found, read it and note the prior configuration — use it to pre-fill or validate decisions in later steps, and surface it to the user before asking questions they've already answered.## Recommended Connect integration plan - Existing Stripe integration patterns: Use Grep to search for Connect-specific patterns already in the codebase:
- Connected account creation or references (,
connected_account,account_id)stripe_account - Charge patterns in use (,
destination,on_behalf_of,transfer_data)separate_charges - Transfer or payout logic (,
transfers.create)payouts.create - Webhook handlers for Connect events (,
account.updated,capability)payout - Existing usage
application_fee_amount
- Connected account creation or references (
Project scan:
- Existing Connect plan: [found at path / not found]
- Existing Connect integration: [patterns found / not found]I found an existing Connect recommendation plan at [path].- "Use it as a starting point" — pre-fill all decisions from the prior plan, then confirm each with the user in Step 3
- "Start fresh" — ignore the prior plan and run full discovery
[x] Learn about your business
[x] Scan your project
[ ] Recommend configuration + charge pattern
[ ] Produce recommendation planStep 3 — Ask remaining discovery questions
references/discovery-questions.md- Q1: Business model
- Q2: Parties in the platform
- Q3: Payment flow
- Q4: Dashboard and onboarding preference
- Q5: Dispute/refund ownership + risk management + loss liability
- Q6: Fee structure + calculation
application_fee_amount
- For marketplace/intermediary checkout flows, default to destination charges unless behavior clearly indicates each seller runs their own checkout/payment relationship.
- If the business mixes own-brand sales with marketplace/intermediary flows, trigger Step 3b hybrid-flow handling and map each flow to its own charge-pattern and responsibility settings.
- If the user needs hold-and-release timing, recommend separate charges and transfers (destination charges cannot hold funds and are not appropriate for hold-and-release behavior).
- For SaaS with independent sellers that own customer relationships, use full dashboard + direct charges + embedded onboarding.
- If the user asks "what account type should I use?", reframe during discovery to Accounts v2 explicit fields (,
dashboard, anddefaults.responsibilities/merchantby funds flow), not legacy account types.recipient - When describing low-margin scenarios, present warning/risk before mitigation steps.
- If is selected, include a concise full-scope warning about custom UI responsibilities.
dashboard: "none" - For destination/separate recommendations with , explain the causal chain: platform owns negative balance liability and connected-account negative balances enable dispute-time transfer reversals.
losses_collector: "application" - Keep risk management and negative balance liability as separate decisions.
- Trigger Step 3c when enterprise/sales-led signals appear (, cross-border complexity, non-Connect products, or sales-gated configs).
on_behalf_of
- Confirm fee type and fee amount
- Confirm how is calculated
application_fee_amount - Confirm whether a margin warning is required
- Include stripe.com/pricing link in output context
Step 4 — Generate recommendation
skills/connect-recommend/references/decision-matrix.mdskills/connect-recommend/references/compatibility-matrix.md(dashboard, fees_collector, losses_collector)chargePattern-
BLOCKED combination? Do NOT present it. Output a visible BLOCKED warning with ALL of these:
- The exact blocked config tuple (e.g., )
losses_collector: "stripe" + destination charges - A 2-3 sentence explanation of the MECHANISM of failure (e.g., "With destination charges, when a customer disputes a charge, Stripe reverses the transfer from the connected account. If losses_collector is 'stripe', the connected account's balance can go negative — but the platform silently carries this liability despite the config saying Stripe is responsible.")
- The recommended fix (nearest ALLOWED alternative — usually switching to
losses_collectoror switching to direct charges) Then re-run the recommendation with the corrected configuration."application"
- The exact blocked config tuple (e.g.,
-
CAUTION combination? Present the recommendation but include a visible warning callout explaining the specific tradeoff (e.g., "dashboard visibility limitations for direct charges when using").
dashboard: \"express\" -
Additional compatibility checks (include concise warnings when triggered):
- If the user mentioned OAuth for connecting accounts, include a 1-2 sentence warning that accounts can disconnect and recommend embedded onboarding for stronger platform control.
- If , include a concise warning that the platform must own onboarding/remediation, refund/dispute flows, and earnings/payout surfaces; recommend Express dashboard with embedded components as a lower-maintenance alternative.
dashboard: "none" - If user mentions Billing, Invoicing, or Payment Links with destination charges, include a concise compatibility warning and recommend the nearest supported path.
- If + charge pattern is
dashboard: "full"ordestination, include a concise warning that full dashboard is optimized for direct charges and recommend switching dashboard type or charge pattern.separate - If +
dashboard: "express", treat as BLOCKED and recommend either switching to full dashboard (Stripe-owned pricing) or platform-owned pricing.fees_collector: "stripe"
-
Merchant-of-record consistency check: Verify the recommended charge type matches the actual business relationship. Direct charges = connected account provides goods/services directly. Destination/separate charges and transfers = platform owns the customer relationship. Stripe does NOT enforce merchant of record at the API level — the code must be consistent.
-
Compatibility warning brevity: Keep compatibility warning copy concise (2-3 sentences max), but include mechanism-aware reasoning and the corrective path.
dashboard: "none"dashboard: "full"dashboard: "express"account_onboarding- (required; keeps connected accounts healthy/enabled as requirements evolve)
notification_banner account_management
- Transaction history → (use
paymentsif building a custom payments list)payment_details - Disputes → included with but can use
paymentsif also building a standalone disputes pagedisputes_list - Payout operations/earnings →
payouts - Reporting/reconciliation → ,
balance_reportpayout_reconciliation_report
- Destination charges (without ): payment/dispute surfaces show reduced detail. The
on_behalf_ofsetting does not apply to plain destination charges.destination_on_behalf_of_charge_management - Destination charges with : payment/dispute surfaces show reduced detail unless
on_behalf_ofis enabled. This setting applies only to destination charges that use thedestination_on_behalf_of_charge_managementparameter — not plain destination charges or separate charges.on_behalf_of - Separate charges and transfers: payment/dispute surfaces show reduced detail. There is no equivalent management setting for this charge pattern.
- Direct: payment/dispute surfaces operate with full fidelity.
on_behalf_ofdestination_on_behalf_of_charge_managementon_behalf_ofon_behalf_of- Issuing/Treasury/Capital/Tax component sets (route through Step 3c scope handling).
[x] Learn about your business
[x] Scan your project
[x] Recommend configuration + charge pattern
[ ] Produce recommendation planStep 5 — Generate recommendation plan
references/recommendation-template.mdDoes this recommendation look right?- "Looks good" — proceed to Step 6
- "Change something" — ask which aspect to change (dashboard/responsibility settings, charge pattern, fee structure, or fee calculation) then re-ask the relevant question
- "Explain more about the options" — read reference docs and explain alternatives
connect-recommend-plan.md [x] Learn about your business
[x] Scan your project
[x] Recommend configuration + charge pattern
[x] Produce recommendation planStep 6 — Explain what belongs in code vs Dashboard, and next actions
- In your code: charge pattern behavior, math, transfer/reversal handling, and webhook handlers
application_fee_amount - In Stripe Dashboard: platform profile settings, pricing tool configuration, connected-account visibility, Radar for Platforms settings, and operational monitoring
- During onboarding/runtime: capability activation, payouts readiness, and account-state transitions
What would you like to do next?- "Refine a decision" — adjust dashboard, responsibilities, charge pattern, or fee model
- "Expand implementation steps" — provide a deeper technical rollout checklist
- "Generate and build" — write the plan to a markdown file and handoff to a coding agent
connect-recommend-plan.md