Wellgo Taxi — Fleet API Integration Brief

Version 1 · Sandbox · September 2026

Connection
Base URL:
https://api.wellgotaxi.com/functions/viatoviaWebhook
Version header:
Via-Fleet-Api-Version: 1
Authentication:
X-Api-Key: <your-key>
Format:
REST / JSON, UTF-8
Currency:
USD
Datetime:
ISO-8601 UTC
Note: The base URL above is the branded endpoint. Your system may append /v1/search, /v1/bookings etc. — these paths are handled by a proxy layer in front of the endpoint, so calls resolve correctly.
Endpoints
MethodEndpointPurpose
POST
/v1/searchSearch vehicle availability and pricing
POST
/v1/bookingsCreate a booking
GET
/v1/bookings/{bookingReference}Retrieve booking details
PATCH
/v1/bookings/{bookingReference}Amend a booking (accept / decline)
POST
/v1/bookings/{bookingReference}/cancelCancel a booking
GET
/v1/reference/segmentsList all segments
GET
/v1/reference/vehicle-typesList all vehicle types
GET
/v1/reference/service-attributesList all service attributes
GET
/v1/reference/cancellation-reasonsList all cancellation reasons
Search

Locations are sent as AIRPORT (IATA and/or lat-lng) or POINT (lat-lng and/or address). One offer per vehicle class, with a single price. An empty results array means no availability.

Request
JSON
{
  "pickup": {
    "type": "AIRPORT",
    "iata": "DXB"
  },
  "dropoff": {
    "type": "POINT",
    "lat": 24.4936,
    "lng": 54.378,
    "address": "Abu Dhabi Mall"
  },
  "pickup_datetime": "2026-10-01T14:00:00Z",
  "passengers": {
    "adult": 2,
    "children": 0,
    "infant": 0
  }
}
Response
JSON
{
  "results": [
    {
      "vehicle_id": "WG-VTV-2",
      "segment": "Standard Sedan",
      "vehicle_type": "Sedan",
      "max_passengers": 4,
      "suitcase": 2,
      "small_bag": 1,
      "is_electric": false,
      "price": 45,
      "currency": "USD",
      "services": [
        {
          "id": 21,
          "price": 10,
          "max_quantity": 3
        }
      ]
    }
  ]
}
cURL
curl -X POST "https://api.wellgotaxi.com/functions/viatoviaWebhook/v1/search" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: <your-key>" \
  -H "Via-Fleet-Api-Version: 1" \
  -d '{
  "pickup": {
    "type": "AIRPORT",
    "iata": "DXB"
  },
  "dropoff": {
    "type": "POINT",
    "lat": 24.4936,
    "lng": 54.378,
    "address": "Abu Dhabi Mall"
  },
  "pickup_datetime": "2026-10-01T14:00:00Z",
  "passengers": {
    "adult": 2,
    "children": 0,
    "infant": 0
  }
}'
Booking

Your reservation_no is used as the booking reference and is idempotent — resending it returns the existing booking.

Request
JSON
{
  "vehicle_id": "WG-VTV-2",
  "reservation_no": "VTV-123456",
  "pickup": {
    "type": "AIRPORT",
    "iata": "DXB"
  },
  "dropoff": {
    "type": "POINT",
    "lat": 24.4936,
    "lng": 54.378,
    "address": "Abu Dhabi Mall"
  },
  "pickup_datetime": "2026-10-01T14:00:00Z",
  "passenger": {
    "name": "John",
    "surname": "Smith",
    "email": "john@example.com",
    "phone": "+971501234567"
  },
  "passengers": {
    "adult": 2,
    "children": 0,
    "infant": 0
  },
  "flight_number": "EK762",
  "price": 45
}
Response
JSON
{
  "booking_reference": "VTV-123456",
  "reservation_no": "VTV-123456",
  "status": "APPROVED"
}
cURL
curl -X POST "https://api.wellgotaxi.com/functions/viatoviaWebhook/v1/bookings" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: <your-key>" \
  -H "Via-Fleet-Api-Version: 1" \
  -d '{
  "vehicle_id": "WG-VTV-2",
  "reservation_no": "VTV-123456",
  "pickup": {
    "type": "AIRPORT",
    "iata": "DXB"
  },
  "dropoff": {
    "type": "POINT",
    "lat": 24.4936,
    "lng": 54.378,
    "address": "Abu Dhabi Mall"
  },
  "pickup_datetime": "2026-10-01T14:00:00Z",
  "passenger": {
    "name": "John",
    "surname": "Smith",
    "email": "john@example.com",
    "phone": "+971501234567"
  },
  "passengers": {
    "adult": 2,
    "children": 0,
    "infant": 0
  },
  "flight_number": "EK762",
  "price": 45
}'
Details, Amend & Cancel

GET /v1/bookings/{ref} returns full booking details including driver fields once assigned (driver_name, driver_phone, vehicle_plate).

Status values: PENDING → APPROVED → COMPLETED, or CANCELLED.

PATCH returns { "status": "accepted" } or { "status": "declined", "description": "<reason>" }. We decline amendments whose new pickup time is in the past.

POST /cancel returns { "acknowledged": true }. Cancellation is free up to 24 hours before pickup.

401 Missing key
400 Unsupported version
422 Invalid vehicle_id
404 Booking not found
500 Retry-safe
Vehicle Classes
IDClassMax paxSuitcaseSmall bagSegmentType
WG-VTV-1micro311Standard SedanSedan
WG-VTV-2economy421Standard SedanSedan
WG-VTV-3comfort421Standard SedanSedan
WG-VTV-4business321Executive SedanSedan
WG-VTV-5luxury_suv322Executive CrossoverCrossover
WG-VTV-6premium322First ClassSedan
WG-VTV-7minivan_4422Standard People CarrierMinivan
WG-VTV-8suv421Standard CrossoverCrossover
WG-VTV-9minibus_7734Standard People CarrierMinibus
WG-VTV-10premium_minibus_6622Executive People CarrierMinivan
WG-VTV-11minibus_101046Standard People CarrierMinibus
WG-VTV-12minibus_131367Standard People CarrierMinibus
WG-VTV-13minibus_161688Standard People CarrierMinibus
WG-VTV-14minibus_1919910Standard People CarrierMinibus
WG-VTV-15minibus_20201010Standard People CarrierMinibus
WG-VTV-16bus_25251015BusBus
WG-VTV-17bus_35351520BusBus
WG-VTV-18bus_45452025BusBus
Optional Services
IDServicePriceMax qty
5Meet and Greet ServiceFree1
21Infant Seat (0–9 months)$103
22Toddler Seat (9 months–4 years)$103
23Booster Seat (4 years+)$103
37Complimentary Water Bottle$53
Reference Data

Segments, vehicle types, service attributes and cancellation reasons are all served live from the four reference endpoints:

GET /v1/reference/segments
GET /v1/reference/vehicle-types
GET /v1/reference/service-attributes
GET /v1/reference/cancellation-reasons