Objetos
Referencia
Objetos
Los objetos de la API de Muvon: cotización (Quote), reserva (Booking) y evento (Event), campo por campo.
Los campos pueden crecer: ignora los que no conozcas. Nunca quitamos ni cambiamos un campo dentro de v1.
Cotización (Quote)
idstringobligatorioId de la cotización (qt_…). Lo mandas al reservar.
objectstringobligatorioSiempre quote.
Valores: quote
livemodebooleanobligatoriotrue con llave live, false con llave de prueba.
expires_atstring (date-time)obligatorioHasta cuándo se puede reservar con esta cotización.
currencystringobligatorioSiempre USD en v1.
Valores: USD
requestobjectobligatorioLo que pediste, normalizado (nombres de lugares, fecha con zona horaria).
optionsobject[]obligatorioUna opción por tipo de vehículo que cabe; siempre trae al menos una. Si ninguno cabe, la cotización responde un error 422 (passengers_out_of_range, too_many_bags, notice_too_short o route_not_priceable).
options[].vehicle_type_idstringobligatorioTipo de vehículo. Lo mandas al reservar.
options[].namestringobligatorioNombre del tipo de vehículo.
options[].max_passengersintegerobligatorioCupo de pasajeros.
options[].max_bagsintegerobligatorioCupo de maletas.
options[].price_centsintegerobligatorioPrecio público total en centavos de dólar, extras incluidos. Es lo que paga tu cliente.
options[].commission_centsintegerobligatorioTu comisión en centavos, según tu acuerdo con Muvon.
options[].kmnumberpuede ser nullDistancia del viaje en km (null en hourly).
{
"id": "qt_8f3a1c9e2b7d4f60",
"object": "quote",
"livemode": false,
"expires_at": "2026-11-14T18:40:00-05:00",
"currency": "USD",
"request": {
"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,
"passengers": {
"adults": 2,
"children": 1
},
"bags": 3,
"extras": [
{
"code": "BOOSTER_SEAT",
"quantity": 1
}
]
},
"options": [
{
"vehicle_type_id": "vt_sedan",
"name": "Sedan / SUV / Tesla",
"max_passengers": 3,
"max_bags": 3,
"price_cents": 9500,
"commission_cents": 950,
"km": 54.2
},
{
"vehicle_type_id": "vt_van",
"name": "Van",
"max_passengers": 12,
"max_bags": 12,
"price_cents": 13000,
"commission_cents": 1300,
"km": 54.2
}
]
}Reserva (Booking)
idstringobligatorioId de la reserva.
objectstringobligatorioSiempre booking.
Valores: booking
kindstringobligatorioProducto. En v1 siempre transfer; las rentas de Muvons llegarán con su propio valor.
Valores: transfer
codestringobligatorioCódigo que ve el cliente: MVN-000123 en live, TEST-000001 en prueba. Sirve como ref en las rutas.
livemodebooleanobligatoriofalse en reservas de prueba.
statusstringobligatorioEstado del viaje. Ve Ciclo de una reserva.
Valores: new, assigned, confirmed, on_the_way, arrived, on_board, dropped_off, completed, no_show, cancelled
payment_statusstringobligatoriounpaid o paid. refunded cuando el equipo registra un reembolso.
payment_urlstring (uri)puede ser nullLiga de pago para tu cliente. Ve Liga de pago.
hold_expires_atstring (date-time)puede ser nullSi no se paga antes, se cancela sola. Si tu cliente abre el pago cerca del final, puede alargarse hasta 35 minutos para que alcance a pagar. null cuando ya está pagada o cancelada.
external_refstringpuede ser nullTu referencia.
service_typestringobligatorioTipo de servicio.
Valores: airport_pickup, airport_dropoff, point_to_point, hourly
pickup_atstring (date-time)obligatorioRecogida, con zona horaria de Cancún.
pickupobjectOrigen.
pickup.place_idstringpuede ser nullId del lugar, o null si fue una dirección.
pickup.namestringNombre que ve el piloto.
pickup.addressstringpuede ser nullDirección, si se dio.
dropoffobjectpuede ser nullDestino (en hourly sin destino, el mismo que pickup).
dropoff.place_idstringpuede ser nullId del lugar, o null si fue una dirección.
dropoff.namestringNombre que ve el piloto.
dropoff.addressstringpuede ser nullDirección, si se dio.
hoursintegerpuede ser nullHoras, solo en hourly.
vehicle_type_idstringobligatorioTipo de vehículo reservado.
passengersobjectobligatorioPasajeros.
passengers.adultsintegerobligatorioAdultos.
passengers.childrenintegerobligatorioNiñas y niños.
bagsintegerobligatorioMaletas.
extrasobject[]obligatorioExtras reservados.
extras[].codestringobligatorioCódigo.
extras[].quantityintegerobligatorioCantidad.
extras[].price_centsintegerobligatorioPrecio por unidad en centavos (la línea cuesta precio × cantidad).
flight_numberstringpuede ser nullVuelo.
roomstringpuede ser nullHabitación.
notesstringpuede ser nullTus notas.
passengerobjectobligatorioQuién viaja.
passenger.first_namestringobligatorioNombre.
passenger.last_namestringobligatorioApellido.
passenger.emailstring (email)obligatorioCorreo.
passenger.phonestringpuede ser nullTeléfono.
passenger.languagestringobligatorioIdioma.
Valores: es, en
price_centsintegerobligatorioPrecio público total en centavos.
currencystringobligatorioUSD.
Valores: USD
commission_centsintegerobligatorioTu comisión en centavos.
tracking_urlstring (uri)puede ser nullPágina del viaje para el pasajero: estado, piloto en camino, contacto.
cancel_reasonstringpuede ser nullPor qué se canceló. payment_timeout si venció el apartado sin pago.
created_atstring (date-time)obligatorioCreación.
updated_atstring (date-time)obligatorioÚltimo cambio.
{
"id": "bk_5d2e8a41c07f4b9e",
"object": "booking",
"kind": "transfer",
"code": "TEST-000001",
"livemode": false,
"status": "new",
"payment_status": "unpaid",
"payment_url": "https://api.muvon.mx/pay/r/3c9f0b7e6a5d4c2b1a09f8e7d6c5b4a3",
"hold_expires_at": "2026-11-14T20:10:00-05:00",
"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": null,
"created_at": "2026-11-14T18:10:00-05:00",
"updated_at": "2026-11-14T18:10:00-05:00"
}Evento (Event)
idstringobligatorioId del evento (evt_…). Úsalo para no procesar dos veces el mismo.
objectstringobligatorioSiempre event.
Valores: event
typestringobligatorioQué pasó. Ve Webhooks.
Valores: booking.created, booking.paid, booking.assigned, booking.confirmed, booking.on_the_way, booking.arrived, booking.on_board, booking.dropped_off, booking.completed, booking.no_show, booking.cancelled, ping
createdstring (date-time)obligatorioCuándo pasó.
livemodebooleanobligatorioModo de la reserva.
dataobjectobligatorioContenido del evento.
data.objectobjectLa reserva completa como quedó después del cambio. En ping es { "object": "ping", "message": "…" }.
{
"id": "evt_0a9b8c7d6e5f4a3b",
"object": "event",
"type": "booking.paid",
"created": "2026-11-14T18:22:41-05:00",
"livemode": false,
"data": {
"object": {
"id": "bk_5d2e8a41c07f4b9e",
"object": "booking",
"kind": "transfer",
"code": "TEST-000001",
"livemode": false,
"status": "new",
"payment_status": "paid",
"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": null,
"created_at": "2026-11-14T18:10:00-05:00",
"updated_at": "2026-11-14T18:22:41-05:00"
}
}
}
