Primeros pasos con la API de actividades de XeniCómo reservar una actividadCómo buscar etiquetas y categorías de actividadesCómo cancelar una reserva de actividadCómo comprobar la disponibilidad de la actividadCómo obtener detalles de la actividadCómo recuperar los detalles de la reserva de actividadesCómo buscar actividades con filtrosCómo buscar destinos de actividadesAPI de alquiler de coches: introducciónAPI de alquiler de coches: comprensión de los campos de respuestaCómo reservar un alquiler de cochesCómo obtener detalles del vehículo de alquiler y complementos de equipoCómo recuperar o cancelar una reserva de alquiler de cochesCómo buscar autos de alquiler disponiblesCómo buscar ubicaciones de recogidaCómo utilizar los filtros de búsqueda de alquiler de cochesMejores prácticas de integración de API de ofertasPreguntas frecuentes sobre la API de ofertasPrimeros pasos con la API de ofertas de XeniReferencia de encabezados y parámetros de solicitud de API de ofertasOfertas API Monedas admitidas y localizaciónCómo mostrar ofertas en su aplicaciónCómo buscar ofertas de hoteles por ubicaciónCódigos de error de la API de vuelos y solución de problemasPrimeros pasos con la API de vuelos de XeniCómo reservar un vueloCómo comprobar la disponibilidad y el precio de los vuelosCómo confirmar o cancelar una reserva de vueloCómo recuperar las reglas de tarifas de un vueloCómo recuperar los detalles de la reserva de un vueloCómo buscar aeropuertos usando AutocompletarCómo buscar vuelosCómo utilizar filtros, clasificación y paginación de búsqueda de vuelosCómo comprobar la disponibilidad y el precio de las habitacionesCómo filtrar los resultados de los alquileres vacacionalesCómo obtener detalles, comodidades y accesibilidad de la propiedad del resortCómo mantener y confirmar una reserva de resortCómo liberar una retención de resortCómo recuperar los detalles de la reserva del resortCómo buscar complejos turísticos disponiblesCómo buscar destinos turísticosCómo buscar ubicaciones de alquiler vacacionalCómo buscar alquileres vacacionalesCómo utilizar filtros de búsqueda y clasificación de complejos turísticosComenzando con la API de Xeni ResortsAPI de Resorts: comprensión de los estados y políticas de las reservasPrimeros pasos con la API de alquileres vacacionalesPreguntas frecuentes sobre alquileres vacacionalesTipos de propiedades admitidas para alquileres vacacionalesComprensión de la búsqueda asincrónica para alquileres vacacionalesAutenticación y firmas APIReserva de hoteles: API directa y pago SSOManejo de errores, límites de tasas y mejores prácticasPrimeros pasos con la API de Xeni HotelesGestión de reservas: estado, recuperación y cancelaciónConfirmación de precios y ciclo de vida del tokenRecuperar detalles del hotel y disponibilidad de habitacionesBúsqueda de hoteles: ubicaciones, filtros y paginaciónBuscando HotelesGestión de sesiones e ID de correlaciónAutenticación API y obtención de claves API

Cómo reservar una actividad

Última actualización: 2026-03-03

Cómo reservar una actividad

Después de confirmar la disponibilidad y seleccionar una opción de producto, utilice el punto final de reserva para crear una reserva. Este punto final requiere información del viajero, respuestas a preguntas sobre reservas y detalles de pago.

Punto final

POST {{api_host}}/api/ext/activity/booking

encabezados

EncabezadoRequeridoDescripción
x-api-keySu clave API de Xeni
Content-Typeapplication/json

Cuerpo de solicitud

ParámetroTipoRequeridoDescripción
productCodecadenaEl código de producto de la actividad.
bookingIdcadenaSu propio ID de seguimiento único para esta reserva.
travelDatecadenaFecha de viaje en formato YYYY-MM-DD.
startTimecadenaCondicionalRequerido si la actividad tiene franjas horarias específicas. Formato: HH:MM.
productOptionCodecadenaEl código de opción del producto de la respuesta de disponibilidad (por ejemplo, "TG1").
paxMixmatrizGrupos de viajeros por franja de edad (mismo formato que solicitud de disponibilidad).
bookerInfoobjetoNombre de la persona que realiza la reserva.
communicationobjetoInformación de contacto para la reserva.
bookedCurrencycadenaCódigo de moneda para la reserva (por ejemplo, "USD").
amountnúmeroImporte total de la reserva en la moneda especificada.
bookingQuestionAnswersmatrizNoRespuestas a preguntas de reserva requeridas.
languageGuideobjetoNoPreferencia de idioma y guía para la actividad.

Objeto de información del reservante

ParámetroTipoRequeridoDescripción
firstNamecadenaEl nombre de Booker.
lastNamecadenaEl apellido de Booker.

Objeto de comunicación

ParámetroTipoRequeridoDescripción
emailcadenaDirección de correo electrónico de contacto.
phonecadenaNúmero de teléfono de contacto.

Respuestas a preguntas sobre reservas

La matriz bookingQuestionAnswers le permite proporcionar respuestas a las preguntas requeridas por el proveedor de la actividad. Cada objeto de respuesta tiene los siguientes campos:

ParámetroTipoRequeridoDescripción
questioncadenaEl identificador de la pregunta.
answercadenaEl valor de la respuesta.
unitcadenaNoEl tipo de unidad para la respuesta (por ejemplo, "LOCATION_REFERENCE" para puntos de recogida).
travelerNumenteroNoEl número de viajero al que se aplica esta respuesta (indexado en 1).

Tipos de preguntas comunes


PreguntaDescripción
PICKUPPOINTLugar de recogida para actividades de recogida en el hotel. Utilice unit: "LOCATIONREFERENCE" con la referencia de ubicación como respuesta.
AGEBANDFranja de edad del viajero (p. ej., "ADULT").
FULLNAMESFIRSTNombre de un viajero específico.
FULLNAMESLASTApellido de un viajero concreto.

Objeto de guía de idioma


ParámetroTipoRequeridoDescripción
languagecadenaCódigo de idioma (por ejemplo, "en").
legacyGuidecadenaIdentificador de guía heredado (por ejemplo, "en/SERVICE_GUIDE").
typecadenaTipo de guía (por ejemplo, "GUIDE").

Solicitud de ejemplo

JSON
{
  "productCode": "12345ABC",
  "bookingId": "MY-BOOKING-001",
  "travelDate": "2026-04-15",
  "startTime": "09:00",
  "productOptionCode": "TG1",
  "paxMix": [
    {
      "ageBand": "ADULT",
      "numberOfTravelers": 2
    }
  ],
  "bookerInfo": {
    "firstName": "Jane",
    "lastName": "Smith"
  },
  "communication": {
    "email": "jane.smith@example.com",
    "phone": "+1-555-123-4567"
  },
  "bookedCurrency": "USD",
  "amount": 450,
  "bookingQuestionAnswers": [
    {
      "question": "PICKUP_POINT",
      "answer": "LOC-12345",
      "unit": "LOCATION_REFERENCE"
    },
    {
      "question": "FULLNAMESFIRST",
      "answer": "Jane",
      "travelerNum": 1
    },
    {
      "question": "FULLNAMESLAST",
      "answer": "Smith",
      "travelerNum": 1
    },
    {
      "question": "FULLNAMESFIRST",
      "answer": "John",
      "travelerNum": 2
    },
    {
      "question": "FULLNAMESLAST",
      "answer": "Smith",
      "travelerNum": 2
    }
  ],
  "languageGuide": {
    "language": "en",
    "legacyGuide": "en/SERVICE_GUIDE",
    "type": "GUIDE"
  }
}

Notas de uso

  • El bookingId es su identificador único para rastrear esta reserva en su sistema. Debe ser único en todas sus reservas.
  • El campo startTime solo es obligatorio cuando la respuesta de disponibilidad incluye múltiples intervalos de tiempo. Si la actividad no tiene horarios de inicio específicos, puedes omitir este campo.
  • El amount debe coincidir con el precio devuelto por el punto final de disponibilidad. Los importes no coincidentes harán que la reserva fracase.
  • Los bookingQuestionAnswers varían según la actividad. Algunas actividades requieren puntos de recogida, nombres de viajeros o franjas de edad. Las preguntas específicas requeridas las determina el proveedor de la actividad.
  • Si la actividad incluye la recogida en el hotel (isPickupIncluded: true de la respuesta de disponibilidad), normalmente deberá proporcionar una respuesta PICKUP_POINT con una referencia de ubicación.

Próximos pasosDespués de crear una reserva, puedes recuperar sus detalles en cualquier momento. Consulte Cómo recuperar detalles de la reserva de actividades.

¿Te resultó útil este artículo?