Skip to main content
Partner logo
Twint
With TWINT, you can make convenient and secure payments with your smartphone – at the cash register in a supermarket, in an online shop, when shopping at a farm shop, on public transport, when parking, or when transferring money to your friends. With more than four million registered users, TWINT is the leading payment app in Switzerland.
Source: https://www.twint.ch/en/company/about-us/

Features

Integration type

Redirection
Tokenization

No

Payment Flow

1-step payment flow : Capture (direct debit)
2-step payment flow : Authorization + Capture
3-step payment flow : Pending Authorization + Authorization + Capture (asynchrone workflow)

How to test?

info

Datatrans offers payment methods for Switzerland customers. Your Create Session call must be in CHF currency and contains an order.customer node valued with Switzerland customer data. You can download Twint test application by following these links: IOS | Android

Data Mapping & Mandatory Fields

Below is the mapping between your Create Session request and the fields expected by this payment method.

Purse Session fieldMandatory
amountYes
order.redirectionYes
order.referenceYes
order.currency_codeYes
customer.referenceNo
customer.type_codeNo
customer.company_nameNo
customer.gender_codeNo
customer.first_nameNo
customer.last_nameNo
customer.birthdateNo
customer.ipNo
customer.locale_codeNo
customer.billing_address.gender_codeNo
customer.billing_address.first_nameNo
customer.billing_address.middle_nameNo
customer.billing_address.last_nameNo
customer.billing_address.address_linesNo
customer.billing_address.cityNo
customer.billing_address.postal_codeNo
customer.billing_address.country_codeNo
customer.billing_address.province_codeNo
customer.billing_address.emailNo
customer.billing_address.phoneNo
customer.billing_address.mobile_phoneNo
shipments.amountNo
shipments.tax_amountNo
shipments.shipping_address.gender_codeNo
shipments.shipping_address.first_nameNo
shipments.shipping_address.middle_nameNo
shipments.shipping_address.last_nameNo
shipments.shipping_address.address_linesNo
shipments.shipping_address.cityNo
shipments.shipping_address.postal_codeNo
shipments.shipping_address.country_codeNo
shipments.shipping_address.province_codeNo
shipments.shipping_address.emailNo
shipments.shipping_address.phoneNo
shipments.shipping_address.mobile_phoneNo
shipments.item_lines.type_codeNo
shipments.item_lines.sku_referenceNo
shipments.item_lines.nameNo
shipments.item_lines.priceNo
shipments.item_lines.quantityNo
shipments.item_lines.amountNo
shipments.item_lines.tax_lines.rateNo
shipments.item_lines.tax_lines.amountNo

Payment Labels

LabelMethodPayment type
datatranstwintprimary (mobile wallet)

Actions

ActionMandatory fieldsOptional fields
INIT
reference
Test-1234
currency_code
CHF
success
https://merchant.example.url/success
failure
https://merchant.example.url/failure
amount
1000
APPLY
reference
Test-1234
currency_code
CHF
success
https://merchant.example.url/success
failure
https://merchant.example.url/failure
amount
1000

Status

PSP statusStateCodeDescription
SUCCESSSUCCESSSUCCEEDEDSuccessful operation
WAITINGWAITINGWAITING_PARTNER_RESPONSEWaiting for transaction to be transmitted
ERRORERRORBAD_REQUESTFailed operation
SESSION_DATA_NOT_OKSUCCESSBAD_REQUESTSession data doesn't meet the partner's requirements
UNKNOWN_ERRORERRORFAILEDUnknown error
ABORTEDERRORABORTED_BY_CUSTOMERCustomer has aborted the payment
initializedSUCCESSSUCCEEDEDTransaction was initialized. A transaction is initialized after a successful init request.
challenge_requiredERRORBAD_REQUESTChallenge required.
challenge_ongoingERRORBAD_REQUESTChallenge ongoing.
authorizedSUCCESSSUCCEEDEDTransaction was authorized. A transaction is authorized after client payed using the redirect url.
settledWAITINGWAITING_PARTNER_RESPONSETransaction was settled partially or fully.
canceledSUCCESSSUCCEEDEDTransaction was canceled by the user or automatically by the system after a time out occurred on datatrans payment forms
transmittedSUCCESSSUCCEEDEDTransaction was transmitted to the acquirer for processing. This is automatically set by datatrans system
failedERRORFAILEDTransaction failed.
UNAUTHORIZEDERRORBAD_REQUESTUnauthorized error
INVALID_JSON_PAYLOADERRORBAD_REQUESTInvalid json payload
UNRECOGNIZED_PROPERTYERRORBAD_REQUESTUnrecognized property
INVALID_PROPERTYERRORBAD_REQUESTInvalid property
CLIENT_ERRORERRORBAD_REQUESTClient error
SERVER_ERRORERRORBAD_REQUESTServer error
INVALID_TRANSACTION_STATUSERRORBAD_REQUESTInvalid transaction status
TRANSACTION_NOT_FOUNDERRORBAD_REQUESTTransaction not found
EXPIRED_CARDERRORBAD_REQUESTExpired card
INVALID_CARDERRORBAD_REQUESTInvalid card
BLOCKED_CARDERRORBAD_REQUESTBlocked card
UNSUPPORTED_CARDERRORBAD_REQUESTUnsupported card
INVALID_ALIASERRORBAD_REQUESTInvalid alias
INVALID_CVVERRORBAD_REQUESTInvalid cvv
DUPLICATE_REFNOERRORBAD_REQUESTDuplicate Refno
DECLINEDERRORBAD_REQUESTDeclined
SOFT_DECLINEDERRORBAD_REQUESTSoft declined
INVALID_HEADERERRORBAD_REQUESTInvalid header
INVALID_SIGNERRORBAD_REQUESTInvalid sign
BLOCKED_BY_VELOCITY_CHECKERERRORBAD_REQUESTBlocked by velocity checker
THIRD_PARTY_ERRORERRORBAD_REQUESTThird party error
REFERRALERRORBAD_REQUESTReferral
INVALID_SETUPERRORBAD_REQUESTInvalid setup