Swish E-Commerce

Enable shoppers to follow a QR scan on their Swish app on mobile, authorise the payment, the payment aka QR is generated on desktop.

Following are the E-Commerce journeys:

QR code : Display a QR code that the payer can scan with their Swish app.

Phone Number : User inputs their phone number to start the payment.

ℹ️

Note

We at PPRO support QR code journey only at this stage.

There are two integration options to integrate Swish via QR code :

QR code on merchant hosted payment page

This allows merchants to host the QR payment page themselves , incorporating Swish as payment method directly on their own site.

QR code on PPRO-hosted payment page

Customers are redirected to a PPRO-managed QR payment page where Swish is presented as a payment option.

QR code on merchant hosted payment page

Customer Journey


  1. The consumer goes to the merchant website on desktop and selects Swish as their preferred payment method on payment page, QR is displayed on page hosted by merchant.
  2. The consumer is displayed QR code on the desktop website.
  3. The consumer scans the QR code on Swish app, enters the desired details, authorise and complete the transaction.
  4. The merchant receives the payment confirmation
  5. The merchant ships the order/deliver the goods to the consumer.

Specific input parameters for the TRANSACTION call

There are no specific input parameters required for In-Store journey

Transient input parameters for the TRANSACTION call

Field NameM/O/CTypeRegexDescription
orderdetailsmessageOstringN/ADescription of the order

Transient output parameters for the TRANSACTION call

Field NameM/O/CTypeRegexDescription
appintenturiMstringN/AThis is not to be considered in this flow.
qrcodeMstringN/ABase 24 encoded QR string

TRANSACTION call input

tag=swish
&txtype=TRANSACTION
&countrycode=SE
preferredlanguage=en
&currency=SEK
&amount=250
&merchanttxid=84564142227
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOETESTCONTRACT
&channel=testchannel
&merchantredirecturl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Flanding.php//dummy value will work too//
&notificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&accountholdername=Tester+Doe
&transientin.orderdetailsmessage=checkoutof2cakes
&returnmode=urlencodeext

For standard input parameters, check Input parameters for the TRANSACTION call

TRANSACTION call output

When Transaction request is successful

&STATUS=PENDING
&TXID=10
&ERRMSG= 
&TRANSIENTOUT.QRCODE=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGl //base 64 encoded string//
&RAND3874536273=f8234430721f1a7ef4a4462de71dfd1d
&REDIRECTSECRET=dcn94nd2oud8eedhg38dkhed
&CHANNEL=testchannel
&TAG=swish
&MERCHANTTXID=sale1002
&FUNDSSTATUS=NOT_EXPECTED

When Transaction request is not successful

&STATUS=FAILED
&TXID=600520459
&ERRMSG=Remote%20System%20Error  
&RAND3874536273=f8234430721f1a7ef4a4462de71dfd1d
&FAILREASON=REMOTE_ERROR
&CHANNEL=testchannel
&TAG=swish
&MERCHANTTXID=sale1002
&FUNDSSTATUS=NOT_EXPECTED

For standard output parameters, see Output parameters for the TRANSACTION call.

QR code on PPRO hosted payment page

Customer Journey

  1. The consumer goes to the merchant website on desktop and selects Swish as their preferred payment method on payment page, QR is displayed on page hosted by PPRO.
  2. The consumer is displayed QR code on the desktop website.
  3. The consumer scans the QR code on Swish app, enters the desired details, authorise and complete the transaction.
  4. The merchant receives the payment confirmation
  5. The merchant ships the order/deliver the goods to the consumer.

Specific input parameters for the TRANSACTION call

There are no specific input parameters required for In-Store journey

Transient input parameters for the TRANSACTION call

Field NameM/O/CTypeRegexDescription
orderdetailsmessageMstringN/ADescription of the order

Transient output parameters for the TRANSACTION call

Field NameM/O/CTypeRegexDescription
appintenturiMstringN/AThis is not to be considered in this flow.
qrcodeMstringN/ABase 24 encoded QR string

TRANSACTION call input

tag=swish
&txtype=TRANSACTION
&countrycode=SE
preferredlanguage=en
&currency=SEK
&amount=250
&merchanttxid=84564142227
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOETESTCONTRACT
&channel=testchannel
&merchantredirecturl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Flanding.php//dummy value will work too//
&notificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&accountholdername=Tester+Doe
&transientin.orderdetailsmessage=checkoutof2cakes
&returnmode=urlencodeext

For For standard input parameters, check Input parameters for the TRANSACTION call

TRANSACTION call output

When Transaction request is successful

&STATUS=PENDING
&TXID=10
&ERRMSG= 
&TRANSIENTOUT.QRCODE=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGl //base 64 encoded string//
&RAND3874536273=f8234430721f1a7ef4a4462de71dfd1d
&REDIRECTSECRET=dcn94nd2oud8eedhg38dkhed
&CHANNEL=testchannel
&TAG=swish
&MERCHANTTXID=sale1002
&FUNDSSTATUS=NOT_EXPECTED

When Transaction request is not successful

&STATUS=FAILED
&TXID=600520459
&ERRMSG=Remote%20System%20Error  
&RAND3874536273=f8234430721f1a7ef4a4462de71dfd1d
&FAILREASON=REMOTE_ERROR
&CHANNEL=testchannel
&TAG=swish
&MERCHANTTXID=sale1002
&FUNDSSTATUS=NOT_EXPECTED

For standard output parameters, see Output parameters for the TRANSACTION call.