Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseUse Managed Payments
Use Payment Links
Use a prebuilt checkout page
Build a custom integration with Elements
Build an in-app integration
In-person payments
Terminal
Payment methods
Add payment methods
    Overview
    Payment method integration options
    Manage default payment methods in the Dashboard
    Payment method types
    Cards
    Pay with Stripe balance
    Stablecoin payments
    Bank debits
    Bank redirects
    Bank transfers
    Credit transfers (Sources)
    Buy now, pay later
    Real-time payments
      Pay by Bank
        Accept a payment
      PayNow
      PayTo
      Pix
      PromptPay
      Swish
    Vouchers
    Wallets
    Enable local payment methods by country
    Custom payment methods
Manage payment methods
Faster checkout with Link
Payment scenarios
Handle multiple currencies
Custom payment flows
Flexible acquiring
Orchestration
Beyond payments
Incorporate your company
Crypto
Agentic commerce
Financial Connections
Climate
Understand fraud
Radar fraud protection
Manage disputes
Verify identities
United States
English (United States)
HomePaymentsAdd payment methodsReal-time paymentsPay by Bank

Pay by Bank payments

Learn how to accept Pay by Bank payments.

Pay by Bank is a single use payment method where customers must authenticate their payment with their bank app or web portal. Pay by Bank redirects customers from your website, authorizes the payment, and returns them to your website. You get immediate notification on whether the payment succeeded or failed.

Caution

Stripe can automatically present the relevant payment methods to your customers by evaluating currency, payment method restrictions, and other parameters.

  • Follow the Accept a payment guide to build a Checkout integration that uses dynamic payment methods.
  • If you don’t want to use dynamic payment methods, follow the steps below to manually configure the payment methods in your Checkout integration.

Determine compatibility

Supported business locations: DE, GB

Supported currencies: eur, gbp

Presentment currencies: eur, gbp

Payment mode: Yes

Setup mode: No

Subscription mode: No

A Checkout Session must satisfy all of the following conditions to support Pay by Bank payments:

  • Prices for all line items must be in the same currency. If you have line items in different currencies, create separate Checkout Sessions for each currency.
  • You can only use one-time line items. Recurring subscription pricing plans aren’t supported.

To join the private preview for France and Germany availability, see Pay by Bank payments.

Enable Pay by Bank as a payment method

This guides you through enabling Pay by Bank and shows the differences between accepting payments using dynamic payment methods and manually configuring payment methods.

To create a new Checkout Session:

  1. Add pay_by_bank to the list of payment_method_types.
  2. Make sure all your line_items use the gbp currency.
  3. Add a message in payment_method_options.pay_by_bank.statement_descriptor. This descriptor can be your business name or some other text to help your customer identify the transaction. Your customer’s bank statement includes this message.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price_data][currency]"=gbp \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d "payment_method_options[pay_by_bank][statement_descriptor]"="Business name" \ -d "payment_method_types[0]"=card \ -d "payment_method_types[1]"=pay_by_bank \ --data-urlencode success_url="https://example.com/success"

Fulfill your orders

After accepting a payment, learn how to fulfill orders.

Test your integration

To test your Checkout integration, select Pay by Bank as the payment method and click the Pay button.

  • Click Authorize test payment to test the case when the payment is successful.
  • Click Fail test payment to test the case when the customer fails to authenticate.

Handle refunds and disputes

The refund period for Pay by Bank is up to 730 days (2 years) after the original payment. A refund generally arrives by the next business day but can take up to 7 days to appear as successful. There is no dispute process, customers authenticate with their bank.

See also

  • More about Pay by Bank
  • Checkout fulfillment
  • Customizing Checkout
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc