Developer Hub
Esta traducción se ha generado automáticamente

Respuestas de error habituales

Rapid API Las líneas de negocio comparten códigos de error, mensajes y formatos de respuesta comunes

Estos errores se dan en todas las líneas de negocio de Rapid, entre las que se incluyen:

  • Rapid Lodging API
  • Rapid Car API
  • API de Rapid Flight
  • Rapid Activities API

Se señalan las diferencias que haya entre las distintas líneas de negocio.

Rapid API gestión de errores

Te recomendamos que tu lógica de gestión de errores incluya estos puntos para evitar problemas:

  • Asegúrate de que haya una lógica de gestión de errores para gestionar los errores de las API de compras y reservas.
  • Utiliza siempre un affiliate_reference_idúnico para cada solicitud de reserva, a menos que se especifique lo contrario en las notas que aparecen a continuación.
  • Revisa y actualiza periódicamente tu lógica de gestión de errores, sobre todo en lo que respecta a las solicitudes de reserva.
  • Todas las respuestas de Rapid API tienen un código de respuesta HTTP correspondiente.

Tiempo de espera de conexión o de comunicación

Se recomienda configurar un tiempo de espera de 120 segundos para las solicitudes de reserva a través de la API de vuelos; para el alojamiento y el resto de nuestras API, recomendamos 90 segundos. Sin embargo, quizá prefieras establecer un tiempo de espera de conexión más corto para las consultas sobre la disponibilidad de productos en Shopping.

Si no has recibido respuesta en 120 segundos, Rapid API te mostrará un error 5xx, ya que los propios tiempos de espera de conexión de Rapid API's están configurados en 120 segundos.

En algunos casos, Rapid API no es compatible con el HTTP Expect: 100-Continue proceso. Es posible que tengas problemas de conexión al intentar conectarte a los servidores con este proceso, sobre todo en cURL, C#/.NET y algunos otros lenguajes de programación que siguen este proceso por defecto.

Nota: El error "HTTP 504 gateway time out" no implica que se haya agotado el tiempo de espera de Rapid. En estos casos, o bien se ha producido un fallo en un servicio de infraestructura, o bien Rapid actúa como puerta de enlace hacia otro servicio posterior y establece un límite de tiempo de espera para ese servicio. Ese tiempo de espera en la fase posterior se traducirá en un error 504. Si aparece el error 504 en una llamada de reserva, comprueba si la reserva se creó mediante «Itinerary Retrieve» (affiliate_reference_id+ correo electrónico), ya que el problema subyacente podría haberse producido antes de que se creara la reserva (comunicación con el hotel, servidor de pagos) o después (Expedia Group, gestión financiera). Además, comprueba que la conexión a Internet sea estable. Un comando Traceroute puede ayudar a identificar si hay problemas de conectividad.

Resolución de errores "5xx" de reserva y recuperación

Un error en la reserva (código de estado 5xx) o un tiempo de espera agotado no significa necesariamente que la reserva en sí no sea válida. Es posible que el error se haya producido después de crear la reserva. Te recomendamos que solicites una consulta del itinerario en affiliate_reference_idy envíes un correo electrónico para comprobar el estado de la reserva.

Cualquier error que se devuelva en 90 segundos no indica el estado final de la reserva. Por lo general, la mayoría de las reservas se confirman en un plazo de entre 13 y 30 segundos, aunque algunas pueden tardar hasta 5 minutos en completarse.

Puedes programar una lógica para comprobar el estado de la reserva tres veces en un periodo de 90 segundos. La mayoría de las respuestas se confirmarán en los primeros 30 segundos, así que puedes confirmar la respuesta sin tener que esperar los 90 segundos completos. Si no has recibido una respuesta definitiva, puedes volver a intentar la recuperación durante 30 minutos antes de ponerte en contacto con los agentes del centro de atención al cliente de Rapid API para obtener más ayuda.

Utiliza una llamada a la API «Retrieve» para consultar los resultados de la reserva en double-confirm (respuesta HTTP 200 o HTTP 404).

La respuesta de recuperación devuelve la información de retención y reanudación

A veces, tras una reserva de alojamiento realizada con éxito, la respuesta de «Itinerary Retrieve» muestra datos que parecen corresponderse con una reserva en espera o reanudada. Así que, en lugar de la información habitual sobre la reserva (habitaciones, penalizaciones por cancelación, etc.), la respuesta solo incluirá los tokens necesarios para una situación de suspensión/reanudación.

El motivo es que la reserva, aunque es válida, sigue apareciendo como «pendiente». Este estado desaparecerá, normalmente, en cuestión de minutos, por lo que es necesario repetir las solicitudes de Itinerary Retrieve hasta que se complete la reserva.

Ejemplo de respuesta:

{
  "itinerary_id": "2667552437552",
  "links": [
    {
      "rel": "retrieve",
      "method": "GET",
      "href": "/v3/itinerary/{itinerary_id}?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m"
    },
    {
      "rel": "resume",
      "method": "PUT",
      "href": "/v3/itinerary/{itinerary_id}?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m"
    },
    {
      "rel": "cancel",
      "method": "DELETE",
      "href": "/v3/itinerary/{itinerary_id}?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m"
    }
  ]
}

Desglose de errores con estructura de varios niveles

La respuesta de la API puede desglosar un error en varios niveles cuando un error de tipo « single-level » no basta para explicar todos los detalles necesarios. Repasar la información en todos los niveles te ayudará a aclarar el error y a solucionarlo.

Ejemplo de respuesta:

{
    "type": "invalid_input",
    "message": "An invalid request was sent in, please check the nested errors for details.",
    "errors": [
        {
            "type": "duplicate_itinerary",
            "message": "An itinerary already exists with this affiliate reference id.",
            "fields": [
                {
                    "name": "affiliate_reference_id",
                    "type": "body",
                    "value": "XXXXXX"
                }
            ]
        }
    ]
}

Códigos de respuesta HTTP

400 - Bad Request

Aparece si tu solicitud tenía un formato o valores incorrectos.

Los errores de código 400 «Solicitud incorrecta» indican un problema con el encabezado «Request Booking». La respuesta de error incluirá el campo concreto del array de error que no es válido en el encabezado de la solicitud de reserva. El encabezado está formado por varias matrices y un sub-arrays,, como «rooms» y «payments». La matriz general es el cuerpo. De esta forma, body.email indicaría el parámetro del correo electrónico para el cuerpo del encabezado.

Nota: En la API de alojamiento, la matriz «rooms» del encabezado «Booking» debe tener el mismo número de entradas que las habitaciones solicitadas en la llamada a «Availability».

Se devuelve un error 400 (solicitud incorrecta) con la etiqueta "Tomcat Exception Report" cuando los parámetros de la solicitud son demasiado grandes, con mayor frecuencia en las API Property Content y Get Availability. Para evitar este error, reduce el número de alojamientos o elimina los parámetros innecesarios de la solicitud.

Ejemplos de respuesta:

Idiomas no aceptados:

{
  "type": "invalid_input",
  "message": "An invalid request was sent in, please check the nested errors for details.",
  "errors": [
    {
      "type": "language.not_supported",
      "message": "Language is not supported. Supported languages are: [de-DE, en-US, es-ES, es-MX, fr-FR, id-ID, it-IT, ja-JP, ko-KR, pt-BR, zh-CN]",
      "fields": [
        {
          "name": "language",
          "type": "querystring",
          "value": "xx-XX"
        }
      ]
    },
    {
      "type": "filter.mismatch",
      "message": "Existing booking is expedia_collect, this cannot be changed",
      "fields": [
        {
          "name": "filter",
          "type": "querystring",
          "value": "property_collect"
        }
      ]
    }
  ]
}

Falta el valor de la versión:

{
  "type": "version.required",
  "message": "You have not specified a version, the supported versions are: [1, 2]",
  "fields": [
    {
      "name": "version",
      "type": "path",
      "value": "missing"
    }
  ]
}

El valor de la versión no es válido:

{
  "type": "version.unsupported",
  "message": "You have requested a version that is not supported, supported versions are: [1, 2]",
  "fields": [
    {
      "name": "version",
      "type": "path",
      "value": "3"
    }
  ]
}

401 - Unauthorized

Se devuelve si falta tu encabezado de autorización HTTP o si no se ha podido analizar. Cada solicitud a cualquier API de Rapid Lodging debe incluir el hash sin sal deSHA-512, que es la concatenación de tu clave API + el secreto compartido + la marca de tiempo UNIX en segundos. Consulta nuestra página de verificación por firma para obtener todos los detalles.

Ejemplo de respuesta 401 «No autorizado» de la API de alojamiento:

{
  "type": "request_unauthenticated",
  "message": "Data required to authenticate your request is missing. Ensure that your request follows the guidelines in our documentation.",
  "fields": [
     {
       "name": "apikey",
       "type": "header",
       "value": "jaj3982k239dka328e"
     },
     {
       "name": "signature",
       "type": "header",
       "value": "129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b"
     },
     {
       "name": "timestamp",
       "type": "header",
       "value": 198284729
     },
     {
       "name": "servertimestamp",
       "type": "server",
       "value": 198284729
     }
  ]
}

Para las llamadas a la API de Rapid Flight, tienes que incluir un token web JSON (JWT) válido de EGToken principal en el encabezado de la solicitud.

Authorization: EGToken principal-JWT={encodedJwt}

El JWT principal se obtiene mediante el intercambio de tokens y credenciales de cliente de OAuth 2.0; para más detalles, consulta las guías de uso de la autenticación OAuth 2.0 y de la API de reserva rápida de vuelos.

403 - Forbidden

Aparece cuando tu encabezado HTTP de autorización es válido, pero no se te permite acceder al recurso solicitado.

Ejemplo de la respuesta 403 - Forbidden:

{
  "type": "request_unauthorized",
  "message": "Your request could not be authorized."
}

404 - Not Found

Aparece si no ha podido encontrarse el recurso de la API solicitado. Compara la URL de la solicitud con los ejemplos que hemos documentado.

La API de geografía de Lodging y la API de contenido también usan respuestas 404 para indicar que no se pueden localizar los archivos o recursos solicitados relacionados con la geografía o content-specific. Para obtener ejemplos completos, consulta las páginas respectivas de la documentación.

El código 404 después de una recuperación de itinerario indica que no se ha podido encontrar la reserva. Si la recuperación se ha realizado debido a un error de reserva, este código indica que la reserva no se ha creado. Sin embargo, tienes que asegurarte de que los parámetros de la solicitud de la API de recuperación de itinerarios sean válidos, así que comprueba que el « affiliate_reference_id », el correo electrónico y/o el número de itinerario sean correctos. Además, si la llamada a la API de recuperación se ha realizado menos de 90 segundos después de la llamada de reserva, te recomendamos que vuelvas a intentar la recuperación.

Ejemplo de respuesta:

{
    "type": "resource.not_found",
    "message": "The requested resource could not be found."
}

409 - Price Mismatch

Muchos proveedores utilizan la fijación dinámica de precios, o lo que también se conoce como «time-based ». Esto significa que los precios varían en función de los algoritmos de la oferta y la demanda. Expedia Group recibe las tarifas actualizadas varias veces por segundo, lo que significa que las tarifas cambian con frecuencia.

Es importante tener en cuenta que, por lo general, esta decisión la toma el proveedor y no Expedia Group. Además, como hay almacenamiento en caché a varios niveles para las tarifas y la disponibilidad, puede haber varias capas de latencia en cualquier reserva.

Una discrepancia de precios (PMM) es algo que puede pasar y tiene varias causas, como fallos en los sistemas o que estos no reflejen los precios actualizados. Deberías hacer un seguimiento de la frecuencia de estos incidentes y ponerte en contacto con el servicio de asistencia si la tasa aumenta de repente o alcanza un umbral determinado.

Si se ha producido un PMM en varios resultados a la vez, deberías comprobar si hay una posible degradación rápida.

Si un PMM devuelve los mismos resultados durante un periodo prolongado, probablemente se deba a que el proveedor ha introducido mal las tarifas. Puedes ponerte en contacto con el servicio técnico para comprobarlo.

Para recuperarte de un PMM, vuelve a realizar la llamada «Price Check» (API de alojamiento) o «Flight Details» (API de vuelos) para obtener un nuevo token de la URL de la reserva. Puedes utilizar el mismo affiliate_reference_id en la llamada de reserva.

Ejemplo de respuesta:

{
  "type": "price_mismatch",
  "message": "Payment amount did not match current price, please check price and try again.",
  "fields": [
    {
      "name": "payments.amount",
      "type": "body",
      "value": "100.00"
    },
    {
      "name": "price.amount",
      "type": "body",
      "value": "120.00"
    }
  ]
}

410 - Gone or Sold Out

Devuelve un valor si el enlace Rapid API al que se está accediendo ha caducado o si el stock solicitado ya no está disponible.

Muchos proveedores tienen enlaces de comunicación directos y sincrónicos con Expedia Group que funcionan en tiempo real.

La reserva de comunicación sincrónica se produce cuando se realizan llamadas a «Disponibilidad de compras y comprobación de precios» (API de alojamiento) o a «Detalles de vuelos» (API de vuelos) utilizando los datos de los proveedores que te facilitamos y que gestionamos. Este error se produce cuando no hay suficiente disponibilidad para la selección de la reserva.

Puede que sea algo temporal y, si lo intentas de nuevo, quizá el artículo ya esté disponible. Espera 90 segundos y, a continuación, comprueba el estado de la reserva con una solicitud de recuperación utilizando el mismo affiliate_reference_id que se envió con la reserva. Si no se encuentra ninguna reserva, puede que el viajero tenga que elegir otra opción.

Los mensajes de error de «agotado» también pueden aparecer si la conexión con el proveedor no funciona bien. En ese caso, no tenemos ninguna indicación de la disponibilidad real.

Ejemplo de respuesta:

Enlace caducado:

{
  "type": "link.expired",
  "message": "The link you followed has expired. Please request a new link."
}

Agotado:

"type": "rooms_unavailable",
"message": "One or more requested rooms are unavailable."

426 - Upgrade Required

Devuelve un valor si la solicitud no ha utilizado Transport Layer Security (TLS), un protocolo criptográfico que sustituye a Secure Sockets Layer (SSL).

Ejemplo de respuesta:

{
  "type": "upgrade_required",
  "message": "This service requires the use of TLS."
}

429 - Rate Limit Errors

Cuando el recuento de solicitudes supera el límite de cuota, se devuelve un código de estado 429. Cada respuesta puede ser sometida a dos límites de cuota diferentes: una en la que una integración está enviando solicitudes a una velocidad superior al límite y otra en la que los servidores de Expedia Group están sufriendo una carga que sobrepasa el límite.

Cuando haces una solicitud a la API de Expedia Group, el servidor receptor comprueba si el número de solicitudes está dentro del límite. Si el recuento de solicitudes está dentro del límite, la solicitud prosperará y se incrementará el recuento para el cliente. Si el recuento de la solicitud del cliente sobrepasa el límite, el servidor devolverá una respuesta con un código HTTP de estado 429 (demasiadas solicitudes).

El servidor puede incluir, de forma opcional, un encabezado Rate-Limit-Day-Reset y Rate-Limit-Minute-Reset. Indica cuánto tiempo deberías esperar antes de enviar siguiente solicitud. Se trata de las marcas de tiempo en las que se producirá la siguiente caída, expresadas en microsegundos (no en milisegundos).

Por ejemplo, cuando se convierten a una fecha u hora, el valor "15489792000000" da como resultado Friday, February 1, 2019 12:00:00 AM (UTC).

Nota: Si recibes un error por un exceso de solicitudes, espera al menos cinco minutos antes de intentar enviar una solicitud corregida. Si lo reintentas antes de ese tiempo, se seguirán produciendo errores debido a la sincronización de la caché.

Ejemplo de respuesta:

HTTP/1.1 429 Too Many Requests
Connection →keep-alive
Content-Length →106
Date →Fri, 01 Feb 2019 06:20:51 GMT
Rate-Limit-Day-Remaining →18
Rate-Limit-Day-Reset →1548979200000
Rate-Limit-Minute-Remaining →0
Rate-Limit-Minute-Reset →1549002000000
Rate-Limit-Reduction-Status →inactive
Server →EAN
Transaction-Id →003224d2-1407-42fe-8bf8-6d74226e7f00

500 – Internal Server Error

Devuelve un error en el servidor « Rapid API » o en los sistemas anteriores. Sigue las instrucciones del campo del mensaje si se indica una acción específica; de lo contrario, intenta realizar la solicitud otra vez con el mismo affiliate_reference_id.

Rapid API devuelve un código HTTP 500 cuando detecta un problema, pero no puede dar más detalles sobre cuál es exactamente el problema. Todos los socios deben tener en cuenta que, de vez en cuando, pueden recibir algunas respuestas con el código 500 al usar Rapid API.

También se puede producir un error HTTP 500 cuando se utiliza un punto de venta no compatible, como Siria.

Si has recibido un error en una respuesta de la API que no sea "Crear reserva" o "Cancelar reserva", y no parece haber ningún problema de conexión, vuelve a intentar la solicitud en otro momento. Puede que incluya un encabezado Retry-After para indicar el retardo mínimo (en segundos) antes de volver a intentarlo.

Si has recibido un error en la respuesta de la API al crear una reserva:

  • Espera 90 segundos y, a continuación, comprueba el estado de la reserva con una solicitud de recuperación utilizando el mismo affiliate_reference_id que se envió con la reserva.
  • Si no se encuentra ninguna reserva o sigues recibiendo el error 500, vuelve a intentar hacer la reserva más tarde.

Si te ha aparecido el error en la respuesta de la API al cancelar una reserva:

  • Espera 90 segundos y, a continuación, comprueba el estado de la reserva con una solicitud de Itinerary Retrieve utilizando el itinerary_id conocido.
  • Si no se cancela la reserva o sigues recibiendo el error 500, vuelve a intentar la solicitud de cancelación más tarde.

Ejemplos de respuesta:

{
  "type": "unknown_internal_error",
  "message": "An internal server error has occurred."
}
{
  "type": "internal_error",
  "message": "An internal server error has occurred. Please discard any previously received results in this pagination and restart the pagination from the beginning."
}

503 - Service Unavailable

El error HTTP 503 suele ser temporal e indica que Rapid API,, o un servicio subyacente, no puede gestionar la solicitud en este momento. Hay varias razones posibles para esto, desde una sobrecarga temporal hasta la pérdida de la conexión con el proveedor.

Si te ha aparecido el error en una respuesta de la API que no sea «Crear reserva» o «Cancelar reserva», y no se conoce ningún problema de rendimiento, vuelve a intentar la solicitud más tarde. Puede que incluya un encabezado Retry-After para indicar el retardo mínimo (en segundos) antes de volver a intentarlo.

Si has recibido un error en la respuesta de la API al crear una reserva:

  • El enlace de reserva que aparece en la respuesta anterior de «Comprobación de precios» (API de alojamiento) o «Detalles del vuelo» (API de vuelos) caduca al cabo de poco tiempo. Si, tras el primer intento, se te muestra un error HTTP 503, es probable que el enlace haya caducado. Deberás obtener un nuevo enlace y realizar un nuevo intento de reserva.
  • Si recibes un 503 en el segundo intento, espera 90 segundos y, a continuación, comprueba el estado de la reserva con una solicitud de recuperación utilizando el mismo affiliate_reference_id que se envió con la reserva.
  • Si no se ha encontrado ninguna reserva o sigues recibiendo el error 503, vuelve a intentar hacer la reserva más tarde.

Si te ha aparecido el error en la respuesta de la API al cancelar una reserva:

  • Espera 90 segundos y, a continuación, comprueba el estado de la reserva con una solicitud de Itinerary Retrieve utilizando el itinerary_id conocido.
  • Si la reserva no se cancela o sigues recibiendo el error 503, vuelve a intentar la solicitud de cancelación más tarde.

Ejemplo de respuesta:

{
  "type": "service_unavailable",
  "message": "This service is currently unavailable."
}

504 - Gateway Time Out

El error HTTP 504 no suele provenir del servidor Rapid API, sino más bien de la infraestructura en la nube o de perímetro, e indica que algún componente de la infraestructura de red (como el equilibrador de carga) ha fallado durante la transacción. Normalmente es algo pasajero.

Nota: Puede que se produzca un tiempo de espera antes o después de crear el itinerario, así que comprueba siempre si se ha creado.

Las respuestas de error HTTP 504 (y 502) están en formato HTML, en lugar del par «tipo/objeto de mensaje» de JSON que se utiliza en Rapid API's. Esto es otro indicio de que estos errores no los genera Rapid API.

Ejemplo de respuesta:

<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
</body>
</html>

Tasa umbral de respuestas erróneas

Para establecer tus propios valores umbral, deberías medir la tasa diaria de los siguientes códigos de respuesta: 409, 410, 500, 503 y 504. Si se supera el límite, ponte en contacto con el servicio de asistencia de Rapid API.

Expedia Group No hay unos valores límite fijos, ya que varían en función del mercado de tu organización, además de otros factores. Conocer el mercado es fundamental para averiguar por qué se producen algunos mensajes de error. Nuestra recomendación es que contéis con que entre el 5 % y el 6 % de las llamadas para hacer reservas puedan fallar con un error de código 50x en un periodo diario o semanal.

Con el tiempo, deberías ser capaz de calcular tus propios valores umbral. No te fijes solo en un aumento repentino en el número diario de errores; aunque el límite esté fijado en 5 al día, recibir dos errores 500 con menos de 5 minutos de diferencia, por ejemplo, puede ser motivo para ponerte en contacto con el servicio de asistencia de Rapid API.

Registros

Si el servicio de asistencia de Rapid API te pide los registros de solicitud y respuesta, intenta facilitar lo siguiente:

  • El valor Transaction-Id del encabezado de respuesta de la API. Esto es fundamental para investigar a fondo el caso.
  • Los registros de solicitudes y respuestas de la API. Los registros de solicitudes deben incluir la URL completa del punto de conexión utilizado. Los registros de respuestas deben incluir el código HTTP devuelto, los datos completos de las respuestas y cualquier encabezado que se haya devuelto.
  • La solicitud de la API de disponibilidad con el parámetro point_of_sale, así como la respuesta de disponibilidad. Esto permitirá al servicio de asistencia identificar la cuenta y el perfil de Rapid API que se están utilizando.
  • Encabezado de solicitud de la API de reservas y encabezado de autorización (con APIKey, firma y marca de tiempo) para cada solicitud de reserva.
  • La URL de la solicitud de reserva y el token que aparecen en los registros de solicitudes.
  • La recuperación de itinerario emitida después de una llamada de la API de reserva, independientemente de si dicha llamada se ha realizado correctamente.

Incluye también la solicitud y la respuesta JSON completas. Una cadena JSON debe tener el formato « double-quoted, », así que no hace falta incluir el carácter de escape «\» delante del carácter « double-quote ».

Código JSON correctoCódigo JSON incorrecto
json "id": "208646250", "status": "available",json\"id\": \"208646250\", \"status\": \"available\",

Usa el carácter de escape «barra invertida» delante de una comilla doble solo cuando necesites que la comilla doble forme parte de la cadena.

Ejemplo de respuesta:

"spokenwords": "He said "hello world""

Nota: No conviertas los registros a formato PDF. Expedia Group El equipo de soporte a veces copia y pega datos de registro en herramientas internas, y el formato PDF añade caracteres de línea innecesarios a los datos.

Apéndice

|

Respuestas de error HTTP

Esta lista incluye los errores más comunes relacionados con las compras, las reservas, las cancelaciones y otros aspectos. El valor de type puede cambiar sin previo aviso.

APICódigo HTTPValor del tipo de errorMotivoAcción recomendada
General401Problemas de accesoComunicación comercial o técnican/a
General403Problemas de accesoComunicación comercial o técnican/a
General426La versión de la API es demasiado antigua.Comunicación comercial o técnican/a
General429Control del tráficoComunicación comercial o técnican/a
Reservas400affiliate_confirmation_id.invalid_exceeds_char_limitaffiliate_reference_id tiene un formato incorrecto.Corregir el contenido de la solicitud.
Reservas400book.hold_and_resume.not_allowedProblemas de accesoSegún el caso
Reservas400payments.affiliate_collect.not_allowedProblemas de accesoSegún el caso
Reservas400payments.declinedError en la transacciónConsultar los errores anidados para obtener información.
Reservas400payments.rejectedError en la transacciónConsultar los errores anidados para obtener información.
Reservas400payments.invalidError en la transacciónConsultar los errores anidados para obtener información.
Reservas400payments.fraud_detectedSospechas de fraudeEl usuario no debe realizar más reservas. Se debe seguir investigando el caso.
Reservas400body.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400body_requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400address.city.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400address.country_code.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400address.line_1.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400address.postal_code.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400address.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400address.state.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400billing_contact.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400customer_ip.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400email.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400email.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400family_name.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400family_name.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400given_name.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400given_name.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400invalid_inputEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400json.invalid_formatEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400json_formatEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400link.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400payments.affiliate_collect.missing_informationEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400payments.credit_card.type.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400payments.credit_card.type.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400payments.multiple_paymentsEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400payments.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400payments.type.not_supportedEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400phone.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400phone.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400rooms.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400rooms.size.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400test.content_invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Reservas400n/aExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas400rooms.invalid_sizeEl número de las habitaciones de compra no coincide con el de la reserva.Corregir el contenido de la solicitud.
Reservas400payments.credit_card.number.requiredFalta el número de la tarjeta bancaria.Mejorar la verificación local de la información de las tarjetas bancarias.
Reservas400payments.credit_card.number.invalidNúmero de tarjeta bancaria no válido.Mejorar la verificación local de la información de las tarjetas bancarias.
Reservas400payments.credit_card.security_code.requiredFalta el código de verificación de la tarjeta bancaria.Mejorar la verificación local de la información de las tarjetas bancarias.
Reservas400payments.credit_card.security_code.invalidCódigo de verificación de tarjeta bancaria no válido.Mejorar la verificación local de la información de las tarjetas bancarias.
Reservas400payments.credit_card.security_code.not_matchedCódigo de verificación de tarjeta bancaria no válido.Mejorar la verificación local de la información de las tarjetas bancarias.
Reservas400payments.credit_card.expiredLa tarjeta bancaria ha caducado.Mejorar la verificación local de la información de las tarjetas bancarias.
Reservas400payments.credit_card.expiration_month.requiredFalta la validez de la tarjeta bancaria.Mejorar la verificación local de la información de las tarjetas bancarias.
Reservas400payments.credit_card.expiration_year.requiredFalta la validez de la tarjeta bancaria.Mejorar la verificación local de la información de las tarjetas bancarias.
Reservas400payments.credit_card.expiration_year.length_invalidValidez de la tarjeta bancaria no válida.Mejorar la verificación local de la información de las tarjetas bancarias.
Reservas400payments.insufficient_fundsSaldo insuficiente de la tarjeta bancaria.Pedir al usuario que confirme la información y volver a intentarlo.
Reservas400duplicate_itineraryIntento de reserva duplicado.Esperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas409price_mismatchSe ha detectado un ajuste del precio antes de procesar la reserva.Esperar 90 segundos y utilizar affiliate_reference_id para revisar posibles reservas duplicadas antes de sugerir al usuario un nuevo precio u otra habitación/hotel.
Reservas410rooms_unavailableSe ha detectado un estado agotado antes de procesar la reserva.Esperar 90 segundos y utilizar affiliate_reference_id para revisar posibles reservas duplicadas antes de sugerir al usuario otra habitación u hotel.
Reservas415n/aExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas415n/aExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas500create.system_failureExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas500payment_registration.system_failureExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas500pricing_system.failureExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas500unknown_internal_errorExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas500n/aExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas503create.no_responseExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas503service_unavailableExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Reservas504n/aExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva.
Cancelar400cancel.post_checkoutCancelar después de la fecha de salida.Detener la cancelación online después de la fecha de salida y contactar con el servicio de atención al cliente.
Cancelar400customer_ip.requiredEl contenido de la solicitud es incorrecto.Utilizar affiliate_reference_id para revisar las actualizaciones de la reserva, contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Cancelar400invalid_inputEl contenido de la solicitud es incorrecto.Utilizar affiliate_reference_id para revisar las actualizaciones de la reserva, contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Cancelar400room_id.invalidEl contenido de la solicitud es incorrecto.Utilizar affiliate_reference_id para revisar las actualizaciones de la reserva, contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Cancelar400test.content_invalidEl contenido de la solicitud es incorrecto.Utilizar affiliate_reference_id para revisar las actualizaciones de la reserva, contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Cancelar400room_already_cancelledCancelar un pedido cancelado.Utilizar affiliate_reference_id para revisar las actualizaciones de la reserva, contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Cancelar400cancel.post_checkinCancelar después de la fecha de entrada.Detener la cancelación online después de la fecha de entrada y contactar con el servicio de atención al cliente.
Cancelar404resource_not_foundExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva; contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Cancelar500cancel.system_failureExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva antes de volver a intentarlo; contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Cancelar500unknown_internal_errorExcepción desconocidaVolver a intentar la operación y contactar con el servicio de atención al cliente.
Cancelar501itinerary_level_cancel_not_supportedEl contenido de la solicitud es incorrecto.Esperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva; contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Cancelar503cancel.system_failureExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva antes de volver a intentarlo; contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Cancelar503service_unavailableExcepción desconocidaEsperar 90 segundos y utilizar affiliate_reference_id para revisar las actualizaciones de la reserva antes de volver a intentarlo; contactar con el servicio de atención al cliente y realizar las investigaciones necesarias.
Comprobación de los precios200availability.not_foundAgotadoSugerir a los viajeros que cambien de tipo de habitación o de hotel.
Comprobación de los precios200n/aExcepción desconocidaVolver a intentar
Comprobación de los precios400customer_session_id.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Comprobación de los precios400invalid_inputEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Comprobación de los precios400link.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Comprobación de los precios400test.content_invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Comprobación de los precios409availability.not_foundAgotadoSugerir a los viajeros que cambien de tipo de habitación o de hotel.
Comprobación de los precios409n/aExcepción desconocidaVolver a intentar
Comprobación de los precios410invalid_inputEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Comprobación de los precios410availability.not_foundAgotadoSugerir a los viajeros que cambien de tipo de habitación o de hotel.
Comprobación de los precios410n/aExcepción desconocidaVolver a intentar
Comprobación de los precios410checkin.invalid_date_too_far_outReservar lo antes posible una estancia para los próximos 500 días.Mejorar la validación local de las entradas de los usuarios.
Comprobación de los precios500availability.not_foundAgotadoSugerir a los viajeros que cambien de tipo de habitación o de hotel.
Comprobación de los precios500unknown_internal_errorExcepción desconocidaVolver a intentar
Comprobación de los precios500n/aExcepción desconocidaVolver a intentar
Comprobación de los precios503availability.not_foundAgotadoSugerir a los viajeros que cambien de tipo de habitación o de hotel.
Comprobación de los precios503service_unavailableExcepción desconocidaVolver a intentar
Comprobación de los precios503n/aExcepción desconocidaVolver a intentar
Compras200availability.not_foundEstado agotado o código de hotel no válido.Sugerir a los viajeros que cambien de tipo de habitación o de hotel.
Compras400property_id.above_maximumUna sola solicitud puede incluir hasta 250 ID de alojamiento.Corregir el contenido de la solicitud.
Compras400currency.not_supportedLa unidad de divisa no es válida.Según el caso
Compras400departure.invalid_departure_before_arrivalLa fecha de salida es anterior a la fecha de entrada.Mejorar la validación local de las entradas de los usuarios.
Compras400number_of_adults.invalid_above_maximumCada habitación no puede superar los 15 adultos.Mejorar la validación local de las entradas de los usuarios.
Compras400number_of_adults.invalid_below_minimumCada habitación no puede superar los 15 adultos.Mejorar la validación local de las entradas de los usuarios.
Compras400number_of_occupancies.invalid_above_maximumCada habitación no puede superar los 15 adultos.Mejorar la validación local de las entradas de los usuarios.
Compras400checkin.invalid_date_formatEl contenido de la solicitud es incorrecto.Mejorar la validación local de las entradas de los usuarios.
Compras400checkin.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400checkout.invalid_date_formatEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400checkout.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400child_age.invalid_age_formatEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400child_age.invalid_outside_accepted_rangeEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400country_code.above_maximumEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400country_code.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400country_code.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400currency.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400customer-ip.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400filter.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400include.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400invalid_inputEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400language.above_maximumEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400language.not_supportedEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400language.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400link.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400occupancy.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400platform_name.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400property_id.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400rate_option.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400rate_plan_count.above_maximumEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400rate_plan_count.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400rate_plan_count.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400sales_channel.above_maximumEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400sales_channel.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400sales_channel.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400sales_environment.above_maximumEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400sales_environment.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400sales_environment.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400sort_type.above_maximumEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400sort_type.invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400sort_type.requiredEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400test.content_invalidEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras400arrival.invalid_date_in_the_pastFecha de entradaMejorar la validación local de las entradas de los usuarios.
Compras400checkin.invalid_date_in_the_pastFecha de entradaMejorar la validación local de las entradas de los usuarios.
Compras400checkout.above_maximumEstancia superior a 28 díasMejorar la validación local de las entradas de los usuarios.
Compras400checkout.invalid_length_of_stay_too_longEstancia superior a 28 díasMejorar la validación local de las entradas de los usuarios.
Compras400checkout.invalid_length_of_stay_too_shortEstancia superior a 28 díasMejorar la validación local de las entradas de los usuarios.
Compras400departure.invalid_length_of_stay_too_longEstancia superior a 28 díasMejorar la validación local de las entradas de los usuarios.
Compras400departure.invalid_length_of_stay_too_shortEstancia superior a 28 díasMejorar la validación local de las entradas de los usuarios.
Compras400checkout.invalid_checkout_before_checkinLa fecha de salida es anterior a la fecha de entrada.Mejorar la validación local de las entradas de los usuarios.
Compras400property_id.invalidID de alojamiento no válidoCorregir el contenido de la solicitud.
Compras400arrival.invalid_date_too_far_outReservar lo antes posible una estancia para los próximos 500 días.Mejorar la validación local de las entradas de los usuarios.
Compras400checkin.invalid_date_too_far_outReservar lo antes posible una estancia para los próximos 500 días.Mejorar la validación local de las entradas de los usuarios.
Compras403filter.conflictEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras403request_forbiddenEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras404availability.not_foundEstado agotado o código de hotel no válido.Sugerir a los viajeros que cambien de tipo de habitación o de hotel.
Compras500invalid_inputEl contenido de la solicitud es incorrecto.Corregir el contenido de la solicitud.
Compras500unknown_internal_errorExcepción desconocidaVolver a intentar
Compras500checkin.invalid_date_too_far_outReservar lo antes posible una estancia para los próximos 500 días.Mejorar la validación local de las entradas de los usuarios.
Compras503availability.not_foundEstado agotado o código de hotel no válido.Sugerir a los viajeros que cambien de tipo de habitación o de hotel.
Compras503service_unavailableExcepción desconocidaVolver a intentar

Pseudocódigo de gestión de reservas

Mostramos un ejemplo del proceso de reserva por pasos con las API de creación de reservas y de recuperación de reserva. Incluye sugerencias para gestionar las reservas y hacer un seguimiento de las excepciones.

function create_booking(affiliate_reference_id){
  ### make API request to create booking ###
  book_resp = rapid_book_req(affiliate_reference_id, timeout = 90seconds, hold = false)
  ### Retrieve is always required to confirm final status of bookings, to avoid duplicate requests for the last inventory ###
  retrieve_booking(book_resp.retrieve_link, affiliate_reference_id, book_resp.status_code, book_resp.req_timestamp) }

function retrieve_booking(retrieve_link, affiliate_reference_id, book_resp_status_code, rapid_book_req_time) {
  ### display the pending booking message to customers ###
  booking_final_status = "pending"
  ### always use Retrieve link when it returned in booking response ###
   if (retrieve_link == null) {
       retrieve_link = "/rapid_path?XXXXXX&affiliate_reference_id=" + affiliate_reference_id }
       ### confirm the final status of bookings ###
      while (booking_final_status not in ("booked", “canceled”, "manualFollowup", "failed")) 
        ### make API request to retrieve booking ###
      retrieve_resp = retrieve_resquest(retrieve_link) 
      ### a complete Retrieve returns room level Expedia confirmation ID ###
      if (retrieve_resp.rooms.[].confirmation_id is not null) {
          booking_final_status = retrieve_resp.rooms.[].status }
      ### retry Retrieve to monitor booking updates if 90 seconds have not elapsed yet OR system error returned ###
      elseif (currentTime - rapid_book_req_time <= 90seconds) or (retrieve_resp.status_code not in (404, 200)) {
          continue }
      ### retry Retrieve for incomplete booking result or make manual follow-ups after 11 minutes ### 
      elseif (book_resp_status_code in (200, 201, 202, 204)) or (retrieve_resp.itinerary_id is not null) {
          if (currentTime - rapid_book_req_time <= 11minutes) {
            continue } else { booking_final_status = "manualFollowup" } 
      ### retry booking request with the same affiliate reference id value to cover the booking ###
      elseif (booking_retries <= 2) {
          create_booking(affiliate_reference_id) } 
      ### the booking is failed only when the above actions have all been taken ###
      else {
booking_final_status = "failed" }}}

Ejemplos de interfaces de usuario para errores en las reservas

Ejemplo de reserva que no se ha resuelto rápidamente

Reserva que no se ha resuelto rápidamente.

Ejemplo de reserva confirmada

Reserva confirmada.

Ejemplo de error en la reserva

Error de reserva.

¿Te ha resultado útil esta página?
¿Cómo podemos mejorar este contenido?
¡Gracias por ayudarnos a mejorar!