Skip to content


    This page outlines the basics of using Swish via Netaxept and gives you instructions needed for a fluent implementation.

    • Swedish Krones (SEK) is the only supported currency
    • Swish is an additional paid payment method - fees in addition to Netaxept fees apply
    • Using Swish via Netaxept requires an agreement with your chosen bank for accepting online payments via Swish. At the moment we accept certificates from Danske Bank, Handelsbanken, Nordea, SEB, Svea Bank and Swedbank
    • Only one-off payments are supported, not recurring payments


    Swish is a mobile payment solution that enables you to receive payments from private persons who make the payment through their mobile phone's Swish app The payment is instantly transferred from the payer´s bank account to your bank account.

    Swish can be used as a payment method in two ways:

    • Swish E-commerce: Swish payments that are initiated in a browser independently of mobile device that hosts the Swish app.
    • Swish M-Commerce: Swish payments that are initiated from the mobile device either through an app or a mobile browser.

    Contact Nets to have your certificate copied to SwishM if you already have registered SwishE, or follow the steps as outlined in Adding Swish to Netaxept admin but instead chose SwishM.

    Use for the end-customer

    The customer has to have downloaded the Swish app at their mobile phone and registered their phone number in the app. Also, the customer should have downloaded the Mobile BankID app, as the transactions are signed with Mobile BankID.

    When the customer decides to pay with Swish, they are directed from the merchant’s site to the page where they are asked to enter their phone number registered in the Swish app.

    Swedish phone numbers (+46) sent with the Register call will be prefilled.

    The customer opens the Swish app on their phone to approve the payment and sign it with Mobile BankID. Once the payment is completed, the customer is redirected to the redirectURL specified by the merchant in the Register call, with a proper response code. The payment then gets withdrawn from the customer’s bank account and settled to the merchant's bank account.


    In order to use Swish in your webshop, you need to sign an agreement with your bank for Swish Handel. Currently, we can accept certificates from Swedbank, SEB, Handelsbanken, Nordea and Danske Bank.

    After your bank has processed your agreement, they will provide you credentials which you must enter in your Netaxept Admin to activate the payment method in question.

    Payment flow

    Until the Terminal phase, the Swish payment flow works as described under Payment Flow Outline section.

    If you already have a regular card integration implemented, and you have made an agreement with your bank about Swish, there is no need to send any additional parameters along the Register call to Netaxept to make Swish available for customers.

    After the successful Register call, perform the Terminal call to send the customer either to the Netaxept payment window or directly to the page where they are asked to enter their phone number and open the Swish app.

    Similiar to direct bank payments, after the Terminal phase, Netaxept triggers AutoSale for the transaction: therefore, you don’t need to run AUTH, CAPTURE or SALE on Swish transactions. This eliminates a step in the standard payment process done via Netaxept.

    To make sure your setup doesn't try to run not allowed steps, we recommend you to implement the following:

    • Use the Register call's Payment method action list parameter to separate Swish from card and other payments in the checkout phase.
    • Perform the Query call after the Terminal phase to see which payment method was used for the payment, and make the further action based on the payment status.
    • Implement the supported financial operations as described in Payment methods. Both full and partial refunds are supported. The credit amount should be more than 0,50 SEK.

    Both Netaxept production and test environments are using the production environment at Swish which means that all transactions you will run are live transactions.

    Callback and Query

    In order to verify that the transaction has the correct status and the payment has processed successfully and is fully paid, or if you are unsure which payment method the customer used for the payment, we recommend you to implement the Callback function and the Query call as part of the payment process.

    Through the callback, you will receive a transactionId whenever the transaction has a new status. Based on this, you can do the Query call to get the new status and detailed information about the transaction.

    Payment flow for Swish M-Commerce (app switching)

    For instructions on how to detect if Swish is on the user’s device, see instructions from Swish.

    Netaxept supports using Swish M-commerce. Swish M-commerce does not require user to enter phone number but requires that the Swish application is installed on the device. It also enables app switch both to the Swish application and back to the merchant application or website as described below:

    If the transaction is performed in app, the Register call should contain the following parameters for the app switch (from your app to Swish app).

    • PaymentMethod = SwishM
    • ServiceType = C (M if using our SDK)
    • Currency = SEK
    • CustomerPhoneNumber = +[country code][phone number]

    The response from Register call will contain the link for the app switch. Once the customer has completed the payment, the Swish app switches back to your app.

    Transaction reference number

    The transaction reference number is a unique end-to-end reference number for each transaction.

    You can specify a unique reference number for each payment by sending the TransactionReconRef parameter and its value along the Register call to Netaxept.

    The use of transaction-specific reference number is optional but if you want to use it, it needs to follow the formating rules below. No validation of format is done at Netaxept side.

    • TransactionReconRef needs to allow A-Ö, & and -.
    • The current max length of TransactionReconRef should be in place.

    Read more about Transaction Reference Numbers.