Live-Demo

Reise-Zahlungs-API

Payment-Gateway-API für Reisebuchungen: vom Checkout bis zur Erstattung

Über eine Payment-Gateway-API nimmt Ihre Buchungsseite das Geld des Reisenden an, ohne die Karte je zu berühren. Diese Seite zeigt die Aufrufe einer Kartenzahlung, die Status einer Zahlung, was Reisezahlungen schwieriger macht als den Einzelhandel und wie PHPTRAVELS Ihren Buchungsablauf mit dem Gateway Ihrer Wahl verbindet.

  • Sitzung, 3-D Secure, Capture
  • Alle Zahlungsstatus
  • Karten, Wallets, Bank, Kredit
  • Keine Kartendaten auf Ihrem Server

So laufen die Aufrufe ab

Eine Kartenzahlung, Aufruf für Aufruf

Eine Payment-Gateway-API ist eine Sammlung von Webservices, die ein Zahlungsunternehmen für Händler öffnet. Ihr Server fordert eine Zahlung über Betrag und Währung an, der Reisende gibt die Karte im eigenen Formular des Gateways ein, und das Gateway spricht mit dem Kartennetzwerk und der ausgebenden Bank. Ihr Server sieht die Kartennummer nie; er erhält eine Zahlungs-ID und einen Status zurück.

Vier Parteien sind beteiligt. Das Diagramm zeigt sie als Spalten und jede Nachricht als nummerierten Pfeil. Die Namen unterscheiden sich je nach Gateway (Payment Intent, Session, Order, Charge), der Ablauf ist aber derselbe.

Ein Reisender bezahlt eine Reise online, während Buchungswebsite, Payment Gateway und Bank Zahlungsnachrichten austauschen

Der gestrichelte Pfeil ist ein Webhook: Das Gateway ruft Ihren Server von selbst auf, sodass eine Zahlung die Buchung auch dann aktualisiert, wenn der Reisende den Browser schließt. Wie jeder Schritt in PHPTRAVELS mit einer Buchung verknüpft wird, erklärt die Seite Zahlungs-Gateway-Integration.

  • Reisender
  • Ihre Website
  • Gateway
  • Kartennetzwerk / Bank
  1. 01CheckoutReisender Ihre Website

    Der Reisende prüft die Reise und klickt auf Bezahlen. Die Buchung ist beim Anbieter reserviert, aber noch nicht bestätigt.

  2. 02Payment Intent oder Sitzung anlegenIhre Website Gateway

    Ihr Server sendet Betrag, Währung, Buchungsreferenz und einen Idempotenzschlüssel mit seinem geheimen API-Schlüssel. Das Gateway liefert eine Zahlungs-ID.

  3. 03Gehostete Felder oder WeiterleitungGateway Reisender

    Das Kartenformular kommt vom Gateway, eingebettet in Ihre Seite oder auf dessen eigener Seite, sodass die Kartendaten direkt dorthin gehen.

  4. 043-D SecureKartennetzwerk / Bank Reisender

    Verlangt die ausgebende Bank es, bestätigt der Reisende die Zahlung in der Banking-App oder mit einem Einmalcode.

  5. 05AutorisierenGateway Kartennetzwerk / Bank

    Das Gateway bittet den Herausgeber über das Kartennetzwerk, den Betrag zu genehmigen.

  6. 06Genehmigt, Betrag reserviertKartennetzwerk / Bank Gateway

    Der Herausgeber reserviert das Geld auf der Karte. Es ist noch nichts geflossen.

  7. 07Ergebnis an Ihre WebsiteGateway Ihre Website

    Der Reisende kehrt mit der Zahlungs-ID auf Ihre Website zurück. Ihr Server liest den Status über die API und bestätigt die Buchung beim Anbieter.

  8. 08CaptureIhre Website Gateway

    Sobald der Anbieter bestätigt, bucht Ihr Server den vollen oder einen geringeren Betrag ab. Viele Gateways können auch sofort abbuchen.

  9. 09WebhookGateway Ihre WebsiteVom Gateway selbstständig gesendet

    Das Gateway sendet ein signiertes Ereignis (Zahlung eingezogen, erstattet, angefochten) an Ihren Endpunkt. Ihr Server prüft die Signatur und aktualisiert die Buchung.

Zahlungsstatus

Der Lebenslauf einer Zahlung als Zustandsautomat

Jede Gateway-API meldet für jede Zahlung einen Status. Die Begriffe variieren, entsprechen aber denselben wenigen Zuständen, auf die Ihre Buchungslogik jeweils reagieren sollte.

  1. created

    Angelegt

    Die Zahlung existiert mit Betrag und Währung und wartet auf den Reisenden.

    failedEndstatus

    Fehlgeschlagen

    Abgelehnt, 3-D Secure nicht abgeschlossen oder abgebrochen. Es wird nichts belastet.

  2. authorized

    Autorisiert

    Der Herausgeber hat den Betrag genehmigt und hält ihn auf der Karte zurück.

    voidedEndstatus

    Storniert

    Die Reservierung wird vor dem Capture aufgehoben, der Reisende wird nie belastet.

  3. captured

    Eingezogen

    Das Geld ist abgebucht und wird auf Ihr Händlerkonto ausgezahlt.

    partially_refundedEndstatus

    Teilweise erstattet

    Ein Teil des eingezogenen Betrags geht zurück, etwa nach einer Stornogebühr.

    refundedEndstatus

    Erstattet

    Der gesamte eingezogene Betrag geht auf die Karte zurück.

Eine Autorisierung gilt nicht ewig: Wird sie nicht rechtzeitig eingezogen, läuft die Reservierung ab und die Bank gibt das Geld frei. Eine teilweise erstattete Zahlung kann bis zum eingezogenen Betrag weiter erstattet werden.

Warum Reisen schwieriger ist

Warum Reisezahlungen anders sind

Ein Shop verkauft, was er vorrätig hat. Ein Reiseverkäufer nimmt Geld für eine Buchung an, die ein Anbieter noch bestätigen muss, oft Monate vor der Reise. Die Zahlungs-API muss dazu passen.

  • 01

    Jetzt autorisieren, später einziehen

    Hotels auf Anfrage, Gruppentarife und Touren werden Stunden oder Tage nach der Bestellung bestätigt. Erst autorisieren und bei Bestätigung einziehen heißt: keine Belastung für eine Buchung, die nie zustande kommt.

  • 02

    Der Anbieter kann noch ablehnen

    Ein Tarif kann zwischen Zahlung und Ticketing ausverkauft sein. Bei einer Autorisierung wird das Geld per Storno freigegeben, nach dem Capture wird daraus eine Erstattung.

  • 03

    Teilerstattungen nach Stornogebühren

    Wer einen Aufenthalt oder ein Ticket storniert, verliert meist eine Gebühr. Der Erstattungsaufruf sendet einen geringeren Betrag zur ursprünglichen Zahlung, so oft die Regeln es verlangen.

  • 04

    Mehrere Währungen

    Reisende zahlen in ihrer Währung, Anbieter stellen in ihrer Rechnung. Das Gateway muss die Anzeigewährung unterstützen, und Ihre Unterlagen müssen beide Beträge festhalten.

  • 05

    Betrugsprüfung bei hohen Beträgen

    Tickets für morgen, für eine andere Person, mit einer neuen Karte bezahlt: ein klassisches Betrugsmuster. 3-D Secure, das Risiko-Scoring des Gateways und eine manuelle Prüfwarteschlange schützen hochwertige Bestellungen.

  • 06

    Rückbuchungen Monate später

    Anfechtungen kommen oft erst nach der Reise. Bewahren Sie Authentifizierungsergebnis, Buchungsunterlagen und Gateway-Ereignisse zusammen auf, damit Sie mit Belegen antworten können.

Zahlungsarten

Welche Zahlungswege eine Payment-Gateway-API abdeckt

Karten sind nur eine Möglichkeit. Reisende und Agenten zahlen auf unterschiedliche Weise, und jede Art wird anders erstattet.

ZahlungsartWas es istWann das Geld eintrifftErstattungen
KartenDebit- und Kreditkarten über das Gateway, mit 3-D Secure, wo der Herausgeber es verlangt.Beim Checkout autorisiert; sofort oder bei Anbieterbestätigung eingezogen.Volle oder teilweise Erstattung auf dieselbe Karte per API.
Digitale WalletsWallet-Konten, die das Gateway unterstützt, etwa PayPal oder eine Handy-Wallet mit tokenisierter Karte.Beim Checkout, nachdem der Reisende in der Wallet bestätigt hat.Über das Gateway zurück auf die Wallet oder die dahinterliegende Karte.
BanküberweisungReisender oder Agent überweist Geld auf Ihr Bankkonto, und die Zahlung wird der Buchung zugeordnet.Tage später; die Buchung wartet, bis Ihr Team den Zahlungseingang bestätigt.Rückzahlung per Überweisung, außerhalb des Gateways.
Später zahlenDie Buchung erfolgt jetzt und wird später bezahlt; Ihr Team erfasst die Zahlung, sobald sie eingeht.Nach der Buchung, wenn der Reisende zahlt.Erstattet wird nur, was tatsächlich bezahlt wurde.
B2B-Agenten-Wallet oder -KreditUnteragenten zahlen von einem vorab aufgeladenen Guthaben oder aus einem von Ihnen eingeräumten Kreditlimit.Bei Buchung abgezogen; Anzahlungen und Kredit nach Ihren Bedingungen abgerechnet.Dem Agentenguthaben gutgeschrieben.

Banküberweisung, Später zahlen und Wallet-Guthaben sind Abrechnungsoptionen der Plattform selbst, keine Gateways. Agentenguthaben und Kreditlimits erklärt die Seite B2B-Agenten-Wallet, Banküberweisungen die Seite Zahlung per Banküberweisung.

Bereit in PHPTRAVELS

Bereits angebundene Payment-Gateway-APIs

Diese Gateways sind bereits mit PHPTRAVELS verbunden. Sie eröffnen ein Händlerkonto beim Anbieter, tragen Ihre API-Schlüssel im Admin-Bereich ein, testen in dessen Sandbox und gehen live. Die Liste stammt live aus unserem Integrationsverzeichnis.

Gebühren und Händlerfreigabe vereinbaren Sie mit dem Zahlungsunternehmen, nicht mit PHPTRAVELS. Ein Gateway, das hier fehlt, lässt sich als Individuelle API-Integration ergänzen, und die Seite Zahlungs-Gateway-Integration erklärt, wie jedes eingerichtet wird.

Sicherheit

Kartendaten aus Ihrem System heraushalten

Die sicherste Kartennummer ist die, die Ihr Server nie erhält. Eine Payment-Gateway-API ist genau dafür gebaut.

  • Kartennummern nie speichern

    Kartendaten gehen an das Gateway, das ein Token oder eine Zahlungs-ID zurückgibt. Ihre Datenbank speichert nur diese Referenz, nie Kartennummer oder Sicherheitscode.

  • Gehostete Felder und Weiterleitungen verkleinern den PCI-DSS-Umfang

    PCI DSS gilt für alle, die Kartendaten verarbeiten. Ist das Kartenformular die Seite des Gateways oder eingebettete Felder, liegt deutlich weniger Ihres Systems im Umfang. Welche Selbstbeurteilung für Sie gilt, bestätigt Ihr Acquirer.

  • Webhooks per Signatur geprüft

    Jeder Webhook trägt eine mit einem gemeinsamen Geheimnis erzeugte Signatur. Ihr Server berechnet sie neu und weist jedes Ereignis ab, das nicht passt, sodass niemand eine bezahlte Buchung fälschen kann.

  • Geheime Schlüssel bleiben auf dem Server

    Der Browser erhält nur einen öffentlichen Schlüssel. Der geheime Schlüssel, der Zahlungen und Erstattungen auslöst, liegt in Ihrer Serverkonfiguration, und jede Anfrage trägt einen Idempotenzschlüssel, damit eine Wiederholung nie doppelt belastet.

webhook.php
 1$payload   = file_get_contents("php://input"); 2$signature = $_SERVER["HTTP_X_SIGNATURE"] ?? ""; 3$expected  = hash_hmac("sha256", $payload, $webhookSecret); 4 5if (!hash_equals($expected, $signature)) { 6    http_response_code(400); exit;      // reject 7} 8$event = json_decode($payload, true); 9if (alreadyHandled($event["id"])) exit; // repeat delivery10updateBooking($event["data"]["metadata"]["booking_ref"], $event["type"]);

Generisches Beispiel. Header-Namen und Signaturverfahren richten sich nach dem gewählten Gateway.

PHPTRAVELS ist selbst gehostete Software, daher wird die PCI-DSS-Konformität für Ihr Unternehmen und Ihren Server beurteilt, nicht für die Software allein.

Eine Buchung bezahlen, einziehen und erstatten sehen

Buchen Sie in der Live-Demo eine Reise und verfolgen Sie die Zahlung im Admin-Bereich. Im Enterprise-Tarif erhalten Sie von PHPTRAVELS außerdem eine eigene REST API und Webhooks für Ihre Apps und Partner.

Auch Flüge geplant? Die Seite Flug-API erklärt die Anbieterseite, und Reise-APIs listet jede API, die PHPTRAVELS anbindet.

FAQ

Payment-Gateway-API: Fragen von Reiseverkäufern

Vertrieb kontaktieren

Eine Sammlung von Webservices eines Zahlungsunternehmens, mit der eine Website Zahlungen anlegen, die Karte zur Genehmigung an die Bank senden, Geld einziehen, Erstattungen auslösen und Statusmeldungen per Webhook empfangen kann, ohne selbst Kartendaten zu speichern.

Das Gateway ist der Teil, mit dem Ihre Website spricht: Es erfasst die Karte sicher und gibt die Anfrage weiter. Der Abwickler leitet die Transaktion über die Kartennetzwerke zur ausgebenden Bank. Viele Anbieter bieten beides als einen Dienst an.

Die, die Ihr Unternehmen akzeptiert, die Länder, Währungen und Zahlungsarten Ihrer Kunden unterstützt und getrennte Autorisierung und Capture sowie Teilerstattungen bietet. Viele Agenturen kombinieren ein globales Kartengateway mit einem regionalen.

Das Autorisieren reserviert den Betrag auf der Karte des Reisenden, das Capture bucht ihn ab. Die Trennung erlaubt, erst zu belasten, wenn der Anbieter die Buchung bestätigt, und die Reservierung sonst aufzuheben.

In vielen Regionen, darunter dem Europäischen Wirtschaftsraum und Großbritannien, ist für die meisten Online-Kartenzahlungen eine starke Kundenauthentifizierung vorgeschrieben, und 3-D Secure ist der Weg dafür. Die Gateway-API übernimmt die Abfrage; Ihr Buchungsablauf wartet auf das Ergebnis.

Nicht von allein. Gehostete Felder oder die Zahlungsseite des Gateways halten Kartendaten von Ihrem Server fern und verkleinern den PCI-DSS-Umfang, aber die von Ihrem Acquirer geforderte Beurteilung müssen Sie trotzdem abschließen.

Ja, sofern das Gateway Teilerstattungen unterstützt, was die meisten Kartengateways tun. Sie senden eine Erstattung über einen geringeren Betrag zur ursprünglichen Zahlung, etwa den Preis abzüglich einer Stornogebühr.

Nein. Sie eröffnen ein Händlerkonto beim gewählten Gateway und vereinbaren die Gebühren mit ihm. PHPTRAVELS verbindet Ihre Buchungsplattform mit diesem Konto über die API-Schlüssel, die Sie im Admin-Bereich eintragen.

Ja. Jedes Gateway mit dokumentierter API lässt sich als individuelle Integration ergänzen, und weil der Quellcode enthalten ist, können Ihre Entwickler auch den Zahlungsablauf erweitern.