This is an auto-generated translation

Respuestas de error habituales

Los servicios de la API comparten los siguientes códigos de error, mensajes y formatos de respuesta habituales.

Recomendaciones para solucionar errores de Rapid

Lógica de la resolución de errores

  • Las plataformas y los socios deben asegurarse de que existe una lógica de tratamiento de errores para gestionar los errores de la 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 siguientes notas.
  • Debes revisar y actualizar constantemente tu lógica de gestión de errores, especialmente para las solicitudes de reserva.
  • Todas las respuestas de Rapid API tienen un código HTTP correspondiente, consulta a continuación la lista de códigos HTTP de respuesta.

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

Se recomienda un ajuste de tiempo de espera de conexión a la API de 120 segundos para las solicitudes de Reserva de la API de Vuelo; para Alojamiento y nuestras otras API, recomendamos 90 segundos. Sin embargo, puedes decidir utilizar un tiempo de espera de conexión menor para las llamadas de disponibilidad de compra.

Si no has recibido una respuesta en 120 segundos, Rapid API emitirá un error 5xx porque los tiempos de espera de conexión propios de Rapid API's están fijados en 120 segundos.

En algunos casos, Rapid API no admite el proceso HTTP Expect: 100-Continue. Puedes experimentar problemas de conexión al intentar conectar servidores con el proceso, especialmente en los lenguajes cURL, C#/.NET y algunos otros lenguajes de codificación que siguen el 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 ha fallado un servicio de infraestructura o bien Rapid está actuando como pasarela hacia otro servicio descendente y establece un límite de tiempo de espera para ese servicio. Ese tiempo de espera descendente se activará como un 504. Si ocurre el 504 para una llamada de Reserva, comprueba si la reserva se creó utilizando Recuperación de Itinerario (affiliate_reference_id+ email), ya que el problema posterior puede haberse producido antes de que se creara la reserva (comunicación con el hotel, servidor de pago) o después (Expedia Group gestión financiera). Comprueba también que la conexión a Internet es 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 de reserva (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 emitas una Recuperación de Itinerario con affiliate_reference_id+ 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. Normalmente, la mayoría de las reservas se resuelven en una reserva confirmada en 13-30 segundos, aunque algunas pueden tardar hasta 5 minutos en resolverse.

Puedes implementar una lógica para comprobar el estado de la reserva 3 veces en un periodo de 90 segundos. La mayoría de las respuestas se confirmarán en los primeros 30 segundos y entonces podrás confirmar la respuesta sin esperar los 90 segundos completos. Si no se ha 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 llamadas de Rapid API para obtener más ayuda.

Utiliza una llamada a la API de Recuperación para double-confirm los resultados de la reserva (respuesta HTTP 200 o HTTP 404).

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

Ocasionalmente, tras una reserva de Alojamiento realizada con éxito, la respuesta Recuperar itinerario devolverá datos de respuesta que parecen ser de una reserva retenida/reanudada. Así, en lugar de la información de reserva esperada (habitaciones, penalizaciones por cancelación, etc.), la respuesta sólo tendrá los tokens necesarios para una situación de retención/reanudación.

La razón es que la reserva, aunque válida, todavía tiene una bandera de 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 podría desglosar un error en varios niveles cuando un error de single-level no pudiera explicar todos los detalles necesarios. Iterar la información sobre todos los niveles ayudará a aclarar y solucionar el error.

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 errónea indican un problema con la cabecera de la Solicitud de reserva. La respuesta de error incluirá el campo de matriz de error no válido real en la cabecera de la solicitud de reserva. La cabecera consta de una serie de matrices y sub-arrays,, como habitaciones y pagos. 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: Para la API de alojamiento, la matriz de habitaciones de la cabecera de la reserva debe tener el mismo número de entradas que las habitaciones solicitadas en la llamada a Disponibilidad.

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

Devuelve si falta la cabecera de autorización HTTP o no se ha podido analizar. SHA-512 Cada solicitud a cualquier API de Rapid Lodging debe incluir el hash de la concatenación de tu Clave API + secreto compartido + 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 autorizada 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, debes incluir un EGToken principal JSON web token (JWT) válido en la cabecera de la solicitud.

Authorization: EGToken principal-JWT={encodedJwt}

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

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 del alojamiento y la API de contenido también utilizan respuestas 404 para indicar cuando no se pueden localizar los archivos o recursos geográficos o content-specific solicitados. 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 Itinerario eran válidos, así que asegúrate de que los campos Recuperar affiliate_reference_id, correo electrónico y/o número de itinerario son correctos. Además, si la llamada a la API de Recuperación se realizó a menos de 90 segundos de la llamada de Reserva, te recomendamos que intentes la recuperación de nuevo.

Ejemplo de respuesta:

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

409 - Price Mismatch

Muchos proveedores utilizan precios dinámicos, o lo que también se llama "preciostime-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 ésta suele ser una elección del proveedor y no de 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.

Un desajuste de precios (PMM) es una situación esperada y puede producirse por varias razones, como la degradación de los sistemas o que éstos no reflejen los precios actualizados. Debes controlar la frecuencia de estos sucesos y ponerte en contacto con el servicio de asistencia si la tasa aumenta repentinamente o alcanza un umbral.

Si se ha producido un PMM para varios resultados al mismo tiempo, debes comprobar si existe una posible degradación del Rapid.

Si se devuelve un PMM por los mismos resultados durante un largo periodo, probablemente se deba a una carga incorrecta de las tasas por parte del proveedor. Puedes ponerte en contacto con el Servicio de Asistencia Técnica para comprobarlo.

Para recuperarte de un PMM, vuelve a hacer la llamada a Comprobación de precios (API de alojamiento) o a Detalles del vuelo (API de vuelo) para obtener un nuevo token de URL de 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 si el enlace Rapid API que se está siguiendo ha caducado o el inventario solicitado ya no está disponible.

Muchos proveedores tienen enlaces de comunicación directos y síncronos con Expedia Group que se producen en tiempo real.

La reserva con comunicación sincrónica se produce cuando se realizan llamadas de Comprobación de disponibilidad y precio (API de alojamiento) o Detalles del vuelo (API de vuelo) con los datos del proveedor proporcionados, que nosotros gestionamos. Este error se produce cuando no hay inventario suficiente para la selección de reserva.

Esto puede ser una situación temporal y un nuevo intento podría encontrar el inventario 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, el viajero puede tener que elegir otra opción.

Los mensajes de error de agotado también pueden aparecer si la conexión con el proveedor está degradada. En cuyo caso, no tenemos ninguna indicación de la verdadera disponibilidad.

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 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 petición a la API Expedia Group, el servidor receptor comprueba si el número de peticiones 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

Se devuelve si se produce un error en 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 responde con HTTP 500 cuando ha detectado un problema, pero no puede ser más específico sobre cuál es el problema exacto. Todos los socios deben esperar algunas respuestas de código 500 en su uso de Rapid API de vez en cuando.

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 la reserva en otro momento.

Si recibiste 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 500, vuelve a intentar la solicitud de cancelación en otro momento.

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 es generalmente temporal e indica que Rapid API, o un servicio posterior, es incapaz actualmente de gestionar la solicitud. Hay varias razones posibles, desde una sobrecarga temporal hasta la pérdida de la conexión con el proveedor.

Si has recibido el error en una respuesta de la API que no sea Crear reserva o Cancelar reserva, y no hay degradación conocida, reintenta tu 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:

  • El enlace de reserva de tu anterior respuesta de Comprobación de precios (API de alojamiento) o Detalles del vuelo (API de vuelo) 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 la reserva en otro momento.

Si recibiste 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 en otro momento.

Ejemplo de respuesta:

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

504 - Gateway Time Out

El error HTTP 504 no suele proceder de Rapid API, sino de la nube o de la infraestructura de borde, e indica que un elemento de la infraestructura de red (como el equilibrador de carga) falló durante la transacción. Generalmente es un acontecimiento temporal.

Nota: Un tiempo de espera puede ocurrir antes o después de la creación del itinerario, así que comprueba siempre si se ha creado el itinerario.

Las respuestas de error HTTP 504 (y 502) están en formato HTML en lugar del par tipo JSON/objeto de mensaje Rapid API's. Esto es otro indicio de que estos errores no son generados por 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, debes medir la tasa diaria de los siguientes códigos de respuesta: 409, 410, 500, 503 y 504. Si se supera el umbral, ponte en contacto con el servicio de asistencia Rapid API.

Expedia Group no tiene valores umbral establecidos porque varían en función del mercado de tu organización, así como de otros factores. El conocimiento del mercado es esencial para determinar por qué se producen algunas respuestas de error. Nuestra orientación es esperar que hasta un 5-6% de las llamadas de reserva fallen 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 busques sólo un aumento diario repentino: aunque el umbral esté fijado en 5 al día, obtener dos errores 500 con 5 minutos de diferencia, por ejemplo, puede ser motivo de consulta con el servicio de asistencia de Rapid API.

Registros

Si el servicio de asistencia de Rapid API te pide los registros de solicitud/respuesta, intenta proporcionar 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 Rapid API y el perfil que se están utilizando.
  • Cabecera de solicitud de la API de reservas y cabecera 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 ser double-quoted,, por lo que no es necesario incluir el carácter de escape barra invertida delante del carácter double-quote.

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

Sólo utiliza el carácter de escape barra invertida delante de una comilla doble cuando necesites que la comilla doble forme parte de la cadena.

Ejemplo de respuesta:

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

Nota: No pongas los registros en formato PDF. Expedia Group A veces, el personal de apoyo copia/pega los 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 conocidos de Compra, Reserva, cancelación y otros errores comunes. 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. Contiene sugerencias para procesar 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 interfaz de usuario de error de reserva

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 fallo de reserva

Error de reserva.

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