Reisbetaal-API
Betaalgateway-API voor reisboekingen: van checkout tot terugbetaling
Met een betaalgateway-API ontvangt je boekingssite het geld van de reiziger zonder de kaart ooit aan te raken. Deze pagina loopt de aanroepen van één kaartbetaling door, de statussen van een betaling, waarom reisbetalingen lastiger zijn dan retail en hoe PHPTRAVELS je boekingsflow koppelt aan de gateway van je keuze.
- Sessie, 3-D Secure, capture
- Alle betalingsstatussen
- Kaarten, wallets, bank, krediet
- Geen kaartgegevens op je server
Hoe de aanroepen werken
Eén kaartbetaling, aanroep voor aanroep
Een betaalgateway-API is een set webservices die een betaalbedrijf openstelt voor webwinkels. Je server vraagt om een betaling voor een bedrag en valuta, de reiziger voert de kaart in op het eigen formulier van de gateway, en de gateway praat met het kaartnetwerk en de uitgevende bank. Je server ziet het kaartnummer nooit; hij krijgt een betaal-ID en een status terug.
Vier partijen doen mee. Het diagram toont ze als kolommen en elk bericht als genummerde pijl. De namen verschillen per gateway (payment intent, sessie, order, charge), maar de volgorde is dezelfde.

De gestippelde pijl is een webhook: de gateway belt je server uit zichzelf, zodat een betaling de boeking ook bijwerkt als de reiziger de browser sluit. De pagina Betaalgateway-integratie legt uit hoe elke stap in PHPTRAVELS aan een boeking hangt.
- Reiziger
- Je site
- Gateway
- Kaartnetwerk / bank
01CheckoutReiziger Je site
De reiziger bekijkt de reis en klikt op Betalen. De boeking wordt vastgehouden bij de leverancier, nog niet bevestigd.
02Payment intent of sessie aanmakenJe site Gateway
Je server stuurt bedrag, valuta, boekingsreferentie en een idempotentiesleutel mee met zijn geheime API-sleutel. De gateway geeft een betaal-ID terug.
03Gehoste velden of redirectGateway Reiziger
Het kaartformulier komt van de gateway, binnen je pagina of op zijn eigen pagina, zodat kaartgegevens rechtstreeks daarheen gaan.
043-D SecureKaartnetwerk / bank Reiziger
Als de uitgevende bank erom vraagt, bevestigt de reiziger de betaling in de bankapp of met een eenmalige code.
05AutoriserenGateway Kaartnetwerk / bank
De gateway vraagt de uitgever via het kaartnetwerk het bedrag goed te keuren.
06Goedgekeurd, geld gereserveerdKaartnetwerk / bank Gateway
De uitgever reserveert het geld op de kaart. Er is nog niets verplaatst.
07Resultaat naar je siteGateway Je site
De reiziger keert met het betaal-ID terug naar je site. Je server leest de status uit de API en bevestigt de boeking bij de leverancier.
08CaptureJe site Gateway
Zodra de leverancier bevestigt, capturet je server het volledige of een lager bedrag. Veel gateways kunnen ook direct capturen.
09WebhookGateway Je siteDoor de gateway uit zichzelf verstuurd
De gateway stuurt een ondertekende gebeurtenis (betaling gecaptured, terugbetaald, betwist) naar je endpoint. Je server controleert de handtekening en werkt de boeking bij.
Betalingsstatussen
Het leven van een betaling als toestandsmachine
Elke gateway-API meldt een status voor elke betaling. De termen verschillen, maar ze komen neer op dezelfde paar toestanden, en je boekingslogica moet op elk ervan reageren.
created
Aangemaakt
De betaling bestaat met bedrag en valuta en wacht op de reiziger.
failedEindstatus
Mislukt
Geweigerd, 3-D Secure niet voltooid of afgebroken. Er wordt niets in rekening gebracht.
authorized
Geautoriseerd
De uitgever heeft het bedrag goedgekeurd en houdt het vast op de kaart.
voidedEindstatus
Geannuleerd
De reservering wordt vóór de capture ingetrokken, zodat de reiziger nooit wordt belast.
captured
Gecaptured
Het geld is afgeschreven en wordt uitbetaald op je merchantrekening.
partially_refundedEindstatus
Gedeeltelijk terugbetaald
Een deel van het gecapturede bedrag gaat terug, bijvoorbeeld na annuleringskosten.
refundedEindstatus
Terugbetaald
Het hele gecapturede bedrag gaat terug naar de kaart.
Een autorisatie duurt niet eeuwig: wordt hij niet op tijd gecaptured, dan verloopt de reservering en geeft de bank het geld vrij. Een gedeeltelijk terugbetaalde betaling kan verder worden terugbetaald, tot het gecapturede bedrag.
Waarom reizen lastiger is
Waarom reisbetalingen anders zijn
Een winkel verkoopt wat hij op voorraad heeft. Een reisverkoper neemt geld aan voor een boeking die een leverancier nog moet bevestigen, vaak maanden voor de reis. De betaal-API moet daarbij passen.
01
Nu autoriseren, later capturen
Hotels op aanvraag, groepstarieven en tours worden uren of dagen na de bestelling bevestigd. Eerst autoriseren en capturen bij bevestiging betekent: geen afschrijving voor een boeking die nooit doorgaat.
02
De leverancier kan nog nee zeggen
Een tarief kan tussen betaling en ticketing uitverkocht raken. Bij een autorisatie geef je het geld vrij met een void; na de capture wordt het een terugbetaling.
03
Gedeeltelijke terugbetalingen na annuleringskosten
Bij het annuleren van een verblijf of ticket blijven meestal kosten staan. De terugbetaalaanroep stuurt een lager bedrag tegen de oorspronkelijke betaling, zo vaak als de regels vragen.
04
Meerdere valuta
Reizigers betalen in hun valuta terwijl leveranciers in de hunne factureren. De gateway moet de weergavevaluta ondersteunen en je administratie moet beide bedragen bewaren.
05
Fraudecontroles bij hoge bedragen
Tickets voor morgen, voor iemand anders, betaald met een nieuwe kaart: een klassiek fraudepatroon. 3-D Secure, de risicoscore van de gateway en een handmatige controlewachtrij beschermen bestellingen met een hoge waarde.
06
Chargebacks maanden later
Betwistingen komen vaak pas na de reis. Bewaar het authenticatieresultaat, de boekingsdocumenten en de gateway-events bij elkaar, zodat je met bewijs kunt antwoorden.
Betaalmethoden
Welke betaalwijzen een betaalgateway-API dekt
Kaarten zijn maar één optie. Reizigers en agenten betalen op verschillende manieren, en elke methode wordt anders terugbetaald.
| Methode | Wat het is | Wanneer het geld binnenkomt | Terugbetalingen |
|---|---|---|---|
| Kaarten | Debet- en creditcards via de gateway, met 3-D Secure waar de uitgever dat eist. | Geautoriseerd bij checkout; direct gecaptured of zodra de leverancier bevestigt. | Volledige of gedeeltelijke terugbetaling naar dezelfde kaart via de API. |
| Digitale wallets | Walletaccounts die de gateway ondersteunt, zoals PayPal of een mobiele wallet met een getokeniseerde kaart. | Bij checkout, nadat de reiziger in de wallet goedkeurt. | Terug naar de wallet of de kaart erachter, via de gateway. |
| Bankoverschrijving | De reiziger of agent maakt geld over naar je bankrekening en de betaling wordt aan de boeking gekoppeld. | Dagen later; de boeking wacht tot je team de ontvangst bevestigt. | Terugbetaald per overschrijving, buiten de gateway om. |
| Later betalen | De boeking wordt nu gemaakt en later betaald; je team registreert de betaling zodra die binnenkomt. | Na de boeking, wanneer de reiziger betaalt. | Alleen wat daadwerkelijk is betaald, wordt terugbetaald. |
| B2B-agentwallet of -krediet | Subagenten betalen met een vooraf gestort saldo of met een kredietlimiet die jij toekent. | Afgeschreven bij de boeking; borg en krediet worden afgerekend volgens jouw voorwaarden. | Teruggeboekt op het saldo van de agent. |
Bankoverschrijving, later betalen en walletsaldo zijn afrekenopties van het platform zelf, geen gateways. Agentsaldi en kredietlimieten staan op de pagina B2B-agentwallet; bankbetalingen op de pagina Betalen per bankoverschrijving.
Klaar in PHPTRAVELS
Betaalgateway-API's die al gekoppeld zijn
Deze gateways zijn al gekoppeld aan PHPTRAVELS. Je opent een merchantaccount bij de aanbieder, voert je API-sleutels in de admin in, test in zijn sandbox en gaat live. De lijst komt live uit onze integratiegids.
StripeIntegratiegidsPayPalIntegratiegids
xMoney
Fawaterk
Cashfree
Paystack
Flutterwave
Adyen
MyFatoorah
SSLcommerz
Razorpay- Alle betaalintegraties
Tarieven en merchantgoedkeuring regel je met het betaalbedrijf, niet met PHPTRAVELS. Een gateway die hier ontbreekt, kan worden toegevoegd als API-integratie op maat, en de pagina Betaalgateway-integratie legt uit hoe elke gateway wordt ingesteld.
Beveiliging
Kaartgegevens buiten je systeem houden
Het veiligste kaartnummer is het nummer dat je server nooit ontvangt. Een betaalgateway-API is zo gebouwd dat dat niet hoeft.
Sla nooit kaartnummers op
Kaartgegevens gaan naar de gateway, die een token of betaal-ID teruggeeft. Je database bewaart die verwijzing, nooit het kaartnummer of de beveiligingscode.
Gehoste velden en redirects verkleinen de PCI DSS-scope
PCI DSS geldt voor iedereen die kaartgegevens verwerkt. Als het kaartformulier de pagina van de gateway is of ingebedde velden, valt veel minder van je systeem binnen de scope. Je acquirer bevestigt welke zelfbeoordeling voor jou geldt.
Webhooks gecontroleerd op handtekening
Elke webhook draagt een handtekening die met een gedeeld geheim is gemaakt. Je server berekent die opnieuw en wijst elke gebeurtenis af die niet klopt, zodat niemand een betaalde boeking kan vervalsen.
Geheime sleutels blijven op de server
De browser krijgt alleen een publieke sleutel. De geheime sleutel die betalingen en terugbetalingen aanmaakt, staat in je serverconfiguratie, en elk verzoek draagt een idempotentiesleutel zodat een nieuwe poging nooit dubbel afschrijft.
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"]);
Algemeen voorbeeld. Headernamen en de ondertekeningsmethode volgen de gateway die je kiest.
PHPTRAVELS is zelf gehoste software, dus PCI DSS-naleving wordt beoordeeld voor jouw bedrijf en jouw server, niet voor de software alleen.
Zie een boeking betaald, gecaptured en terugbetaald
Boek een reis in de live demo en volg de betaling in de admin. Met het Enterprise-plan krijg je van PHPTRAVELS ook een eigen REST API en webhooks voor je apps en partners.
Ook vluchten in de planning? De pagina Vluchten-API legt de leverancierskant uit, en Reis-API's somt elke API op die PHPTRAVELS koppelt.
Een set webservices van een betaalbedrijf waarmee een website betalingen kan aanmaken, de kaart ter goedkeuring naar de bank kan sturen, geld kan capturen, terugbetalingen kan doen en statusupdates per webhook kan ontvangen, zonder zelf kaartgegevens op te slaan.
De gateway is het deel waarmee je website praat: hij verzamelt de kaart veilig en geeft het verzoek door. De verwerker brengt de transactie via de kaartnetwerken naar de uitgevende bank. Veel aanbieders leveren beide als één dienst.
Die je bedrijf accepteert, de landen, valuta en betaalmethoden van je klanten ondersteunt en apart autoriseren en capturen plus gedeeltelijke terugbetalingen biedt. Veel bureaus combineren een wereldwijde kaartgateway met een regionale.
Autoriseren reserveert het bedrag op de kaart van de reiziger; capturen neemt het af. Door beide te scheiden reken je pas af zodra de leverancier de boeking bevestigt, en trek je de reservering in als dat niet gebeurt.
In veel regio's, waaronder de Europese Economische Ruimte en het VK, is sterke klantauthenticatie vereist voor de meeste online kaartbetalingen, en 3-D Secure is hoe kaarten daaraan voldoen. De gateway-API regelt de controle; je boekingsflow wacht op het resultaat.
Niet vanzelf. Gehoste velden of de betaalpagina van de gateway houden kaartgegevens van je server af en verkleinen je PCI DSS-scope, maar je rondt nog steeds de beoordeling af die je acquirer vraagt.
Ja, als de gateway gedeeltelijke terugbetalingen ondersteunt, wat de meeste kaartgateways doen. Je stuurt een terugbetaling voor een lager bedrag tegen de oorspronkelijke betaling, bijvoorbeeld de prijs min annuleringskosten.
Nee. Je opent een merchantaccount bij de gateway van je keuze en spreekt de tarieven met hen af. PHPTRAVELS koppelt je boekingsplatform aan dat account met de API-sleutels die je in de admin invoert.
Ja. Elke gateway met een gedocumenteerde API kan als maatwerkintegratie worden toegevoegd, en omdat de broncode erbij zit, kunnen je ontwikkelaars ook de betaalflow uitbreiden.
Verder ontdekken
Meer over het platform
- Betaalgateway-integratieCheckout, 3D Secure, terugbetalingen en webhooks
- Stripe-betalingenBetalen met kaart en wallet, terugbetalingen
- PayPal-betalingenAfrekenen met PayPal voor vluchten, hotels en tours
- B2B-agentwalletStortingen, kredietlimieten en een grootboek per agent
- Reis-API'sGDS-, hotel-, tour-, auto- en betaal-API's
- Vluchten-APIGDS-, NDC- en consolidator-vlucht-API's op één platform
