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-6d74226e7f00500 – 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_idque 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_idconocido. - 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_idque 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_idconocido. - 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-Iddel 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 correcto | Có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.


