Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
girocheckout:creditcard:start [2017/04/04 15:30] michaelheumann |
girocheckout:creditcard:start [2023/05/07 08:48] michaelheumann |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
~~NOCACHE~~ | ~~NOCACHE~~ | ||
====== Kreditkarte ====== | ====== Kreditkarte ====== | ||
- | Informationen | + | |
+ | ==== Hinweis | ||
+ | |||
+ | Seit dem 01.01.2021 ist das neue Sicherheitsverfahren für Kreditkartenzahlungen "3D Secure 2.0", das im Zuge von PSD2 eingeführt wurde, für alle Zahlungsanbieter Pflicht. Die vorliegende API-Beschreibung enthält die hierfür notwendigen Felder (beginnend mit " | ||
+ | |||
+ | <WRAP center round info 70%> | ||
+ | Die Parameter bzgl. 3-D Secure 2.0 können sich aufgrund von Änderungen der EMVCo 3-D Secure-Spezifikation ändern. | ||
+ | </ | ||
===== Testdaten ===== | ===== Testdaten ===== | ||
{{page> | {{page> | ||
+ | |||
===== Transaktionstypen ===== | ===== Transaktionstypen ===== | ||
Zeile 114: | Zeile 122: | ||
|merchantId | |merchantId | ||
|projectId | |projectId | ||
- | |merchantTxId | + | |merchantTxId |
|amount | |amount | ||
|currency | |currency | ||
- | |purpose | + | |purpose |
|type | |type | ||
|locale | |locale | ||
Zeile 123: | Zeile 131: | ||
|pkn |Optional |String(50) | |pkn |Optional |String(50) | ||
|recurring | |recurring | ||
- | |urlRedirect | + | |urlRedirect |
- | |urlNotify | + | |urlNotify |
- | |hash | + | |tds2Address |Optional |String(50) | Für 3D Secure 2.0: Hauptadresszeile (i.d.R. Straße+Hausnummer) der Rechnungsadresse des Karteninhabers, |
+ | |tds2Postcode |Optional |String(10) | Für 3D Secure 2.0: Postleitzahl der Rechnungsadresse des Karteninhabers, | ||
+ | |tds2City |Optional |String(50) | Für 3D Secure 2.0: Ort der Rechnungsadresse des Karteninhabers, | ||
+ | |tds2Country |Optional |String(2) | Für 3D Secure 2.0: Land der Rechnungsadresse des Karteninhabers, | ||
+ | |tds2Optional |Optional |JSON-String | Für 3D Secure 2.0: JSON-String, | ||
+ | |kassenzeichen | ||
+ | |hash | ||
- | == Beispiel == | + | === 3D Secure 2.0 Optionale Felder (tds2Optional) === |
+ | Hierbei handelt es sich um ein JSON-formatiertes Objekt, das hierarchisch aufgebaut ist (2 Ebenen) und die folgenden Unterobjekte enthält: | ||
+ | |||
+ | * billingAddress (Rechnungsadresse) | ||
+ | * shippingddress (Lieferadresse) | ||
+ | * homePhoneNumber (Telefon zuhause) | ||
+ | * mobilePhoneNumber (Telefon mobil) | ||
+ | * workPhoneNumber (Telefon Arbeit) | ||
+ | * cardholderAccountInfo (Konteninformationen Karteninhaber) | ||
+ | * tdsMerchantRiskIndicators (Risikoindikatoren des Händlers) | ||
+ | * tdsRequestorAuthenticationInformation (Authentifizierungsinformationen des Anfragenden) | ||
+ | * tdsTransactionAttributes (Transaktionsattribute) | ||
+ | |||
+ | Insgesamt gibt es folgende Feldern (alle optional, Felder in Unterobjekten sind mit [Unterobjektname].[Feld] dargestellt): | ||
+ | |||
+ | ^Name | ||
+ | |email |String(254) | E-Mail-Adresse des Karteninhabers, | ||
+ | |addressesMatch |Boolean | ||
+ | ^**// | ||
+ | |billingAddress.line2 |String(50) | Zeile 2 der Rechnungsadresse. Format A-Z, a-z, 0-9, Blank, [-/ | ||
+ | |billingAddress.line3 |String(50) | Zeile 3 der Rechnungsadresse. Format A-Z, a-z, 0-9, Blank, [-/ | ||
+ | |billingAddress.state |String(3) | Bundesland der Rechnungsadresse o.ä. Format A-Z, max. 3, Kürzel gemäß ISO 3166-2 | | ||
+ | ^**// | ||
+ | |shippingAddress.line1 |String(50) | Zeile 1 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/ | ||
+ | |shippingAddress.line2 |String(50) | Zeile 2 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/ | ||
+ | |shippingAddress.line3 |String(50) | Zeile 3 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/ | ||
+ | |shippingAddress.postcode |String(10) |Postleitzahl der Lieferadresse, | ||
+ | |shippingAddress.city |String(50) | Ort der Lieferadresse, | ||
+ | |shippingAddress.state |String(50) | Bundesland der Lieferadresse o.ä. Format A-Z, max. 3, Kürzel gemäß ISO 3166-2 | | ||
+ | |shippingAddress.country |String(2) | Land der Lieferadresse, | ||
+ | ^**// | ||
+ | |homePhoneNumber.country |Integer | Ländervorwahl der Heim-Telefonnummer, | ||
+ | |homePhoneNumber.regional |String(15) | Rest der der Heim-Telefonnummer, | ||
+ | ^**// | ||
+ | |mobilePhoneNumber.country |Integer | Ländervorwahl der Mobil-Telefonnummer, | ||
+ | |mobilePhoneNumber.regional |String(15) | Rest der der Mobil-Telefonnummer, | ||
+ | ^**// | ||
+ | |workPhoneNumber.country |Integer | Ländervorwahl der Arbeits-Telefonnummer, | ||
+ | |workPhoneNumber.regional |String(15) | Rest der der Arbeits-Telefonnummer, | ||
+ | ^**// | ||
+ | |cardholderAccountInfo.accountAgeIndicator |String(12) | Alter des Kundenkontos. Mögliche Werte: " | ||
+ | |cardholderAccountInfo.passwordChangeIndicator |String(12) | Gibt an, wann das Passwort des Kundenkontos zuletzt geändert oder zurückgesetzt wurde. Mögliche Werte: " | ||
+ | |cardholderAccountInfo.paymentAccountAgeIndicator |String(12) | Gibt an, wann das Zahlungskonto des Kunden angelegt wurde. Mögliche Werte: " | ||
+ | |cardholderAccountInfo.accountChange |String(12) | Gibt an, wann das Kundenkonto im Shop zuletzt geändert wurde, z.B. Adressänderung oder neue Zahlungsdaten. Mögliche Werte: " | ||
+ | |cardholderAccountInfo.shippingAddressAgeIndicator |String(12) | Gibt an, wann der Kunde die aktuelle Lieferadresse zum ersten Mal benutzt hat. Mögliche Werte: " | ||
+ | |cardholderAccountInfo.shippingNameIndicator |String(9) | Gibt an, ob der Name des Karteninhabers und der Name der Lieferadresse identisch sind. Mögliche Werte: " | ||
+ | |cardholderAccountInfo.suspiciousAccountActivity |Boolean | Gibt an, ob für diesen Kunden verdächtige Aktivitäten beobachtet wurden. Mögliche Werte: " | ||
+ | |cardholderAccountInfo.provisioningDayCount |Integer | Anzahl der "Karte hinzufügen" | ||
+ | ^**// | ||
+ | |tdsMerchantRiskIndicators.deliveryTimeframe |String(14) | Zeitraum, in dem die Ware an den Kunden geliefert wird. Mögliche Werte: " | ||
+ | |tdsMerchantRiskIndicators.deliveryEmailAddress |String(245) | Liefer-E-Mail-Adresse des Kunden im Fall einer elektronischen Lieferung. Format A-Z, a-z, 0-9, [_.+-@], max. 254. | | ||
+ | |tdsMerchantRiskIndicators.giftCardAmount |Integer | Betrag der Geschenkkarte in größter Währungseinheit, | ||
+ | |tdsMerchantRiskIndicators.giftCardCount |Integer | Anzahl der gekauften Geschenkkarten. Format 0-9, max. 2. | | ||
+ | |tdsMerchantRiskIndicators.giftCardCurrency |Integer | Währungscode der Geschenkkarte gemäß ISO 4217. Format A-Z, max. 3. | | ||
+ | |tdsMerchantRiskIndicators.preOrderDate |Date | Im Fall einer Vorbestellung: | ||
+ | |tdsMerchantRiskIndicators.preOrderPurchaseIndicator |String(9) | Mögliche Werte: " | ||
+ | |tdsMerchantRiskIndicators.reorderItemsIndicator |String(9) | Gibt an, ob der Kunde Artikel bereits zuvor bestellt hat. Mögliche Werte: " | ||
+ | |tdsMerchantRiskIndicators.shippingIndicator |String(16) | Gibt an, wohin die Ware geliefert wird. Mögliche Werte: " | ||
+ | ^**// | ||
+ | |tdsRequestorAuthenticationInformation.authenticationData |String(2048) | Authentifizierungsdaten des Kunden. Format A-Z, a-z, 0-9 [!"# | ||
+ | |tdsRequestorAuthenticationInformation.authenticationTimestamp |DateTime | Datum und Uhrzeit, wann sich der Kunde im Shop authentifiziert hat. Format JJJJ-MM-TTTHH: | ||
+ | |tdsRequestorAuthenticationInformation.authenticationMethod |String(17) | Gibt an, wie sich der Kunde in Ihrem Shop authentifiziert hat. Mögliche Werte: " | ||
+ | ^**// | ||
+ | |tdsTransactionAttributes.purchaseInstalmentData |Integer | Maximal erlaubte Anzahl von Autorisierungen bei Ratenzahlungen. Format 0-9, max. 3, Wert muss > 1 sein. | | ||
+ | |tdsTransactionAttributes.recurringExpiry |Date | Datum, nach dem keine weiteren Autorisierungen mehr stattfinden sollen. Format JJJJ-MM-TT. | | ||
+ | |tdsTransactionAttributes.recurringFrequency |Integer | Minimale Anzahl von Tagen zwischen zwei Autorisierungen. Format 0-9, max. 4. | | ||
+ | |tdsTransactionAttributes.type |String(17) | Art der 3-D Secure 2.0 Zahlung. Mögliche Werte: " | ||
+ | |||
+ | == Beispiel | ||
+ | < | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === Beispiel einer Transaktionsinitialisierung === | ||
{{page> | {{page> | ||
Zeile 136: | Zeile 283: | ||
^Name | ^Name | ||
|rc | |rc | ||
- | |msg |Ja | + | |msg |Ja |
- | |reference | + | |reference |
- | |redirect | + | |redirect |
^HEADER Parameter^^^^ | ^HEADER Parameter^^^^ | ||
- | |hash | + | |hash |
== Beispiel im Erfolgsfall == | == Beispiel im Erfolgsfall == | ||
Zeile 162: | Zeile 309: | ||
=== GET Parameter === | === GET Parameter === | ||
^Name | ^Name | ||
- | |gcReference | + | |gcReference |
- | |gcMerchantTxId | + | |gcMerchantTxId |
- | |gcBackendTxId | + | |gcBackendTxId |
|gcAmount | |gcAmount | ||
- | |gcCurrency | + | |gcCurrency |
|gcResultPayment | |gcResultPayment | ||
- | |gcHash | + | |gcHash |
=== Antwort === | === Antwort === | ||
Zeile 188: | Zeile 335: | ||
== GET Parameter == | == GET Parameter == | ||
^Name | ^Name | ||
- | |gcReference | + | |gcReference |
- | |gcMerchantTxId | + | |gcMerchantTxId |
- | |gcBackendTxId | + | |gcBackendTxId |
|gcAmount | |gcAmount | ||
- | |gcCurrency | + | |gcCurrency |
|gcResultPayment | |gcResultPayment | ||
- | |gcHash | + | |gcHash |
Zeile 227: | Zeile 374: | ||
- Shop bekommt Rückmeldung über Transaktionsausgang ([[girocheckout: | - Shop bekommt Rückmeldung über Transaktionsausgang ([[girocheckout: | ||
- | ==== Buchung (CAPTURE) und Erstattung (REFUND) ==== | + | ==== Buchung (CAPTURE) ==== |
{{page> | {{page> | ||
+ | ==== Erstattung (REFUND) ==== | ||
{{page> | {{page> | ||
Zeile 239: | Zeile 387: | ||
|merchantId | |merchantId | ||
|projectId | |projectId | ||
- | |merchantTxId | + | |merchantTxId |
|amount | |amount | ||
|currency | |currency | ||
- | |reference | + | |purpose |
- | |hash | + | |reference |
+ | |kassenzeichen | ||
+ | |hash | ||
== Beispiel == | == Beispiel == | ||
Zeile 254: | Zeile 404: | ||
^Name | ^Name | ||
|rc | |rc | ||
- | |msg |Ja | + | |msg |Ja |
- | |reference | + | |reference |
- | |referenceParent | + | |referenceParent |
- | |merchantTxId | + | |merchantTxId |
- | |backendTxId | + | |backendTxId |
|amount | |amount | ||
- | |currency | + | |currency |
|resultPayment | |resultPayment | ||
- | |hash | + | |hash |
== Beispiel im Erfolgsfall == | == Beispiel im Erfolgsfall == | ||
Zeile 279: | Zeile 429: | ||
|merchantId | |merchantId | ||
|projectId | |projectId | ||
- | |merchantTxId | + | |merchantTxId |
- | |reference | + | |reference |
- | |hash | + | |hash |
== Beispiel == | == Beispiel == | ||
Zeile 292: | Zeile 442: | ||
^Name | ^Name | ||
|rc | |rc | ||
- | |msg |Ja | + | |msg |Ja |
- | |reference | + | |reference |
- | |referenceParent | + | |referenceParent |
- | |merchantTxId | + | |merchantTxId |
- | |backendTxId | + | |backendTxId |
|amount | |amount | ||
- | |currency | + | |currency |
|resultPayment | |resultPayment | ||
- | |hash | + | |hash |
== Beispiel im Erfolgsfall == | == Beispiel im Erfolgsfall == | ||
Zeile 337: | Zeile 487: | ||
^Name | ^Name | ||
|rc | |rc | ||
- | |msg |Ja | + | |msg |Ja |
- | |pkn |Ja | + | |pkn |Ja |
- | |cardnumber | + | |cardnumber |
- | |expiremonth | + | |expiremonth |
- | |expireyear | + | |expireyear |
^HEADER Parameter^^^^ | ^HEADER Parameter^^^^ | ||
- | |hash | + | |hash |
== Beispiel im Erfolgsfall == | == Beispiel im Erfolgsfall == | ||
Zeile 372: | Zeile 522: | ||
|merchantId | |merchantId | ||
|projectId | |projectId | ||
- | |merchantTxId | + | |merchantTxId |
|amount | |amount | ||
|currency | |currency | ||
- | |purpose | + | |purpose |
- | |type | + | |type |
- | |pkn |Optional |String(50) | + | |pkn |Optional |String(50) |
|recurring | |recurring | ||
- | |urlNotify | + | |urlNotify |
- | |hash | + | |kassenzeichen |
+ | |hash | ||
== Beispiel == | == Beispiel == | ||
Zeile 391: | Zeile 542: | ||
^Name | ^Name | ||
|rc | |rc | ||
- | |msg |Ja | + | |msg |Ja |
- | |reference | + | |reference |
- | |backendTxId | + | |backendTxId |
|resultPayment | |resultPayment | ||
^HEADER Parameter^^^^ | ^HEADER Parameter^^^^ | ||
- | |hash | + | |hash |
== Beispiel im Erfolgsfall == | == Beispiel im Erfolgsfall == | ||
Zeile 403: | Zeile 554: | ||
== Beispiel im Fehlerfall == | == Beispiel im Fehlerfall == | ||
{{page> | {{page> | ||
+ | |||
+ | |||
+ | ===== Senderinformationen abrufen ===== | ||
+ | Mit dieser Funktion können die Senderinformationen einer erfolgreich durchgeführten Transaktion abgerufen werden. Anhand der angegebenen Referenz wird Kontoinhaber, | ||
+ | |||
+ | === API-Aufruf === | ||
+ | **URL:** https:// | ||
+ | **Bereitzustellen von:** GiroCheckout \\ | ||
+ | **Aufzurufen von:** Händler | ||
+ | |||
+ | == POST-Parameter == | ||
+ | ^Name | ||
+ | |merchantId | ||
+ | |projectId | ||
+ | |reference | ||
+ | |hash | ||
+ | |||
+ | == Beispiel == | ||
+ | {{page> | ||
+ | |||
+ | === Antwort === | ||
+ | Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode. Wird **rc = 0** zurückgeliefert, | ||
+ | |||
+ | == JSON-Parameter == | ||
+ | ^Name | ||
+ | |rc | ||
+ | |msg |Ja | ||
+ | |accountholder | ||
+ | |pan |Optional |String(50) | ||
+ | |expdate | ||
+ | |brand | ||
+ | ^HEADER Parameter^^^^ | ||
+ | |hash | ||
+ | |||
+ | == Beispiel im Erfolgsfall == | ||
+ | {{page> | ||
+ | |||
+ | == Beispiel im Fehlerfall == | ||
+ | {{page> | ||