Swish paymentsInvite only
Learn how to accept Swish, a popular payment method in Sweden.
Swish is a single-use payment method used in Sweden. It allows customers to authenticate and approve payments using the Swish mobile app and the Swedish BankID mobile app.
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.
Use this guide to enable Swish on Checkout, our hosted checkout form, and learn the differences between accepting a card payment and a Swish payment.
Determine compatibility
A Checkout Session must satisfy all of the following conditions to support Swish payments:
- Prices for all line items must be expressed in SEK.
Set up StripeServer-side
First, you need a Stripe account. Register now.
Use our official libraries for access to the Stripe API from your application:
Accept a payment
Note
This guide builds on the foundational accept a payment Checkout integration.
Enable Swish as a payment method
When creating a new Checkout Session, you need to:
- Add
swishto the list ofpayment_.method_ types - Make sure all your
line_use theitems sekcurrency.
Fulfill your orders
After accepting a payment, learn how to fulfill orders.
Failed payments
Swish uses multiple data points to decide when to decline a transaction (for example, there aren’t enough funds in the customer’s bank account, or the customer has clicked Cancel in the app).
In these cases, the PaymentMethod is detached and the PaymentIntent object’s status automatically transitions to requires_.
Other than a payment being declined, for a Swish PaymentIntent with a status of requires_, customers must complete the payment within 3 minutes. If no action is taken after 3 minutes, the PaymentMethod is detached and the PaymentIntent object’s status automatically transitions to requires_.