Qué Hace la API de Reservas
La API de Car Rental Solutions es una API REST para la flota propia de una rentadora. Un sitio web, una app o el sistema de un socio la usa para listar las sucursales de la agencia, cotizar sus vehículos en vivo y crear reservas. Esas reservas llegan al mismo panel de control que las del mostrador y las del teléfono, en un solo calendario de disponibilidad.
No es una API agregadora. Las APIs de autos de la industria de viajes permiten que un sitio de viajes revenda el inventario de muchas marcas de renta. Esta API hace otro trabajo: permite que una agencia independiente, o el desarrollador que contrata, venda los autos de la agencia en su propio sitio web. Si usted es el dueño de la agencia y no el desarrollador, empiece por nuestra guía de integración de API o la página de la API, y luego envíe esta página a quien construye su sitio.
Antes de Empezar
- Referencia y especificación. La referencia interactiva está en app.carrentalsolutions.com y el documento OpenAPI está en
/openapi/v1.json. Los endpoints están bajo/api/v1/enhttps://app.carrentalsolutions.com. La referencia está en inglés. - Una clave de API. Cada solicitud lleva
Authorization: Bearer SU_CLAVE_DE_API. Una clave pertenece a la cuenta de una sola rentadora, así que cada llamada devuelve las sucursales, los vehículos y las tarifas de esa empresa. Si construye para una agencia, pídale la clave a la agencia. Si usted es la agencia, consulte a nuestro equipo. - Un proxy del lado del servidor. Nunca ponga la clave en el JavaScript del navegador, donde cualquiera puede leerla. Haga que su formulario de reservas llame a su propio endpoint (una ruta pequeña en su servidor o una función serverless) y deje que ese endpoint agregue el encabezado y reenvíe la solicitud.
Los Endpoints de un Vistazo
| Llamada | Para qué sirve |
|---|---|
GET /api/v1/locations | Sucursales de entrega y en cuáles se puede devolver desde cada una |
GET /api/v1/age-groups | Grupos de edad del conductor, de los que depende el precio |
GET /api/v1/countries | IDs de país para la dirección del cliente |
GET /api/v1/groups | El grupo de vehículos principal que se muestra en la página de inicio, con precios en vivo si los pide |
GET /api/v1/groups/{groupId} | Los subgrupos y vehículos de un grupo |
GET /api/v1/vehicles/{vehicleId} | Un vehículo, sus extras, una cotización detallada y un token de precio |
POST /api/v1/reservations | Crear la reserva |
GET /api/v1/reservations/{reservationId} | Consultar una reserva, con el correo del cliente |
El Proceso de Reserva en Cinco Llamadas
Los ejemplos usan curl para que sirvan en cualquier lenguaje. IDs como MIA, AG25 y ECAR-01 son marcadores de ejemplo; use los IDs que la API devuelve para su cuenta.
1. Cargue sucursales, grupos de edad y países
Estos datos cambian poco, así que cárguelos una vez cuando se abre el formulario de reservas y guárdelos en caché. Cada sucursal indica en dropoffs dónde se puede devolver el auto; úselo para limitar el menú de devolución y que el cliente no elija un viaje de una sola vía que la agencia no ofrece.
curl https://app.carrentalsolutions.com/api/v1/locations \
--header 'Authorization: Bearer SU_CLAVE_DE_API'
Respuesta (abreviada, valores de ejemplo)
{
"items": [
{ "id": "MIA", "name": "Miami Airport", "group": null, "dropoffs": ["MIA", "FLL"] }
],
"_links": { "self": "...", "prev": null, "next": null }
}
Las listas incluyen _links. Si next no es null, sígalo para obtener el resto. /age-groups y /countries funcionan igual y devuelven id y name por elemento.
2. Busque en la flota con precios en vivo
Pida el grupo principal con include=prices. Para cotizar se necesitan una sucursal de entrega, un inicio, un fin y un grupo de edad. La sucursal de devolución es la misma de entrega si no se indica otra; rateCode usa la tarifa estándar del sitio web si se omite, y coupon es opcional.
curl -G https://app.carrentalsolutions.com/api/v1/groups \
--header 'Authorization: Bearer SU_CLAVE_DE_API' \
--data-urlencode 'include=prices' \
--data-urlencode 'pickupId=MIA' \
--data-urlencode 'start=2026-11-20T10:00:00' \
--data-urlencode 'end=2026-11-23T10:00:00' \
--data-urlencode 'ageGroupId=AG25'
La respuesta trae vehicles, cada uno con una lista prices (chargeId, rate, suffix), y subgrupos en groups que puede abrir con GET /api/v1/groups/{groupId} usando los mismos parámetros. El grupo y cada vehículo también pueden traer _errors y _warnings. Muestre esos mensajes al cliente en lugar de ocultar el vehículo sin explicación.
3. Cotice un vehículo y obtenga el token de precio
Cuando el cliente elige un auto, pídalo con los mismos parámetros, más los extras que quiera. Envíe extra una vez por cada adicional, como codigo o codigo:cantidad.
curl -G https://app.carrentalsolutions.com/api/v1/vehicles/ECAR-01 \
--header 'Authorization: Bearer SU_CLAVE_DE_API' \
--data-urlencode 'include=prices' \
--data-urlencode 'pickupId=MIA' \
--data-urlencode 'start=2026-11-20T10:00:00' \
--data-urlencode 'end=2026-11-23T10:00:00' \
--data-urlencode 'ageGroupId=AG25' \
--data-urlencode 'extra=child-seat:1'
Campos de la respuesta que va a usar
{
"id": "ECAR-01",
"name": "...",
"extras": [ { "chargeId": "...", "title": "...", "maximumQuantity": 2, "rate": 0, "subtotal": 0, "suffix": "..." } ],
"quote": [ { "chargeId": "...", "title": "...", "quantity": 3, "rate": 0, "subtotal": 0, "suffix": "..." } ],
"pricingToken": "...",
"otherChoices": [ { "id": "...", "name": "..." } ],
"_links": { "self": "...", "createReservation": "..." }
}
quote es el precio detallado. Muéstrelo línea por línea tal como lo devuelve la API y no recalcule los totales en su propio código. extras lista los adicionales disponibles para ese vehículo, con un maximumQuantity que su formulario debe respetar. otherChoices ofrece vehículos similares si el cliente quiere una alternativa.
4. Cree la reserva
Devuelva el token de precio con los parámetros exactos con los que cotizó, las líneas de la cotización y los datos del cliente. customer requiere firstName, lastName, email y countryId (del paso 1); phone y comments son opcionales.
curl https://app.carrentalsolutions.com/api/v1/reservations \
--header 'Authorization: Bearer SU_CLAVE_DE_API' \
--header 'Content-Type: application/json' \
--data '{
"pricingToken": "TOKEN_DEL_PASO_3",
"vehicleId": "ECAR-01",
"pickupId": "MIA",
"start": "2026-11-20T10:00:00",
"end": "2026-11-23T10:00:00",
"ageGroupId": "AG25",
"quote": [ { "chargeId": "...", "quantity": 3, "rate": 0, "subtotal": 0 } ],
"customer": {
"firstName": "Ana", "lastName": "López",
"email": "ana@example.com", "phone": "+1 305 555 0100",
"countryId": "US"
},
"comments": "Llego en un vuelo nocturno"
}'
Si la reserva se crea, el encabezado Location de la respuesta apunta a la nueva reserva.
5. Consulte la reserva
Para leer una reserva se necesitan su ID y el correo del cliente, así nadie puede consultar la reserva de otro adivinando IDs. Los IDs tienen la forma ABC-10293: el prefijo de la agencia y un código.
curl -G https://app.carrentalsolutions.com/api/v1/reservations/ABC-10293 \
--header 'Authorization: Bearer SU_CLAVE_DE_API' \
--data-urlencode 'email=ana@example.com'
La respuesta trae el cliente, el vehículo, las fechas, las sucursales, los montos pendientes y pagados, y la cotización detallada. Arme la página de confirmación con esos datos y no con lo que recuerda su formulario.
La Regla del Token de Precio
Esta es la parte que las integraciones fallan con más frecuencia. El token del paso 3 garantiza que el precio que vio el cliente no cambió. Solo es válido si estos campos se envían exactamente como estaban en esa llamada:
| Debe coincidir con la cotización | Qué significa en la práctica |
|---|---|
vehicleId | El auto que el cliente cotizó, no un sustituto |
pickupId, dropoffId | Envíe dropoffId solo si lo envió al cotizar |
start, end | Los mismos textos, sin cambiar el formato ni convertirlos a otra zona horaria |
ageGroupId, rateCode, coupon | Sin cambios desde la cotización |
quote | Las líneas de cotización de esa misma llamada |
- Guarde juntas la solicitud y la respuesta de la cotización en su servidor durante la sesión del cliente.
- Vuelva a cotizar ante cualquier cambio. Si el cliente cambia fechas o extras, repita el paso 3 y use el nuevo token.
- Nunca reserve en silencio a un precio nuevo. Si la reserva es rechazada, pida una nueva cotización, muestre el nuevo precio y deje que el cliente lo confirme.
Lista de Verificación para el Lanzamiento
- La clave de API vive solo en el servidor, y el navegador llama a su proxy.
- Las sucursales, los grupos de edad y los países están en caché. Los precios nunca.
- El menú de devolución solo ofrece las sucursales que aparecen en
dropoffs. - El formulario pide el grupo de edad del conductor antes de mostrar precios, porque la cotización lo requiere.
_errorsy_warningsse muestran al cliente.- La cotización se muestra línea por línea desde la API, sin recalcular totales.
- Las reservas de prueba cubren un viaje redondo, uno de una sola vía, un conductor joven, extras y un cupón, y cada una se revisa en el panel de control.
- Las reservas completadas se miden como conversiones. Nuestra guía de seguimiento de conversiones para sitios de renta explica la configuración.
Quién la Usa
Rentadoras con sitio web propio
Las agencias que ya tienen un sitio que les gusta le agregan un proceso de reservas a la medida, sin perder su diseño ni su posicionamiento en buscadores. Las que no quieren ningún desarrollo pueden generar desde la sección de Integraciones un sitio completo o un motor de reservas listo para usar, como se describe en la página de la API.
Desarrolladores y agencias web
Los desarrolladores que construyen sitios para rentadoras usan la API para que el proceso de reserva combine con el resto del sitio, en cualquier framework o lenguaje. Una sola forma de integración sirve para todos los clientes de Car Rental Solutions; solo cambia la clave de API.
Socios
Los negocios que envían viajeros a una rentadora, como hoteles, operadores de tours y sitios de viajes, pueden mostrar los autos de esa agencia y tomar reservas en sus propias páginas con una clave que la agencia les proporcione. Si quiere construir una integración como socio, contáctenos.
Preguntas Frecuentes
Sí. La API de Car Rental Solutions es una API REST para las sucursales, vehículos y tarifas de una sola rentadora. Un sitio web o un sistema de un socio la usa para cotizar vehículos en vivo y crear reservas que llegan al panel de control de la agencia. Es distinta de las APIs de autos de la industria de viajes, que revenden el inventario de muchas marcas de renta a sitios de viajes.
Envíe la clave de API como token bearer en el encabezado Authorization de cada solicitud. Cada clave pertenece a la cuenta de una sola rentadora, así que cada llamada devuelve las sucursales, la flota y las tarifas de esa empresa.
No. Cualquiera puede leer una clave que llega al navegador. Guarde la clave en un servidor o en una función serverless, haga que el navegador llame a ese endpoint y deje que este agregue el encabezado Authorization antes de reenviar la solicitud.
La referencia interactiva está en app.carrentalsolutions.com y el documento OpenAPI 3.1 está en app.carrentalsolutions.com/openapi/v1.json, con descarga en YAML desde la referencia. Puede generar un cliente a partir de ella, y la referencia muestra ejemplos de solicitudes en Shell, Node.js, Python, PHP y Ruby.
La causa más común es el token de precio. Solo es válido si el vehículo, las sucursales de entrega y devolución, el inicio y el fin, el grupo de edad, el código de tarifa, el cupón y las líneas de la cotización se envían exactamente como estaban en la llamada de cotización. Si algo cambió, pida una nueva cotización, muestre el nuevo precio al cliente y luego reserve.