Topping Up Your Platform Account

    With Connect, you can add funds to your platform balance from a linked bank account. At the present time, this is only available to U.S. platforms.

    Platforms can use Top-ups to add funds to their Stripe balance as part of their normal business operations. There are a number of different use cases for Top-ups, including:

    • Paying bonuses or other one-off payouts, independent of specific charges
    • Providing customer discounts while still paying full price for goods or services to sellers
    • Adding funds from non-Stripe income (e.g., checks or funds from another processor)
    • Enabling faster payouts (e.g., pay a vendor before incoming funds become available)

    Requirements

    You must meet all of these requirements to use Top-ups:

    • Both the platform and the connected account receiving top-up funds must be in the U.S.
    • The platform must be on a manual payout schedule.

    Verifying your bank account

    You can only use a verified bank account to top up your platform account. The verification process, which is currently only supported in the Dashboard, is triggered the first time you attempt to create a top-up from an unverified bank account.

    When you’re ready, you can head to the Balance section in the Dashboard to initiate a top-up.

    For unverified bank accounts, this kicks off the verification process. Verification is accomplished by confirming two micro-deposits from Stripe. These deposits will take 1-2 business days to appear on your online banking statement. The statement description for these deposits will be AMNTS: and then the values of the two micro-deposits that were sent. Stripe will send you a notification in the Dashboard as well as an email when the bank deposits should have arrived in your account.

    Once the two micro-deposits have landed in your bank account, return to the Balance section of the Dashboard to confirm the amounts. To complete the verification, click on the Dashboard notification at the top of the page and enter the two micro-deposit amounts.

    Creating Top-ups

    You can create a top-up using the Dashboard or the API.

    Dashboard

    1. Navigate to the Balance section of the Dashboard.
    2. Click Top up balance.
    3. In the resulting modal window (shown below), enter an amount in USD.
    4. Verify top-up amount and click Top up balance to complete the request.
    5. Once funds become available in your platform’s Stripe balance, you can initiate a transfer to send funds to a connected account via the API or the Dashboard. If using the Dashboard, you can send funds to a connected account by clicking on the Send funds button located in the Balance section on the connected account’s detail page.

    API

    curl https://api.stripe.com/v1/topups \
       -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \
       -d amount=2000 \
       -d currency=usd \
       -d description="Top-up for week of May 31" \
       -d statement_descriptor="Stripe top-up"
    
    # 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"
    
    topup = Stripe::Topup.create({
        amount: 2000,
        currency: 'usd',
        description: 'Top-up for week of May 31',
        statement_descriptor: 'Stripe top-up',
    })
    
    # 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"
    
    topup = stripe.Topup.create(
        amount=2000,
        currency='usd',
        description='Top-up for week of May 31',
        statement_descriptor='Stripe top-up',
    )
    
    // 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");
    
    $topup = \Stripe\Topup::create([
        'amount' => 2000,
        'currency' => 'usd',
        'description' => 'Top-up for week of May 31',
        'statement_descriptor' => 'Stripe top-up',
    ]);
    
    // 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<>();
    params.put("amount", 2000);
    params.put("currency", "usd");
    params.put("description", "Top-up for week of May 31");
    params.put("statement_descriptor", "Stripe top-up");
    Topup topup = Topup.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");
    
    const topup =  stripe.topups.create({
      amount: 2000,
      currency: 'usd',
      description: 'Top-up for week of May 31',
      statement_descriptor: 'Stripe top-up',
    );
    
    // 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.TopupParams{
        Amount: 2000,
        Currency: "usd",
        Desc: "Top-up for week of May 31",
        StatementDescriptor: "Stripe top-up",
    
    }
    top, _ := topup.New(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
    StripeConfiguration.SetApiKey("sk_test_4eC39HqLyjWDarjtT1zdp7dc");
    
    var options = new TopupCreateOptions {
        Amount = 2000,
        Currency = "usd",
        Description = "Top-up for week of May 31",
        StatementDescriptor = "Stripe top-up",
    };
    var service = new TopupService();
    Topup topup = service.Create(options);
    

    You can optionally set a non-default statement descriptor and internal description for the top-up. The statement descriptor appears on your banking statement for the money transfer out of your account. If you do not set a new statement descriptor, the default statement descriptor “Stripe top-up” is used.

    Viewing Top-ups

    You can find all top-ups in the Dashboard on the Top-ups tab under the Balance page. Each top-up has a unique ID in the format tu_XXXXXX, which you can see on the detailed view for each top-up.

    Settlement timing

    Top-ups may take 5-6 business days to become available in your Stripe balance. You can request a review of your account for faster settlement timing from your Dashboard.

    Over time, as we gain more context on your account, Stripe may also be able to decrease your settlement timing automatically.

    Testing Top-ups

    You can use the Dashboard or the API to test Top-ups. Refer to the Connect testing documentation for more details about testing Top-ups.

    Questions?

    We're always happy to help with code or other questions you might have! Search our documentation, contact support, or connect with our sales team. You can also chat live with other developers in #stripe on freenode.

    Was this page helpful? Yes No

    Send

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.