Automatische Zahlungsbestätigung

Aktualisiert am 2026-04-26

Automatische Zahlungsbestätigung

Sobald ein Gast seine Anzahlung oder die vollständige Zahlung über Stripe oder Bancontact leistet, setzen wir automatisch den gesamten Flow in Gang. Alles, was eingeht, sehen Sie in Echtzeit auf der Zahlungsseite.

Zahlungsübersicht mit offenen, bezahlten und verarbeiteten Transaktionen

Was passiert, wenn eine Zahlung eingeht?

  1. Webhook (von Stripe oder Bancontact) trifft auf /webhooks/stripe-payment oder /webhooks/bancontact ein
  2. BedFlow aktualisiert die Rechnung:
    • financial.paid += Betrag
    • financial.balance = Gesamt - bezahlt
    • financial_state wird 'partial' (Anzahlung) oder 'paid' (vollständig)
    • Einzelner Payment-Datensatz wird zu payments[] hinzugefügt
  3. Die Buchung geht von pending auf confirmed + deposit_paid = true
  4. E-Mail wird versendet an den Gast — welche E-Mail, hängt von der Situation ab:
    • Erste Zahlung (Anzahlung oder direkt vollständig) → "Zahlung erhalten" (Template booking-confirmed)
    • Restbetrag nach vorheriger Anzahlung → "Vollständig bezahlt" (Template booking-fully-paid)
  5. Telegram-Benachrichtigung an Sie auf Ihr Telefon:
    • 💳 "Zahlung erhalten" (bei Anzahlung) oder ✅ "Vollständig bezahlt"
    • Mit Gastnamen, Betrag, Restsaldo, Anreisedatum, Referenz
  6. WhatsApp an den Gast (nur bei der ersten Zahlung — bei der finalen Zahlung genügt die E-Mail)
  7. Gastportal-URL wird generiert und auf der Buchung gespeichert — der Gast kann sein Portal über die E-Mail öffnen

Beispiel-Flow: Jan Jansen bucht 3 Nächte

| Zeitpunkt | Jan sieht | Sie sehen | |---|---|---| | Bucht über Widget | "Danke — prüfen Sie Ihre E-Mail für den Zahlungslink" | Telegram 🎫 "Neue Buchung" | | Öffnet E-Mail, klickt auf Stripe | Stripe Checkout, zahlt €96 Anzahlung | — | | Stripe-Webhook | "Zahlung erhalten — Restbetrag €231 bei Anreise" | Telegram 💳 "€96 von Jan erhalten" | | 2 Tage später zahlt den Rest | "Vollständig bezahlt! Bis bald." | Telegram ✅ "Vollständig bezahlt von Jan" |

Wo ist das implementiert?

  • app/Http/Controllers/PaymentController.php::handleBookingPaymentConfirmed() ist das Herzstück
  • app/Services/EmailAutomationService::processEvent() wählt die richtige Vorlage aus
  • app/Services/TelegramNotificationService::info('payment_received', ...) sendet den Admin-Push