Get Started

Change UI Option

Walking you through switching from Seamless View to Redirect

Edit "Change UI Option" on GitHub

Due to changes in PCI-DSS requirements coming with v4 in March 2025, using Seamless View to display the payment UI will give you, as a merchant, more responsibilities than using our Redirect integration. This is because Seamless View is hosted by you. As the Redirect page is hosted by us, we also handle the responsibilities.

To learn more about how PCI-DSS affects you, we have further reading avaliable in Danish, Finnish, Norwegian and Swedish.

If you currently have a Seamless View integration and don’t want the impending responsibilities, switcing to Redirect is a very manageable task. Here’s what you need to do:

Use Redirect Operation

In the operations node of the payment response, right next to view-checkout which you should currently be using, you’ll find redirect-checkout. The corresponding href contains a url which leads to the Redirect UI. All you need to do is send the payer to this address.

Redirect-Checkout Operation

1
2
3
4
5
6
7
8
9
10
{
    "operations": [
        {
          "method": "GET",
          "href": "https://ecom.externalintegration.payex.com/payment/menu/b934d6f84a89a01852eea01190c2bbcc937ba29228ca7502df8592975ee3bb0d?_tc_tid=30f2168171e142d38bcd4af2c3721959",
          "rel": "redirect-checkout",
          "contentType": "text/html"
        },
    ]
}

Remove Seamless View Code

You can remove all code related to the <script> element used to load the Seamless View.

Change URLs

Finally, you need to do some changes to the urls node in your payment request. The hostUrls and paymentUrl fields are specific to Seamless View and can be removed.

The url you need to add is the cancelUrl, so we know where to redirect the payer if they chose to cancel, or you chose to abort the payment.

If you have permission to add your own logo, a logoUrl is also needed. If no logoUrl is added or no agreement is in place to have your own logo, Swedbank Pay’s logo will be shown by default.

The completeUrl and callbackUrl is universal and most be included regardless of your UI choice.

Seamless View Specific URLs

1
2
3
4
5
6
{
        "urls": {
            "hostUrls": [ "https://example.com", "https://example.net" ],
            "paymentUrl": "https://example.com/perform-payment"
        }
}

Redirect Specific URLs

1
2
3
4
5
6
{
        "urls": {
            "cancelUrl": "https://example.com/payment-cancelled",
            "logoUrl": "https://example.com/logo.png" //Optional
        }
}