Cancellations
Guides
Cancellations
When you can cancel a booking through the Muvon API and how refunds work.
- You can cancel with
POST /bookings/{ref}/cancelup to 24 h beforepickup_at. - Only while the status is
new,assignedorconfirmed. - With less than 24 h left, the API answers
cancel_window_closed: contact the Muvon team.
Refunds
The API never refunds by itself. If the booking was already paid, the response carries refund: "manual" and the Muvon team refunds your customer's card. Once recorded, payment_status becomes refunded.
curl -X POST "https://api.muvon.mx/api/v1/bookings/TEST-000001/cancel" \
-H "Authorization: Bearer $MUVON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Customer changed plans"
}'Response · 200
{
"id": "bk_5d2e8a41c07f4b9e",
"object": "booking",
"kind": "transfer",
"code": "TEST-000001",
"livemode": false,
"status": "cancelled",
"payment_status": "unpaid",
"payment_url": "https://api.muvon.mx/pay/r/3c9f0b7e6a5d4c2b1a09f8e7d6c5b4a3",
"hold_expires_at": null,
"external_ref": "ORDER-5521",
"service_type": "airport_pickup",
"pickup_at": "2026-12-20T14:30:00-05:00",
"pickup": {
"place_id": "pl_cun",
"name": "Cancun Airport (CUN)",
"address": null
},
"dropoff": {
"place_id": "pl_hotel52",
"name": "Hotel 52 Playa del Carmen",
"address": null
},
"hours": null,
"vehicle_type_id": "vt_sedan",
"passengers": {
"adults": 2,
"children": 1
},
"bags": 3,
"extras": [
{
"code": "BOOSTER_SEAT",
"quantity": 1,
"price_cents": 1000
}
],
"flight_number": "AA1234",
"room": null,
"notes": "Viajamos con una carriola",
"passenger": {
"first_name": "Ana",
"last_name": "García",
"email": "ana@example.com",
"phone": "+5215512345678",
"language": "es"
},
"price_cents": 9500,
"currency": "USD",
"commission_cents": 950,
"tracking_url": "https://api.muvon.mx/track?t=a1b2c3d4e5f6",
"cancel_reason": "Customer changed plans",
"created_at": "2026-11-14T18:10:00-05:00",
"updated_at": "2026-11-15T09:02:13-05:00",
"refund": "manual"
}
