# Pay by Bank payments

Learn how to accept Pay by Bank payments.

# Checkout


Pay by Bank is a [single use](https://docs.stripe.com/payments/payment-methods.md#usage) payment method where customers must [authenticate](https://docs.stripe.com/payments/payment-methods.md#customer-actions) 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](https://docs.stripe.com/payments/payment-methods.md#payment-notification) on whether the payment succeeded or failed. 

## 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* (Prices define how much and how often to charge for products. This includes how much the product costs, what currency to use, and the interval if the price is for subscriptions) 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* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) pricing plans aren’t supported.

To join the private preview for France and Germany availability, see [Pay by Bank payments](https://docs.stripe.com/payments/pay-by-bank.md).

## Enable Pay by Bank as a payment method

To create a new [Checkout Session](https://docs.stripe.com/api/checkout/sessions.md):

1. [Enable Pay by Bank](https://dashboard.stripe.com/settings/payment_methods) in your Dashboard. Stripe automatically displays Pay by Bank to eligible customers using [dynamic payment methods](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md). If you currently specify `payment_method_types`, see the [migration guide](https://docs.stripe.com/payments/dashboard-payment-methods.md).
2. Make sure all your `line_items` use the `gbp` currency.
3. Add a message in [payment_method_options.pay_by_bank.statement_descriptor](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-pay_by_bank). 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.

#### Stripe-hosted page

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -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" \
  --data-urlencode "success_url=https://example.com/success"
```

#### Full embedded page

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -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" \
  --data-urlencode "return_url=https://example.com/return" \
  -d ui_mode=embedded_page
```

### Fulfill your orders

After accepting a payment, learn how to [fulfill orders](https://docs.stripe.com/checkout/fulfillment.md).

## 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](https://docs.stripe.com/payments/pay-by-bank.md)
- [Checkout fulfillment](https://docs.stripe.com/checkout/fulfillment.md)
- [Customizing Checkout](https://docs.stripe.com/payments/checkout/customization.md)

