Desarrolladores
translateEnglishAbrir una cuenta

Empieza

  • API para revendedores
  • Inicio rápido

Conceptos

  • Autenticación y modos
  • Errores
  • Idempotencia
  • Límites de uso
  • Paginación

Referencia

  • Endpoints
  • Objetos

Guías

  • Ciclo de una reserva
  • Liga de pago y apartado
  • Cancelaciones
  • Webhooks
  • Sandbox

Más

  • Cambios
data_objectOpenAPI 3.1
menu_bookEndpointsexpand_more

Empieza

  • API para revendedores
  • Inicio rápido

Conceptos

  • Autenticación y modos
  • Errores
  • Idempotencia
  • Límites de uso
  • Paginación

Referencia

  • Endpoints
  • Objetos

Guías

  • Ciclo de una reserva
  • Liga de pago y apartado
  • Cancelaciones
  • Webhooks
  • Sandbox

Más

  • Cambios
data_objectOpenAPI 3.1

Referencia

Endpoints

Referencia de cada endpoint de la API v1 de Muvon: parámetros, respuestas y ejemplos en curl y Node.

Todas las rutas cuelgan de https://api.muvon.mx/api/v1. Los ejemplos usan la variable MUVON_API_KEY y Node 18 o más nuevo (fetch incluido).

General

Probar tu llave

GET/api/v1/ping

Confirma que la llave funciona y en qué modo estás. No cambia nada.

Sin parámetros.

Petición

curl "https://api.muvon.mx/api/v1/ping" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Respuesta · 200
{
  "object": "ping",
  "livemode": false,
  "partner": {
    "id": "p_4c1d9a",
    "code": "VIAJESSOL",
    "name": "Viajes Sol"
  }
}

Tu cuenta y el modo.

Errores frecuentes

  • 401missing_api_key
  • 401invalid_api_key
  • 429rate_limited

Documento OpenAPI

GET/api/v1/openapi.json

Esta referencia en OpenAPI 3.1, pública y sin llave. Úsala para generar clientes o importarla en Postman.

infoPública, sin llave.

Sin parámetros.

Petición

curl "https://api.muvon.mx/api/v1/openapi.json"
Respuesta · 200
{
  "openapi": "3.1.0",
  "info": {
    "title": "Muvon Reseller API",
    "version": "1.0.0"
  }
}

El documento.

Catálogo

Tipos de vehículo

GET/api/v1/vehicle-types

Los tipos de vehículo que se pueden cotizar, con cupo y anticipación mínima.

Sin parámetros.

Petición

curl "https://api.muvon.mx/api/v1/vehicle-types" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Respuesta · 200
{
  "data": [
    {
      "id": "vt_sedan",
      "object": "vehicle_type",
      "name_es": "Sedán / SUV / Tesla",
      "name_en": "Sedan / SUV / Tesla",
      "min_passengers": 1,
      "max_passengers": 3,
      "max_bags": 3,
      "min_notice_hours": 30
    },
    {
      "id": "vt_van",
      "object": "vehicle_type",
      "name_es": "Van",
      "name_en": "Van",
      "min_passengers": 1,
      "max_passengers": 12,
      "max_bags": 12,
      "min_notice_hours": 30
    },
    {
      "id": "vt_sprinter",
      "object": "vehicle_type",
      "name_es": "Sprinter",
      "name_en": "Sprinter",
      "min_passengers": 11,
      "max_passengers": 19,
      "max_bags": 19,
      "min_notice_hours": 48
    }
  ]
}

Lista completa (sin paginar).

Errores frecuentes

  • 401invalid_api_key
  • 429rate_limited

Lugares

GET/api/v1/places

Aeropuertos, hoteles y otros puntos conocidos. Usar su id da el precio más exacto.

Sin parámetros.

Petición

curl "https://api.muvon.mx/api/v1/places" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Respuesta · 200
{
  "data": [
    {
      "id": "pl_cun",
      "object": "place",
      "name": "Cancun Airport (CUN)",
      "kind": "airport",
      "iata_code": "CUN",
      "address": null,
      "lat": 21.0365,
      "lng": -86.8771
    },
    {
      "id": "pl_hotel52",
      "object": "place",
      "name": "Hotel 52 Playa del Carmen",
      "kind": "hotel",
      "iata_code": null,
      "address": "Calle 52 Norte, Playa del Carmen",
      "lat": 20.6421,
      "lng": -87.0638
    }
  ]
}

Lista completa (sin paginar). Guárdala en caché unas horas.

Errores frecuentes

  • 401invalid_api_key
  • 429rate_limited

Extras

GET/api/v1/extras

Extras que puedes agregar a un traslado: sillas para bebé, mascotas y más.

Sin parámetros.

Petición

curl "https://api.muvon.mx/api/v1/extras" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Respuesta · 200
{
  "data": [
    {
      "code": "BABY_SEAT",
      "object": "extra",
      "name_es": "Silla para bebé",
      "name_en": "Baby seat",
      "price_cents": 1000,
      "currency": "USD",
      "per_unit": true
    },
    {
      "code": "BOOSTER_SEAT",
      "object": "extra",
      "name_es": "Asiento elevador",
      "name_en": "Booster seat",
      "price_cents": 1000,
      "currency": "USD",
      "per_unit": true
    }
  ]
}

Lista completa (sin paginar).

Errores frecuentes

  • 401invalid_api_key
  • 429rate_limited

Cotizaciones

Cotizar

POST/api/v1/quotes

Calcula el precio público y tu comisión para cada tipo de vehículo que cabe. La cotización guarda el precio: al reservar no se vuelve a calcular.

Cuerpo (JSON)

service_typestring

Opcional: Muvon lo deduce de los lugares (aeropuerto o no). Manda hourly (o solo hours) para un auto por horas, sin dropoff.

Valores: airport_pickup, airport_dropoff, point_to_point, hourly

pickup_atstring (date-time)obligatorio

Fecha y hora de recogida en ISO 8601 con zona horaria (Cancún es -05:00). Mínimo 30 h desde ahora, o más si el vehículo lo pide.

pickupobjectobligatorio

Dónde se recoge: place_id, o address + lat + lng.

pickup.place_idstring

Id de un lugar de GET /places (aeropuerto, hotel). Es la forma más exacta.

pickup.addressstring

Dirección, si no hay place_id. Va con lat y lng.

pickup.latnumber

Latitud de la dirección.

pickup.lngnumber

Longitud de la dirección.

dropoffobject

Destino, con la misma forma que pickup. Obligatorio salvo en hourly.

dropoff.place_idstring

Id de un lugar de GET /places (aeropuerto, hotel). Es la forma más exacta.

dropoff.addressstring

Dirección, si no hay place_id. Va con lat y lng.

dropoff.latnumber

Latitud de la dirección.

dropoff.lngnumber

Longitud de la dirección.

hoursinteger

Solo en hourly: de 1 a 12.

passengersobjectobligatorio

Cuántas personas viajan.

passengers.adultsintegerobligatorio

Adultos, mínimo 1.

passengers.childreninteger

Niñas y niños. Cuentan para el cupo del vehículo.

bagsinteger

Maletas. No puede pasar del máximo del vehículo.

languagestring

Idioma de los nombres de vehículos y extras en la respuesta. en por omisión.

Valores: es, en

vehicle_type_idstring

Opcional: cotiza solo ese tipo de vehículo. Si no lo mandas, regresan todos los que caben.

extrasobject[]

Extras de GET /extras.

extras[].codestringobligatorio

Código del extra.

extras[].quantityinteger

Cantidad, 1 por omisión.

Petición

curl -X POST "https://api.muvon.mx/api/v1/quotes" \
  -H "Authorization: Bearer $MUVON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "service_type": "airport_pickup",
  "pickup_at": "2026-12-20T14:30:00-05:00",
  "pickup": {
    "place_id": "pl_cun"
  },
  "dropoff": {
    "place_id": "pl_hotel52"
  },
  "passengers": {
    "adults": 2,
    "children": 1
  },
  "bags": 3,
  "extras": [
    {
      "code": "BOOSTER_SEAT",
      "quantity": 1
    }
  ]
}'
Respuesta · 201
{
  "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
    }
  ]
}

La cotización.

Errores frecuentes

  • 400parameter_missing
  • 400parameter_invalid
  • 422notice_too_short
  • 422same_origin_destination
  • 422route_too_long
  • 422route_not_priceable
  • 422passengers_out_of_range
  • 422too_many_bags
  • 422hours_out_of_range
  • 422extra_unavailable
  • 503pricing_unavailable

Reservas

Reservar

POST/api/v1/bookings

Reserva una opción de una cotización. Queda en new y unpaid, con una payment_url para tu cliente y un apartado de 2 horas.

infoRequiere Idempotency-Key.

Cuerpo (JSON)

quote_idstringobligatorio

Cotización vigente de POST /quotes. Cada cotización se reserva una sola vez.

vehicle_type_idstringobligatorio

Una de las options de la cotización.

passengerobjectobligatorio

Quién viaja. Muvon le escribe a este correo y teléfono sobre su viaje.

passenger.first_namestringobligatorio

Nombre.

passenger.last_namestringobligatorio

Apellido.

passenger.emailstring (email)obligatorio

Correo.

passenger.phonestringobligatorio

Teléfono con lada internacional, como +5215512345678.

passenger.languagestring

Idioma del pasajero y de la página de pago. en por omisión.

Valores: es, en

flight_numberstring

Vuelo. Pídelo siempre en llegadas al aeropuerto: así el piloto sigue los retrasos.

roomstring

Habitación o villa, si aplica.

notesstring

Notas para el equipo de Muvon.

external_refstring

Tu propia referencia (orden, carrito). Regresa en la reserva y en los webhooks.

return_urlstring (uri)

Opcional, https. A dónde va tu cliente después de pagar.

Petición

curl -X POST "https://api.muvon.mx/api/v1/bookings" \
  -H "Authorization: Bearer $MUVON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "quote_id": "qt_8f3a1c9e2b7d4f60",
  "vehicle_type_id": "vt_sedan",
  "passenger": {
    "first_name": "Ana",
    "last_name": "García",
    "email": "ana@example.com",
    "phone": "+5215512345678",
    "language": "es"
  },
  "flight_number": "AA1234",
  "notes": "Viajamos con una carriola",
  "external_ref": "ORDER-5521",
  "return_url": "https://www.example.com/orders/5521"
}'
Respuesta · 201
{
  "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"
}

La reserva. Con la misma Idempotency-Key y el mismo cuerpo regresa la misma respuesta.

Errores frecuentes

  • 400idempotency_key_required
  • 409idempotency_conflict
  • 400parameter_missing
  • 400parameter_invalid
  • 404resource_missing
  • 409quote_expired
  • 409quote_used
  • 422option_unavailable
  • 422notice_too_short
  • 400quote_invalid
  • 400idempotency_key_invalid

Listar reservas

GET/api/v1/bookings

Tus reservas del modo de la llave, de la más nueva a la más vieja.

Parámetros de consulta

limitinteger

Cuántos regresar, de 1 a 100. 20 por omisión.

starting_afterstring

Id del último elemento de la página anterior.

statusstring

Solo ese estado.

Valores: new, assigned, confirmed, on_the_way, arrived, on_board, dropped_off, completed, no_show, cancelled

fromstring (date-time)

Recogidas desde esta fecha.

tostring (date-time)

Recogidas hasta esta fecha.

Petición

curl "https://api.muvon.mx/api/v1/bookings?limit=20&status=confirmed" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Respuesta · 200
{
  "data": [
    {
      "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"
    }
  ],
  "has_more": false
}

Una página. Ve Paginación.

Errores frecuentes

  • 400parameter_invalid
  • 401invalid_api_key
  • 429rate_limited

Consultar una reserva

GET/api/v1/bookings/{ref}

El estado actual de una reserva, por id o por code.

Parámetros de ruta

refstringobligatorio

id o code de la reserva.

Petición

curl "https://api.muvon.mx/api/v1/bookings/TEST-000001" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Respuesta · 200
{
  "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"
}

La reserva.

Errores frecuentes

  • 404resource_missing
  • 401invalid_api_key

Cancelar una reserva

POST/api/v1/bookings/{ref}/cancel

Cancela hasta 24 h antes de la recogida, mientras el estado sea new, assigned o confirmed. La API nunca reembolsa: si ya estaba pagada, el equipo de Muvon hace el reembolso.

Parámetros de ruta

refstringobligatorio

id o code de la reserva.

Cuerpo (JSON)

reasonstring

Motivo, queda en cancel_reason.

Petición

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"
}'
Respuesta · 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"
}

La reserva cancelada. Si ya estaba pagada trae refund: "manual".

Errores frecuentes

  • 404resource_missing
  • 409cancel_window_closed
  • 409booking_not_cancellable

Eventos

Listar eventos

GET/api/v1/events

Los mismos eventos que mandan los webhooks, del más nuevo al más viejo. Sirve para recuperar lo que tu servidor no recibió.

Parámetros de consulta

limitinteger

Cuántos regresar, de 1 a 100. 20 por omisión.

starting_afterstring

Id del último elemento de la página anterior.

typestring

Solo ese tipo.

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

Petición

curl "https://api.muvon.mx/api/v1/events?type=booking.paid&limit=50" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Respuesta · 200
{
  "data": [
    {
      "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"
        }
      }
    }
  ],
  "has_more": false
}

Una página.

Errores frecuentes

  • 400parameter_invalid
  • 401invalid_api_key

Sandbox

Simular el pago

POST/api/v1/test/bookings/{ref}/pay

Solo prueba: marca pagada una reserva sin pasar por Stripe y manda booking.paid.

infoSolo con llave de prueba.

Parámetros de ruta

refstringobligatorio

id o code de la reserva.

Petición

curl -X POST "https://api.muvon.mx/api/v1/test/bookings/TEST-000001/pay" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Respuesta · 200
{
  "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"
}

La reserva pagada.

Errores frecuentes

  • 403test_mode_only
  • 404resource_missing
  • 409booking_not_payable

Simular un estado

POST/api/v1/test/bookings/{ref}/status

Solo prueba: mueve la reserva al siguiente estado del viaje y manda su evento.

infoSolo con llave de prueba.

Parámetros de ruta

refstringobligatorio

id o code de la reserva.

Cuerpo (JSON)

statusstringobligatorio

Estado nuevo. Ve el orden en Sandbox.

Valores: assigned, confirmed, on_the_way, arrived, on_board, dropped_off, completed, no_show, cancelled

Petición

curl -X POST "https://api.muvon.mx/api/v1/test/bookings/TEST-000001/status" \
  -H "Authorization: Bearer $MUVON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "assigned"
}'
Respuesta · 200
{
  "id": "bk_5d2e8a41c07f4b9e",
  "object": "booking",
  "kind": "transfer",
  "code": "TEST-000001",
  "livemode": false,
  "status": "assigned",
  "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"
}

La reserva con el estado nuevo.

Errores frecuentes

  • 403test_mode_only
  • 404resource_missing
  • 409invalid_status_transition
arrow_backAnteriorPaginaciónSiguientearrow_forwardObjetos

En esta página

  • General
  • Catálogo
  • Cotizaciones
  • Reservas
  • Eventos
  • Sandbox