Deferred Account Activation 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 managed to false 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_BQokikJOvBiI2HlWgH4olfQ2: \
       -d country=US \
       -d type=custom \
       -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_BQokikJOvBiI2HlWgH4olfQ2"
    
    Stripe::Account.create(
      :country => "US",
      :type => "custom",
      :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_BQokikJOvBiI2HlWgH4olfQ2"
    
    stripe.Account.create(
      country="US",
      type="custom",
      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_BQokikJOvBiI2HlWgH4olfQ2");
    
    \Stripe\Account::create(array(
      "country" => "US",
      "type" => "custom",
      "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_BQokikJOvBiI2HlWgH4olfQ2";
    
    Map<String, Object> params = new HashMap<String, Object>();
    params.put("country", "US");
    params.put("type", "custom");
    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_BQokikJOvBiI2HlWgH4olfQ2");
    
    stripe.accounts.create({
      country: "US",
      type: "custom",
      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_BQokikJOvBiI2HlWgH4olfQ2"
    
    params := &stripe.AccountParams{
      Country: "US",
      Type: "custom",
      Email: "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 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:

    1. Store the account’s ID and API keys for later use, as you’ll need them for authentication purposes.
    2. 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 accounts 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 block charges after a volume threshold is reached, usually around a few thousand dollars. After that threshold, 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: