Last updated: 20 February 2026 | Change log
Swish is a popular mobile payment method in Sweden and is widely used for e-commerce transactions. It allows your customers to make real-time payments using the Swish mobile app and Swedish BankID mobile app.
Make yourself familiar with our API principles to ensure a resilient integration.
Product overview
| Payment type | Country | Acceptance currency | Recurring | Reversals | Partial reversals | Auth and settlement (sale) |
|---|---|---|---|---|---|---|
| Digital wallet | Sweden | SEK | ❌ |
|
| ✅ |
Transaction value:
- minimum transaction SEK 0,01
- maximum transaction SEK 150.000,00
Your customer must have both the Swish mobile app and the BankID app installed on their phone.
Your customers can invoke a payment in two ways:
Used in:
- a web browser to Swish app flow
- Submit your payment request and receive a synchronous response with the order status "pending".
- The Swish app automatically pops up and your customer proceeds to pay.
- We send you an asynchronous notification of the payment outcome.
Used in:
- a web browser to Swish app or
- a merchant mobile app to Swish app flow
- Submit your payment request and receive a synchronous response with the order status "pending".
- You also receive a
transactionCodeand aredirectBase64 code in your response. Add the value of thetransactionCodein thetokenof the Swish app URL.- For web browser initiated payments - use the Base64 encrypted code to display a QR code. Your customer can scan this code on a separate device to prompt it to open their Swish app and complete the payment
or - For merchant mobile app payments - add the value of the
transactionCodein thetokenof the Swish app URL. This will prompt your customer's app to open where they can complete the payment.
- For web browser initiated payments - use the Base64 encrypted code to display a QR code. Your customer can scan this code on a separate device to prompt it to open their Swish app and complete the payment
- We send you an asynchronous notification of the payment outcome.
For more information on how to trigger the Swish app, please refer to Swish's developer guide.
Use our API reference and set your headers.
POST https://try.access.worldpay.com/apmPayments
- Test (Try)https://try.access.worldpay.com/apmPayments
- Livehttps://access.worldpay.com/apmPayments
- Payload
- curl
- Python
- Java
- Node.js
- Go
- PHP
- Ruby
- C#
{ "transactionReference": "apm-order-12345686564", "orderReference": "apm-order-12345", "merchant": { "entity": "default" }, "instruction": { "method": "swish", "value": { "amount": 250, "currency": "SEK" }, "narrative": { "line1": "Mind Palace" }, "paymentInstrument": { "type": "direct", "country": "SE" }, "customer": { "phone": "46761985401" } } }
For Bizum transaction please follow this extra regex [a-zA-Z0-9]{4,12}
A reference that you can apply to one or more payments according to your business needs. You may reuse the same reference across multiple payments, for example where:
- the total amount for a single order is split across multiple payments
- you use a single reference for each payment in a recurring agreement or split shipment scenario
Used to route the request in Access Worldpay, created as part of on-boarding.
Object that contains the payment type and details.
Type of payment method
- ach
- alipay_cn
- alipay_hk
- alipay_uni
- bancontact
- bizum
- blik
- eft
- euteller
- ideal
- klarna
- konbini
- multibanco
- mybank
- open_banking
- oxxo
- paypal
- paysafecard
- pix
- przelewy
- sepa
- safetypay
- swish
- trustly
- wechatpay
The value of the payment.
The amount in the lowest denomination of the currency e.g. pennies for GBP, cents for USD.
The supported ISO 4217 currency codes.
The description shown on your customer's bank statement for the payment.
The type of instrument.
Account type.
Account number of direct debit account.
Routing number of direct debit account.
Check number of the direct debit account.
Company name if a corporate account.
City.
The supported ISO 3166-1 alpha-2 country codes.
Postal code.
State code of the billing address in ISO 3166-2 format.
Your customer's first name.
Your customer's last name.
Your unique reference for the customer so that the 'pay faster next time' function can be used during checkout. This allows your customer's chosen bank to be stored for their next payment.
The customer's e-mail address.
{
"paymentInstrument": {
"method": "swish",
"type": "direct"
},
"paymentId": "eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEYlzsZIRIGCflvnYu1Ns8g1S0+66n6wCELiB9OHfX7cdKgIbll24WbW4bjxcOFkvbpJNnd51Q+QyfiGaiRe9nbKem66NOYspir3PJsMwGsI7G2Bf+rspiXLfF0Zn4xovsnjKIKWBW6p+Rdq:C8bzvzksHpCpFZQGSv0Xc:8EsM3P954rfT6hMMjSKiEe6HkFm97Tdqnh0cTWck:wh0Mvah:KtGknckWds:wrjcUMQshbQQ6sGi9VYvEB5k55y2sensiXY0Yl+:o+DhIRXOVuFuodpucFGzoapJG7KB6E+glKvLwdJZEx5MYoCT6G5d8JewNuyzINJ9Ct0Fd1CqhIA8jMh:ad9A+8L5w0NQE0YQtKA==",
"lastEvent": "pending",
"_links": {
"self": {
"href": "https://try.access.worldpay.com/apmPayments/eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEYlzsZIRIGCflvnYu1Ns8g1S0+66n6wCELiB9OHfX7cdKgIbll24WbW4bjxcOFkvbpJNnd51Q+QyfiGaiRe9nbKem66NOYspir3PJsMwGsI7G2Bf+rspiXLfF0Zn4xovsnjKIKWBW6p+Rdq:C8bzvzksHpCpFZQGSv0Xc:8EsM3P954rfT6hMMjSKiEe6HkFm97Tdqnh0cTWck:wh0Mvah:KtGknckWds:wrjcUMQshbQQ6sGi9VYvEB5k55y2sensiXY0Yl+:o+DhIRXOVuFuodpucFGzoapJG7KB6E+glKvLwdJZEx5MYoCT6G5d8JewNuyzINJ9Ct0Fd1CqhIA8jMh:ad9A+8L5w0NQE0YQtKA=="
}
},
"_actions": {},
"redirect": "",
"commandId": "cmdzKbxhkiOS0VzNtzZ4XPKd0",
"transactionCode": "BCD2ABDD76D934A093D679B39305F4CC"
}The identifier of the payment resource.
Links to resources related to the request.
The URL to redirect your customer to, or a QR code in Base64 to show to your customer, in order to complete the transaction.
An action ID generated by us identifying a single merchant interaction
For Pix payments - display to your customer for them to copy and paste in the Pix app.
For Swish payments - use this value and add in the custom URL scheme: swish://paymentrequest?token={token}&callbackurl={callbackURL} as the token value. This will prompt the app to open where the customer can complete their payment.
Check out our API reference for more responses or error codes.
To simulate payment outcomes and trigger webhooks in our Try environment you can send a request prompting our simulator.
{
"transactionReference": "apm-order-12345686564",
"orderReference": "apm-order-12345",
"merchant": {
"entity": "default"
},
"instruction": {
"method": "swish",
"value": {
"amount": 250,
"currency": "SEK"
},
"narrative": {
"line1": "Mind Palace"
},
"paymentInstrument": {
"type": "direct",
"country": "SE"
},
"customer": {
"phone": "46761985401"
},
"resultUrls": {
"cancel": "https://worldpay.com/cancel",
"failure": "https://worldpay.com/failure",
"pending": "https://worldpay.com/pending",
"success": "https://worldpay.com/success"
}
}
}You receive a redirect link to our simulator where you can choose different payment outcomes:
| Simulator outcome option | Payment status | Description |
|---|---|---|
| Authorised | authorized | Payment authorized successfully. |
| Authorised and Captured | sentForSettlement | Payment authorized successfully and your customer's funds received. |
| Refused | refused | Unsuccessful payment - failure response from the provider. |
| Error | error | Error in processing the payment or the session timed out. |
| Shopper Cancelled | cancelled | Your customer cancelled the transaction. |
{
"paymentInstrument": {
"method": "swish",
"type": "direct"
},
"paymentId": "eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.dz5mM2S9wOJFy0F+xZ63pJoY4MvCJmVKVX5RXy1cWGhFcthsPs91vvKMH5zN1RgFR8SWBDRoQFA4GRUVGjxZCWsfqOLqZzb6KliNHM8rs0EMWSqklWHSogj5rZUH5kI3mebsBdksBOwHzOsi0K3NiY8wPy4CC+yuF2EzgrSjuKziwMRCCwsuKTgtCsDJY8do1hSDGeuhROmq+2BRwnDNvqxYcKtB1glrP9vZvweaGUYlVmX:rRtVY6:28WjlC8gvMDOsjoSlYnakcWAuIzwPZHPJkiyF:wEF3YiNB5b3aCTlge8GFB1uN1hkZLUOvvRtC7:ixYgCBrgJwbIOdFEcyfZWmiQjryMZfDVJr2F9Q97OAXA8tipQVZMxWYn0h5J+jtJi8kjOjGi5o7hGAwVfQixoV05C3nz0vYVPKJXVqmM=",
"lastEvent": "pending",
"_links": {
"self": {
"href": "https://try.access.worldpay.com/apmPayments/eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.dz5mM2S9wOJFy0F+xZ63pJoY4MvCJmVKVX5RXy1cWGhFcthsPs91vvKMH5zN1RgFR8SWBDRoQFA4GRUVGjxZCWsfqOLqZzb6KliNHM8rs0EMWSqklWHSogj5rZUH5kI3mebsBdksBOwHzOsi0K3NiY8wPy4CC+yuF2EzgrSjuKziwMRCCwsuKTgtCsDJY8do1hSDGeuhROmq+2BRwnDNvqxYcKtB1glrP9vZvweaGUYlVmX:rRtVY6:28WjlC8gvMDOsjoSlYnakcWAuIzwPZHPJkiyF:wEF3YiNB5b3aCTlge8GFB1uN1hkZLUOvvRtC7:ixYgCBrgJwbIOdFEcyfZWmiQjryMZfDVJr2F9Q97OAXA8tipQVZMxWYn0h5J+jtJi8kjOjGi5o7hGAwVfQixoV05C3nz0vYVPKJXVqmM="
}
},
"_actions": {},
"redirect": "https://secure-test.worldpay.com/jsp/test/shopper/APMSTSimulator.jsp?customerRef=3494243302&paymentMethod=SWISH",
"commandId": "cmdFhJbQqGcS5PbZO-gv26qP0",
"transactionCode": ""
}Next steps