Saltar al contenido principal

Servicios

Guía completa de servicios de cenotes y tours, incluyendo opciones de transporte.


Vista General

Los servicios son ofertas adicionales que pueden ser:

TipoDescripciónPrecio
includedIncluido en precio base$0
optionalSe puede agregar por costo extraVariable
not_availableNo disponible para este itemN/A

Categorías de Servicio

CategoríaEjemplos
transportationRecogida en hotel, transporte privado
equipmentSnorkel, chaleco, traje de neopreno
guideGuía bilingüe, instructor de buceo
foodDesayuno, almuerzo, snacks
photoFotos profesionales, video
otherCasillero, ducha, toalla

Obtener Servicios de Cenote

GET /cenotes/:id/services

Listar todos los servicios disponibles para un cenote específico.

curl -X GET "https://service-gateway.loscenotes.com/cenotes/cenote-uuid/services" \
-H "Content-Type: application/json" \
-H "Accept-Language: es"

Parámetros de Consulta:

ParámetroTipoDescripción
bookableOnlybooleanSolo mostrar servicios reservables por separado

Respuesta:

{
"success": true,
"message": "cenote_services.list_retrieved_successfully",
"data": [
{
"id": "service-uuid-1",
"serviceId": "global-service-uuid",
"name": {
"es": "Chaleco salvavidas",
"en": "Life jacket"
},
"description": {
"es": "Chaleco salvavidas para todas las edades",
"en": "Life jacket for all ages"
},
"category": "equipment",
"inclusionType": "included",
"price": 0,
"isBookable": false,
"isActive": true,
"displayOrder": 1
},
{
"id": "service-uuid-2",
"serviceId": "global-service-uuid-2",
"name": {
"es": "Equipo de snorkel",
"en": "Snorkel equipment"
},
"description": {
"es": "Máscara, snorkel y aletas",
"en": "Mask, snorkel and fins"
},
"category": "equipment",
"inclusionType": "optional",
"price": 5000,
"isBookable": true,
"isActive": true,
"displayOrder": 2
},
{
"id": "service-uuid-3",
"serviceId": "global-service-uuid-3",
"name": {
"es": "Transporte desde hotel",
"en": "Hotel pickup"
},
"description": {
"es": "Recogida y regreso a tu hotel en la zona hotelera",
"en": "Pickup and return to your hotel in the hotel zone"
},
"category": "transportation",
"inclusionType": "included",
"price": 0,
"isBookable": false,
"isActive": true,
"displayOrder": 3,
"transportConfig": {
"vehicleTypes": ["van", "bus"],
"maxCapacity": 15,
"pricePerKm": 150
}
}
],
"currency": {
"code": "MXN",
"symbol": "$"
}
}

Puntos de Encuentro de Tours (Patrón Unificado)

GET /booking/tours/:tourId/meeting-points

Obtener puntos de encuentro de un tour. Mismo patrón que cenotes (/cenotes/:cenoteId/meeting-points). Precio de transporte: zone-only vía POST /pricing/calculate-complete con pickupCoordinates.

curl -X GET "https://service-gateway.loscenotes.com/booking/tours/tour-uuid/meeting-points" \
-H "Content-Type: application/json"

Tipos de Transporte

meeting_point

El huésped llega al punto de encuentro designado por su cuenta.

  • Precio: Generalmente gratis
  • Requiere: Sin info adicional

hotel_pickup

Recogida y regreso al hotel del huésped.

  • Precio: Fijo o basado en distancia
  • Requiere:
    • pickupLocation - Nombre del hotel
    • pickupLatitude - Latitud
    • pickupLongitude - Longitud

private_transfer

Vehículo exclusivo para el grupo.

  • Precio: Basado en tipo de vehículo
  • Requiere: Igual que hotel_pickup más selección de vehículo

Tipos de Inclusión de Servicio

included

El servicio ya está incluido en el precio base. Sin cargo adicional.

{
"inclusionType": "included",
"price": 0,
"isBookable": false
}

optional

El servicio puede agregarse por un costo adicional. Debe seleccionarse explícitamente.

{
"inclusionType": "optional",
"price": 5000,
"isBookable": true
}

not_available

El servicio no está disponible para este cenote/tour.

{
"inclusionType": "not_available",
"price": null,
"isBookable": false
}

Usando Servicios en Precios

Al llamar /pricing/calculate-complete, incluye los IDs de servicios opcionales:

{
"itemType": "cenote",
"itemId": "cenote-uuid",
"ageBreakdown": {
"adult": 2,
"child": 1
},
"selectedServices": [
"optional-service-uuid-1",
"optional-service-uuid-2"
],
"transportationType": "hotel_pickup",
"pickupLocation": "Hotel Xcaret",
"pickupLatitude": 20.4567,
"pickupLongitude": -87.1234
}

La respuesta incluirá:

  • services.included - Lista de servicios incluidos (sin cargo extra)
  • services.selected - Lista de servicios opcionales seleccionados (con costos)
  • services.totalServicesCost - Costo total de servicios opcionales

Códigos de Error

CódigoMensajeDescripción
SERVICE_NOT_FOUNDerror.service.not_foundID de servicio no encontrado
SERVICE_NOT_AVAILABLEerror.service.not_availableServicio no disponible para este item
SERVICE_NOT_BOOKABLEerror.service.not_bookableEl servicio no puede reservarse por separado