Formularfeld | Eingabewert |
---|---|
Kartennummer | 6799990100000000019 |
Gültigkeitsdatum | beliebiges, in der Zukunft liegendes, Datum |
Kartenprüfnummer (CVC2/CVV) | beliebige 3-4-stellige Zahl (wird nicht geprüft) |
Man beachte, dass bei Maestro im Testmodus nur Transaktionen über ganzzahlige Beträge (also mit 0 Cent) erfolgreich sind. Beträge mit Cent (z.B. 19,80 EUR) werden abgelehnt.
Detaillierte Informationen zu den Transaktionstypen.
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.
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.
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
Wie im Workflow zu sehen ist, gibt es unterschiedliche API-Aufrufe während einer Maestro-Transaktion. Üblicherweise wird während des Bezahlvorganges noch eine zusätzliche 3D-Secure-Überprüfung stattfinden, die allerdings von Händler und PSP völlig unabhängig ist und nur vom kartenverarbeitenden Institut gesteuert wird.
URL https://payment.girosolution.de/girocheckout/api/v2/transaction/start
Name | Pflicht | Type | Beschreibung |
---|---|---|---|
merchantId | Ja | Integer | Händler-ID eines Maestro-Projekts |
projectId | Ja | Integer | Projekt-ID eines Maestro-Projekts |
merchantTxId | Ja | String(255) | Eindeutige Transaktions-ID des Händlers. Zulässige Zeichen: beliebige Buchstaben (inkl. sprachl. Sonderzeichen), 0-9, Zeichen & = + , : ; . _ ! ? # / |
amount | Ja | Integer | Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny |
currency | Ja | String(3) | Währung der Transaktion, gemäß ISO 4217. EUR = Euro |
purpose | Ja | String(27) | Verwendungszweck der Transaktion. Diese Information erscheint auf der Kartenabrechnung bzw. dem Kontoauszug. |
type | Optional | String(4) | Transaktionsart (siehe Transaktionsarten) SALE = Verkauf wird sofort gebucht (default) AUTH = Reservierung des Betrags |
locale | Optional | String(4) | Sprache des Formulars de = deutsch (default) en = englisch es = spanisch fr = französisch it = italienisch ja = japanisch pt = portugiesisch nl = niederländisch cs = tschechisch sv = schwedisch da = dänisch pl = polnisch spde = deutsch Spende spen = englisch Spende |
mobile | Optional | Integer | Bezahlseite für mobile Browser optimiert 0 = nein (default) 1 = ja |
urlRedirect | Ja | String(2048) | URL, an die der Kunde nach der Zahlung geschickt werden soll. |
urlNotify | Ja | String(2048) | URL, an die der Zahlungsausgang gemeldet werden soll. |
kassenzeichen | Optional | String(255) | Optionales Feld für die Übergabe eines Kassenzeichens. Dieses wird dann im GiroCockpit in den Transaktionsdetails angezeigt (und bald auch exportiert) und es kann dort auch danach gesucht werden. Zulässige Zeichen sind alle UTF-8-Zeichen. |
hash | Ja | String(32) | HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren |
curl -d "merchantId=1234567" \ -d "projectId=1234" \ -d "merchantTxId=1234567890" \ -d "amount=100" \ -d "currency=EUR" \ -d "purpose=Beispieltransaktion" \ -d "urlRedirect=http://www.my-domain.de/girocheckout/redirect" \ -d "urlNotify=http://www.my-domain.de/girocheckout/notify" \ -d "hash=9fbd406b72b229a386cd65fc1257c9ad" \ https://payment.girosolution.de/girocheckout/api/v2/transaction/start
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 zum Formular zurück.
Name | Pflicht | Type | Beschreibung |
---|---|---|---|
rc | Ja | Integer | Fehlernummer |
msg | Ja | String(255) | zusätzliche Informationen im Fehlerfall |
reference | Optional | String(36) | eindeutige GiroCheckout Transaktions-ID |
redirect | Optional | String(2048) | Redirect URL zur Weiterleitung des Kunden auf das Formular |
HEADER Parameter | |||
hash | Ja | String(32) | HMAC MD5 hash über alle Werte der Rückmeldung. Siehe hash der Rückantwort |
hash : eded41a45961bf87b77a5aaf3e9aeb0e
{"reference":"6d2d31b6-c23f-47c4-8f6c-1a0495f35f0f","redirect":"https://testmerch.directpos.de/web-api/SSLPayment.po?n=wrlIRO9O30S4NNAO9h6uHwhyWibDFKUWeoWy7mPLDDyZ","rc":"0","msg":""}
hash : f55ce87e132ebb7eb20004c6b186ce09
{"reference":null,"redirect":null,"rc":5030,"msg":"Betrag ungültig"}
Der Ausgang einer Zahlung wird an die im Parameter urlNotify 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.
URL: notifyUrl aus der Transaktionsinitialisierung
Bereitzustellen von: Händler
Aufzurufen von: GiroCheckout
Name | Pflicht | Type | Beschreibung |
---|---|---|---|
gcReference | Ja | String(36) | GiroCheckout Transaktions-ID |
gcMerchantTxId | Ja | String(255) | Händler Transaktions-ID |
gcBackendTxId | Ja | String(22) | Zahlungsabwickler Transaktions-ID |
gcAmount | Ja | Integer | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny |
gcCurrency | Ja | String(3) | Währung |
gcResultPayment | Ja | Integer | Ergebniscodes der Zahlung |
gcHash | Ja | String(32) | HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren |
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. |
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.
URL: redirectUrl aus der Transaktionsinitialisierung
Bereitzustellen von: Händler
Aufzurufen von: GiroCheckout
Name | Pflicht | Type | Beschreibung |
---|---|---|---|
gcReference | Ja | String(36) | GiroCheckout Transaktions-ID |
gcMerchantTxId | Ja | String(255) | Händler Transaktions-ID |
gcBackendTxId | Ja | String(22) | Zahlungsabwickler Transaktions-ID |
gcAmount | Ja | Integer | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny |
gcCurrency | Ja | String(3) | Währung |
gcResultPayment | Ja | Integer | Ergebnis der Zahlung |
gcHash | Ja | String(32) | HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren |
Diese Transaktionen 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
Beim Buchen (capture) wird das Kundenkonto mit einem Betrag belastet, die Gutschrift erfolgt auf das Händlerkonto. Dieses Modell setzt voraus, dass der zugrundeliegende Geschäftsvorfall abgeschlossen ist, z.B. wurde ein Warenkorb angeboten, bestellt und an den Kunden ausgeliefert.
Eine Erstattung ist zu verwenden, wenn dem Kunden eine vorangegangene Zahlung komplett oder teilweise erstattet werden soll.
URL CAPTURE: https://payment.girosolution.de/girocheckout/api/v2/transaction/capture
URL REFUND: https://payment.girosolution.de/girocheckout/api/v2/transaction/refund
Name | Pflicht | Type | Beschreibung |
---|---|---|---|
merchantId | Ja | Integer | Händler-ID eines Maestro-Projekts |
projectId | Ja | Integer | Projekt-ID eines Maestro-Projekts |
merchantTxId | Ja | String(255) | eindeutige Transaktions-ID des Händlers. Zulässige Zeichen: beliebige Buchstaben (inkl. sprachl. Sonderzeichen), 0-9, Zeichen & = + , : ; . _ ! ? # / |
amount | Ja | Integer | Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny |
currency | Ja | String(3) | Währung der Transaktion, gemäß ISO 4217. EUR = Euro |
reference | Ja | String(36) | GiroCheckout Transaktions-ID, für die eine Buchung oder Erstattung durchgeführt werden soll |
purpose | Optional | String(27) | Verwendungszweck der Erstattung. Diese Information erscheint auf der Kartenabrechnung. |
kassenzeichen | Optional | String(255) | Optionales Feld für die Übergabe eines Kassenzeichens. Dieses wird dann im GiroCockpit in den Transaktionsdetails angezeigt (und bald auch exportiert) und es kann dort auch danach gesucht werden. |
hash | Ja | String(32) | HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren |
curl -d "merchantId=1234567" \ -d "projectId=1234" \ -d "merchantTxId=1234567890" \ -d "amount=100" \ -d "currency=EUR" \ -d "reference=fb70602d-c137-4413-8432-7dcc69a9d891" \ -d "hash=edb7459114db25c2991d1783d4ab5388" \ https://payment.girosolution.de/girocheckout/api/v2/transaction/capture
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.
Name | Pflicht | Type | Beschreibung |
---|---|---|---|
rc | Ja | Integer | Fehlernummer |
msg | Ja | String(255) | zusätzliche Informationen im Fehlerfall |
reference | Ja | String(36) | GiroCheckout Transaktions-ID |
merchantTxId | Ja | String(255) | Händler Transaktions-ID |
backendTxId | Ja | String(22) | Zahlungsabwickler Transaktions-ID |
amount | Ja | Integer | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny |
currency | Ja | String(3) | Währung |
resultPayment | Ja | Integer | Ergebnis der Transaktion |
hash | Ja | String(32) | HMAC MD5 hash über alle Werte des Aufrufs. Siehe hash generieren |
hash : eded41a45961bf87b77a5aaf3e9aeb0e
{"reference":"6d2d31b6-c23f-47c4-8f6c-1a0495f35f0f","redirect":"https://testmerch.directpos.de/web-api/SSLPayment.po?n=wrlIRO9O30S4NNAO9h6uHwhyWibDFKUWeoWy7mPLDDyZ","rc":"0","msg":""}
hash : f55ce87e132ebb7eb20004c6b186ce09
{"reference":null,"redirect":null,"rc":5030,"msg":"Betrag ungültig"}