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_bookInicio rápidoexpand_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

Empieza

Inicio rápido

De una llave de prueba a una reserva pagada y su webhook: cotiza, reserva, paga y recibe eventos en modo prueba.

1. Crea una llave de prueba

En el portal de partners, sección API, crea una llave de prueba. Empieza con mvn_test_ y solo se muestra una vez: guárdala en tu gestor de secretos. Para estos ejemplos, ponla en una variable de entorno.

bash
export MUVON_API_KEY=mvn_test_…

2. Prueba la llave

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"
  }
}

3. Busca los lugares

Toma los id de aeropuertos y hoteles de GET /places. Si el lugar no está, manda address con lat y lng.

curl "https://api.muvon.mx/api/v1/places" \
  -H "Authorization: Bearer $MUVON_API_KEY"

4. Cotiza

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
    }
  ]
}

5. Reserva

Elige una opción y reserva. Manda siempre una Idempotency-Key nueva por reserva: si se corta la conexión, reintentas sin duplicar.

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"
}

6. Cobra

Manda la payment_url a tu cliente (correo, WhatsApp, tu propia página). En modo prueba la página usa Stripe en prueba: paga con la tarjeta 4242 4242 4242 4242, cualquier fecha futura y cualquier CVC. O simúlalo sin abrirla:

curl -X POST "https://api.muvon.mx/api/v1/test/bookings/TEST-000001/pay" \
  -H "Authorization: Bearer $MUVON_API_KEY"

7. Recibe los eventos

En el portal, guarda la URL de tu webhook de prueba y copia su secreto whsec_…. Cada cambio de la reserva llega firmado: booking.created, booking.paid y luego cada estado del viaje. Verifica la firma como en Webhooks.

8. Pasa a live

Cuando todo funcione, pide a Muvon activar live. Crea una llave mvn_live_, guarda tu URL de webhook live y cambia la llave en tu servidor. El código no cambia: el modo sale de la llave.

arrow_backAnteriorAPI para revendedoresSiguientearrow_forwardAutenticación y modos

En esta página

  • 1. Crea una llave de prueba
  • 2. Prueba la llave
  • 3. Busca los lugares
  • 4. Cotiza
  • 5. Reserva
  • 6. Cobra
  • 7. Recibe los eventos
  • 8. Pasa a live