TWINT

In Switzerland, TWINT is the most popular mobile payment option with 5 million users.

Customers can use TWINT payment terminals in-store or online and can pay with TWINT by linking their bank accounts or credit cards.

Payment Method Properties

Available country codesCH
Processing (Presentation) currenciesCHF
Settlement currenciesCHF
Consumer currenciesCHF
Channel member tagtwint
Scheme name in the settlement fileTwint
Minimum transaction amountCHF 0.01
Maximum transaction amountVaries per issuing bank (in most cases CHF 5,000/month)
Session timeout15 min - on the Twint HPP

3 min if the user has scanned the QR code but did not confirm the payment in the Twint APP.
RefundFull, partial and multiple partial refunds are all possible.
Refund Validity
ChargebackYes
Integration TypeAsynchronous
SandboxScheme-Hosted

Transaction Flow

  • Merchant/PSP checkout :
    • User selects TWINT as a payment method.
    • PSP redirects to the TWINT hosted Checkout Page

If the consumer is paying from a desktop browser:

  • Twint hosted Checkout page is opened
  • Desktop: QR-Code and Token are displayed
  • User can scan the QR-Code from the Twint mobile app or enter the token in the Twint app.
  • Payment confirmation page with amount and merchant logo are displayed in the app
  • User confirms the amount
  • Payment successful page is displayed in the app
  • Order confirmation status is displayed on the Merchant Webshop(desktop browser).

If the consumer is paying from a mobile browser:

iOS

  • The consumer clicks on Pay with Twint button
  • User is redirected to Twint HPP with options to select one of the issuers Twint app from the app selector drop down and or copy the Twint code.
  • Selected Twint app is launched and payment confirmation page with amount and merchant logo are displayed
  • User confirms the amount
  • Success screen is displayed and user then clicks on close
  • Pop-up message is displayed to return to the merchant online shopping page.
  • Order confirmation Status is updated on the merchant online shopping page.

Android

  • The consumer clicks on Pay with Twint button
  • User is redirected to Twint HPP with the transaction amount.
  • User can click on “switch to app button” or copy the Twint code and enter in the Twint app
  • Payment confirmation page with amount and merchant logo are displayed in the Twint app
  • User clicks on the “Ok” to confirm the payment
  • User is redirected back to the merchant online shopping page.
  • Order confirmation Status is updated on Merchant online shopping page

Refund Flow

Twint Integration

Specific input parameters for the TRANSACTION call

There are no specific input parameters for the TRANSACTION call.

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

Specific output parameters for the TRANSACTION call

This payment method will emit the output parameters outlined below:

Field nameTypeDescription
SPECOUT.PROVIDERORDERSTATUSasciiPayment status.
SPECOUT.PROVIDERORDERSTATUSCODEasciiRaw code for corresponding order status.
SPECOUT.PROVIDERORDERSTATUSREASONasciiReason for/details about the payment status.
SPECOUT.PROVIDERORDERSTATUSREASONCODEasciiRaw code for corresponding order status reason.
SPECOUT.PROVIDERERRORCODEasciiThe error code displayed in case of a failed call.
SPECOUT.PROVIDERERRORCODESTATUSasciiA human-readable error status.
SPECOUT.PROVIDERCUSTOMERIDasciiA unique ID per consumer per merchant

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

TRANSACTION call input

&tag=twint
&txtype=TRANSACTION
&countrycode=CH
&currency=CHF
&amount=100
&channel = testchannel
&merchanttxid=CkNWCBH4Wx4s
&login= 1234
&password=12234
&contractid=1233
&accountholdername= test name
&returnmode=urlencodeext

TRANSACTION call output

REQUESTSTATUS=SUCCEEDED
&STATUS=SUCCEEDED
&TXID=2112223632
&ERRMSG=
&CHANNEL=testchannel
&TAG=twint
&REDIRECTSECRET=1O2jLKHsCxaHejbQuCOR6nIFpaXKi342
&SPECOUT_PROVIDERORDERSTATUS=SUCCESS
&SPECOUT_PROVIDERORDERSTATUSCODE=0
&SPECOUT_PROVIDERORDERSTATUSREASON=ORDER_OK
&SPECOUT_PROVIDERORDERSTATUSREASONCODE=0