CapsuleCredit
← All posts

Embed FDIC-Insured Bank Accounts with 3 API Calls

May 7, 2026

▶ Watch the 60-second version on YouTube

Integrating FDIC-Insured Accounts with Stripe Treasury

Adding banking features to your app has never been simpler, especially when you can leverage Stripe Treasury to embed FDIC-insured bank accounts directly into your platform. In just three API calls, you can provide users with routing and account numbers without the need for a bank charter. This opens a world of possibilities for fintech products, from neobanks to payment solutions. In this post, we'll walk through how to set this up, including some key insights and a common gotcha that might trip you up if you're not careful.

Prerequisites

Before diving in, ensure you have: - A Stripe account with access to Stripe Treasury. - Basic understanding of REST APIs and JSON. - An environment set up to make API calls, such as Postman, cURL, or your preferred programming language.

Step 1: Create a Financial Account

The first step is to create a financial account for your user. This account will be tied to the FDIC-insured bank account that you will be embedding. Here’s how to do it using the Stripe API:

import stripe

# Set your Stripe secret key
stripe.api_key = 'sk_test_YourSecretKey'

# Create a financial account
financial_account = stripe.financial_accounts.create(
    type='express',
    country='US',
    capabilities={
        'card_payments': {'requested': True},
        'transfers': {'requested': True},
    },
)

print(financial_account)
This API call creates a financial account of type 'express' in the US. Be sure to handle any exceptions or errors that might arise due to misconfigurations.

Step 2: Create a Bank Account

Once you have the financial account created, the next step is to create a bank account linked to that financial account. This is where the magic of FDIC insurance comes into play. Here’s the API call:

# Create a bank account
bank_account = stripe.financial_accounts.external_accounts.create(
    financial_account=financial_account['id'],
    external_account={
        'object': 'bank_account',
        'account_number': '000123456789',
        'routing_number': '110000000',
    }
)

print(bank_account)
In this call, replace `'000123456789'` and `'110000000'` with your users' actual bank account details.

Step 3: Retrieve Bank Account Details

Finally, you can retrieve the details of the bank account you just created. This will include the routing and account numbers, which you can then display in your app:

# Retrieve bank account details
retrieved_account = stripe.financial_accounts.external_accounts.retrieve(
    bank_account['id'],
)

print(retrieved_account)
This call will give you all the necessary information about the bank account, making it easy to integrate with your existing user interfaces.

Gotcha: Compliance and Verification

Here's a non-obvious gotcha: While embedding bank accounts can be straightforward, compliance and verification are critical. Stripe requires that you comply with KYC (Know Your Customer) regulations. Depending on the capabilities you request, you may need to collect additional information from your users, such as their Social Security numbers or business documentation. If you skip this step, your accounts may be flagged or restricted. Make sure to integrate a robust verification process into your onboarding flow, which will save you time and hassle later.

Real-World Use Cases

The ability to embed FDIC-insured bank accounts opens a plethora of opportunities: - **Neobanking Apps**: Create a digital bank experience without needing a banking license. You can focus on your app's functionality while Stripe manages the backend. - **Expense Management Tools**: Use the accounts to track spending and give users better visibility over their financial health. - **Marketplace Payments**: If you're running a marketplace, allowing sellers to have their FDIC-insured accounts can streamline payouts and enhance trust.

Conclusion

Integrating FDIC-insured bank accounts into your app via Stripe Treasury is a game-changer for fintech developers. With just three API calls, you can offer robust banking features without the regulatory overhead of becoming a chartered bank. Make sure to keep compliance in mind, and you'll be set to provide a seamless banking experience for your users. Happy coding!

💳 Best card for API and cloud spend — earn rewards on every Stripe, AWS, and OpenAI charge.

Get Brex →