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_bookSandboxexpand_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

Guides

Sandbox

Test your Muvon API integration without real bookings: test keys, simulated payments and ride statuses.

With a mvn_test_ key everything works as in live, with real prices, but bookings are stored separately with TEST-000001 codes: they never reach operations, pilots or your customer. Webhooks go to your test URL. The 2-hour hold applies too.

Pay

Open the payment_url and pay with Stripe's test card 4242 4242 4242 4242, or call:

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

Move the ride

In test nobody runs the ride: you move it. The order is new → assigned → confirmed → on_the_way → arrived → on_board → dropped_off → completed. From an open status you can also go to no_show or cancelled. Each step sends its event.

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

The /test/… paths answer 403 test_mode_only with a live key.

arrow_backPreviousWebhooksNextarrow_forwardChangelog

On this page

  • Pay
  • Move the ride