EUR Bank Transfers migration guide for Standard Connect accounts
Learn how to migrate your SEPA Credit Transfer Standard Connect integration to EUR Bank Transfers.
Warning
We deprecated the Sources API and plan to remove support for local payment methods. If you currently integrate with ACH Credit Transfers, you must migrate to the Payment Methods API.
For information about migrating to USD Bank Transfer supported by the current APIs, refer to the documentation below.
Reasons to migrate
If your Connect platform integrates with Standard connected accounts using SEPA Credit Transfers, you can migrate to EUR Bank Transfers. EUR Bank Transfers allows your connected accounts to benefit from the most up-to-date bank transfer functionality. Learn more about the functionality we added to EUR Bank Transfers.
Impact of not migrating
Stripe plans to disable support for local payment methods in the Sources API. If you currently handle any local payment methods using the Sources API, you must migrate them to the Payment Methods API. We’ll provide further information about this end of support through email notifications.
If you don’t migrate to Bank Transfers, Stripe takes measures to prevent any compatibility issues with your connected accounts:
- Users who are currently connected to your platform have two VBANs (one from SEPA Credit Transfer and another from EU Bank Transfers) when they upgrade the customer to use EU Bank Transfers.
- These users communicate the change in VBAN to their end customers if they interact directly with the customer using EUR Bank Transfer on PaymentIntents and PaymentMethods, or Billing.
Impact on the SEPA Credit Transfers customers of your connected accounts
After migrating to Bank Transfers, Stripe issues new bank account information for each of your existing users. You must communicate this change to your users to start sending funds to the new bank account. To make the transition smooth, we’ve added functionality to handle cases where your customer accidentally transfers funds into the existing SEPA CT bank account.
Before you begin
Confirm that you’re using the legacy SEPA Credit Transfers product. See the Before you begin section for the Migrate from the Sources API guide.
To confirm that you’re currently using Connect with Standard connected accounts, navigate to the Connected accounts page and filter by account type. If your live mode account list includes Standard accounts with status Enabled, then you’re using Standard Connect.
To confirm that you’re using direct charges on Standard Connect, verify the following:
- If you’re using the API to create charges, the request includes the connected account ID as part of the
Stripe-Account
header. - You create charges on the connected account rather than your Stripe account.
- The funds from these charges (minus Stripe’s fees) are directly available in the connected account’s balance.
- If you’re using the API to create charges, the request includes the connected account ID as part of the
If you’re not using SEPA Credit Transfers with direct charges for Standard connected accounts, this guide doesn’t apply to you. If you’re using SEPA Credit Transfers in other Connect configurations, see Migrating from Sources-based Credit Transfers.
Migrate to the Bank Transfers integration
You can build a Bank Transfers integration alongside your existing SEPA Credit Transfer integration. Use the new integration to migrate all the existing SEPA Credit Transfer customers of your connected accounts to the new payment method.
Create a test Standard connected account
Create a Standard connected account in a sandbox for the purpose of testing the new integration.
Build a Bank Transfers integration using the Sources API
Create a test customer:
Create a SEPA Credit Transfer source and attach it to the customer:
Complete the steps in the integration guide of SEPA Credit Transfer. Make sure to pass the
Stripe-Account
header in the API requests that create and attach the source to the customer. Save the bank details of the Source from thesepa_
field of the object to refer to later.credit_ transfer Create and confirm a PaymentIntent:
At this point, you can create and confirm a bank transfers PaymentIntent on the customer object of the connected account following the respective step in the Accept a payment guide. You must pass the
Stripe-Account
header to create the PaymentIntent on the customer of the connected account.Creating a
customer_
PaymentIntent in a sandbox always succeeds. However, in live mode, direct charges require the connected account itself (not the platform) to activate Bank Transfers. Therefore, before creating the PaymentIntent on the connected account, the platform must use the sepa_bank_transfer_payments capability to determine whether this is the case. If Bank Transfers isn’t activated, your integration logic might revert to the legacy SEPA Credit Transfer payment method.balance server.pyimport stripe stripe.api_key =
def funding_instructions(connected_account: str, customer: stripe.Customer) -> dict: bank_transfer_payments_capability = stripe.Account.retrieve_capability( connected_account, "sepa_bank_transfer_payments", ) if bank_transfer_payments_capability["status"] == "active": pi = stripe.PaymentIntent.create( stripe_account=connected_account, amount=1099, currency="eur", customer=customer["id"], payment_method_types=["customer_balance"], automatic_payment_methods={"enabled": True} payment_method_data={ "type": "customer_balance", }, confirm=True, ) return pi.next_action["display_bank_transfer_instructions"] else: source = stripe.Source.retrieve( stripe_account=connected_account, id=customer["default_source"] ) return source["sepa_credit_transfer"]"sk_test_BQokikJOvBiI2HlWgH4olfQ2"Confirm that the integration works:
- After you test and confirm that the integration works, check if the bank details of the Credit Transfer Source have been migrated.
- Navigate to the customer details page in the Dashboard, and then expand the EUR Cash balance dropdown.
- The bank details of the cash balance must be different from the ones you obtain from the Source in the
sepa_
field.credit_ transfer
After you complete these steps, the customer of the connected account has been successfully migrated.
Contact Stripe
After you build, test, and deploy your integration to production, and successfully serve live traffic, reach out to Stripe to let us know that your integration is compatible with Bank Transfers. We’ll make sure that your integration is working as expected and perform any clean ups required on your connected accounts.