Paxvel Developers
DocsAPI referenceConsole Sign in Request access

Testing in the sandbox

Test keys (pxt_test_…) run against the same pricing engine and validation as production. The only difference is what happens to bookings: they are stored in the sandbox, get a TEST- reference, and never reach our operations team or your invoice.

What behaves like production

Simulating the lifecycle

In production a booking moves forward as our team works on it. In the sandbox you trigger those steps yourself:

curl -X POST https://paxvelhub.com/api/v1/test/bookings/TEST-1A2B3C4/simulate \
  -H "Authorization: Bearer $PAXVEL_TEST_KEY" -H "Content-Type: application/json" \
  -d '{ "event": "driver_assigned" }'
eventEffect
payment_completedpending_payment → confirmed, paid = total.
confirmedon_request → confirmed.
driver_assignedItems → driver_assigned, test driver details filled.
on_routeItems → on_route.
completedItems → completed.
no_showItems → no_show.
on_requestBooking → on_request (waiting for our confirmation).
offeredBooking → offered with an offer object; then try POST /bookings/{reference}/offer/accept or /offer/decline.

Every simulation sends a booking.updated webhook to your test endpoint.

Test scenarios

Before requesting live access, run through at least these scenarios:

  1. Airport → hotel transfer, quote and book with a flight number.
  2. Return trip: two items in one booking.
  3. Address → airport transfer using lat/lng/address.
  4. Booking with an expired offer (wait 30 minutes or reuse an old offer_id) → 410 offer_expired.
  5. The same POST /bookings sent twice with one Idempotency-Key → one booking, second response has Idempotent-Replayed: true.
  6. Cancel a booking and check cancellation_fee.
  7. Simulate driver_assigned and show the driver details in your system.
  8. Receive and verify a webhook.

The console is the quickest way to try them; every request appears in Dashboard → Request logs.