Cómo reservar un alquiler de coches
Una vez que el cliente haya seleccionado un vehículo y haya revisado los detalles, utilice el punto final Crear reserva para confirmar la reserva. Este punto final acepta información del cliente, controladores adicionales opcionales y complementos de equipos seleccionados.
Punto final
POST /cars/api/v2/bookings?currency=USD
Parámetros de consulta
| Parámetro | Tipo | Requerido | Descripción |
|---|
currency | cadena | Sí | Código de moneda de tres letras (por ejemplo, USD, EUR). |
Cuerpo de solicitud
JSON
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6...",
"customer": {
"birth_date": "1990-05-15",
"language": "en",
"gender": "M",
"first_name": "John",
"last_name": "Doe",
"phone": "+1-555-123-4567",
"email": "john.doe@example.com",
"address": {
"street": "123 Main Street",
"city": "New York",
"postal_code": "10001"
},
"citizencountrycode": "US",
"additional_drivers": [
{
"birth_date": "1988-03-22",
"first_name": "Jane",
"last_name": "Doe"
}
]
},
"equipments": [
{
"code": "CSI",
"quantity": 1
},
{
"code": "NAV",
"quantity": 1
}
]
}
Campos del cuerpo de la solicitud
Campos de nivel superior
| Campo | Tipo | Requerido | Descripción |
|---|
token | cadena | Sí | El token de disponibilidad de la respuesta Buscar alquileres o Detalles de alquiler. |
customer | objeto | Sí | Datos del cliente (ver más abajo). |
equipments | matriz | No | Lista de complementos de equipos seleccionados (ver más abajo). |
Objeto de cliente
| Campo | Tipo | Requerido | Descripción |
|---|
birthdate | cadena | Sí | Fecha de nacimiento en formato YYYY-MM-DD. |
language | cadena | No | Código de idioma preferido (por ejemplo, en, es). |
gender | cadena | Sí | Género: "M" para hombre, "F" para mujer. |
firstname | cadena | Sí | Nombre del cliente. Debe coincidir con la licencia de conducir. |
lastname | cadena | Sí | Apellido del cliente. Debe coincidir con la licencia de conducir. |
phone | cadena | Sí | Número de teléfono de contacto con código de país. |
email | cadena | Sí | Dirección de correo electrónico de contacto. La confirmación de la reserva se envía aquí. |
address | objeto | Sí | Dirección del cliente (ver más abajo). |
citizencountrycode | cadena | Sí | Código de país ISO de dos letras de la ciudadanía del cliente. |
additionaldrivers | matriz | No | Lista de objetos de controlador adicionales (ver más abajo). |
Objeto de dirección
| Campo | Tipo | Requerido | Descripción |
|---|
street | cadena | Sí | Dirección postal. |
city | cadena | Sí | Nombre de la ciudad. |
postal_code | cadena | Sí | Código postal o postal. |
Objeto de controlador adicional
| Campo | Tipo | Requerido | Descripción |
|---|
birthdate | cadena | Sí | Fecha de nacimiento en formato YYYY-MM-DD. |
firstname | cadena | Sí | Nombre del conductor. |
last_name | cadena | Sí | Apellido del conductor. |
Objeto de equipo
| Campo | Tipo | Requerido | Descripción |
|---|
code | cadena | Sí | Código de equipo de la respuesta Detalles de alquiler (por ejemplo, CSI). |
quantity | número | Sí | Número de unidades. No debe exceder el max_quantity de los detalles. |
Ejemplo de respuesta
JSON
{
"data": {
"status": "Confirmed",
"id": "XNCTPN3cuzY",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6...",
"customer": {
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+1-555-123-4567"
},
"vehrentalcore": {
"pickupdatetime": "2026-06-15T10:00:00",
"returndatetime": "2026-06-20T10:00:00",
"pickup_location": {
"name": "Hertz - Manhattan Midtown",
"address": "310 W 40th St, New York, NY 10018"
},
"return_location": {
"name": "Hertz - Manhattan Midtown",
"address": "310 W 40th St, New York, NY 10018"
}
},
"vehicle": {
"name": "Toyota Camry or similar",
"sipp_code": "CCAR",
"vehicle_type": "Sedan",
"vehicle_size": "Standard"
},
"rental_rate": {
"vehicle_charges": [
{
"currency_code": "USD",
"base_price": 245,
"total_price": 289.75,
"tax_inclusive": true,
"purpose": "rental"
}
]
},
"fees": [],
"payment_rules": []
}
}
Campos de respuesta| Campo | Descripción |
|--------------------|----------------------------------------------------------------------------------|
| status | Estado de la reserva. Una reserva exitosa devuelve "Confirmed". |
| id | ID de reserva único. Utilice esto para recuperar o cancelar la reserva. |
| token | Ficha de reserva. Requerido para solicitudes de cancelación. |
| customer | Resumen de datos del cliente. |
| vehrentalcore | Fechas de alquiler y detalles de ubicación. |
| vehicle | Información del vehículo. |
| rental_rate | Desglose de precios. |
| fees | Cualquier tarifa adicional aplicada a la reserva. |
| payment_rules | Términos y condiciones de pago. |
Notas importantes
- Almacene tanto el
id como el token de la respuesta. El id es necesario para recuperar la reserva y el token es necesario para la cancelación. - Los nombres de los clientes deben coincidir con la licencia de conducir que se presentará en el mostrador de alquiler.
- Se aplican restricciones de edad del conductor. La edad del cliente (calculada a partir de
birthdate) debe estar dentro de los minimumage y maximum_age de las restricciones de tarifas. Lo mismo se aplica a los conductores adicionales. - Las cantidades de equipos no deben exceder el
max_quantity devuelto por el punto final de Detalles de alquiler. - La Confirmación de reserva se envía a la dirección de correo electrónico proporcionada en el campo
customer.email.
Manejo de errores
Los escenarios de error comunes incluyen:
| Escenario | Causa probable |
|---|
| Token caducado | El token de disponibilidad tiene una ventana de validez limitada. Vuelva a ejecutar la búsqueda. |
| Edad del conductor fuera de rango | La edad del cliente no cumple con los requisitos de edad del proveedor. |
| Equipo no disponible | El código o la cantidad del equipo solicitado ya no está disponible. |
| Faltan campos obligatorios | Faltan uno o más campos obligatorios en el cuerpo de la solicitud. |
Si una reserva falla, consulte el mensaje de respuesta de error para obtener más detalles y solicite al usuario que corrija el problema antes de volver a intentarlo.