Developers
translateEspañolOpen an account

Get started

  • Reseller API
  • Quickstart

Concepts

  • Authentication and modes
  • Errors
  • Idempotency
  • Rate limits
  • Pagination

Reference

  • Endpoints
  • Objects

Guides

  • Booking lifecycle
  • Payment link and hold
  • Cancellations
  • Webhooks
  • Sandbox

More

  • Changelog
data_objectOpenAPI 3.1
menu_bookEndpointsexpand_more

Get started

  • Reseller API
  • Quickstart

Concepts

  • Authentication and modes
  • Errors
  • Idempotency
  • Rate limits
  • Pagination

Reference

  • Endpoints
  • Objects

Guides

  • Booking lifecycle
  • Payment link and hold
  • Cancellations
  • Webhooks
  • Sandbox

More

  • Changelog
data_objectOpenAPI 3.1

Reference

Endpoints

Reference for every Muvon API v1 endpoint: parameters, responses and curl and Node examples.

Every path hangs off https://api.muvon.mx/api/v1. Examples use the MUVON_API_KEY variable and Node 18 or newer (built-in fetch).

General

Check your key

GET/api/v1/ping

Confirms the key works and which mode you're in. Changes nothing.

No parameters.

Request

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

Your account and mode.

Common errors

  • 401missing_api_key
  • 401invalid_api_key
  • 429rate_limited

OpenAPI document

GET/api/v1/openapi.json

This reference as OpenAPI 3.1, public and keyless. Use it to generate clients or import it into Postman.

infoPublic, no key.

No parameters.

Request

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

The document.

Catalogue

Vehicle types

GET/api/v1/vehicle-types

Vehicle types you can quote, with capacity and minimum notice.

No parameters.

Request

curl "https://api.muvon.mx/api/v1/vehicle-types" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Response · 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
    }
  ]
}

Full list (not paginated).

Common errors

  • 401invalid_api_key
  • 429rate_limited

Places

GET/api/v1/places

Airports, hotels and other known points. Using their id gives the most precise price.

No parameters.

Request

curl "https://api.muvon.mx/api/v1/places" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Response · 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
    }
  ]
}

Full list (not paginated). Cache it for a few hours.

Common errors

  • 401invalid_api_key
  • 429rate_limited

Extras

GET/api/v1/extras

Extras you can add to a transfer: baby seats, pets and more.

No parameters.

Request

curl "https://api.muvon.mx/api/v1/extras" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Response · 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
    }
  ]
}

Full list (not paginated).

Common errors

  • 401invalid_api_key
  • 429rate_limited

Quotes

Create a quote

POST/api/v1/quotes

Works out the public price and your commission for every vehicle type that fits. The quote locks the price: booking doesn't recalculate it.

Body (JSON)

service_typestring

Optional: Muvon works it out from the places (airport or not). Send hourly (or just hours) for a car by the hour, with no dropoff.

Values: airport_pickup, airport_dropoff, point_to_point, hourly

pickup_atstring (date-time)required

Pickup date and time in ISO 8601 with offset (Cancun is -05:00). At least 30 h from now, or more if the vehicle asks for it.

pickupobjectrequired

Where the pickup is: place_id, or address + lat + lng.

pickup.place_idstring

Id of a place from GET /places (airport, hotel). The most precise option.

pickup.addressstring

Address, when there's no place_id. Goes with lat and lng.

pickup.latnumber

Latitude of the address.

pickup.lngnumber

Longitude of the address.

dropoffobject

Destination, same shape as pickup. Required except for hourly.

dropoff.place_idstring

Id of a place from GET /places (airport, hotel). The most precise option.

dropoff.addressstring

Address, when there's no place_id. Goes with lat and lng.

dropoff.latnumber

Latitude of the address.

dropoff.lngnumber

Longitude of the address.

hoursinteger

Only for hourly: 1 to 12.

passengersobjectrequired

How many people travel.

passengers.adultsintegerrequired

Adults, at least 1.

passengers.childreninteger

Children. They count toward the vehicle's capacity.

bagsinteger

Bags. Can't exceed the vehicle's maximum.

languagestring

Language of the vehicle and extra names in the response. en by default.

Values: es, en

vehicle_type_idstring

Optional: quote only that vehicle type. Without it you get every type that fits.

extrasobject[]

Extras from GET /extras.

extras[].codestringrequired

Extra code.

extras[].quantityinteger

Quantity, 1 by default.

Request

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
    }
  ]
}'
Response · 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
    }
  ]
}

The quote.

Common errors

  • 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

Bookings

Create a booking

POST/api/v1/bookings

Books one option of a quote. It starts as new and unpaid, with a payment_url for your customer and a 2-hour hold.

infoRequires Idempotency-Key.

Body (JSON)

quote_idstringrequired

Unexpired quote from POST /quotes. Each quote books once.

vehicle_type_idstringrequired

One of the quote's options.

passengerobjectrequired

Who travels. Muvon contacts this email and phone about the ride.

passenger.first_namestringrequired

First name.

passenger.last_namestringrequired

Last name.

passenger.emailstring (email)required

Email.

passenger.phonestringrequired

Phone with country code, like +15551234567.

passenger.languagestring

Passenger's language, also used on the payment page. en by default.

Values: es, en

flight_numberstring

Flight. Always ask for it on airport arrivals: the pilot follows delays with it.

roomstring

Room or villa, if any.

notesstring

Notes for the Muvon team.

external_refstring

Your own reference (order, cart). Comes back on the booking and in webhooks.

return_urlstring (uri)

Optional, https. Where your customer goes after paying.

Request

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

The booking. The same Idempotency-Key and body returns the same response.

Common errors

  • 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

List bookings

GET/api/v1/bookings

Your bookings in the key's mode, newest first.

Query parameters

limitinteger

How many to return, 1 to 100. 20 by default.

starting_afterstring

Id of the last item of the previous page.

statusstring

Only that status.

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

fromstring (date-time)

Pickups from this date.

tostring (date-time)

Pickups up to this date.

Request

curl "https://api.muvon.mx/api/v1/bookings?limit=20&status=confirmed" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Response · 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
}

One page. See Pagination.

Common errors

  • 400parameter_invalid
  • 401invalid_api_key
  • 429rate_limited

Retrieve a booking

GET/api/v1/bookings/{ref}

A booking's current state, by id or code.

Path parameters

refstringrequired

Booking id or code.

Request

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

The booking.

Common errors

  • 404resource_missing
  • 401invalid_api_key

Cancel a booking

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

Cancels up to 24 h before pickup, while the status is new, assigned or confirmed. The API never refunds: if it was paid, the Muvon team handles the refund.

Path parameters

refstringrequired

Booking id or code.

Body (JSON)

reasonstring

Reason, saved in cancel_reason.

Request

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

The cancelled booking. If it was paid it carries refund: "manual".

Common errors

  • 404resource_missing
  • 409cancel_window_closed
  • 409booking_not_cancellable

Events

List events

GET/api/v1/events

The same events webhooks send, newest first. Use it to catch up on anything your server missed.

Query parameters

limitinteger

How many to return, 1 to 100. 20 by default.

starting_afterstring

Id of the last item of the previous page.

typestring

Only that type.

Values: 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

Request

curl "https://api.muvon.mx/api/v1/events?type=booking.paid&limit=50" \
  -H "Authorization: Bearer $MUVON_API_KEY"
Response · 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
}

One page.

Common errors

  • 400parameter_invalid
  • 401invalid_api_key

Sandbox

Simulate payment

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

Test only: marks a booking paid without Stripe and sends booking.paid.

infoTest key only.

Path parameters

refstringrequired

Booking id or code.

Request

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

The paid booking.

Common errors

  • 403test_mode_only
  • 404resource_missing
  • 409booking_not_payable

Simulate a status

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

Test only: moves the booking to the next ride status and sends its event.

infoTest key only.

Path parameters

refstringrequired

Booking id or code.

Body (JSON)

statusstringrequired

New status. See the order in Sandbox.

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

Request

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

The booking with its new status.

Common errors

  • 403test_mode_only
  • 404resource_missing
  • 409invalid_status_transition
arrow_backPreviousPaginationNextarrow_forwardObjects

On this page

  • General
  • Catalogue
  • Quotes
  • Bookings
  • Events
  • Sandbox