• DeutschEnglish

TWINT

About TWINT

General information about TWINT

TWINT is the leading and one of the most popular payment app in Switzerland. Ninety-seven percent of the Swiss population are aware of TWINT and half of the Swiss population uses it on a regular basis. Ninety percent of all bank account holders in Switzerland are able to connect their accounts directly to the TWINT app.

Please note: In order for a merchant to receive a TWINT account, he must be able to show that his company is based in Switzerland.

Logo

COO 6505 1000 10 6092952

Info

Pay easily and absolutely secure with the TWINT E-Wallet solution using the leading payment app in Switzerland.

All you need to do is to scan a QR code and verify your identify using your smartphone.

Type

Payments by eWallet

Further information you will find also on the TWINT webpage (https://www.twint.ch/).

How it works

When a user decides to pay with TWINT and taps corresponding payment button, either QR is presented for user to scan (Web payment) or TWINT app opens automatically to confirm payment (in-app payment or browsing on smartphone).

Please follow next link for overview how to pay online with TWINT:

https://www.twint.ch/en/private-customers/functions/onlineshop/?lang=en

Before you start

Once you have decided to support TWINT, there's a set of steps have to be completed:

  1. Register your company within TWINT here: https://portal.twint.ch.

    1. If you'd like to have a test merchant and perform TWINT transaction in test mode, you can also register your company and create a shop on TWINT's integration environmenthttps://portal-int.twint.ch the same way as described below.

  2. Create your Online shop from the home page of TWINT portal: COO 6505 1000 15 31670

  3. On the second step of the shop registration in the "Integration" section choose PSP (payment service provider) option and select Computop from the list of providers:  COO 6505 1000 11 31677

  4. After store has been created, provide store's UUID to Computop Helpdesk and ask to activate payment method TWINT: COO 6505 1000 12 31682

Process flow chart

Use Cases

Supported use cases

Supported interfaces

Use case

Description

Simple process

S-2-S

Form-based

Batch

Analytics PayByLink

HPP

CTSF

PAYMENT_DEFERRED for physical goods

Authorization + Capture

Merchant wants to authorize payment and capture on delivery

  • Merchant has to complete capture within 7 days after authorization

COO 6505 1000 8 8020337

COO 6505 1000 8 8020337

COO 6505 1000 8 8020337

PAYMENT_IMMEDIATE for digital goods

Sale

Merchant wants to collect money from customer

  • Merchant's shop initiates payment request

  • Customer gets redirected to get QR code displayed

  • Customer scans QR-Code and confirms payment

  • Merchant's shop gets a notification about successful payment

COO 6505 1000 8 8020337

COO 6505 1000 8 8020337

full or partial Credit

Merchant wants to credit some money back to customer after a payment has been successfully completed

  • Merchant initiates credit request

  • Computop collects details from referred payment and initiates credit

  • Merchant's shop gets a notification about successful credit

COO 6505 1000 8 8020337

COO 6505 1000 8 8020337

full or partial Reversal

Merchant wants to cancel a payment which has not been completed

  • only supported for payment processes that have not been completed

  • for completed payment processes use Credit instead

COO 6505 1000 8 8020337

COO 6505 1000 8 8020337

CTSF

CTSF for reconcilliation

  • download settlement file from service provider

  • create CTSF for merchant

coming soon

Paygate interface

Definitions
Data formats

Format

Description

a

alphabetical

as

alphabetical with special characters

n

numeric

an

alphanumeric

ans

alphanumeric with special characters

ns

numeric with special characters

bool

boolean expression (true or false)

3

fixed length with 3 digits/characters

..3

variable length with maximum 3 digits/characters

enum

enumeration of allowed values

dttm

ISODateTime (YYYY-MM-DDThh:mm:ss)

Abbreviations

Abbreviation

Description

Comment

CND

condition

M

mandatory

If a parameter is mandatory, then it must be present

O

optional

If a parameter is optional, then it can be present, but it is not required

C

conditional

If a parameter is conditional, then there is a conditional rule which specifies whether it is mandatory or optional

Notice: Please note that the names of parameters can be returned in upper or lower case.

Payment with TWINT over Paygate form interface

To make a TWINT payment over a Paygate form, please use the following URL:

https://www.computop-paygate.com/twint.aspx

Notice: For security reasons, Computop Paygate rejects all payment requests with formatting errors. Therefore, please use the correct data type for each parameter.

The following table describes the encrypted payment request parameters:

KeyFormatCNDDescription

MerchantID

ans..30

M

MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too.

TransID

ans..64

M

TransactionID provided by you which should be unique for each payment

RefNr

ans..40

O

Merchant’s unique reference number. Only characters are allowed.

Amount

n..10

M

Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit).

Currency

a3

M

Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Only CHF allowed. Please find an overview here: A1 Currency table

MAC

an64

M

Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here:

OrderDesc

ans..768

M

Description of delivered products, services etc.

URLSuccess

ans..256

M

Complete URL which calls up Paygate if payment has been successful. The URL may be called up only via port 443. This URL may not contain parameters: In order to exchange values between Paygate and shop, please use the parameter UserData.

Common notes:

  • We recommend to use parameter "response=encrypt" to get an encrypted response by Paygate

  • However, fraudster may just copy the encrypted DATA-element which are sent to URLFailure and send the DATA to URLSuccess/URLNotify. Therefore ensure to check the "code"-value which indicates success/failure of the action. Only a result of "code=00000000" should be considered successful.

URLFailure

ans..256

M

Complete URL which calls up Paygate if payment has been unsuccessful. The URL may be called up only via port 443. This URL may not contain parameters: In order to exchange values between Paygate and shop, please use the parameter UserData.

Common notes:

  • We recommend to use parameter "response=encrypt" to get an encrypted response by Paygate

  • However, fraudster may just copy the encrypted DATA-element which are sent to URLFailure and send the DATA to URLSuccess/URLNotify. Therefore ensure to check the "code"-value which indicates success/failure of the action. Only a result of "code=00000000" should be considered successful.

Response

a7

O

Status response sent by Paygate to URLSuccess and URLFailure, should be encrypted. For this purpose, transmit Response=encrypt parameter.

URLNotify

ans..256

M

Complete URL which Paygate calls up in order to notify the shop about the payment result. The URL may be called up only via port 443. It may not contain parameters: Use the UserDataparameter instead.

Common notes:

  • Before follow-up actions (capture / credit / reversal) are carried out on an existing transaction, the first Notify must have been answered by the shop.

  • Fraudster may just copy the encrypted DATA-element which are sent to URLFailure and send the DATA to URLSuccess/URLNotify. Therefore ensure to check the "code"-value which indicates success/failure of the action. Only a result of "code=00000000" should be considered successful.

UserData

ans..1024

O

If specified at request, Paygate forwards the parameter with the payment result to the shop.

ReqId

ans..32

O

To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action.

Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly.

Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate.

Capture

an..6

OM

Determines the type and time of capture.

Capture Mode

Description

AUTO

Capturing immediately after authorisation (default value).

MANUAL

Capturing made by the merchant. Capture is normally initiated at time of delivery.

<Number>

Delay in hours until the capture (whole number; 1 to 696).

Plain

ans..50

O

A single value to be set by the merchant to return some information unencrypted in response/notify, e.g. the MID.

"Plain"-parameter is part of encrypted "Data" in Computop Paygate and therefore protected against manipulation.

Custom

ans..1024

O

"Custom"-parameter is added to the request data before encryption and is part of encrypted "Data" in Computop Paygate request. By this they are protected against manipulation by a consumer.

The Custom-value is added to the Computop Paygate response in plain text and the "|" is replaced by a "&". By this you can put a single value into Custom-parameter and get multiple key-value-pairs back in response for your own purpose.

Please find a sample here: Custom

Parameters for TWINT

The following table gives the result parameters which Computop Paygate transmits to URLSuccess or URLFailure and URLNotify. If you have specified the Response=encrypt parameter, the following parameters are sent Blowfish encrypted to your system:

pls. be prepared to receive additional parameters at any time and do not check the order of parameters

the key (e.g. MerchantId, RefNr) should not be checked case-sentive

Please note that the final notification may be delayed by approx. 30-35 minutes or up to 60-65 minutes if the customer completes the payment and closes the browser immediately afterwards. The reason for this is that the payment status can only be read in via the browser callback and if this is not done, the status is requested downstream by our Paygate at the above-mentioned interval. Due to the missing callback, the redirect to the URLSuccess/URLFailure is also not processable.

KeyFormatCNDDescription

mid

ans..30

M

MerchantID, assigned by Computop

PayID

an32

M

ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request.

XID

an32

M

ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate

TransID

ans..64

M

TransactionID provided by you which should be unique for each payment

RefNr

ans..40

O

Merchant’s unique reference number. Only characters are allowed.

Status

a..50

M

OK or AUTHORIZE_REQUEST (URLSuccess) as well as FAILED (URLFailure)

If Computop Helpdesk has activated Sale-transactions, "PAYMENT_IMMEDIATE" is triggered and the Status ist mostly OK or FAILED and only in some special cases AUTHORIZE_REQUEST.

Paygate checks all AUTHORIZE_REQUEST payments from Twint, requests the status again and if the status does not change, a Cancel is executed. This typically is completed within 30 minutes after initial transaction.

If Computop Helpdesk has not activated Sale-transactions, "PAYMENT_DEFERRED" is triggered and the Status ist always AUTHORIZE_REQUEST, because Twint waits für the merchant Confirmation (capture.aspx). Payments shall be captured within 7 days. Only then does the higher-level payment status changes to OK or FAILED.

Description

ans..1024

M

Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis!

Code

an8

M

Error code according to Paygate Response Codes (A4 Error codes)

MAC

an64

M

Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here:

UserData

ans..1024

O

If specified at request, Paygate forwards the parameter with the payment result to the shop.

TransactionID

an..20

O

Unique transaction number with TWINT (OrderUuid)

Plain

ans..50

O

A single value to be set by the merchant to return some information unencrypted in response/notify, e.g. the MID.

"Plain"-parameter is part of encrypted "Data" in Computop Paygate and therefore protected against manipulation.

Custom

ans..1024

O

"Custom"-parameter is added to the request data before encryption and is part of encrypted "Data" in Computop Paygate request. By this they are protected against manipulation by a consumer.

The Custom-value is added to the Computop Paygate response in plain text and the "|" is replaced by a "&". By this you can put a single value into Custom-parameter and get multiple key-value-pairs back in response for your own purpose.

Please find a sample here: Custom

Return parameters for URLSuccess, URLFailure and URLNotify with TWINT

Capture

If your Computop MID isn't configured for Sale operation, every initial TWINT payment (call to twint.aspx) should be confirmed using capture.aspx endpoint or canceled via reverse.aspx.

Captures (or confirmations in terms of TWINT) are possible via a Server-to-Server connection. To carry out a Capture via a Server-to-Server connection, please use the following URL:

https://www.computop-paygate.com/capture.aspx

Notice: For security reasons, Computop Paygate rejects all payment requests with formatting errors. Therefore, please use the correct data type for each parameter.

The following table describes the encrypted payment request parameters:

KeyFormatCNDDescription

MerchantID

ans..30

M

MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too.

PayID

an32

M

ID assigned by Paygate for the payment to be captured

TransID

ans..64

M

TransactionID provided by you which should be unique for each payment

MAC

an64

M

Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here:

Amount

n..10

M

Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit).

Currency

a3

M

Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table

ReqId

ans..32

O

To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action.

Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly.

Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate.

CompleteType

ans..3

O

Specifies whether only a partial amount is being confirmed and authorization should be kept open. If <YES> is transferred, the possible open order is closed on capture.

Parameters for captures with TWINT via socket connection

The following table describes the result parameters with which the Computop Paygate responds to your system

pls. be prepared to receive additional parameters at any time and do not check the order of parameters

the key (e.g. MerchantId, RefNr) should not be checked case-sentive

KeyFormatCNDDescription

mid

ans..30

M

MerchantID, assigned by Computop

PayID

an32

M

ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request.

XID

an32

M

ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate

TransID

ans..64

M

TransactionID provided by you which should be unique for each payment

Status

a..50

M

OK (URLSuccess) or FAILED (URLFailure)

Description

ans..1024

M

Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis!

Code

an8

M

Error code according to Paygate Response Codes (A4 Error codes)

Response parameters for captures with TWINT via socket connection

Reversal

Reversals are possible via a Server-to-Server connection. In order to cancel a payment via a server-to-server communication, please use the following URL:

https://www.computop-paygate.com/reverse.aspx

Notice: For security reasons, Computop Paygate rejects all payment requests with formatting errors. Therefore, please use the correct data type for each parameter.

The following table describes the encrypted payment request parameters:

KeyFormatCNDDescription

MerchantID

ans..30

M

MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too.

PayID

an32

M

ID assigned by Paygate for the payment to be reversed

TransID

ans..64

M

TransactionID provided by you which should be unique for each payment

Amount

n..10

M

Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit).

Currency

a3

M

Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table

MAC

an64

M

Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here:

UserData

ans..1024

O

If specified at request, Paygate forwards the parameter with the payment result to the shop.

ReqId

ans..32

O

To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action.

Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly.

Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate.

Parameters for reversals with TWINT via socket connection

The following table describes the result parameters with which the Computop Paygate responds to your system

pls. be prepared to receive additional parameters at any time and do not check the order of parameters

the key (e.g. MerchantId, RefNr) should not be checked case-sentive

KeyFormatCNDDescription

mid

ans..30

M

MerchantID, assigned by Computop

PayID

an32

M

ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request.

XID

an32

M

ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate

TransID

ans..64

M

TransactionID provided by you which should be unique for each payment

Status

a..50

M

OK (URLSuccess) or FAILED (URLFailure)

Description

ans..1024

M

Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis!

Code

an8

M

Error code according to Paygate Response Codes (A4 Error codes)

Response parameters for reversals with TWINT via socket connection

Credit with reference

Credits (refunds) are possible via a Server-to-Server connection. For a Credit with reference to a capture the amount of the Credit is limited to the amount of the previous capture. To carry out a credit with a reference transaction, please use the following URL:

https://www.computop-paygate.com/credit.aspx

Notice: Please note that TWINT limits refunds in the production environment as well as on the test system – production mode: 180 days / test mode: 7 days.

Notice: For security reasons, Computop Paygate rejects all payment requests with formatting errors. Therefore, please use the correct data type for each parameter.

The following table describes the encrypted payment request parameters:

KeyFormatCNDDescription

MerchantID

ans..30

M

MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too.

PayID

an32

M

ID assigned by Paygate for the payment to be credited

TransID

ans..64

M

TransactionID provided by you which should be unique for each payment

Amount

n..10

M

Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit).

Currency

a3

M

Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table

MAC

an64

M

Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here:

RefNr

ans..40

O

Merchant’s unique reference number. Only characters are allowed.

UserData

ans..1024

O

If specified at request, Paygate forwards the parameter with the payment result to the shop.

ReqId

ans..32

O

To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action.

Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly.

Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate.

Parameters for credit payments with TWINT via socket connection

The following table describes the result parameters with which the Computop Paygate responds to your system

pls. be prepared to receive additional parameters at any time and do not check the order of parameters

the key (e.g. MerchantId, RefNr) should not be checked case-sentive

KeyFormatCNDDescription

mid

ans..30

M

MerchantID, assigned by Computop

PayID

an32

M

ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request.

XID

an32

M

ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate

TransID

ans..64

M

TransactionID provided by you which should be unique for each payment

Status

a..50

M

OK (URLSuccess) or FAILED (URLFailure)

Description

ans..1024

M

Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis!

Code

an8

M

Error code according to Paygate Response Codes (A4 Error codes)

UserData

ans..1024

O

If specified at request, Paygate forwards the parameter with the payment result to the shop.

RefNr

ans..40

O

Merchant’s unique reference number. Only characters are allowed.

Response parameters for credit payments with TWINT via socket connection

Batch processing via the interface

Basic information about using Batch files and about their structure can be found in the Batch Manager manual. Within batch processing not alle functions are available which are usually available for the online interface.

This section describes the parameters which must be transferred within the data set (Record) for executing a Twint payment and information can be found within the response file about the payment status.

For Batch calls there must be considered batch versions, from which optional parameters depend. All version designations starting with „2.“ pertain calls for a group of enterprises. That means within a batch file for a particular MerchantID can be transferred transactions for other merchants with a separate Sub-MID

Following table gives an overview of all batch versions that are possible for a specific action an their specialities:

Action

Version

Description

Credit

1.0 / 2.0

Standard version without return of parameter Code

1.x / 2.x

with RefNr (valid for all versions other than 1.0)

Description of the possible batch versions

The structure for a Twint payment within a Batch file to be submitted is as follows:

1
HEAD,<MerchantID>,<Date>,<Version>
2
Twint,Capture,<Amount>,<Currency>,<TransID>,(<RefNr>,)<PayID>
3
Twint,Credit,<Amount>,<Currency>,<TransID>,(<RefNr>,)<PayID>
4
Twint,Reverse,<Amount>,<Currency>,<TransID>,(<RefNr>,)<PayID>
5
FOOT,<CountRecords>,<SumAmount>

Example for Master MID function:

1
HEAD,[Master]MerchantID,Date,2.x
2
Type,Action,[Slave]MID,Amount,Currency,TransID,Data (depends on Action)
3
FOOT,CountRecords,SumAmount

The following table describes the individual fields and values used within the data set (record) in the batch file:

KeyFormatCNDDescription

Type

a..11

M

HEAD for Header, FOOT for Footer, Twint for Twint

Action

a..20

M

The parameter Action defines the type of transaction:

Capture

Credit

Reverse

Amount

n..10

M

Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit).

Currency

a3

M

Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table

TransID

ans..64

M

TransactionID provided by you which should be unique for each payment

RefNr

ans..40

O

Merchant’s unique reference number. Only characters are allowed.

PayID

an32

M

ID assigned by Paygate for this transaction

Description of fields within the record for Batch files

The record area within the response file for Batch transactions looks as follows:

1
HEAD,<MerchantID>,<Date>,<Version>
2
Twint,Capture,<Amount>,<Currency>,<TransID>,(<RefNr>,)<PayID>,<Status>,<Code>
3
Twint,Credit,<Amount>,<Currency>,<TransID>,(<RefNr>,)<PayID>,<Status>,<Code>
4
Twint,Reverse,<Amount>,<Currency>,<TransID>,(<RefNr>,)<PayID>,<Status>,<Code>
5
FOOT,<CountRecords>,<SumAmount>

The following table describes the response parameters which the Batch Manager saves in the Record area for each transaction (standard parameters not explained here, such as <TransID> or <RefNR> and request parameters are returned unchanged and correspond to the call as specified before):

KeyFormatCNDDescription

Action

a..20

M

The parameter Action defines the type of transaction:

Capture

Credit

Reverse

PayID

an32

M

ID assigned by Paygate for this transaction

Status

a..50

M

OK (URLSuccess) or FAILED (URLFailure)

Code

an8

M

Error code according to Paygate Response Codes (A4 Error codes)

Description of result parameters within the record for Batch files

Paygate

Documentation (EN)

Dokumentation (DE)

Paygate Status