Every customer has a favourite way to pay: card with Apple Pay, PayPal, Revolut, or IRIS from their bank. The more methods you accept, the fewer bookings are lost at the last step.
How they differ
- Stripe charges on its own and signs webhooks with a shared secret.
- PayPal gives an approval and waits for a second call (capture) before money moves.
- Revolut uses amounts in cents, and the return doesn’t say which order completed.
- Viva offers cards and IRIS; it doesn’t sign its notifications, so each one is checked again.
The shared flow
Before the customer leaves to pay, we store the pending booking with all its details. When they return — or when the webhook arrives, for those who close the window — we ask the provider itself whether it was paid and how much. The booking is written once, whichever arrives first; the database guarantees that, not luck.
In the back office you see, for every payment, which provider, how much, and whether it was confirmed by the customer’s return or by the webhook. And one button tests each provider’s keys without charging anything.