Confirmation automatique de paiement
Mis à jour le 2026-04-26
Dès qu'un client règle son acompte ou sa totalité via Stripe ou Bancontact, tout le flux se met en route automatiquement. Tout ce qui rentre est visible en temps réel sur la page Paiements.

Que se passe-t-il à l'arrivée d'un paiement ?
- Un webhook (Stripe ou Bancontact) atteint
/webhooks/stripe-paymentou/webhooks/bancontact - BedFlow met à jour la facture :
financial.paid+= montantfinancial.balance= total - payéfinancial_statedevient'partial'(acompte) ou'paid'(complet)- Un payment record individuel est ajouté à
payments[]
- La réservation passe de
pendingàconfirmed+deposit_paid = true - Un e-mail part vers le client — l'e-mail dépend du contexte :
- Premier paiement (acompte ou paiement complet en une fois) → « Paiement reçu » (template
booking-confirmed) - Solde après acompte préalable → « Intégralement payé » (template
booking-fully-paid)
- Premier paiement (acompte ou paiement complet en une fois) → « Paiement reçu » (template
- Notification Telegram vers vous sur votre téléphone :
- 💳 « Paiement reçu » (acompte) ou ✅ « Intégralement payé »
- Avec le nom du client, le montant, le solde restant, la date d'arrivée, la référence
- WhatsApp vers le client (uniquement au premier paiement — pour le paiement final, l'e-mail suffit)
- L'URL du portail client est générée et enregistrée sur la réservation — le client peut ouvrir son portail depuis l'e-mail
Exemple de flux : Jean Dupont réserve 3 nuits
| Moment | Ce que Jean voit | Ce que vous voyez | |---|---|---| | Réserve via le widget | « Merci — consultez votre mail pour le lien de paiement » | Telegram 🎫 « Nouvelle réservation » | | Ouvre l'e-mail, clique Stripe | Checkout Stripe, paie €96 d'acompte | — | | Webhook Stripe | « Paiement reçu — solde €231 à l'arrivée » | Telegram 💳 « €96 reçus de Jean » | | 2 jours plus tard, paie le solde | « Intégralement payé ! À très vite. » | Telegram ✅ « Intégralement payé par Jean » |
Où est-ce implémenté ?
app/Http/Controllers/PaymentController.php::handleBookingPaymentConfirmed()est le cœur du systèmeapp/Services/EmailAutomationService::processEvent()choisit le bon templateapp/Services/TelegramNotificationService::info('payment_received', ...)envoie le push admin