Booking lifecycle
Guides
Booking lifecycle
The states of a Muvon transfer booking, from creation to completed ride, and the event for each.
A booking has two independent axes: status (the ride) and payment_status (the payment). Every change to either sends an event.
Ride statuses
newassignedconfirmedon_the_wayarrivedon_boarddropped_offcompleted
no_showcancelled
| Status | What it means | Event |
|---|---|---|
new | Booked. Muvon hasn't assigned a pilot yet. | booking.created |
assigned | A pilot and vehicle are assigned. | booking.assigned |
confirmed | The pilot confirmed the ride. | booking.confirmed |
on_the_way | The pilot is heading to the pickup. | booking.on_the_way |
arrived | The pilot arrived and is waiting. | booking.arrived |
on_board | The passenger is on board. | booking.on_board |
dropped_off | Reached the destination. | booking.dropped_off |
completed | Ride closed. Final. | booking.completed |
no_show | The passenger didn't show up. Final. | booking.no_show |
cancelled | Cancelled by you, by Muvon or for non-payment. Final. | booking.cancelled |
The team may skip statuses (for example, from assigned to on_the_way). Don't assume you'll get all of them or in order: use the status each event carries.
Payment status
Every booking starts unpaid with a 2-hour hold (hold_expires_at). On payment it becomes paid and booking.paid arrives. If the hold runs out unpaid, the booking becomes cancelled with cancel_reason: "payment_timeout". See Payment link.

