Hoteles
Autocompletar
Disponibilidad
Detalle
Reserva
Mi Cuenta

Luego de haber realizado la reserva satisfactoriamente ingresando a Mi Despegar con su usuario y contraseña puedes ver, modificar o cancelar la misma.

Acceso a la Documentacion

Proceso de Hoteles

La API de hoteles permite generar la búsqueda de un hotel. Esto se realiza mediante los servicios de Availability, el cual utiliza el Autocomplete teniendo una lista de aeropuertos, ciudades, regiones, hoteles, puntos de interés y barrios normalizadas. Esto permite facilitar el ingreso de los datos y llegar al resultado esperado por el usuario. En el siguiente proceso de Booking se visualizará el resultado de la búsqueda deseada con el listado de hoteles correspondiente al stock de despegar. Podrá ingresar al detalle de cada uno, y luego acceder a la reserva del hotel de acuerdo a los permisos que posea sobre el flujo de venta.

Mediante la implementación de API vas a poder adaptar tu caja de búsqueda, resultado y checkout con tus estilos y diseños.

  • Paso 1

    El primer paso es consultar hoteles con disponibilidad en el destino buscado.El siguiente ejemplo busca hoteles con disponibilidad en Buenos Aires en el sitio de la Argentina con fecha de checkin = 02/01/2015 y de checkout = 07/02/2015 para 2 adultos. El siguiente ejemplo busca hoteles con disponibilidad en Buenos Aires en el sitio de la Argentina con fecha de checkin = 02/01/2015 y de checkout = 07/02/2015 para 2 adultos. la solicitud de disponibilidad puede tardar varios segundos, se puede mejorar la respuesta de las aplicaciones manejando resultados parciales. Por ejemplo para utilizar los resultados parciales puede mostrar la primera página de resultados. Para esto usted puede solicitar la búsqueda completa con el fin de proporcionar paginación, filtros y clasificación. La búsqueda completa los elementos del resultado parcial. Por último, en algunos destinos si la búsqueda completa es rápida, el resultado parcial será un resultado de búsqueda completa, por lo debe estar preparado para manejarlos si se presentan.¿Cómo sabes si es un resultado parcial? Un resultado parcial No contiene el campo paging.total
    Add accepts = para una respuesta rápida parcial


    /v3/hotels/availabilities?site=AR&checkin_date=2015-02-01&checkout_date=2015-02-07&destination=982&distribution=2&language=es&accepts=partial

    Si usted ha recibido un resultado parcial, con el fin de obtener el resto de la información, debe hacer la misma petición, sin la queryString &accepts=partial:Este recurso devuelve una lista de hoteles con suficiente información para comprender y ser capaz de elegir entre diferentes opciones (por ejemplo: el precio, categoría, servicios, ubicación, etc). El segundo paso es seleccionar un hotel y conseguir el detalle de disponibilidad. Tenga en cuenta, que la respuesta contendrá tokens que utilizarán para el booking. No debe utilizar este recurso para la exploración de precios de hoteles.
    La url para el detalle disponibilidad:
    esta url requiere el id hotel elegido recibido en el paso 1.
    /v3/hotels/availabilities/519320?site=AR&checkin_date=2015-02-01&checkout_date=2015-02-07&distribution=2&language=es
    Este recurso devuelve una lista de hoteles con suficiente información para comprender y ser capaz de elegir entre diferentes opciones (por ejemplo: el precio, categoría, servicios, ubicación, etc).

  • Paso 2

    El segundo paso es seleccionar un hotel y conseguir el detalle de disponibilidad. Tenga en cuenta, que la respuesta contendrá tokens que utilizarán para el booking. No debe utilizar este recurso para la exploración de precios de hoteles. La url para el detalle disponibilidad:esta url requiere el id hotel elegido recibido en el paso 1.

    [GET] https://api.despegar.com/v3/hotels/availabilities/519320?site=AR&checkin_date=2015-02-01&checkout_date=2015-02-07&distribution=2&language=es

    La respuesta de este servicio contendrá la disponibilidad de las habitaciones, debe seleccionar 4 campos importantes en la respuesta para el booking.

    a) availability_token, e.g."4452cf73-5d14-4bcf-b2bc-2b8a60e333cf"
    b) room_pack_choice
    c) room reference
    d) payment_method_choice

    Response (roompack section):

    "roompacks": [
    {
    "choice": "4",
    ...,
    "rooms": [
    {
    "reference": "1",
    "payment_methods":[
    {"choice":"5",

    Nota la referencia de la habitación está relacionada con la distribución de la misma. Por ejemplo la búsqueda de una sola habitación contendrá una habitación de referencia. Una búsqueda de 2 habitaciones para 2 adultos se verá como la distribución = 2! 2

    /v3/hotels/availabilities/519320?site=AR&checkin_date=2015-02-01&checkout_date=2015-02-07&language=es&distribution=2!2

    Luego, en la respuesta que usted verá 2 referencias de las habitaciones.


    rooms:

    [
    {
    "reference": "1",
    "name": "DOBLE STANDARD",
    "room_code": "DBL-MX1|ST"
    },
    {
    "reference": "2",
    "name": "DOBLE STANDARD",
    "room_code":"DBL-MX1|ST"
    }
    ],
  • Paso 3

    El tercer y último paso consiste en reservar la habitación del hotel el proceso de reserva está compuesto por 3 escalones, es necesario crear un de recursos de booking, a continuación, solicitar el formulario con la información necesaria a mostrar, y finalmente enviar el formulario completo del pasajeros y la información de pago con el fin de completar la reserva. Si todo va bien, usted recibirá el código de reserva y pnr para el cliente. Un voucher será enviado a la dirección de correo electrónico proporcionada en el formulario.


    a) Para comenzar el proceso de crear una nueva reserva: [POST] https://api.despegar.com/v3/hotels/bookings


    Request body:
    {
    "source": {
    "country_code": "AR"
    },
    "reservation_context": {
    "shown_currency": "USD",
    "threat_metrix_id": "25",
    "context_language": "ES",
    "client_ip": "120.12.352.25",
    "user_agent": "Mozilla/5.0 (Windows NT 6.3; rv:36.0)
    Gecko/20100101 Firefox/36.0",
    },
    "keys": {
    "availability_token": "3c81f6c0-6c8a-469c-a0d8-983ab56bef32"
    }

    }


    La respuesta contendrá el id de reserva para los próximos pasos

    Response body:
    {
    "id": "45ad82b0-7c7e-11e4-ac22-fa163e7a50a2",
    "next_step_url":"/v3/hotels/bookings/45ad82b0-7c7e-11e4-ac22-fa163e7a50a2/forms"
    }


    b) Ahora tenemos que obtener el formulario para completarlo con los datos de la reserva. [GET] /v3/hotels/bookings/45ad82b0-7c7e-11e4-ac22-fa163e7a50a2/forms

    Response body:
    {
    "items": [
    {
    "id": "Q1JFRElUX0NBUkR8MQ==",
    "roompack_choice": "1",
    "payment_form": "CREDIT_CARD",
    "form_choice": "1"
    },
    {
    "id": "Q1JFRElUX0NBUkR8NQ==",
    "roompack_choice": "5",
    "payment_form": "CREDIT_CARD",
    "form_choice": "2"
    }
    ],
    "dictionary": {
    "form_choices": {
    "1": { ...
    ...
    ...


    Ahora debe seleccionar el roompack_choice y obtener el form_choice. Después usted necesita obtener toda la información del usuario para el paso final (formulario completo).


    c)El paso final, debe patche el formulario con la información del usuario y proporcionar el id del booking 45ad82b0-7c7e-11e4-AC22-fa163e7a50a2 y el form id Q1JFRElUX0NBUkR8MQ == en la URL del request
    [PATCH] https://api.despegar.com/v3/hotels/bookings/45ad82b0-7c7e-11e4-ac22-fa163e7a50a2/forms/Q1JFRElUX0NBUkR8MQ==

    body:
    {
    "payment_method_choice": "1",
    "form": {
    "passengers": [{
    "first_name": "Agustin",
    "last_name": "Vicente",
    "room_reference": "1"
    }],
    "payment": {
    "credit_card": {
    "number": ...,
    "expiration": ...,
    ...
    }
    ...
    {
    "contact": {
    "email": "agustin.vicenteARROBAgmail.com",
    "phones": [
    ....
    "payment_option_choice": ...
    }
    }

    Response body:
    {
    "id": "bcf8a4fc-5e00-11e4-a023-0021ccc32c3f",
    "checkout_id": 2141023547
    }

    Contenido Estático

    La mejor práctica es generar un cache / hoteles, y un snapshot de los catálogos como comodidades, planes de comidas, tamaños de cama, tipos de cama, etc. Nota: debes evitar el crawl completo de hotelesLos catálogos deben actualizarse una vez por día. El caché de Hoteles TTL debería ser determinado por el cliente. ¿Qué sucede si un hotel es despublicado y mi caché no es actualizado? Se recibirá un error durante la fase de disponibilidad o de reserva. La información de Hoteles puede ser solicitada en una o más versiones lingüísticas para i18n y catálogos siempre devolverá la información en todos los idiomas disponibles: Inglés, español y portugués. por ejemplo, después v3/hotels/availabilities?destination=982 obtendrá una lista de hoteles con sus disponibilidades, entonces usted puede recuperar el listado de hoteles y la información del hotel que puede cachear.

    GET Availabilities for Buenos Aires

    /v3/hotels/availabilities?checkin_date=2015-02-10&checkout_date=2015-02-11&site=AR&language=es&distribution=2&destination=982
    Respuesta hotel ids 241656,240873,330692,241824,240930

    GET Hotels Resources in spanish and portuguese with options

    /v3/hotels?ids=241656,240873,330692,241824,240930&language=es,pt&options=information,amenities,fees,pictures,room_types(information,amenities,pictures)

    Checkear los parámetros opcionales en la documentación, que podrán usar para decidir qué nivel de información que necesita del hotel.

Ver documentación técnica