Getting Started with Stripe Connect for AI Agent Marketplaces
If you're building an AI agent marketplace β or listing skills on one β you need to understand Stripe Connect. It's the payment infrastructure that makes multi-vendor transactions possible, and it handles the complexity so you don't have to.
This guide covers everything you need to know about Stripe Connect in the context of AI agent marketplaces, from basic concepts to implementation.
What is Stripe Connect?
Stripe Connect is Stripe's solution for marketplaces and platforms that need to process payments on behalf of multiple sellers. Instead of each seller setting up their own payment system, the platform handles everything:
- Customer checkout: The buyer pays the platform
- Fee deduction: The platform takes its commission
- Seller payout: The remaining amount goes to the seller automatically
- Compliance: Stripe handles KYC, tax forms, and regulatory requirements
On SkillExchange, this means: when an agent buys a skill, Stripe Connect processes the payment, takes the 20% platform fee, and sends 80% to the skill creator β automatically.
The Three Account Types
Stripe Connect offers three types of connected accounts:
Standard Accounts
- Sellers get their own full Stripe account
- They manage their own payout schedule and settings
- Best for: Large sellers who want full Stripe access
Express Accounts (used by SkillExchange)
- Streamlined onboarding (2β3 minutes)
- Sellers manage basic settings but the platform handles most complexity
- Best for: Most marketplace sellers
Custom Accounts
- Fully invisible to sellers β the platform handles everything
- Maximum control but maximum compliance burden
- Best for: Large platforms with legal teams
How Express Onboarding Works
When a creator on SkillExchange connects Stripe, here's what happens:
Step 1: Create Connect Account
const account = await stripe.accounts.create({
type: "express",
country: "DE", // Creator's country
email: creator.email,
capabilities: {
transfers: { requested: true },
},
business_type: "individual",
});
Step 2: Generate Onboarding Link
const link = await stripe.accountLinks.create({
account: account.id,
refresh_url: "https://skillexchange.market/dashboard/settings",
return_url: "https://skillexchange.market/dashboard/settings?stripe=connected",
type: "account_onboarding",
});
Step 3: Creator Completes Onboarding
The creator is redirected to Stripe's hosted onboarding, where they:
- Verify their identity (name, address, date of birth)
- Add their bank account for payouts
- Accept the Stripe Connected Account agreement
This typically takes 2β3 minutes.
Step 4: Account is Active
Once onboarding is complete, the creator can receive payouts. Stripe handles ongoing verification and compliance.
Processing a Payment
When an agent purchases a skill, here's the payment flow:
Create a Checkout Session
const session = await stripe.checkout.sessions.create({
mode: "payment",
payment_method_types: ["card"],
line_items: [{
price_data: {
currency: "usd",
unit_amount: skill.priceCents, // e.g., 99 for $0.99
product_data: {
name: skill.name,
description: skill.description,
},
},
quantity: 1,
}],
payment_intent_data: {
application_fee_amount: Math.ceil(skill.priceCents * 0.2), // 20% platform fee
transfer_data: {
destination: seller.stripeConnectId, // Creator's Connect account
},
},
success_url: `${baseUrl}/skills/${skillId}?success=true`,
cancel_url: `${baseUrl}/skills/${skillId}?canceled=true`,
});
What Happens Behind the Scenes
- Buyer pays $0.99 via credit card
- Stripe deducts processing fees (~$0.03 for card payments)
- Platform fee ($0.20) is applied
- Remaining amount ($0.76) is transferred to the creator's Connect account
- Creator receives payout to their bank account on their schedule
Webhook for Confirmation
// Handle checkout completion
if (event.type === "checkout.session.completed") {
const session = event.data.object;
// Update transaction status
await db.transaction.update({
where: { stripeSessionId: session.id },
data: { status: "COMPLETED" },
});
// Update skill usage count
await db.skill.update({
where: { id: transaction.skillId },
data: { usageCount: { increment: 1 } },
});
}
Handling Payouts
Creators don't need to request payouts. Stripe handles them automatically based on the schedule:
- Daily: Balances are paid out every day
- Weekly: Balances are paid out once per week
- Monthly: Balances are paid out once per month
Creators can choose their preferred schedule in their Stripe Express dashboard.
International Considerations
SkillExchange serves creators worldwide. Stripe Connect handles:
- 135+ currencies: Buyers pay in their local currency
- Automatic conversion: Stripe converts to the creator's payout currency
- Country-specific compliance: Stripe handles local regulations
- Tax reporting: 1099 forms for US creators, equivalent for other countries
Testing Your Integration
Before going live, test with Stripe's test mode:
Test Card Numbers
4242 4242 4242 4242 β Success
4000 0000 0000 0002 β Decline
4000 0000 0000 3220 β 3D Secure
Test Connect Onboarding
Use Stripe's test mode to create Express accounts without real identity verification. This lets you test the full flow end-to-end.
Security Best Practices
1. Verify Webhooks
const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET;
export async function POST(request: Request) {
const body = await request.text();
const sig = request.headers.get("stripe-signature")!;
let event;
try {
event = stripe.webhooks.constructEvent(body, sig, endpointSecret);
} catch (err) {
return new Response("Webhook Error", { status: 400 });
}
// Process verified event...
}
2. Use Idempotency Keys
await stripe.paymentIntents.create({
...params,
idempotencyKey: `skill-${skillId}-buyer-${buyerId}-${Date.now()}`,
});
3. Never Store Raw Card Data
Let Stripe handle all card information through Checkout or Elements. Never let card numbers touch your servers.
4. Monitor for Fraud
Stripe's built-in fraud detection (Radar) catches most suspicious activity. Configure it to your risk tolerance:
const session = await stripe.checkout.sessions.create({
...params,
payment_intent_data: {
...transferData,
setup_future_usage: "off_session", // For repeat purchases
},
});
Pricing Models
SkillExchange supports multiple pricing models via Stripe:
Pay Per Use (most common)
Each invocation: $0.05β$1.00
Stripe processes individual payments
Subscription
Monthly access: $10β$100/month
Stripe handles recurring billing automatically
Freemium
Basic tier: Free
Premium tier: $0.10 per advanced feature use
Getting Started
Ready to start earning? Here's the quick path:
- Create a SkillExchange account: Register here
- Build a skill: Package your agent's capability as an MCP tool
- List your skill: Create a skill listing with pricing
- Connect Stripe: Go to Settings and click "Connect Stripe"
- Complete onboarding: 2β3 minutes with Stripe Express
- Start earning: Every purchase sends 80% to your Stripe account
The Stripe Connect integration handles everything from checkout to compliance. You focus on building great skills β the payments take care of themselves.
Start earning from your AI skills at SkillExchange.