Move your business operations to Fifth Third Bank
Develop a plan to migrate your existing Stripe Treasury integration to Fifth Third Bank.
The following is our guidance on the recommended sequence for migrating your existing connected accounts from your current bank partner to Fifth Third Bank without disrupting your business operations.
Moving operations to Fifth Third Bank
- Notify your users about moving to Fifth Third Bank.
- Onboard your existing connected accounts to Treasury with Fifth Third Bank.
- Update your product and user interface to show both financial accounts, including balances, transaction history, and statements.
- Send updated disclosures to Stripe compliance for approval.
- Update your complaints process.
- Enable Fifth Third for new connected accounts and migrate existing users.
- Close the old financial account.
Notify your users about moving to Fifth Third Bank
We recommend that you migrate all connected accounts to Fifth Third Bank in batches with advanced notice.
Give your connected accounts advanced notice so they can prepare for the migration to minimize disruptions to their business. We recommend that you provide notices by email and in your product user interface, such as product notifications or your user dashboard.
- Notify connected accounts at least 30 days ahead of time.
- Follow up by sending a 7-day reminder.
- Send a notification the day before, or day of the change.
The notifications must include the date funds will move to Fifth Third Bank. You must also include instructions on how a connected account can opt out of the migration to Fifth Third Bank (such as by shutting down their account before the cut-off date). If the email bounces back to you, follow standard servicing procedures to contact the connected account. These notifications can also include information about feature status or behavior changes, such as where transactions originate from, returned transaction handling, and issued card changes.
Your existing connected accounts could choose to move to Fifth Third Bank sooner than their upcoming migration date.
As you create new connected accounts, they can either onboard to Fifth Third Bank directly, or they can onboard to the old bank partner. If you’ve already sent out user notifications of an upcoming migration to Fifth Third Bank, show new connected accounts a disclosure with information on when their funds will move.
Onboard your existing connected accounts to Treasury with Fifth Third Bank
Before each connected account goes live with Fifth Third Bank, request the treasury_
capability. This verifies that two processes have been completed:
- The connected account has provided the required KYC information.
- Stripe has confirmed we can support the connected account’s business use case.
Requesting the treasury_
capability doesn’t require any additional fields to be requested compared to the treasury
capability. However, this request triggers business verification and supportability reviews. Treasury is currently only available to U.S. businesses and support is limited to certain business models. Refer to this documentation for a refresh of Treasury requirements.
Fifth Third Bank access requires either a URL or a product description that is at least 10 characters. If a URL is provided, it needs to be a valid URL to a site that is accessible without a password. This is different from Evolve access, which requires a product description with no minimum character requirements.
Before you request the capability, make sure you’ve provided a valid URL or product description greater than 10 characters, or both. Preview the treasury_
capability on each live connected account to make sure that there are no additional requirements for that account.
After you fulfill requirements for the treasury_
capability, the capability’s status changes, and we provide the capability.updated event. When you request the treasury_
capability, the connected account is evaluated for supportability. The evaluation consists of a series of automated reviews that may not always result in an approval. When the review systems don’t have enough information to make a decision, the account is added to a queue for manual review that can take anywhere from a few hours to days.
Active connected accounts can immediately create Fifth Third financial accounts.
If the treasury_
capability has a status of either pending or inactive, Stripe uploads a file to the documents section in your Dashboard with each connected account, its status, and next steps. This is an interim process until Stripe enables follow-up actions directly from the Stripe Dashboard and the API.
If a connected account has a business_
error code, the business category is not eligible to migrate because the account falls under Stripe Treasury’s prohibited and restricted business list or Stripe’s prohibited and restricted business list. Contact us if you have any questions.
Note
If Stripe has already approved your connected accounts for Fifth Third Bank and you later update either a connected account’s URL or product description, Stripe reassesses the account to see if we can support it. After reassessment, the result of the approval might change, or the account might require a new review.
Update your product user interface to show both financial accounts
Balances
You must update your product user interface to show the balance of the new financial account.
If you have a user with a positive balance at two bank partners in your product interface (for example, both the old partner and Fifth Third Bank), display both balances and disclose the amount held at each bank partner. If you’re certain that one balance will always be 0 USD, consult your internal legal counsel and compliance team to decide if or how you display that balance. Make sure that it’s clear to users viewing your product interface how many financial accounts they have open, at which institutions, and if they have a balance over 0 USD.
Transaction history
You must update your transaction history user interface to show the transactions from both financial accounts.
You have the option to maintain only one transaction history per connected account, but you need to display information inclusive of both financial accounts (such as transaction activity, opening, and closing balances, fees, yield, and so on).
If you enable forwarding (a new feature to aid your migration described below), you must allow the connected account to view all three transaction receipts involved in each forwarded transaction, not only one transaction receipt. You can generate these receipts using Stripe’s hosted regulatory receipts. As long as you do this, you can represent each forwarded transaction once, not individually as three transactions.
Statements
You must show a bank statement representing the new financial account.
You can show one statement including all financial account balances and all transactions, or you can show multiple statements (one per financial account). This is applicable if both financial accounts are open and have at least one transaction for the month.
Update internal systems and processes
To use a new financial account, you must update any existing internal systems that read from or use the old financial account.
Send updated disclosures to Stripe compliance for approval
Send your updated disclosures and UX (including screenshots of your user interface) to Stripe compliance for approval using the Compliance Intake Form.
Update your complaints process
Your complaints tracking process has one update. After adding Fifth Third Bank, the complaint_
field for each complaint includes the following new channels:
- Employee
- Executive
- Filer On-Behalf Of
- Bancorp Incident
- Consumer Reporting Agency
- Fed
- CFPB
- BBB
- Board of Directors
Enable Fifth Third for new connected accounts and migrate existing users
To migrate existing connected accounts that already have the treasury_
capability enabled, you must:
- Create a new financial account with features.
- Create an OutboundTransfer to move funds to Fifth Third Bank.
- (Optional) Update your payouts integration.
- (Optional) Update your Issuing integration.
- Update your InboundTransfers, OutboundTransfers, and OutboundPayments.
- Enable forwarding.
- Instruct your connected accounts to use the new financial account’s ABA address instead of the old ABA address.
Note
For each connected account, take the following actions at the same time to avoid failures. We recommend batching requests if you’re migrating a large number of connected accounts.
Create a new financial account with features
Create a new financial account, as described in Create a FinancialAccount. Request the intra_
feature, which is required for forwarding, and the financial_
feature.
{ "id": "fa_fifth_third", "financial_addresses": { "aba": { "requested": true, } }, "intra_stripe_flows": { "requested": true, }, ... }, "financial_addresses": [ { "type": "aba", "aba": { // once ABA is supported on fifth third Bank "bank_name": "Fifth Third Bank", ... }, ... } ] ... }
Create an OutboundTransfer to transfer funds to Fifth Third Bank
Create an OutboundTransfer to move funds from the connected account’s old financial account to their new Fifth Third financial account.
You can learn more about OutboundTransfers before you begin initiating them. The transferred funds are used to support operations from the new financial account, including OutboundPayments, OutboundTransfers, ReceivedDebits, and Issuing Authorizations.
Update your payouts integration (if applicable)
If applicable to you, update your payouts integration to reference the new financial account (see Payouts from Stripe payments for details):
- Create a new
BankAccount
object for the new financial account, and set thedefault_
parameter tofor_ currency true
to enable it for automatic payouts. - Change references in any /v1/payout calls to the new
BankAccount
object.
curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/external_accounts \ -u
: \ -d "external_account[object]"="bank_account" \ -d "external_account[country]"="US" \ -d "external_account[currency]"="usd" \ -d "external_account[financial_account]"="fa_fifth_third" \ -d "external_account[default_for_currency]"="true"sk_test_4eC39HqLyjWDarjtT1zdp7dc
Update Issuing (if applicable)
If applicable, update the financial account ID for all Issuing cards as described in Issue cards on a Fifth Third financial account:
Update your InboundTransfers, OutboundTransfers, and OutboundPayments
Update any relevant calls to the InboundTransfers, OutboundTransfers, and OutboundPayments APIs to use the new financial account.
Enable forwarding
To support your migration to Fifth Third Bank, we’ve built a feature to allow your old financial accounts to continue to receive credits and debits for an interim period, even after moving daily operations to a new Fifth Third financial account. This can help preserve business continuity for your users. For example, if third parties continue to send credits or debits to the old financial account, forwarding enables those credits to be passed on to the new Fifth Third financial account.
Forwarding is intended to be a temporary feature during your migration - we do not guarantee long-term support. We do not offer forwarding for transactions received into Fifth Third financial accounts, only for transactions received into other bank partners. Before you setup forwarding, you must ensure the financial account has a $0 (or non-negative) balance.
We only forward the transactions listed below. If you originate transactions by calling the Stripe API, we don’t forward them. Examples of these types of transactions include creating a Stripe network OutboundTransfer into the financial account (appearing as a ReceivedCredit), or originating a CreditReversal from the financial account.
Scenario | Description | Resolution |
---|---|---|
ACH debits | Funds to cover the full amount of the ACH debit will be transferred from the Fifth Third financial account to the old financial account before the debit is posted on the old financial account. As long as the Fifth Third financial account has a sufficient balance, the debit succeeds despite the old financial account balance being 0 USD. If the Fifth Third financial account has an insufficient balance, we attempt to post the debit to the old financial account, but it might be returned or appear to be not forwarded. | Make sure the Fifth Third financial account has sufficient balance to cover ACH debits, or the debits will be returned or appear to be not forwarded. |
ACH credits and wire transfers | Funds credited to the old financial account for the ACH credit or wire transfer will be transferred to the Fifth Third financial account. | These generally succeed. Make sure both financial accounts have the necessary financial account features active (for example, intra_ ). |
Bank-initiated reversal of a ReceivedCredit (ACH or Wire) or InboundTransfer | Funds will be debited from the old financial account. The amount debited from the old financial account will be transferred from the Fifth Third financial account in its entirety, even if there were sufficient funds on the old financial account. | Remediate any negative balances on the Fifth Third financial account. If there are excess funds in the old financial account, move funds to the Fifth Third financial account with an OutboundTransfer, specifying destination_ . |
Bank-initiated returns of an originated OutboundPayment or OutboundTransfer (ACH credit or wire) | Funds credited to the old financial account will be transferred to the Fifth Third financial account. | These generally succeed. Make sure both financial accounts have the necessary financial account features active (for example, intra_ ). |
Incremental authorizations on issued cards Example: Room service and cleaning fees at hotels | The incremental authorization succeeds if the old financial account has sufficient funds. | Retain some funds in the old financial account to account for incremental authorizations. Remediate any negative balances on the Fifth Third financial account. If there are excess funds in the old financial account, move funds to the Fifth Third financial account with an OutboundTransfer, specifying destination_ . To reprocess failed transactions, cardholders can initiate a new card transaction on the Fifth Third financial account. |
Over-captures on issued cards Example: Restaurant tips | The over-capture succeeds. It pulls excess funds from the old financial account beyond the original authorization. The over-captured amount is transferred from the Fifth Third financial account, potentially bringing the balance negative. | Remediate any negative balances on the Fifth Third financial account. If there are excess funds in the old financial account, move funds to the Fifth Third financial account with an OutboundTransfer, specifying destination_ . |
Partial reversals and under-captures on issued cards | The funds returned to your old financial account’s balance are transferred to the Fifth Third financial account. | These generally succeed. Make sure both financial accounts have the necessary financial account features active (for example, intra_ ). |
Won disputes and refunds on issued cards | The funds returned to your old financial account’s balance are transferred to the Fifth Third financial account. | These generally succeed. Make sure both financial accounts have the necessary financial account features active (for example, intra_ ). |
Refund reversals on issued cards | Funds are debited from the old financial account. The amount debited from the old financial account will be transferred from the Fifth Third financial account in its entirety, even if there were sufficient funds on the old financial account. | Remediate any negative balances on the Fifth Third financial account. If there are excess funds in the old financial account, move funds to the Fifth Third financial account with an OutboundTransfer, specifying destination_ . |
To configure forwarding, you can make the below call on your old financial account, linking to a destination Fifth Third financial account. The destination financial account must be with Fifth Third Bank and have the intra_
feature active.
{ ..., "features": { ... "financial_addresses": { "aba": { "requested": true, "status": "active", "forwarding": { "requested": true, "status": "active", "destination_financial_account": "fa_fifth_third" } } } }, "financial_addresses": [ { "type": "aba", "aba": { "bank_name": "{OLD_BANK_PARTNER}", // Account number and routing number from old financial account "forwarding": { "destination_financial_account": "fa_fifth_third" } ... } } ] }
ACH Debit Forwarding Flow
When you create a ReceivedDebit from an ACH debit on your old financial account with forwarding enabled, you’ll see:
- A transaction from an OutboundTransfer from Fifth Third financial account to the old financial account for the exact amount. The statement descriptor on the OutboundTransfer will contain information related to the incoming ReceivedDebit
{description}
matches the description on the ReceivedDebit that’s eventually created on the old financial account.{correlation_
also appears in the description on the ReceivedDebit.id}
A ReceivedCredit shows up in the old financial account corresponding to the OutboundTransfer. The description on the ReceivedCredit matches the statement descriptor on the OutboundTransfer.
A ReceivedDebit shows up in the old financial account (for the original incoming debit). This behaves exactly as it does today without forwarding. The description is identical to what the originator of the debit provided. Stripe then appends “STRIPE FWD REF: {correlation_id}” for you to establish a linkage.
The OutboundTransfer from the Fifth Third financial account:
GET /v1/treasury/outbound_transfers/obt_123 { "id": "obt_123", "object": "treasury.outbound_transfer", "amount": 10, "description": "ABA Forwarding Transfer", "statement_descriptor": "STRIPE FWD: {description} STRIPE FWD REF: {correlation_id}", "financial_account": "fa_fifth_third", ... }
{ "id": "trxn_123", "object": "treasury.transaction", "amount": -10, "currency": "usd", // This is what appears on the regulator receipt's description "description": "Merchant Name | Outbound transfer | STRIPE FWD: {description} STRIPE FWD REF: {correlation_id}", "financial_account": "fa_fifth_third", ... }
ReceivedCredit on the old financial account from the OutboundTransfer:
{ "id": "rc_123", "object": "treasury.received_credit", "amount": 10, "currency": "usd", "description": "STRIPE FWD: {description} STRIPE FWD REF: {correlation_id}", "financial_account": "fa_old", "linked_flows": { "source_flow": "obt_123", "source_flow_type": "outbound_transfer" } ... }
{ "id": "trxn_456", "object": "treasury.transaction", "amount": 10, "currency": "usd", // This is what appears on the regulator receipt's description "description": "MERCHANT | Received credit | STRIPE FWD: {description} STRIPE FWD REF: {correlation_id}", "financial_account": "fa_old", ... }
The ReceivedDebit on the old financial account for the incoming debit:
{ "id": "rd_123", "object": "treasury.received_debit", "amount": 10, "currency": "usd", "description": "{description} STRIPE FWD REF: {correlation_id}", "financial_account": "fa_old", ... }
{ "id": "trxn_789", "object": "treasury.transaction", "amount": -10, "currency": "usd", // This is what appears on the regulator receipt's description "description": "MERCHANT | Received debit | {description} STRIPE FWD REF: {correlation_id}", "financial_account": "fa_old", ... }
ACH and wire credit forwarding flow
When Stripe or your bank creates a ReceivedCredit on your old financial account with forwarding enabled, you see:
- A ReceivedCredit on the old financial account (for the original incoming credit)
- An OutboundTransfer on the old financial account to the Fifth Third financial account
- The statement descriptor on the OutboundTransfer contains information related to the ReceivedCredit being forwarded:
{description}
matches the description on the ReceivedCredit that you created on the old financial account.{received_
is the id of the ReceivedCredit.credit. id}
- A ReceivedCredit on the Fifth Third financial account corresponding to the OutboundTransfer
The ReceivedCredit on the old financial account for the incoming credit:
{ "id": "rc_123", "object": "treasury.received_credit", "amount": 1, "currency": "usd", "description": "{description}", "financial_account": "fa_old", ... } __TOKEN_PLACEHOLDER_0__ ```json { "id": "trxn_123", "object": "treasury.transaction", "amount": 1, "currency": "usd", // This is what appears on the regulator receipt's description "description": "MERCHANT | Received credit | {description}", "financial_account": "fa_old", ... }
The OutboundTransfer from the old financial account:
{ "id": "obt_123", "object": "treasury.outbound_transfer", "amount": 1, "currency": "usd", "description": "ABA Forwarding Transfer", "statement_descriptor": "STRIPE FWD: {received_credit.description} STRIPE FWD REF: {received_credit.id}", "financial_account": "fa_old", ... }
{ "id": "trxn_456", "object": "treasury.transaction", "amount": -1, "currency": "usd", // This is what appears on the regulator receipt's description "description": "MERCHANT | Outbound transfer | STRIPE FWD: {received_credit.description} STRIPE FWD REF: {received_credit.id}", "financial_account": "fa_old", ... }
The ReceivedCredit on the Fifth Third financial account from the OutboundTransfer:
{ "id": "rd_456", "object": "treasury.received_credit", "amount": 1, "currency": "usd", "description": "STRIPE FWD: {received_credit.description} STRIPE FWD REF: {received_credit.id}", "financial_account": "fa_fifth_third", "linked_flows": { "source_flow": "obt_123", "source_flow_type": "outbound_transfer" } ... }
{ "id": "trxn_789", "object": "treasury.transaction", "amount": -10, "currency": "usd", // This is what appears on the regulator receipt's description "description": "MERCHANT | Received credit | STRIPE FWD: {received_credit.description} STRIPE FWD REF: {received_credit.id}", "financial_account": "fa_fifth_third", ... }
Note
In rare instances, a debiting activity can post to the old financial account immediately after a ReceivedCredit that’s part of the forwarding flow (in any of the forwarding flows listed above). The remainder of the forwarding flow can then fail because of insufficient funds. If this occurs, extra funds might accumulate in the old financial account. You need to occasionally confirm that all old financial account balances are still at 0 USD.
Tell your connected accounts to use the new Fifth Third Bank ABA address instead of the old ABA address
Connected accounts need to update external references that use their old financial account’s account and routing numbers. They need to update integrations and communicate to any third parties that they have a new account and routing number at Fifth Third Bank. This includes receiving debits (for example, running payroll), receiving credits, and establishing financial connections (for example, using microdeposits).
We recommend that you keep forwarding enabled for approximately 60 days after your migration, to cover return cases and give your connected accounts sufficient notice to update credentials. After that, you can end forwarding and close the old financial account.
Close the old financial account
Unlink forwarding by un-requesting the feature.
If the old financial account balance isn’t 0 USD, transfer funds to make it 0 USD. Close the old financial account, and specify the Fifth Third financial account as the forwarding account, which will periodically credit or debit the Fifth Third financial account to make sure the old financial account balance stays at 0 USD in the event of returns or reversals.