When a guest overstays, the system automatically charges a fine using their stored payment method. No confrontation, no manual intervention.
app/services/reservation_fines/charge_service.rbapp/services/violations/creators/fine_period.rbapp/jobs/charge_retry_job.rb
Stripe::PaymentIntent.create(confirm: true, off_session: true) with stored payment method
prod_UGaoEA53Hr1Uwn
Your reservation has expired.
Your 6-hour reservation at 204 S Elm St has expired.
We're giving you time to return to your vehicle.
Your session at 204 S Elm has expired. Please return to your vehicle to avoid a fine.
A $10.00 fine has been charged to your card on file.
Card was declined. Retrying automatically.
All retry attempts failed.
Billing portal link sent via SMS and email
Violation resolved. No further action needed.
Towing partner dispatched to property.