This guide summarizes what frontend consumers need to change after recent pricing/import updates.
Applies to:
Use separate endpoints for pricing-selection save:
PUT /v1/itinerary/:id/pricing-selection (JWT + TRIP permission)PUT /v1/itinerary/:id/customer-pricing-selection (booking-jwt)Both return pricing response in the same shape as GET /v1/itinerary/:id/price-details.
Category fields are numeric enum values (not string labels):
1 = LUXURY2 = PREMIUM3 = SUPER_DELUXE4 = DELUXE5 = STANDARDVehicle slab auto-selection uses adults + children (infants excluded):
<= 3 => 1-3 slab> 3 => 4-6 slab (or higher matching slab)defaultHotelCategory removeddefaultHotelCategory.tripType as canonical category source.Endpoint: POST /v1/itinerary/import-itinerary-full
Use IDs only:
hotelIds: number[]transferIds: number[]Do not send old hotels[] / transfers[] create-resolve payloads.
activities[] are created and mapped day-wise.
Required fields per item:
dayOrder (number)title (string)startTime (string, mandatory)Optional fields:
duration (minutes)description, catgType, subCatgType, activityType, latitude, longitudeExplicit mapping supported via:
hotelDayMappings: [{ hotelId, dayOrder }]Validation:
Backward compatibility:
hotelDayMappings is omitted, backend maps hotel to all itinerary days with matching location.For check-inventory, search-inventory, and inventory responses, hotel objects now include:
id, name, cityId, categoryaddress, description, starRating, checkInTime, checkOutTime, roomTypePOST /v1/hotel/check-inventory also returns:
hotels: [] (all matched priority-name hotels)hotel (first match for backward compatibility)For check-by-name, search, and inventory responses, transfer objects now include:
id, vehicleName, vehicleType, seaterdescription, notes, isActive, createdAt, updatedAtPOST /v1/transfer/check-by-name request is bulk:
{ "items": [{ "name": "Wagon R / Similar" }, { "name": "Innova / Similar" }] }
Response includes requestedName per item.
The following endpoints are not route-changed by these updates:
GET /v1/itinerary/agentGET /v1/itineraryGET /v1/itinerary/:idGET /v1/hotel/itinerary/:idGET /v1/transfer/itinerary/:id/transfersGET /v1/days/itinerary-details/:idPotential response/data adjustments frontend should tolerate:
defaultHotelCategory field removaltripType category interpretationPUT /v1/itinerary/:id/customer-pricing-selectionPUT /v1/itinerary/:id/pricing-selectionhotelIds, transferIds, activities, optional hotelDayMappingsstartTime for each imported activitydefaultHotelCategory