To use Swish, the customer needs a smartphone with the Swish app and a Mobile BankID. The customer's phone number is connected to their bank account, allowing real time money transfer. The customer must have a bank account with a Swedish bank participating in the Mobilt BankID Sakerhetsapp scheme, and a national ID number. Customers with a Swedish bank account but do not have a Swedish phone number can register for receipt of payments.

We currently support Swish for payments and refunds, and offer Expected Refunds reports.

To have Swish available as a payment method, contact support@altapay.com.

How it works

The following diagram illustrates the steps involved in processing Swish transactions.

Processing a Payment

The callback pages are configured in the standard way. See Setting up the callback pages for more details.
  1. The customer goes to your checkout page, and selects Swish as the payment method.
  2. They then submit the payment.
  3. You (the merchant) send a createPaymentRequest to AltaPay, and redirect the customer to the AltaPay confirmation page, based on the response.
  4. See Payment Page (callback_form) for more details on how to do this.
  5. AltaPay shows a payment confirmation page containing the order number and amount of payment, and a request for the customer's phone number.
  6. You can configure the appearance of this page, including prefilling the phone number field, using the customer_info[customer_phone] parameter in the createPaymentRequest method, as described below. If the field is pre-filled, the customer can either confirm it, or change it if they wish.
  7. The customer confirms the transaction, providing or confirming their phone number.
  8. On receipt of the confirmation, AltaPay sends the payment request to Swish.
  9. Swish then:
    • manages the authentication and communication with the customer's bank
    • responds to AltaPay
    • sends the payment information as a notification to the customer's app.
  10. AltaPay sends a notification to the customer, advising them to open the Swish application on their mobile device to complete the transaction.
  11. The customer uses their Swish app to complete the transaction.
  12. Swish informs AltaPay of the success or failure of the transaction.
  13. You receive a confirmation when the transaction has been processed.
  14. You then show or redirect the customer to the appropriate message page, confirming success or informing them of any problem with the payment.

Processing a Refund

Refunds are managed using the Merchant Information Interface.

  1. Open the transaction to see the available actions.
  2. Specify the amount to refund, and click on the REFUND button.
  3. The refund is shown in the refund log.

Refunds can also be processed using the API, in the standard way. See refundCapturedReservation for more information on how to use this method.


You can generate an Expected Fundings report on Swish transactions, using the Custom Transaction Reports function in the Merchant Information Interface.

For transactions processed through some alternative payment methods, and some acquirers that do not provide reconciliation data (e.g. Swish, NETS a.o.), AltaPay provides the Expected Funding report.

It lists all successful transactions performed by merchant for the given payment method. It does not include fees or payments processed directly between merchant and acquirer.

The report correlates the Acquirer reconciliation id, terminal id, order id and payment id with the Merchant reconciliation identifier.

The report ID for Swish transactions is 18bfb650-2fd6-41e7-8081-f1b496539fe0.

The Swish payment reference is used as the acquirer reconciliation identifier in the report.

Scope of Swish Functionality

You can process payments and refunds using Swish.

The following features are not currently supported:

Feature Description
Over refund It is not possible to refund more than the original amount.
Surcharging It is not possible to add a surcharge to the transaction.
Credit It is not possible to create credit transactions.
Subscriptions It is not possible to set up subscriptions.
Acquirer based reconciliation files

The resulting payment data from calling the payments API method does not contain information in the AcquirerReconciliationIdentifier field.

For information about the payments method, see payments.

Reservations It is not possible to reserve payments.


You can style the mobile payment form to only show parts of it, or change the text.

To only show mobile app button by removing the phone number input, you can use the following CSS:

form#Mobile {
	display:none !important;

To only show mobile app button by removing the mobile app button, you can use the following CSS:

form#MobileOnApp {
	display:none !important;

If you wish to show both, but change the text, you can use the following CSS:

.AltaPayMobileInputOptionOr {
#MobileOnApp::after {
	content: 'Alternatively';

There is a check in place to determine whether your customer is on a mobile device or not. If you manually hide the #Mobile form, the #MobileOnApp form is automatically shown, even if your customer is not using a mobile device.