Skip to content

Local Payment Methods

Swft automatically surfaces local payment methods based on the shopper’s billing country. These are rendered as native UI elements — not Stripe’s generic payment element — giving shoppers a familiar, trusted experience.

CountryMethodNotes
Netherlands (NL)iDEALBank selector presented inline
Belgium (BE)BancontactCard-style input, redirects to Bancontact
Poland (PL)BLIK6-digit code input (see below)
Germany (DE)SOFORT / Klarna Pay NowRedirect-based
Sweden (SE)SwishQR code on desktop, deep link on mobile
Denmark (DK)MobilePayRedirect-based
Norway (NO)VippsRedirect-based
Finland (FI)MobilePayRedirect-based
Austria (AT)EPSBank selector, redirect
Portugal (PT)MB WAYPhone number input, push notification
Spain (ES)BizumPhone number input
France (FR)AlmaBNPL instalment option (3x, 4x)

Country detection uses the billing country selected by the shopper, not IP geolocation. This ensures accurate method presentation when billing and shipping addresses differ.

When a shopper selects a supported billing country, the relevant local payment methods appear as tab options in the payment section — alongside Card, Apple Pay / Google Pay (where supported), and any configured BNPL options.

Swft does not show multiple local methods at once in the same tab row (which creates decision paralysis). Only the primary method for the selected country is promoted. Secondary methods are accessible via a “More payment options” expander.

iDEAL transactions present an inline bank selector with logos for all major Dutch banks. Selecting a bank redirects to the bank’s own authentication page and returns to the Swft confirmation screen on success.

Stripe handles the redirect flow. Swft pre-creates the PaymentIntent with payment_method_types: ['ideal'] for NL sessions.

Bancontact renders a card-number-style input for the 16-digit card number or redirects to the Bancontact app on mobile. The payment is confirmed synchronously on the Swft edge worker before redirecting to the order confirmation page.

BLIK is the most-used payment method in Poland. The flow is:

  1. Shopper opens their banking app and generates a 6-digit BLIK code (valid for 2 minutes).
  2. Swft presents a 6-digit code input field.
  3. The shopper enters the code and clicks Pay.
  4. Swft submits the code to Stripe, which sends a push notification to the banking app.
  5. The shopper approves in their banking app.
  6. Stripe confirms the payment; Swft redirects to order confirmation.

The BLIK input has a 2-minute countdown timer with a “Get new code” prompt that refreshes the PaymentIntent without losing the order.

To disable all local payment methods for a merchant:

{
"modules": {
"localPayments": false
}
}

To disable a specific method only:

{
"modules": {
"localPayments": {
"exclude": ["blik", "ideal"]
}
}
}

Valid method identifiers for exclude: ideal, bancontact, blik, sofort, swish, mobilepay, vipps, eps, mbway, bizum, alma.

Local methods are only shown when the cart currency matches the payment method’s native currency. iDEAL requires EUR; BLIK requires PLN; Swish requires SEK. If your store charges in GBP only, iDEAL and BLIK will not appear even for Dutch or Polish shoppers.

To support local currencies, configure multi-currency in the merchant settings and ensure your Stripe account has the relevant settlement currency enabled.

All local payment methods are processed via Stripe. Your Stripe account must have each payment method enabled in the Stripe Dashboard. Swft will not render a payment method that is not enabled on your connected Stripe account, even if the shopper’s country matches.