Confirmación automática de pago
Actualizado el 2026-04-26
En cuanto el huésped realiza el depósito o el pago completo a través de Stripe o Bancontact, ponemos en marcha automáticamente todo el flujo. Todo lo que entra lo ve en tiempo real en la página de Pagos.

¿Qué ocurre cuando llega un pago?
- El webhook (de Stripe o Bancontact) llega a
/webhooks/stripe-paymento/webhooks/bancontact - BedFlow actualiza la factura:
financial.paid+= importefinancial.balance= total - pagadofinancial_statepasa a'partial'(depósito) o'paid'(completo)- Se añade un payment record individual a
payments[]
- La reserva pasa de
pendingaconfirmed+deposit_paid = true - Sale un correo al huésped — el correo concreto depende de la situación:
- Primer pago (depósito o pago completo de una vez) → "Pago recibido" (plantilla
booking-confirmed) - Importe restante tras un depósito previo → "Totalmente pagado" (plantilla
booking-fully-paid)
- Primer pago (depósito o pago completo de una vez) → "Pago recibido" (plantilla
- Notificación de Telegram a su teléfono:
- 💳 "Pago recibido" (en depósito) o ✅ "Totalmente pagado"
- Con nombre del huésped, importe, saldo restante, fecha de llegada y referencia
- WhatsApp al huésped (solo en el primer pago — en el pago final basta con el correo)
- Se genera y se guarda la URL del portal del huésped en la reserva — el huésped puede abrir su portal desde el correo
Flujo de ejemplo: Jan Jansen reserva 3 noches
| Momento | Jan ve | Usted ve | |---|---|---| | Reserva a través del widget | "Gracias — consulte su correo para el enlace de pago" | Telegram 🎫 "Nueva reserva" | | Abre el correo, hace clic en Stripe | Checkout de Stripe, paga €96 de depósito | — | | Webhook de Stripe | "Pago recibido — restan €231 a la llegada" | Telegram 💳 "€96 recibidos de Jan" | | 2 días después paga el resto | "¡Totalmente pagado! Hasta pronto." | Telegram ✅ "Totalmente pagado por Jan" |
¿Dónde está implementado?
app/Http/Controllers/PaymentController.php::handleBookingPaymentConfirmed()es el núcleoapp/Services/EmailAutomationService::processEvent()selecciona la plantilla adecuadaapp/Services/TelegramNotificationService::info('payment_received', ...)envía el push al administrador