Benutzer-Werkzeuge

Webseiten-Werkzeuge


Übersetzungen dieser Seite:
girocheckout:paydirekt:start

Paydirekt

Informationen zu paydirekt sind unter https://www.girosolution.de/girocheckout zu finden.

Testdaten

Für die Anmeldung auf https://sandbox.paydirekt.de/checkout/#/checkout, um eine Testtransaktion zu autorisieren:

Benutzer Einschränkung Benutzername Passwort
Standard Käufer SDE-KaeuferSDE-Kaeufer2$
Alter - Käufer unter 18 Jahren unterAchtzehnunterAchtzehn2$
Käufer bei paydirekt gesperrt KaeuferGesperrtKaeuferGesperrt2$
Käufer bei der Käuferbank gesperrt SperreKBSperreKB2$

Man beachte folgende Testfälle:

  • Normale Zahlung (0,01 Euro < Betrag < 500 Euro), ausgenommen die u.a. Beträge
  • Zahlung wird nicht autorisiert (Betrag > 500 Euro)
  • Zahlungen mit Zwei-Faktor-Authentifizierung (Betrag 1 EUR=iTAN, 2 EUR=mTAN, 3 EUR=Phooto-TAN, 4 EUR=Chip-TAN oder 5 EUR=App-Bestätigung Euro), hierzu Hinweis weiter unten beachten.
  • Beträge 158,72 EUR - 99,77 EUR - 301,50 EUR - 300,50 EUR: Interne Testfälle von Paydirekt, bitte nicht verwenden!

2FA = Second Factor (Authentifizierung über zweiten Kanal)
Nicht alle der oben aufgeführten 2FA-Verfahren sind mit jedem Test-Account nutzbar und können zu Abbrüchen der Zahlung führen. Grundsätzlich gilt, dass sich aus diesen Test-Beträgen keine sinnvollen Testfälle für Händler ableiten lassen (da diese Prozesse rein auf paydirekt Seite ablaufen).

Transaktionstypen

Detaillierte Informationen zu den Transaktionstypen.

PlantUML Graph

Initialisierung einer Paydirekt Zahlung

Durch eine erfolgreiche Initialisierung wird eine Referenznummer erstellt sowie ein Weiterleitungslink (redirect) an den Händler übermittelt. Der übermittelte Link führt zum Bezahlformular. Der Kunde muss an diese URL weitergeleitet werden. Dies kann durch einen HTTP-Redirect-Header, eine HTML-Seite mit entsprechendem Meta-Tag oder Javascript erfolgen.

Bereitzustellen von: GiroCheckout
Aufzurufen von: Händler

Workflow

PlantUML Graph

  1. Käufer wählt Zahlart Paydirekt aus
  2. Shop initiiert Paydirekt Transaktion (Initialisierung)
  3. GiroCheckout initialisiert Transaktion bei Paydirekt
  4. Paydirekt übermittelt Ergebnis an GiroCheckout
  5. Shop bekommt Rückmeldung über Initialisierungsausgang (bei Fehler ist Transaktion beendet)
  6. Shop sendet Redirect URL an Kundenbrowser
  7. Kundenbrowser leitet zu Paydirekt weiter
  8. Paydirekt zeigt Zahlformular an
  9. Kunde autorisiert Transaktion
  10. Paydirekt führt Transaktion durch
  11. Paydirekt übermittelt Ergebnis an GiroCheckout
  12. GiroCheckout benachrichtigt Shop über Transaktionsausgang (Benachrichtigung)
  13. Shop verarbeitet Transaktionsausgang
  14. Shop sendet HTTP Statuscode an GiroCheckout
  15. GiroCheckout sendet Rücksprung zum Händler an Paydirekt
  16. Kunde klickt „Zurück zum Shop“ (Rücksprung)

Reservieren (AUTH)

Eine Reservierung ist zu verwenden, wenn die Erfüllung eines Auftrages zu einem späteren Zeitpunkt erfolgt, zum Zeitpunkt der Bestellung aber der Bestellwert für die vom Kunden vorgelegte Karte genehmigt werden soll (bei Kreditkarten-Transaktionen) bzw. die angegebene Bankverbindung geprüft werden soll (z.B. bei Paydirekt). Nach Ablauf dieses Zeitraumes wird die Reservierung entweder gebucht oder storniert.

  • initiale Transaktion

PlantUML Graph

Reservieren/Buchen (SALE)

Verkauf ist zu verwenden, wenn der Geschäftsvorgang abgeschlossen ist, also z. B. ein Warenkorb angeboten, bestellt und an den Kunden ausgeliefert wurde. Das Zahlungsmittel des Kunden wird in Höhe des Betrags belastet.

  • initiale Transaktion

PlantUML Graph

POST Parameter

URL: https://payment.girosolution.de/girocheckout/api/v2/transaction/start

Name Pflicht Type Beschreibung
AUTH SALE
merchantId Ja Ja Integer Händler-ID eines Paydirekt-Projekts
projectId Ja Ja Integer Projekt-ID eines Paydirekt-Projekts
merchantTxId Ja Ja String(255) eindeutige Transaktions-ID des Händlers
amount Ja Ja Integer Zwischen 1 und 5000000 (also min. 1 Cent, max. 50000 EUR). Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny
currency Ja Ja String(3) Währung der Transaktion, gemäß ISO 4217.
EUR = Euro
purpose Ja Ja String(37) Verwendungszweck der Transaktion. Diese Information erscheint auf der Abrechnung.
type Ja Optional String Transaktionsart (siehe Transaktionsarten)
SALE = Verkauf wird sofort gebucht (default)
AUTH = Reservierung des Betrags
shoppingCartType Optional Optional String Typ des Warenkorbs. Folgende Werte sind zulässig:
PHYSICAL = Alle Waren im Warenkorb sind physischer Natur (dies ist der Default-Wert, wenn der Parameter nicht angegeben wird),
DIGITAL = Alle Waren im Warenkorb sind digitaler Natur (benötigen also keinen Versand),
MIXED = Der Warenkorb enthält sowohl physische als auch digitale Waren,
ANONYMOUS_DONATION = Es handelt sich um eine anonyme Spende (keine Adressdaten notwendig),
AUTHORITIES_PAYMENT = Es handelt sich um eine Behördenzahlung (keine Adressdaten notwendig)
customerId Optional Optional String(20) Kundennummer, max. Länge: 20
shippingAmount Optional Optional Integer Versandkosten, zwischen 0 und 5000000 (also min. 0,00 EUR, max. 50000,00 EUR). Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny
shippingAddresseFirstName (s. Beschr.) (s. Beschr.) String Vorname des Addressaten, Pflicht bei Warenkorbtypen PHYSICAL, DIGITAL und MIXED, optional bei ANONYMOUS_DONATION und AUTHORITIES_PAYMENT.
shippingAddresseLastName (s. Beschr.) (s. Beschr.) String Nachname des Addressaten, Pflicht bei Warenkorbtypen PHYSICAL, DIGITAL und MIXED, optional bei ANONYMOUS_DONATION und AUTHORITIES_PAYMENT.
shippingCompany Optional Optional String Firmenname
shippingAdditionalAddressInformation Optional Optional String Addresszusatz
shippingStreet Optional Optional String Straße des Addressaten
shippingStreetNumber Optional Optional String Hausnummer des Addressaten
shippingZipCode (s. Beschr.) (s. Beschr.) String PLZ des Addressaten. Dies ist Pflicht bei Warenkörben der Typen PHYSICAL und MIXED, optional bei DIGITAL, ANONYMOUS_DONATION und AUTHORITIES_PAYMENT.
shippingCity (s. Beschr.) (s. Beschr.) String Ort des Addressaten. Dies ist Pflicht bei Warenkörben der Typen PHYSICAL und MIXED, optional bei DIGITAL, ANONYMOUS_DONATION und AUTHORITIES_PAYMENT.
shippingCountry (s. Beschr.) (s. Beschr.) String(2) Ländercode (ISO 3166-1). Dies ist Pflicht bei Warenkörben der Typen PHYSICAL und MIXED, optional bei DIGITAL, ANONYMOUS_DONATION und AUTHORITIES_PAYMENT.
shippingEmail (s. Beschr.) (s. Beschr.) String Email-Adresse des Käufers. Dies ist Pflicht bei digitalen Warenkörben (DIGITAL), bei allen anderen optional.
merchantReconciliationReferenceNumber Optional String(30) Zusatzinformation für die Zahlungszuordnung, die im Verwendungszweck angezeigt wird (nur bei type=SALE)
orderAmount Optional Optional Integer Betrag der Bestellung (ohne Versandkosten), zwischen 1 und 5000000 (also min. 1 Cent, max. 50000 EUR). Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny
orderId Ja Ja String(20) Bestellnummer, zulässige Zeichen: A-Z a-z 0-9 + ? / - : ( ) . , ' (KEINE Blanks), maximale Länge: 20
cart Optional Optional JSON String alle Elemente des Warenkorbs im folgenden Format: cart
invoiceId Optional Optional String(20) Rechnungsnummer, maximale Länge: 20
customerMail Optional Optional String E-Mail des Kunden
minimumAge Optional Optional Integer Mindestalter, das der Käufer erreicht haben muss
urlRedirect Ja Ja String URL, an die der Kunde nach der Zahlung weitergeleitet werden soll.
urlNotify Ja Ja String URL, an die der Zahlungsausgang gemeldet werden soll.
hash Ja Ja String HMAC MD5 Hash über alle Werte des Aufrufs. Siehe hash generieren
Beispiel
curl -d "merchantId=1234567" \
     -d "projectId=1234" \
     -d "merchantTxId=1234567890" \
     -d "amount=10000" \
     -d "currency=EUR" \
     -d "purpose=Beispieltransaktion" \
     -d "type=SALE" \
     -d "shoppingCartType=PHYSICAL" \
     -d "customerId=1234567" \
     -d "shippingAmount=500" \
     -d "shippingAddresseFirstName=Otto" \
     -d "shippingAddresseLastName=Mustermann" \
     -d "shippingZipCode=12345" \
     -d "shippingCity=Frankfurt" \
     -d "shippingCountry=DE" \
     -d "merchantReconciliationReferenceNumber=1234567890" \
     -d "orderAmount=9500" \
     -d "orderId=123456789" \
     -d 'cart=[{"name":"Bobbycar","ean":"800001303","quantity":1,"grossAmount":9500}]' \
     -d "invoiceId=9876543" \
     -d "urlRedirect=http://www.my-domain.de/girocheckout/redirect" \
     -d "urlNotify=http://www.my-domain.de/girocheckout/notify" \
     -d "hash=d74e7cb6e5bd4eeacc63ff3d5ab53af2" \
     https://payment.girosolution.de/girocheckout/api/v2/transaction/start

cart

JSON Array mit item Objekten

Name Pflicht Type Beschreibung
name Ja String Artikelname
ean Optional String Die Internationale Artikel Nummer (EAN bzw. GTIN)
quantity Ja Dezimal Menge des Artikels (Ganzzahl)
grossAmount Optional Integer Brutto- und Einzelbetrag des Artikels (also Preis pro Stück, bei mehreren), bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny
Beispiel
[ {
    "name" : "Bobbycar",
    "ean" : "800001303",
    "quantity" : 3,
    "grossAmount" : 2599
  }, {
    "name" : "Helm",
    "quantity" : 1,
    "grossAmount" : 1853
  } ]

Antwort

Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, wurde die Transaktion erfolgreich initialisiert. Sie bekommen als Antwort eine Transaktionsnummer und die redirectURL zur Paydirekt-Bezahlungsseite zurück.

Parameter

Name Pflicht Type Beschreibung
rc Ja Integer Fehlernummer
msg Ja String zusätzliche Informationen im Fehlerfall
reference Optional String eindeutige GiroCheckout Transaktions-ID
redirect Optional String Redirect URL zur Weiterleitung des Kunden an Paydirekt
HEADER Parameter
hash Ja String HMAC MD5 Hash über alle Werte der Rückmeldung. Siehe hash der Rückantwort
Beispiel im Erfolgsfall

hash : ad1e0df28e2797a39c05ca08be654ef2

{"reference":"dd724940-5e86-4072-8442-2c2ba2aebc79","redirect":"https://sandbox.paydirekt.de/checkout/#/checkout/016edd33-6181-4392-9dff-5ee80dfb119a","rc":"0","msg":""}
Beispiel im Fehlerfall

hash : f55ce87e132ebb7eb20004c6b186ce09

{"reference":null,"redirect":null,"rc":5030,"msg":"Betrag ungültig"}

Benachrichtigung über den Zahlungsausgang

Der Ausgang einer Zahlung wird an die im urlNotify Parameter angegebene URL übermittelt. Diese Rückmeldung dient dazu, dem Händler den Ausgang der Transaktion mitzuteilen. Durch diese Information kann der Transaktionsstatus beim Händler geändert werden.

Der Zahlungsausgang einer Transaktion steht im Feld gcResultPayment.

Anfrage

URL: notifyUrl aus der Transaktionsinitialisierung
Bereitzustellen von: Händler
Aufzurufen von: GiroCheckout

GET Parameter

Name Pflicht Type Beschreibung
gcReference Ja String GiroCheckout Transaktions-ID
gcMerchantTxId Ja String Händler Transaktions-ID
gcBackendTxId Ja String Zahlungsabwickler Transaktions-ID
gcAmount Ja Integer bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny
gcCurrency Ja String Währung
gcResultPayment Ja Integer Ergebniscodes der Zahlung
gcHash Ja String HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren

Antwort

Als Antwort auf den GET-Request wird einer der folgenden HTTP Statuscodes erwartet.

HTTP Statuscode Beschreibung
200 (OK) Die Benachrichtigung wurde korrekt verarbeitet.
400 (Bad Request) Der Händler hat die Benachrichtigung nicht verarbeitet, möchte aber auch nicht erneut benachrichtigt werden.
Alle anderen Die Benachrichtigung wird max. 10 Mal alle 30 Minuten wiederholt, bis der Händler den HTTP Statuscode 200 oder 400 zurückgibt.

Rückleitung des Kunden zum Händler

Nach Beendigung der Zahlung kann der Kunde über einen Link zurück zum Händler kommen. Eine Weiterleitung erfolgt erst, wenn der Käufer den „Abbrechen“ oder „Zurück zum Shop“ Button drückt. Diese Rückleitung erfolgt nicht automatisch.

Anfrage

URL: redirectUrl aus der Transaktionsinitialisierung
Bereitzustellen von: Händler
Aufzurufen von: GiroCheckout

GET Parameter
Name Pflicht Type Beschreibung
gcReference Ja String GiroCheckout Transaktions-ID
gcMerchantTxId Ja String Händler Transaktions-ID
gcBackendTxId Ja String Zahlungsabwickler Transaktions-ID
gcAmount Ja Integer bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny
gcCurrency Ja String Währung
gcResultPayment Ja Integer Ergebnis der Zahlung
gcHash Ja String HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren

Weitere Transaktionsarten

Diese Transaktionen verweisen (referenzieren) auf eine zuvor erfolgte Transaktion. Die Transaktion basiert auf einer Server-zu-Server-Kommunikation und erfordert keine Kundenaktion (Eingabe von Daten).

Bereitzustellen von: GiroCheckout
Aufzurufen von: Händler

Workflow

PlantUML Graph

  1. Shop sendet referenzierende Transaktion
  2. GiroCheckout leitet Transaktion zu Paydirekt
  3. Paydirekt übermittelt Ergebnis an GiroCheckout
  4. Shop bekommt Rückmeldung über Transaktionsausgang (Benachrichtigung)

Buchen (CAPTURE)

Beim Buchen (capture) wird das Kundenkonto mit einem Betrag belastet, die Gutschrift erfolgt auf das Händlerkonto. Dieses Modell unterstellt, dass der zugrundeliegende Geschäftsvorfall abgeschlossen ist, z.B. wurde ein Warenkorb angeboten, bestellt und an den Kunden ausgeliefert.

  • Bedingung: nur reservierte Transaktionen können gebucht werden
  • Betrag ⇐ Reservierungsbetrag
  • Buchung von Teilbeträgen möglich

PlantUML Graph

Erstattung (REFUND)

Eine Erstattung ist zu verwenden, wenn dem Kunden eine vorangegangene Zahlung komplett oder teilweise erstattet werden soll.

  • Bedingung: kann nur auf folgende Transaktionstypen angewendet werden:
    • Reservierung
    • Reservierung/Buchung
  • Betrag ⇐ Transaktionsbetrag der vormals gesendeten Transaktion

PlantUML Graph

POST Parameter

URL CAPTURE: https://payment.girosolution.de/girocheckout/api/v2/transaction/capture
URL REFUND: https://payment.girosolution.de/girocheckout/api/v2/transaction/refund

Name PflichtType Beschreibung
CAPTURE REFUND
merchantId Ja Ja Integer Händler-ID eines Paydirekt-Projekts
projectId Ja Ja Integer Projekt-ID eines Paydirekt-Projekts
merchantTxId Ja Ja String(255) Eindeutige Transaktions-ID des Händlers
amount Ja Ja Integer Betrag oder Teilbetrag, zwischen 1 und 5000000 (also min. 1 Cent, max. 50000 EUR), bei Refund zwischen 1 und 10000000 (max. 100000 EUR). Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny
currency Ja Ja String(3) Währung der Transaktion, gemäß ISO 4217.
EUR = Euro
purpose Ja Ja String(37) Verwendungszweck der Transaktion. Diese Information erscheint auf der Abrechnung.
reference Ja Ja String GiroCheckout Transaktions-ID der zugrundeliegenden AUTH-Transaktion.
merchantReconciliationReferenceNumber Optional Optional String(30) Zusatzinformation für die Zahlungszuordnung, die im Verwendungszweck angezeigt wird.
final Optional Boolean NUR CAPTURE. Letzter CAPTURE auf eine Reservierung. Danach kann auf die referenzierte Reservierung kein weiterer CAPTURE mehr erstellt werden.
hash Ja Ja String HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren
Beispiel
curl -d "merchantId=1234567" \
     -d "projectId=1234" \
     -d "merchantTxId=1234567890" \
     -d "amount=10000" \
     -d "currency=EUR" \
     -d "purpose=Beispiel-Capture" \
     -d "reference=dd724940-5e86-4072-8442-2c2ba2aebc79" \
     -d "final=true" \
     -d "hash=e4e57b71b094d7fa197374f4fbdd4ca9" \
     https://payment.girosolution.de/girocheckout/api/v2/transaction/capture

Antwort

Die Antwort besteht aus einem JSON Objekt. Das Feld resultPayment liefert einen Fehlercode zurück. Wird resultPayment = 4000 zurückgeliefert, wurde die Transaktion erfolgreich durchgeführt. Sie bekommen als Antwort eine Transaktionsnummer zurück.

Parameter
Name Pflicht Type Beschreibung
rc Ja Integer Antwortcode
msg Ja String zusätzliche Informationen im Fehlerfall
reference Ja String GiroCheckout Transaktions-ID
merchantTxId Ja String Händler Transaktions-ID
backendTxId Ja String Zahlungsabwickler Transaktions-ID
amount Ja Integer Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent
currency Ja String Währung
resultPayment Ja Integer Ergebnis der Zahlung
hash Ja String HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren
Beispiel im Erfolgsfall

hash : 36dc1f4622d0c1260fe5da76fe83fbd3

{"reference":"ehd82947-5e86-4072-8442-2c2ba2ae74a","referenceParent":null,"merchantTxId":"123456","backendTxId":"5720d913a1338","amount":"100","currency":"EUR","resultPayment":4000,"rc":0,"msg":""}
Beispiel im Fehlerfall

hash : c7dcb2d7d5e6719c6a51d81705bfc3af

{"reference":null,"rc":5030,"msg":"Betrag ungültig"}

Stornierung (VOID)

Stornieren ist zu verwenden, wenn eine akzeptierte Transaktion nicht ausgeführt werden soll.

  • Bedingung: kann nur auf folgende Transaktionstypen angewendet werden:
    • Reservierung (solange keine Buchung erfolgte und Reservierung nicht abgelaufen ist)
    • Reservierung/Buchung (nur am selben Tag)
    • Erstattung (nur am selben Tag)

POST Parameter

URL VOID: https://payment.girosolution.de/girocheckout/api/v2/transaction/void

Name Pflicht Type Beschreibung
merchantId Ja Integer Händler-ID eines Paydirekt-Projekts
projectId Ja Integer Projekt-ID eines Paydirekt-Projekts
merchantTxId Ja String(255) eindeutige Transaktions-ID des Händlers
reference Ja String GiroCheckout Transaktions-ID, für die eine Stornierung durchgeführt werden soll
hash Ja String HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren
Beispiel
curl -d "merchantId=1234567" \
     -d "projectId=1234" \
     -d "merchantTxId=1234567890" \
     -d "reference=fb70602d-c137-4413-8432-7dcc69a9d891" \
     -d "hash=edb7459114db25c2991d1783d4ab5388" \
     https://payment.girosolution.de/girocheckout/api/v2/transaction/void

Antwort

Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, wurde die Transaktion erfolgreich initialisiert. Sie bekommen als Antwort eine Transaktionsnummer und weitere Informationen zurück.

Parameter
Name Pflicht Type Beschreibung
rc Ja Integer Fehlernummer
msg Ja String zusätzliche Informationen im Fehlerfall
reference Ja String GiroCheckout Transaktions-ID
referenceParent Ja String GiroCheckout Transaktions-ID der zugrundeliegenden Ursprungstransaktion
merchantTxId Ja String Händler Transaktions-ID
backendTxId Ja String Zahlungsabwickler Transaktions-ID
amount Ja Integer Stornierter Betrag, bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny
currency Ja String Währung
resultPayment Ja Integer Ergebnis der Transaktion
hash Ja String HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren
Beispiel im Erfolgsfall
{"reference":"ef27303f-87b3-465e-9c39-fabfb749d253","referenceParent":"5a101478-df14-4a79-86af-f743784c2c24","merchantTxId":"58e39be91fce8","backendTxId":"1226723_01","amount":"100","currency":"EUR","resultPayment":"4000","rc":0,"msg":""}
Beispiel im Fehlerfall
{"reference":null,"referenceParent":null,"merchantTxId":null,"backendTxId":null,"amount":null,"currency":null,"resultPayment":null,"rc":5200,"msg":"Transaktion nicht akzeptiert"}
girocheckout/paydirekt/start.txt · Zuletzt geändert: 2017/06/02 15:47 von michaelheumann

Seiten-Werkzeuge