Skip to content

Stripe Treasury Fresh

Embedded financial accounts for platforms. Offer your connected accounts financial services including bank accounts with routing numbers, money movement, and card issuance.

Availability

Treasury for platforms is available only to US-based platforms with B2B use cases and US-based connected accounts.

RequirementDetail
Platform locationUnited States (physical address, not PO box)
Connected account locationUnited States only
Business typeB2B only — no consumer use cases
Connected account typeCustom only (platform-controlled dashboard, platform bears loss liability)
Account representativeMust have at least one US-based representative

What you can build

  • Financial accounts with US routing/account numbers (ACH, wire)
  • FDIC pass-through insurance eligible balances
  • Debit cards attached to financial account balances (via Issuing)
  • Money movement between connected accounts
  • External bank funding for financial accounts

Prohibited business types

The following business types cannot use Treasury for platforms:

Prohibited (never eligible):

  • Adult industry, escort, or dating services
  • Arms trading
  • Casinos, gambling, or gaming
  • Debt collection or credit restoration
  • Money services and currency exchange
  • Payday lending
  • Shell corporations
  • Multi-level marketing and pyramid schemes

Restricted (require enhanced review):

  • Insurance services
  • Investment and brokerage services
  • Lending and cash advance
  • Money Services Businesses (MSBs)
  • Pharmaceuticals
  • Buy Now Pay Later (BNPL)
  • Marketplaces
  • NFTs and virtual asset service providers

Businesses owned by politically exposed persons (PEPs) are prohibited.

Core objects

ObjectDescription
FinancialAccountThe embedded bank account — has routing number, supports ACH/wire
OutboundPaymentSend funds from a financial account to an external account
OutboundTransferMove funds between financial accounts on the same platform
InboundTransferPull funds from an external bank account into a financial account
ReceivedCreditFunds received into a financial account (ACH credit, wire)
ReceivedDebitFunds pulled from a financial account by an external party
TransactionRecord of any money movement on a financial account

Create a financial account

Financial accounts are created for connected accounts. Use the Stripe-Account header:

bash
curl https://api.stripe.com/v1/treasury/financial_accounts \
  -u "sk_test_YOUR_KEY:" \
  -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \
  -d "supported_currencies[]=usd" \
  -d "features[outbound_payments][ach][requested]=true" \
  -d "features[outbound_payments][us_domestic_wire][requested]=true" \
  -d "features[inbound_transfers][ach][requested]=true" \
  -d "features[financial_addresses][aba][requested]=true"

Retrieve the financial account to get the routing number:

bash
curl https://api.stripe.com/v1/treasury/financial_accounts/{{FA_ID}} \
  -u "sk_test_YOUR_KEY:" \
  -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \
  -d "expand[]=financial_addresses"

The financial_addresses array contains the ABA routing number and account number.

Send money (OutboundPayment)

Send funds to an external bank account:

bash
curl https://api.stripe.com/v1/treasury/outbound_payments \
  -u "sk_test_YOUR_KEY:" \
  -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \
  -d financial_account={{FA_ID}} \
  -d amount=5000 \
  -d currency=usd \
  -d "destination_payment_method_data[type]=us_bank_account" \
  -d "destination_payment_method_data[us_bank_account][routing_number]=110000000" \
  -d "destination_payment_method_data[us_bank_account][account_number]=000123456789" \
  -d "destination_payment_method_data[us_bank_account][account_holder_type]=individual"

Pull money (InboundTransfer)

Pull funds from an external bank account into a financial account:

bash
curl https://api.stripe.com/v1/treasury/inbound_transfers \
  -u "sk_test_YOUR_KEY:" \
  -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \
  -d financial_account={{FA_ID}} \
  -d amount=10000 \
  -d currency=usd \
  -d origin_payment_method={{PAYMENT_METHOD_ID}}

Fraud management requirements

Stripe requires Treasury platforms to maintain a fraud risk management process:

  • Establish processes to identify and understand connected account businesses
  • Implement robust tools to prevent unauthorized account access
  • Educate connected accounts on fraud risks and establish alert processes
  • Conduct root cause analyses after fraud incidents

Key webhook events

EventWhen it fires
treasury.financial_account.createdNew financial account created
treasury.financial_account.features_status_updatedFeature enabled or disabled
treasury.outbound_payment.createdOutboundPayment initiated
treasury.outbound_payment.postedFunds successfully sent
treasury.outbound_payment.failedOutboundPayment failed
treasury.received_credit.createdFunds received into financial account
treasury.received_debit.createdFunds pulled from financial account
treasury.transaction.createdAny money movement on financial account

Treasury + Issuing

Attach Issuing cards to financial account balances for a complete embedded finance solution. Cards draw funds directly from the financial account balance, giving connected accounts a single unified balance for spending and receiving.

See the Issuing page for card creation details. Use the financial_account parameter on cards to link them to the Treasury balance.

Stripe API Reference - Self-contained docs reference, refreshed 2026-05-18