Deferred Account Activation Private Beta
With Connect, you can create Standard Stripe accounts for your users that don't have to be activated right away.
Though the primary way for your platform to connect to Standard Stripe accounts is through the OAuth flow, you can also create Standard accounts with deferred activation requirements.
When you create a deferred Standard account, Stripe emails 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 deferred Standard account
To create and connect to a Standard account, set type
to standard
in a create account API call. You only need to provide a country and an email address, although we recommend sending more information—if you have more—to make activation easier for your user later:
curl https://api.stripe.com/v1/accounts \
-u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \
-d country=US \
-d type=standard \
-d email="person@example.edu"
# Set your secret key: remember to change this to your live secret key in production
# See your keys here: https://dashboard.stripe.com/account/apikeys
Stripe.api_key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"
Stripe::Account.create(
:country => "US",
:type => "standard",
:email => "person@example.edu"
)
# Set your secret key: remember to change this to your live secret key in production
# See your keys here: https://dashboard.stripe.com/account/apikeys
stripe.api_key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"
stripe.Account.create(
country="US",
type="standard",
email="person@example.edu"
)
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_4eC39HqLyjWDarjtT1zdp7dc");
\Stripe\Account::create([
"country" => "US",
"type" => "standard",
"email" => "person@example.edu"
]);
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc";
Map<String, Object> params = new HashMap<String, Object>();
params.put("country", "US");
params.put("type", "standard");
params.put("email", "person@example.edu");
Account.create(params);
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
var stripe = require("stripe")("sk_test_4eC39HqLyjWDarjtT1zdp7dc");
stripe.accounts.create({
country: "US",
type: "standard",
email: "person@example.edu"
});
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"
params := &stripe.AccountParams{
Country: stripe.String("US"),
Type: stripe.String(string(stripe.AccountTypeStandard)),
Email: stripe.String("person@example.edu"),
}
acct, err := account.New(params)
The result of a successful API call is the user's account information:
{
...
"id": "acct_14qyt6Alijdnw0EA",
"keys": {
"secret": "sk_live_AxSI9q6ieYWjGIeRbURf6EG0",
"publishable": "pk_live_h9xguYGf2GcfytemKs5tHrtg"
}
...
}
The account is now connected to your platform and Stripe emails the user with instructions on how to claim the Stripe account. If a Stripe account under that email address already exists, the API request will return an error.
At this point you should:
- Store the account’s ID and API keys for later use, as you’ll need them for authentication purposes.
- Define a webhook to be notified when the account has been activated.
Once a charge is made on the account, the account’s country cannot be changed. Ask your users explicitly what country their account should be in if you intend to make charges on an account before they activate it.
Facilitating account activation
Although Stripe automatically emails the user an activation link, you can also provide your user with a link to immediately activate a newly created account. The link uses your application’s client_id
and the just-created account ID:
https://dashboard.stripe.com/account/activate?client_id=ca_32D88BD1qLklliziD7gYQvctJIhWBSQ7&user_id=acct_14qyt6Alijdnw0EA
Once the account is claimed, the link no longer works.
Deferred account limits
Once the first charge is made on a deferred account, the account holder has one week to activate the account before Stripe blocks further charges. Stripe also blocks charges after a volume threshold is reached, usually around a few thousand dollars. After the first charge, the account must be activated within three weeks before Stripe refunds all charges.
To ensure smooth payment processing and payout scheduling, you should encourage your users to activate their Stripe accounts as soon as possible.
Next steps
Now you can use the API on your user's behalf to accept payments, set up recurring billing, fetch account data, and more: