TWINT
1.1 Allgemeine Informationen über TWINT
1.4 Diagramm zum Prozessablauf
2 1cs Online Bezahlsystem Schnittstelle
1. Über TWINT
1.1 Allgemeine Informationen über TWINT
TWINT ist die führende und eine der beliebtesten Bezahl-Apps der Schweiz. 97 Prozent der Schweizer Bevölkerung kennen TWINT und die Hälfte der Schweizer Bevölkerung nutzt es regelmäßig. Neunzig Prozent aller Bankkontoinhaber in der Schweiz können ihr Konto direkt mit der TWINT-App verbinden.
Bitte beachten Sie: Damit ein Händler einen TWINT-Account erhält, muss dieser einen Schweizer Firmensitz vorweisen können.

| Info | Typ |
| Bezahlen Sie einfach und absolut sicher mit der TWINT Wallet-Lösung mit der führenden Bezahl-App in der Schweiz. Sie müssen lediglich einen QR-Code scannen und Ihre Identität mit Ihrem Smartphone bestätigen. | Zahlungen per Wallet |
Weitere Informationen finden Sie auch auf der Webseite von TWINT (https://www.twint.ch/).
1.2 Wie es funktioniert
Wenn sich ein Benutzer für die Bezahlung mit TWINT entscheidet und auf die entsprechende Zahlungsschaltfläche tippt, wird entweder ein QR-Code zum Scannen angezeigt (Web-Zahlung) oder die TWINT-App öffnet sich automatisch, um die Zahlung zu bestätigen (In-App-Zahlung oder im Browser auf dem Smartphone).
Unter folgendem Link finden Sie eine Übersicht, wie Sie online mit TWINT bezahlen können:
https://www.twint.ch/privatkunden/funktionen/onlineshop/?lang=de
1.3 Bevor Sie beginnen
Wenn Sie sich entschieden haben, TWINT zu unterstützen, müssen einige Schritte ausgeführt werden:
- Registrieren Sie Ihr Unternehmen bei TWINT unter: https://portal.twint.ch.
Wenn Sie einen Testhändler haben und TWINT-Transaktionen im Testmodus ausführen, können Sie Ihr Unternehmen auch auf der Integrationsumgebung von TWINT https://portal-int.twint.ch in gleicher Weise wie unten beschrieben registrieren und einen Shop einrichten.
- Legen Sie Ihren Online-Shop von der Homepage des TWINT-Portals aus an:

3. Wählen Sie im zweiten Schritt der Shop-Registrierung im Abschnitt „Integration“ die Option PSP (Payment Service Provider) und wählen Computop aus der Liste der Provider:

4. Nachdem der Shop angelegt wurde, geben Sie die UUID des Shops an den 1cs Support und bitten darum, die Zahlungsmethode TWINT zu aktivieren:

1.4 Diagramm zum Prozessablauf

1.5 Anwendungsfälle
| Unterstützte Anwendungsfälle | Unterstützte Schnittstellen | |||||||
|---|---|---|---|---|---|---|---|---|
| Anwendungsfall | Beschreibung | Einfacher Prozess | S-2-S | Formular | Batch | Analytics PayByLink | HPP | CTSF |
| Autorisierung + Buchung | Händler wollen eine Zahlung autorisieren und bei Lieferung buchen | – Händler muss die Buchung innerhalb von 7 Tagen nach der Autorisierung abschließen | ||||||
| Verkauf (Sale) | Händler möchten Geld vom Kunden einziehen | – Shop des Händlers startet eine Zahlungsanforderung – Kunde wird umgeleitet, um den QR-Code angezeigt zu bekommen – Kunde scannt QR-Code und bestätigt Zahlung – Der Shop des Händlers erhält eine Benachrichtigung über die erfolgreiche Zahlung | ||||||
| Voll- oder Teil-Gutschrift | Händler möchten einen Geldbetrag an den Kunden zurückerstatten, nachdem eine Zahlung erfolgreich abgeschlossen ist | – Händler startet eine Gutschriftsanfrage – Computop erfasst die Details der betreffenden Zahlung und veranlasst die Gutschrift – Der Shop des Händlers erhält eine Benachrichtigung über die erfolgreiche Gutschrift | ||||||
| Voll- oder Teil-Storno | Händler wollen eine nicht abgeschlossene Zahlung stornieren | – wird nur für Zahlungen unterstützt, die nicht abgeschlossen sind – für abgeschlossene Zahlungsvorgänge verwenden Sie stattdessen eine Gutschrift | ||||||
| CTSF | CTSF zur Abstimmung | – Download der Abrechnungsdatei vom Dienstanbieter – CTSF für Händler erstellen | demnächst | |||||
2. 1cs Online Bezahlsystem-Schnittstelle
2.1 Definitionen
Datenformate:
| Format | Beschreibung |
|---|---|
| a | alphabetisch |
| as | alphabetisch mit Sonderzeichen |
| n | numerisch |
| an | alphanumerisch |
| ans | alphanumerisch mit Sonderzeichen |
| ns | numerisch mit Sonderzeichen |
| bool | Bool’scher Ausdruck (true oder false) |
| 3 | feste Länge mit 3 Stellen/Zeichen |
| ..3 | variable Länge mit maximal 3 Stellen/Zeichen |
| enum | Aufzählung erlaubter Werte |
| dttm | ISODateTime (JJJJ-MM-TTThh:mm:ss) |
Abkürzungen:
| Abkürzung | Beschreibung | Kommentar |
|---|---|---|
| CND | Bedingung (condition) | |
| M | Pflicht (mandatory) | Wenn ein Parameter Pflicht ist, dann muss er vorhanden sein |
| O | optional | Wenn ein Parameter optional ist, dann kann er vorhanden sein, ist aber nicht erforderlich |
| C | bedingt (conditional) | Wenn ein Parameter bedingt ist, dann gibt es eine Bedingungsregel, die angibt, ob er Pflicht oder optional ist |

Hinweis: Bitte beachten Sie, dass die Bezeichnungen der Parameter in Groß- oder Kleinbuchstaben zurückgegeben werden können.
2.2 Zahlung mit TWINT über PPRO
Um mittels TWINT über PPRO eine Zahlung über ein 1cs Online Bezahlsystem-Formular abzuwickeln, verwenden Sie bitte folgende URL:
| https://www.computop-paygate.com/TWINTPP.aspx |

Hinweis: Aus Sicherheitsgründen lehnt das 1cs OBS alle Zahlungsanfragen mit Formatfehlern ab. Bitte übergeben Sie deshalb bei jedem Parameter den korrekten Datentyp.
Die folgende Tabelle beschreibt die verschlüsselten Übergabeparameter:
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| MerchantID | ans..30 | M | HändlerID, die von der First Cash Solution vergeben wird. Dieser Parameter ist zusätzlich auch unverschlüsselt zu übergeben. |
| TransID | ans..64 | M | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss |
| RefNr | ans..40 | O | Eindeutige Referenznummer des Händlers. Nur die Zeichen a-zA-Z0-9,-_ sind erlaubt. |
| Amount | n..10 | M | Betrag in der kleinsten Währungseinheit (z.B. EUR Cent). Bitte wenden Sie sich an den 1cs Support, wenn Sie Beträge < 100 (kleinste Währungseinheit) buchen möchten. |
| Currency | a3 | M | Währung, drei Zeichen DIN / ISO 4217, Nur CHF zulässig. Hier eine Übersicht: A1 Währungstabelle |
| MAC | an64 | M | Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier:HMAC-Authentisierung (Anfrage)HMAC-Authentisierung (Notify) |
| OrderDesc | ans..768 | M | Beschreibung der gelieferten Produkte, Dienstleistungen usw. |
| URLSuccess | ans..256 | M | Vollständige URL, die das Paygate aufruft, wenn die Zahlung erfolgreich war. Die URL darf nur über Port 443 aufgerufen werden. Diese URL darf keine Parameter enthalten: Um Parameter durchzureichen nutzen Sie stattdessen den Parameter UserData. Allgemeine Hinweise: Wir empfehlen, den Parameter „response=encrypt“ zu verwenden, um eine verschlüsselte Antwort von 1cs OBS zu erhalten. Betrüger könnten das verschlüsselte DATA-Element kopieren, welches an URLFailure gesendet wurde, und betrügerisch dasselbe DATA an URLSuccess senden. Überprüfen Sie daher unbedingt den „code“-Wert des DATA-Elements. Nur eine Antwort mit „code=00000000“ sollte als erfolgreich angesehen werden. |
| URLFailure | ans..256 | M | Vollständige URL, die das 1cs OBS aufruft, wenn die Zahlung gescheitert ist. Die URL darf nur über Port 443 aufgerufen werden. Diese URL darf keine Parameter enthalten: Um Parameter durchzureichen nutzen Sie stattdessen den Parameter UserData. Allgemeine Hinweise: Wir empfehlen, den Parameter „response=encrypt“ zu verwenden, um eine verschlüsselte Antwort vom 1cs OBS zu erhalten. Betrüger könnten das verschlüsselte DATA-Element kopieren, welches an URLFailure gesendet wurde, und betrügerisch dasselbe DATA an URLSuccess/URLNotify senden. Überprüfen Sie daher unbedingt den „code“-Wert des DATA-Elements. Nur eine Antwort mit „code=00000000“ sollte als erfolgreich angesehen werden. |
| Response | a7 | O | Die Status-Rückmeldung, die das 1cs OBS an URLSuccess und URLFailure sendet, sollte verschlüsselt werden. Dazu übergeben Sie den Parameter Response=encrypt. |
| URLNotify | ans..256 | M | Vollständige URL, die das 1cs OBS aufruft, um den Shop zu benachrichtigen. Die URL darf nur über Port 443 aufgerufen werden. Sie darf keine Parameter enthalten: Nutzen Sie stattdessen den Parameter UserData. Allgemeine Hinweise: Wir empfehlen, den Parameter „response=encrypt“ zu verwenden, um eine verschlüsselte Antwort vom 1cs OBS zu erhalten. Betrüger könnten das verschlüsselte DATA-Element kopieren, welches an URLFailure gesendet wurde, und betrügerisch dasselbe DATA an URLSuccess/URLNotify senden. Überprüfen Sie daher unbedingt den „code“-Wert des DATA-Elements. Nur eine Antwort mit „code=00000000“ sollte als erfolgreich angesehen werden |
| UserData | ans..1024 | O | Wenn beim Aufruf angegeben, übergibt das 1cs OBS die Parameter mit dem Zahlungsergebnis an den Shop. |
| ReqId | ans..32 | O | Um Doppelzahlungen (z.B. durch ETM) zu vermeiden, übergeben Sie einen alphanumerischen Wert, der Ihre Transaktion oder Aktion identifiziert und nur einmal vergeben werden darf. Falls die Transaktion oder Aktion mit derselben ReqID erneut eingereicht wird, führt das Computop Paygate keine Zahlung oder weitere Aktion aus, sondern gibt nur den Status der ursprünglichen Transaktion oder Aktion zurück. Bitte beachten Sie, dass das Computop Paygate für die erste initiale Aktion (Authentifizierung/Autorisierung) einen abgeschlossenen Transaktionsstatus haben muss. Dies gilt nicht für 3-D Secure Authentifizierungen, die durch einem Timeout beendet werden. Der Status 3-D Secure Timeout gilt nicht als abgeschlossener Status, bei dem ReqID-Funktionalität am Paygate nicht greift. Einreichungen mit identischer ReqID auf einen offenen Status werden regulär verarbeitet. Hinweis: Bitte beachten Sie, dass eine ReqID nur 12 Monate gültig ist, danach wird sie vom Paygate gelöscht. |
| SellingPoint | ans..50 | O | Verkaufsstelle |
| Service | ans..50 | O | Verkaufte Produkte oder Dienstleistungen |
| Channel | ans..64 | O | Konfigurationskanal des PPRO-Vertrags (Account und ContractID sind im System hinterlegt). Wenn vorhanden, überschreibt er den eventuell im System hinterlegten Channel. |
| AccOwner | ans..50 | M | Name des Kontoinhabers |
| Plain | ans..50 | O | Ein einzelner Wert, der von Ihnen gesetzt werden kann, um Informationen wieder unverschlüsselt in der Antwort bzw. im Notify zurückzugeben, z.B. die MID.Da der „Plain“-Parameter Teil des verschlüsselten „Data“ im 1cs OBS ist, ist dieser vor Manipulationen geschützt. |
| Custom | ans..1024 | O | Der „Custom“-Parameter wird vor der Verschlüsselung an den Aufruf angehängt und ist Teil des verschlüsselten „Data“ im 1cs OBS Aufruf. Dadurch ist der Wert gegen Manipulation geschützt. Der Custom-Wert wird dann in Klartext an die 1cs OBS-Antwort angehängt und dabei wird „|“ durch „&“ ersetzt. Dadurch können Sie einen Custom-Wert übergeben und bekommen mehrere Key-Value-Paare zu Ihrer eigenen Verwendung in der Antwort zurück. |
Die folgende Tabelle beschreibt die Ergebnis-Parameter, die das 1cs OBS an Ihre URLSuccess, URLFailure und URLNotify übergibt. Wenn Sie den Parameter Response=encrypt angegeben haben, werden die folgenden Parameter mit Blowfish verschlüsselt an Ihr System übergeben:

Hinweis: es können jederzeit neue Parameter hinzugefügt bzw. die Reihenfolge geändert werden

Hinweis: die Parameter (z.B. MerchantId, RefNr) sollten nicht auf Groß-/Kleinschreibung geprüft werden
| Parameter | Format | CND | Beschreibung |
| mid | ans..30 | M | HändlerID, die von der First Cash Solution vergeben wird. |
| PayID | an32 | M | Vom 1cs OBS vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request. |
| XID | an32 | M | Vom 1cs OBS vergebene ID für alle einzelnen Transaktionen (Autorisierung, Buchung, Gutschrift), die für eine Zahlung durchgeführt werden |
| TransID | ans..64 | M | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss |
| RefNr | ns..40 | C | Eindeutige Referenznummer des Händlers. Nur die Zeichen a-zA-Z0-9,-_ sind erlaubt. |
| Status | a…50 | M | OK oder AUTHORIZE_REQUEST (URLSuccess) sowie FAILED (URLFailure) |
| Description | ans..1024 | M | Nähere Beschreibung bei Ablehnung der Zahlung. Bitte nutzen Sie nicht den Parameter Description, sondern Code für die Auswertung des Transaktionsstatus! |
| Code | n8 | M | Fehlercode gemäß 1cs OBS Antwortcodes (Fehlercodes) |
| MAC | an64 | M | Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier:HMAC-Authentisierung (Anfrage)HMAC-Authentisierung (Notify) |
| UserData | ans..1024 | O | Wenn beim Aufruf angegeben, übergibt das 1cs Online Bezahlsystem die Parameter mit dem Zahlungsergebnis an den Shop |
| PaymentPurpose | ans..26 | O | Zahlungszweck |
| PaymentGuarantee | a..12 | C | NONE = Keine Zahlungsgarantie, VALIDATED = Kundenkonto valide, aber keine Zahlungsgarantie, FULL = Zahlungsgarantie Hinweis: Der Parameter wird nur zurückgegeben, falls der Status=OK ist. |
| ErrorText | ans..128 | C | Detaillierte PPRO Fehlermeldung. Hinweis: Wird nur bei Status=FAILED zurückgegeben. Nutzung nur in Abstimmung mit dem 1cs Support möglich. |
| TransactionID | an..20 | O | Eindeutige Transaktionsnummer bei PPRO |
| Plain | ans..50 | O | Ein einzelner Wert, der von Ihnen gesetzt werden kann, um Informationen wieder unverschlüsselt in der Antwort bzw. im Notify zurückzugeben, z.B. die MID. Da der „Plain“-Parameter Teil des verschlüsselten „Data“ im 1cs OBS ist, ist dieser vor Manipulationen geschützt. |
| Custom | ans.. 1024 | O | Der „Custom“-Parameter wird vor der Verschlüsselung an den Aufruf angehängt und ist Teil des verschlüsselten „Data“ im 1cs OBS Aufruf. Dadurch ist der Wert gegen Manipulation geschützt. Der Custom-Wert wird dann in Klartext an die 1cs OBS-Antwort angehängt und dabei wird „|“ durch „&“ ersetzt. Dadurch können Sie einen Custom-Wert übergeben und bekommen mehrere Key-Value-Paare zu Ihrer eigenen Verwendung in der Antwort zurück. |
2.3 Gutschrift mit Referenz
Gutschriften sind über eine Server-zu-Server-Kommunikation möglich. Bei einer Gutschrift mit Bezug auf eine Buchung ist die Höhe der Gutschrift auf die Höhe der vorangegangen Buchung beschränkt. Um eine Gutschrift (Credit) mit Referenztransaktion auszuführen, verwenden Sie bitte folgende URL:
https://www.computop-paygate.com/credit.aspx

Hinweis: Aus Sicherheitsgründen lehnt das 1cs OBS alle Zahlungsanfragen mit Formatfehlern ab. Bitte übergeben Sie deshalb bei jedem Parameter den korrekten Datentyp.
Die folgende Tabelle beschreibt die verschlüsselten Übergabeparameter:
| Parameter | Format | CND | Beschreibung |
| MerchantID | ans..30 | M | HändlerID, die von der First Cash Solution vergeben wird. Dieser Parameter ist zusätzlich auch unverschlüsselt zu übergeben. |
| PayID | an32 | M | Vom 1cs Online Bezahlsystem vergebene ID für die zu gutzuschreibende Zahlung |
| TransID | ans..64 | M | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss. |
| Amount | n..10 | M | Betrag in der kleinsten Währungseinheit (z.B. EUR Cent). Bitte wenden Sie sich an die First Cash Solution, wenn Sie Beträge < 100 (kleinste Währungseinheit) buchen möchten. |
| Currency | a3 | M | Währung, drei Zeichen DIN / ISO 4217. Nur CHF zulässig. Hier eine Übersicht: Währungstabelle |
| MAC | an64 | M | Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier:HMAC-Authentisierung (Anfrage)HMAC-Authentisierung (Notify) |
| ReqId | ans..32 | O | Um Doppelzahlungen (z.B. durch ETM) zu vermeiden, übergeben Sie einen alphanumerischen Wert, der Ihre Transaktion oder Aktion identifiziert und nur einmal vergeben werden darf. Falls die Transaktion oder Aktion mit derselben ReqID erneut eingereicht wird, führt das 1cs OBS keine Zahlung oder weitere Aktion aus, sondern gibt nur den Status der ursprünglichen Transaktion oder Aktion zurück. Bitte beachten Sie, dass das 1cs OBS für die erste initiale Aktion (Authentifizierung/Autorisierung) einen abgeschlossenen Transaktionsstatus haben muss. Dies gilt nicht für 3-D Secure Authentifizierungen, die durch einem Timeout beendet werden. Der Status 3-D Secure Timeout gilt nicht als abgeschlossener Status, bei dem ReqID-Funktionalität am 1cs OBS nicht greift. Einreichungen mit identischer ReqID auf einen offenen Status werden regulär verarbeitet. Hinweis: Bitte beachten Sie, dass eine ReqID nur 12 Monate gültig ist, danach wird sie vom 1cs OBS gelöscht. |
Die folgende Tabelle beschreibt die Ergebnis-Parameter, die das 1cs OBS an Ihre URLSuccess, URLFailure und URLNotify übergibt. Wenn Sie den Parameter Response=encrypt angegeben haben, werden die folgenden Parameter mit Blowfish verschlüsselt an Ihr System übergeben:

Hinweis: es können jederzeit neue Parameter hinzugefügt bzw. die Reihenfolge geändert werden

Hinweis: die Parameter (z.B. MerchantId, RefNr) sollten nicht auf Groß-/Kleinschreibung geprüft werden
| Parameter | Format | CND | Beschreibung |
| mid | ans..30 | M | HändlerID, die von der First Cash Solution vergeben wird |
| PayID | an32 | M | Vom 1cs Online Bezahlsystem vergebene ID für die Zahlung, z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request |
| XID | an32 | M | Vom 1cs Online Bezahlsystem vergebene ID für alle einzelnen Transaktionen (Autorisierung, Buchung, Gutschrift), die für eine Zahlung durchgeführt werden |
| TransID | ans..64 | M | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss. |
| Status | a..50 | M | OK (URLSuccess) oder FAILED (URLFailure) |
| Description | ans..1024 | M | Nähere Beschreibung bei Ablehnung der Zahlung. Bitte nutzen Sie nicht den Parameter Description sondern Code für die Auswertung des Transaktionsstatus! |
| Code | n8 | M | Fehlercode gemäß 1cs Online Bezahlsystem Antwort Codes (Fehlercodes) |
| ErrorText | ans.. 128 | C | Detaillierte PPRO Fehlermeldung. Hinweis: Wird nur bei Status=FAILED zurückgegeben. Nutzung nur in Abstimmung mit dem 1cs Support möglich. |
| RefNr | ans..40 | O | Eindeutige Referenznummer des Händlers. Nur die Zeichen a-zA-Z0-9,-_ sind erlaubt. |







