Swish In-Store

Enable consumers to follow a QR scan on their Swish app on mobile, authorise the payment, the payment aka QR is generated on In-Store terminal.

QR Code Generation Methods

There are two main methods to generate the QR code, as outlined below:

  1. PPRO-rendered : PPRO's QR code generation simplifies the process by providing either a base64 encoded string for decoding or a ready to display QR image.
  2. Customer rendered through QR Payload : QR Payload to generate QR image , swish design specifications to be followed while generation.

Swish Design Specification for QR Payload Method

The QR code should be created in black and white. The Swish symbol is placed in the centre, on a white circular background. The symbol width should be 25% of the QR code width.
The Swish symbol can be downloaded from the Swish marketing toolbox and should follow the Swish trademark guidelines.

We strongly recommend using the PPRO rendered QR code generation, as it simplifies the process by removing the need to follow Swish design specifications on your end.

For reference, PPRO rendered QR code generation is demonstrated below, providing both a ready to display QR image and a Base64 encoded string.

Consumer Journey

  1. The consumer goes to the In-Store cash counter and selects Swish as their preferred payment method
  2. The consumer is displayed QR code on till machine.
  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 hands over the order/goods to the consumer.

Specific input parameters for the TRANSACTION call

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

Specific output parameters for the TRANSACTION call

Field NameM/O/CTypeRegexDescription
qrpayloadMstringN/ATo generate the QR code image, use the QR payload and follow Swish guidelines.

Transient output parameters for the TRANSACTION call

Field NameM/O/CTypeRegexDescription
qrcodeMstringN/ABase 64 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://amazon.com//PPRO system will skip this for In-Store Flow//
&notificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&accountholdername=Tester+Doe
&specin.dynamicdescriptor=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= 
&RAND3874536273=f8234430721f1a7ef4a4462de71dfd1d
&REDIRECTSECRET=dcn94nd2oud8eedhg38dkhed
&SPECOUT.QRPAYLOAD=DAAAAAAAAAAAAABQAEXmJcqFUw_x6Bh4N
&TRANSIENTOUT.QRCODE=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGl //base 64 encoded string//
&CHANNEL=testchannel
&TAG=swish
&MERCHANTTXID=sale1002
&FUNDSSTATUS=NOT_EXPECTED

ℹ️

Note

Decode the "TRANSIENTOUT.QRCODE" from the successful transaction response to generate the QR code.

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.