Troubleshooting

A traveller paid but the booking still shows as pending

Diagnose provider payments that did not confirm the booking in Tripistic.

2 min read
  • payments
  • stripe
  • paypal
  • webhooks
  • troubleshooting

Bookings confirm only after a verified provider signal. Stripe uses its signed webhook; PayPal uses a verified capture response or signed webhook. A browser redirect by itself never confirms a booking.

Check in this order

1. Was the webhook delivered?

Open the Stripe or PayPal developer dashboard → your Tripistic webhook endpoint → Events.

What you seeMeaning
No event for that paymentThe event type is not subscribed
Event with a failed deliveryEndpoint unreachable or rejected the request
Event delivered 200Webhook worked — see step 4

2. Is the signing secret correct?

A 400 on delivery almost always means the signing secret does not match. This is most common after switching between test and live mode, or after redeploying to a new environment.

Fix: copy the signing secret from the provider and paste it into Settings → Payments. Stripe test/live and PayPal sandbox/production credentials are different environments.

3. Are the right events subscribed?

Stripe needs at minimum payment_intent.succeeded, payment_intent.payment_failed, and charge.refunded. PayPal needs a registered webhook with signature verification enabled, plus Partner Referrals merchant status showing payments receivable.

4. Had the booking already expired?

If the traveller took longer than your pending-payment window, the sweep may have already cancelled the booking and released the seats. The payment succeeded but there is no live booking to confirm.

Fix now: refund the payment or apply it to a new booking you create manually. Fix permanently: lengthen the expiry window in Settings → Payments.

Resolving the immediate case

Once the cause is fixed, resend the event from the provider dashboard or run the provider reconciliation path. The booking confirms and the confirmation email is queued.

If the booking was already released, create it manually and mark it paid, referencing the provider payment/order ID in the booking notes so reconciliation stays clean.

Preventing it

  • Test the full payment flow after any environment change.
  • Check the webhook log before peak season rather than during it.
  • Set an expiry window that matches how your travellers actually pay.

Did this answer your question?

If not, tell us what was missing — help articles are rewritten based on what people still have to ask afterwards. Send feedback.

Turn your travel business into one connected operation.

Launch direct bookings, operations, CRM, itinerary drafting, and enterprise controls from one modern platform.