Swish
About
Swish is a popular payment method in Sweden that allows users to scan a QR code to validate the payment in their Swish app.
Region | Sweden |
---|---|
Currencies | SEK |
Refunds | Yes, within 13 months |
Disputes | Users authenticate directly with their bank, so there is no dispute process and a low risk of unrecognized or fraudulent payments |
Preauthorization | No |
Recurring payments | No |
How it works
The Swish pay-in flow provides the following checkout experience:
User chooses payment method
On your app or website, the user selects Swish as the payment method
Payment initiation
You create the payment request by calling POST Create a Swish PayIn, specifying the ReturnURL
.
If the ReturnURL
redirects to your app, rather than a website, you need to also set the PaymentFlow
to APP
.
Redirection
On a website, you redirect the user via the RedirectURL
response value to a hosted payment page containing the QR code. Alternatively, you can integrate a PNG of the QR code into your payment page using the QRCodeURL
value (which is Base64-encoded).
In an app-to-app flow, you redirect the user to their Swish app via the DeepLinkURL
response value.
After pressing the pay button, the user uses the Swedish Mobile BankID system to validate the payment.
Note – Timeout after 3 minutes
The payment session lasts for 3 minutes, at which point the pay-in fails automatically if no action has been taken by the user.
Return
After payment, the user is returned on your specified ReturnURL
:
- To a website if
PaymentFlow
isWEB
(default value) - To a mobile app if the
PaymentFlow
isAPP
Outcome
The transaction is complete when the pay-in status changes from CREATED
to SUCCEEDED
or FAILED
, indicating the outcome.
Hooks
You should also set up hook notifications for the relevant event types:
- PAYIN_NORMAL_SUCCEEDED
- PAYIN_NORMAL_FAILED