Tutorials

Stripe Connect onboarding playgrounds: build it in 30 minutes without a backend

Connect is the part of Stripe most prospects need to feel out before signing. Here’s how to give them an interactive onboarding playground without standing up a marketplace.

·8 min read

Stripe Connect is where most platform deals slow down. Founders read the Connect docs, see "platform liability" and "controller properties," and they want to talk to a human before they ever try the API. A live onboarding playground shortens that loop.

What we are building

A single page where the viewer enters a fake business name, clicks Continue, and watches a real Connected Account get created in your Stripe test account using the v2 Accounts API. The viewer never sees your secret key. You do not host a server.

1. Set up the connected account creation

Stripe v2 Accounts is the current recommended Connect API. Account creation looks like this:

POST /v2/core/accounts
Content-Type: application/json
Stripe-Version: 2026-04-22.dahlia

{
  "configuration": {
    "merchant": { "mcc": "5734" }
  },
  "controller": {
    "fees": { "payer": "account" },
    "losses": { "payments": "stripe" },
    "stripe_dashboard": { "type": "full" }
  }
}

Wrap that call so the viewer’s form values feed in as business profile fields. The proxy injects your platform’s restricted key with `accounts:write` scope only.

2. Generate the AccountLink for onboarding

Right after creating the account, generate a hosted onboarding link and open it in a new tab. The viewer experiences the real Stripe onboarding flow against your platform. The Connect-flavored screens render correctly because the account is genuinely on your platform.

POST /v1/account_links
{
  "account": "acct_xxx_from_step_1",
  "type": "account_onboarding",
  "refresh_url": "<your demo URL>",
  "return_url":  "<your demo URL>"
}

3. Show the webhook arrive

Configure your Stripe webhook to forward `account.updated` to your apiqube hooks URL. As the viewer fills out the Stripe-hosted onboarding pages, each step fires an update event. The event feed in your demo updates in real time — the viewer sees the lifecycle of their own onboarding.

4. Don’t skip the cleanup

  • ·Use a restricted API key with only `accounts:write` and `account_links:write`. Connect tokens carry weight; do not use a secret key.
  • ·Periodically delete demo accounts. Stripe’s test mode does not garbage-collect — your dashboard fills up fast otherwise.
  • ·Cap the form to obviously-fake inputs. You do not want production-style PII in your test account, even if Stripe is happy to accept it.

Why this matters

Connect deals close faster when the prospect has touched the onboarding. A playground does in three minutes what a 45-minute call cannot: it makes the abstract concrete. If you sell on top of Stripe Connect, this should exist on your docs page right next to the architecture diagram.