Payments for travel bookings
Travel payment gateway integration that keeps every payment tied to its booking
Connect your booking website or B2B portal to the payment providers your customers use. Checkout happens inside the booking flow, 3D Secure runs where the card requires it, and every authorization, capture, refund and webhook is stored against the booking reference your team works with.
- Checkout inside the booking flow
- Multi-currency where your provider allows
- 3D Secure and tokenized cards
- Voids, refunds and reconciliation
Secure travel checkout
Travel payment gateway integration inside your booking flow
Customers pay for flights, hotels, tours and transfers on your own checkout page, not through a disconnected payment link. The booking system sends the amount, currency and booking reference; the gateway returns a result the booking can act on.
The same flow serves Flight booking software, Hotel booking engine and Tour operator software: the booking is held, payment is taken, and the supplier confirmation follows only when the payment succeeds.
Multi-currency
Present and settle the currencies your provider and merchant account support.
Secure authentication
Tokenized cards, 3D Secure and the provider's own risk checks.
Traceable records
Transactions, bookings, refunds and settlement references stay linked.
PT-48213- Details
- Payment
- 3D Secure
- Confirmed
- Flight, 2 adults$612.00
- Hotel, 3 nights$438.00
- Booking fee$15.00
- Flight, 2 adults€566.00
- Hotel, 3 nights€405.00
- Booking fee€14.00
- Flight, 2 adults£486.00
- Hotel, 3 nights£348.00
- Booking fee£12.00
Card details go straight to your gateway
Sample amounts. Currencies, methods and fees depend on your gateway and merchant account.
Transaction lifecycle
How payment status and booking status move together
A travel payment is not finished when the card is approved. Pick a scenario to see what the gateway reports and what the booking does at each step.
Paid and confirmed
CapturedConfirmed- 0100:00Booking sends amount, currency and reference to the gatewayPaymentPendingBookingOn hold
- 0200:04Gateway approves the card and holds the fundsPaymentAuthorizedBookingOn hold
- 0300:09Supplier confirms the bookingPaymentAuthorizedBookingConfirmed
- 0400:10Held funds are capturedPaymentCapturedBookingConfirmed
- 0500:11Signed webhook stored against the bookingPaymentCapturedBookingConfirmed
Capturing after the supplier confirms means the customer is never charged for a booking that does not exist.
3D Secure challenge
CapturedConfirmed- 0100:00Booking sends amount, currency and reference to the gatewayPaymentPendingBookingOn hold
- 0200:03Bank requests a 3D Secure challengePaymentAction neededBookingOn hold
- 0300:41Customer completes verification and the payment is authorizedPaymentAuthorizedBookingOn hold
- 0400:46Supplier confirms the bookingPaymentAuthorizedBookingConfirmed
- 0500:47Held funds are capturedPaymentCapturedBookingConfirmed
The booking stays on hold while the customer verifies. If the challenge fails or times out, the hold is released and nothing is charged.
Price changed
CapturedConfirmed- 0100:00Price revalidated with the supplier before chargingPaymentNot startedBookingOn hold
- 0200:02New price shown to the customer for approvalPaymentNot startedBookingRepriced
- 0300:30Customer accepts and a payment is created for the new amountPaymentPendingBookingRepriced
- 0400:34Gateway approves the card and holds the fundsPaymentAuthorizedBookingRepriced
- 0500:39Supplier confirms the bookingPaymentAuthorizedBookingConfirmed
- 0600:40Held funds are capturedPaymentCapturedBookingConfirmed
Revalidating before payment stops the agency from absorbing a fare or rate increase it never saw.
Supplier failed after payment
VoidedFailed- 0100:00Booking sends amount, currency and reference to the gatewayPaymentPendingBookingOn hold
- 0200:04Gateway approves the card and holds the fundsPaymentAuthorizedBookingOn hold
- 0300:12Supplier rejects the bookingPaymentAuthorizedBookingFailed
- 0400:13Authorization voided before capture, so no chargePaymentVoidedBookingFailed
- 0500:14Customer and operations team notified with both referencesPaymentVoidedBookingFailed
Because the funds were only authorized, they are released with a void instead of a refund. Where the provider captures at once, the same step becomes a refund.
Illustrative sequence. Whether funds are authorized first or captured at once depends on the gateway and your settings.
Under the hood
Requests, webhooks and refunds that carry the booking reference
Every call to the gateway carries the booking reference and an idempotency key, and every event from the gateway is verified before it changes a booking.
- 1The booking reference travels as metadata, so the provider dashboard and your admin panel show the same booking.
- 2An idempotency key stops a double click or a network retry from charging twice.
- 3Amounts are sent in minor units with an explicit currency code.
- 1The signature is checked against your webhook secret before anything changes.
- 2The event type decides the booking action: confirm, release or flag for review.
- 3Repeat deliveries of the same event are recognized and ignored.
- 1Partial amounts cover cancellation charges kept by the agency or the supplier.
- 2The refund points at the original payment and at the cancelled booking.
- 3A reason code goes to the provider and into your records for support and disputes.
Providers that are not connected yet are handled as a Custom API integration. Popular gateways have their own pages: Stripe payments and PayPal payments.
POST /v1/paymentsIdempotency-Key: bk_PT-48213_a1{ "amount": 106500, "currency": "USD", "capture": "after_confirmation", "metadata": { "booking": "PT-48213", "pnr": "X7K2LM" }}POST /webhooks/paymentsSignature: t=1791012345,v1=5f3ac1…{ "id": "evt_8841", "type": "payment.captured", "payment": "pay_3QK19", "metadata": { "booking": "PT-48213" }}→ 200 OK booking=PT-48213 status=confirmedPOST /v1/refundsIdempotency-Key: rf_PT-48213_1{ "payment": "pay_3QK19", "amount": 41800, "currency": "USD", "reason": "cancelled_by_customer", "metadata": { "booking": "PT-48213", "retained_fee": 2000 }}Generic example. Field names follow the API of the gateway you choose.
Travel-specific operations
Payment controls for the things that go wrong in travel
Prices move, suppliers fail and customers cancel. Each control answers a situation that operations teams deal with regularly.
- Situation01
The hotel rate rose between search and payment.
ControlPrice revalidation
The latest supplier price is confirmed before the customer is charged, and any change is shown for approval.
- Situation02
The customer pressed Pay twice on a slow connection.
ControlIdempotent booking flow
Repeated requests return the first result instead of creating a second charge or a second booking.
- Situation03
The customer pays in euros and the supplier invoices in dollars.
ControlCurrency and markup rules
Checkout currency, booking value, markup and settlement amount are each recorded.
- Situation04
Two nights of a five-night stay are cancelled.
ControlVoids and partial refunds
Full or partial reversals are tied to the cancellation or amendment that caused them.
- Situation05
A cardholder disputes a charge months after travel.
ControlDisputes and chargebacks
Provider events, authentication results and booking documents are kept together as evidence.
- Situation06
A webhook arrives for a booking that is already cancelled.
ControlWebhooks and alerts
Verified events update bookings; anything that does not fit is flagged for a person to review.
Provider coverage
Choose a gateway for your market and customers
Availability depends on merchant approval, country coverage, currencies and payment methods. Many agencies combine a global card gateway with a regional provider and a B2B settlement option.
- A
Global card gateways
Card acceptance, tokenization, 3D Secure, refunds and multi-market checkout.
- B
Regional providers
Local currencies, domestic payment rails and market-specific methods.
- C
Digital wallets
Faster checkout for customers who prefer an approved wallet account.
- D
B2B payment flows
Agent credit, manual payment records and controlled payment workflows.
| Need | AGlobal card gateways | BRegional providers | CDigital wallets | DB2B payment flows |
|---|---|---|---|---|
| International cards | Usually covered | Usually covered | Depends on the provider | Not the usual fit |
| Local methods and bank rails | Depends on the provider | Usually covered | Depends on the provider | Not the usual fit |
| 3D Secure | Usually covered | Depends on the provider | Depends on the provider | Not the usual fit |
| Refunds and voids | Usually covered | Depends on the provider | Depends on the provider | Usually covered |
| Several currencies | Usually covered | Depends on the provider | Depends on the provider | Depends on the provider |
| Agent credit and deposits | Not the usual fit | Not the usual fit | Not the usual fit | Usually covered |
- Usually covered
- Depends on the provider
- Not the usual fit
Gateways in the integrations directory
These names come from the live All integrations. Merchant accounts and transaction fees are agreed with the payment company you choose.
Settlement without a gateway
- Wallet balance
- Bank transfer
- Pay later
For agents and offline sales, bookings can also be settled from the B2B agent wallet, by bank transfer or as pay later, with each payment recorded by your team.
Project scoping
What we need to scope your payment integration
A clear provider account and transaction workflow let us define accurate scope, testing and delivery. Tick what you already have.
0/5ready
Scoping checklist
Path to go-live
- 01
Sandbox keys
The platform runs against the provider's test environment.
- 02
Test cases
Approve, decline, 3D Secure, void and refund, each against a test booking.
- 03
Webhook endpoint
Signatures verified and every event type mapped to a booking action.
- 04
Production keys
Live credentials switched on, with failed payments monitored.
Plan your checkout
Gateway work is scoped together with your booking platform. PHPTRAVELS is a one-time license with source code included, self-hosted on your own server; see Pricing for what each plan covers.
Buyer questions
Payment gateway integration FAQ
What agencies ask before adding online payments to their booking platform.
Talk to salesIt connects a travel booking website or portal to a payment provider, so customers pay during checkout and the booking system can securely track authorization, capture, refunds and payment status against each booking.
PHPTRAVELS supports a range of global and regional gateways, listed in the integrations directory. The right option depends on your country, merchant approval, currencies, payment methods and the provider API available for your account.
Yes, when the selected gateway and merchant account support the presentment and settlement currencies you need. Currency conversion, markup and settlement rules are confirmed during project scoping.
3D Secure is included when the provider supports it and it is enabled for your merchant account. The integration handles authentication results, redirects or embedded challenges, and the final payment status.
Yes, if the provider API supports them. Full or partial refunds, voids and cancellation charges are linked to the relevant booking and transaction references.
The payment company does. You open the merchant account with the provider you choose and agree its fees with them directly. PHPTRAVELS connects your platform to that account with the credentials you supply.
Keep exploring
More from the platform
- Razorpay integrationConnect Razorpay to a travel booking site as a custom gateway
- Paddle API integrationMerchant of record vs payment gateway, and when Paddle fits
- Payment gateway APIHow card payments, 3-D Secure, captures and refunds work over an API
- Agent walletsCredit limits and top-ups
- Travel APIsGDS, hotel, tour, car and payment APIs
- Stripe paymentsCard and wallet checkout with refunds and payouts
