Developer Documentation
REST API for aggregators & partners
Receive bookings, push status updates, assign drivers, stream live GPS, return quotes and handle cancellations — all through a clean REST API with HMAC-signed webhooks. 24/7, 99.95% uptime.
Everything aggregators ask — answered
Direct answers to the six most common questions from Booking.com, Trip.com, Viator and other partner integration teams.
Can you receive bookings via API?
Yes. POST /v1/bookings creates a booking from any aggregator, OTA or partner platform with idempotency-key support.
Can you update booking status?
Yes. GET /v1/booking-status returns live state, and webhooks push updates (assigned, on-the-way, arrived, on-board, completed, cancelled).
Can you provide driver details?
Yes. POST /v1/driver-assigned and GET /v1/bookings/:id return driver name, phone, photo, vehicle make/model, plate and licence number.
Can you provide live GPS tracking?
Yes. Real-time lat/lng via webhook stream or a signed passenger tracking URL (Driver Event Link) — no app required.
Can you return pricing?
Yes. GET /v1/quotes returns fare breakdown (base, distance, time, surcharges, taxes, commission) in any currency.
Can you handle cancellations?
Yes. DELETE /v1/bookings/:id with a reason code. Cancellation policy and fees returned in the response.
Base URL
https://api.taxi-webdesign.com/v1
Authentication
Authorization: Bearer <access_token>
OAuth 2.0 client-credentials. Scoped keys per partner. HMAC-signed webhooks.
API Endpoints
Core REST endpoints and webhooks for aggregator integrations.
/v1/bookingsCreate a bookingReceive bookings from aggregators, OTAs or partner platforms.
{
"external_id": "BKD-998123",
"pickup": {
"address": "JFK Terminal 4, New York, NY",
"lat": 40.6413,
"lng": -73.7781,
"datetime": "2026-07-12T18:30:00Z",
"flight_number": "BA178"
},
"dropoff": {
"address": "The Plaza Hotel, 768 5th Ave, New York, NY",
"lat": 40.7644,
"lng": -73.9744
},
"passenger": {
"name": "Jane Smith",
"phone": "+14155551234",
"email": "jane@example.com",
"pax": 2,
"luggage": 3
},
"vehicle_class": "business",
"currency": "USD",
"commission_pct": 18
}{
"id": "bkg_01HZ8Y3Q1V",
"external_id": "BKD-998123",
"status": "confirmed",
"fare": { "total": 142.50, "currency": "USD" },
"tracking_url": "https://track.taxi-webdesign.com/t/abc123"
}/v1/booking-statusGet live booking statusReturns current status, ETA, driver and vehicle position.
GET /v1/booking-status?id=bkg_01HZ8Y3Q1V Authorization: Bearer <token>
{
"id": "bkg_01HZ8Y3Q1V",
"status": "on_the_way",
"eta_minutes": 7,
"driver": {
"name": "Marco R.",
"phone": "+14155559911",
"rating": 4.96
},
"vehicle": {
"make": "Mercedes",
"model": "E-Class",
"plate": "ABC-1234",
"lat": 40.7128,
"lng": -74.0060
}
}/v1/driver-assignedDriver assignment webhookPushed to your endpoint when a driver is dispatched to the booking.
POST <your_webhook_url>
X-Signature: sha256=<hmac>
{
"event": "driver.assigned",
"booking_id": "bkg_01HZ8Y3Q1V",
"external_id": "BKD-998123",
"driver": {
"name": "Marco R.",
"phone": "+14155559911",
"photo_url": "https://cdn.../m.jpg",
"licence_no": "NY-D-998812"
},
"vehicle": {
"make": "Mercedes",
"model": "E-Class",
"year": 2024,
"color": "Black",
"plate": "ABC-1234"
},
"assigned_at": "2026-07-12T17:55:21Z"
}HTTP/1.1 200 OK
/v1/trip-completedTrip completed webhookPushed when the trip finishes — includes final fare, distance, duration and receipt URL.
POST <your_webhook_url>
X-Signature: sha256=<hmac>
{
"event": "trip.completed",
"booking_id": "bkg_01HZ8Y3Q1V",
"external_id": "BKD-998123",
"started_at": "2026-07-12T18:32:10Z",
"completed_at": "2026-07-12T19:14:02Z",
"distance_km": 28.4,
"duration_min": 42,
"fare": {
"base": 25.00,
"distance": 88.50,
"time": 14.00,
"surcharges": 5.00,
"taxes": 10.00,
"total": 142.50,
"currency": "USD",
"commission": 25.65
},
"receipt_url": "https://receipts.taxi-webdesign.com/r/abc123.pdf"
}HTTP/1.1 200 OK
/v1/quotesGet a quoteReal-time fare quote for a trip — used before creating a booking.
GET /v1/quotes?pickup_lat=40.6413&pickup_lng=-73.7781 &dropoff_lat=40.7644&dropoff_lng=-73.9744 &datetime=2026-07-12T18:30:00Z &vehicle_class=business&pax=2¤cy=USD Authorization: Bearer <token>
{
"quote_id": "qt_01HZ8X9KLM",
"expires_at": "2026-07-12T18:25:00Z",
"distance_km": 28.4,
"duration_min": 42,
"fare": {
"base": 25.00,
"distance": 88.50,
"time": 14.00,
"surcharges": 5.00,
"taxes": 10.00,
"total": 142.50,
"currency": "USD"
},
"vehicle_class": "business",
"cancellation_policy": {
"free_until": "2026-07-12T17:30:00Z",
"fee_after": 50.00
}
}Webhook Events
booking.createdBooking accepted into dispatch.
driver.assignedDriver and vehicle allocated.
driver.on_the_wayDriver moving to pickup with ETA.
driver.arrivedDriver at pickup location.
trip.startedPassenger on-board, trip started.
trip.completedTrip finished with fare + receipt.
trip.cancelledCancellation with reason + fee.
gps.updateLive lat/lng stream during trip.
All webhooks HMAC-SHA256 signed. Retries with exponential backoff up to 24h.
99.95% Uptime
Redundant data centers, multi-region failover.
OAuth 2.0 + HMAC
Scoped keys, signed webhooks, IP allow-listing.
24/7 Support
Live human partner-integration engineers on-call.
FAQ
Ready to integrate?
Request sandbox keys, the OpenAPI 3.1 spec and a partner engineer to walk you through a live booking flow.
Use the buttons in the top navigation to request a quote or book a live demo.