Deferred Account Activation Beta

With Connect, you can create Stripe accounts for your users that don't have to be activated right away.

Though the primary way for your platform to connect to standalone Stripe accounts is through the OAuth flow, you can also create Stripe accounts with deferred activation requirements.

When you create a deferred standalone account, Stripe will email the user to ask them to set up their account. In the meantime, the account is allowed to make a small number of charges before activation, with some limits.

Creating a standalone account

To create and connect to a standalone account, set managed to false in account creation request. The only thing you need to provide is a country and an email address (although we recommend sending more information if you have it to make activation easier for your user later):

curl https://api.stripe.com/v1/accounts \
   -u {PLATFORM_SECRET_KEY}: \
   -d country=US \
   -d managed=false \
   -d email="example@stripe.com"
Stripe.api_key = PLATFORM_SECRET_KEY
Stripe::Account.create(
  :country => "US",
  :managed => false,
  :email => "example@stripe.com"
)
stripe.api_key = PLATFORM_SECRET_KEY
stripe.Account.create(
  country="US",
  managed=False,
  email="example@stripe.com"
)
\Stripe\Stripe::setApiKey(PLATFORM_SECRET_KEY);
\Stripe\Account::create(array(
  "country" => "US",
  "managed" => false,
  "email" => "example@stripe.com"
));
Stripe.apiKey = PLATFORM_SECRET_KEY;

Map<String, Object> accountParams = new HashMap<String, Object>();
accountParams.put("country", "US");
accountParams.put("managed", false);
accountParams.put("email", "example@stripe.com");

Account.create(accountParams);
var stripe = require('stripe')(PLATFORM_SECRET_KEY);
stripe.accounts.create({
  country: "US",
  managed: false,
  email: "example@stripe.com"
});

Stripe will email the user with instructions on how to to claim their Stripe account (the account will automatically be connected to your platform). If a Stripe account under that email address already exists, the API request will return an error.

The result of a successful API call will be the user’s account information:

{
  ...
  "id": "acct_14qyt6Alijdnw0EA",
  "keys": {
    "secret": "sk_live_AxSI9q6ieYWjGIeRbURf6EG0",
    "publishable": "pk_live_h9xguYGf2GcfytemKs5tHrtg"
  }
  ...
}

You’ll want to store these values on your side for later usage, as they’ll be used for authentication purposes. Note that you’ll receive this result in response to the API call, before the user has claimed the account. You’ll also want to define a webhook so you’ll be notified when the account has been activated.

Once a charge is made on the account, the country specified cannot be changed. If you intend to make charges on accounts before it’s activated (i.e., before details_submitted on the account object is set to true), you should be sure to ask the user explicitly what country they are in before creating the account.

Facilitating account activation

You can provide your user with a link to immediately activate their newly created account, though Stripe will also email them a link to activate.

https://dashboard.stripe.com/account/activate?client_id=ca_32D88BD1qLklliziD7gYQvctJIhWBSQ7&user_id=acct_14qyt6Alijdnw0EA

Once the user claims this account, this link will no longer work.

Deferred account limits

Once the first charge is made on the account, the account holder will have one week to activate the account before Stripe blocks further charges. Stripe will also block charges after a volume threshold is reached, usually around a few thousand dollars. After this point, the account will have three weeks to activate before Stripe refunds the charges made.

To ensure smooth payment processing and transfer scheduling, you should encourage your users to activate their Stripe accounts as soon as possible.

Up next

Now you can use the API on your user's behalf to accept payments, set up recurring billing, fetch account data, and more.