Saltar al contenido principal

Visión general de la API de Rently

La API de Rently es una API REST que permite integrar sistemas externos con la plataforma de gestión de alquiler de vehículos: buscar disponibilidad y cotizar, crear y administrar reservas, registrar pagos, operar entregas y devoluciones, y gestionar clientes, flota, incidentes e infracciones.

Esta página es el mapa de entrada al reference: resume lo esencial (URL base, autenticación, idiomas) y describe cada módulo de la API con su propósito.

URL base

Todas las llamadas se realizan sobre HTTPS contra:

https://{tenant}.rently.com.ar

Los endpoints de negocio viven bajo /api (por ejemplo GET /api/search).

nota

Rently es multi-tenant. Tu integración opera siempre contra el host de tu tenant, que identifica la organización y al que queda ligado el token de acceso.

Autenticación

La API usa OAuth2 con tokens Bearer: solicitás un token con tus credenciales y lo enviás en el header Authorization: Bearer {token} en cada request.

# 1. Obtener el token (client_credentials)
curl -X POST https://{tenant}.rently.com.ar/auth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id={username}" \
-d "client_secret={password}"

La respuesta incluye access_token, token_type (bearer) y expires_in (el token es válido por un día). Usá ese token en las llamadas posteriores:

# 2. Llamar a un endpoint con el token
curl https://{tenant}.rently.com.ar/api/branchoffices \
-H "Authorization: Bearer {token}"
tip

Reutilizá el mismo token hasta que expire en lugar de pedir uno nuevo en cada llamada. Si el token está ausente, vencido o no corresponde al tenant, la API responde 401 indicando la URL del endpoint de token en WWW-Authenticate.

Idiomas

La API resuelve el idioma de la respuesta por petición. Para forzar un idioma concreto, agregá el parámetro de query ?language= (acepta el nombre de cultura completo, p. ej. es-AR, o el código ISO de dos letras, p. ej. es):

curl "https://{tenant}.rently.com.ar/api/categories?language=es-AR" \
-H "Authorization: Bearer {token}"

Si no se especifica, se usa el idioma del usuario, luego el idioma por defecto del tenant y, como último recurso, es-AR. Los idiomas disponibles dependen de la configuración de cada tenant; podés consultarlos con GET /api/languages y GET /api/languages-info.

nota

El parámetro ?language= solo tiene efecto en las requests de API; los valores no soportados por el tenant se ignoran y se aplica la precedencia por defecto.

Postman y otros clientes

Podés importar toda la API en Postman, Insomnia, Bruno o Hoppscotch:

En Postman: Import y soltá el archivo; se crea la colección con todos los endpoints. Completá las variables tenant, clientid y clientsecret, ejecutá Get an access token (guarda el token automáticamente en la variable token) y ya podés probar el resto.

En Bruno: importá la colección de Postman (no el openapi.json); trae los endpoints y el script que captura el token. Como Bruno no crea el environment solo, importá además el environment (rently-api.postman_environment.json) y seleccionálo: ya trae tenant, clientid y clientsecret para completar. Después ejecutá Get an access token.

En Insomnia / Hoppscotch: importá el openapi.json directamente.

Módulos

La API está organizada en módulos. Cada uno agrupa los endpoints de un área funcional; consultá el detalle de cada operación (método, path, parámetros y ejemplos) en el reference.

MóduloPropósito
PublicApiBúsqueda de disponibilidad y cotización: GET /api/search, GET /api/booking/price y GET /api/booking/additionals-price.
GeneralInformationCatálogos y datos maestros: sucursales, lugares de entrega/devolución, categorías y modelos, adicionales, monedas, promociones, feriados, horarios de atención e idiomas.
BookingsCiclo de vida de la reserva: crear (POST /api/booking/book), reservar (POST /api/booking/reserve), consultar (GET /api/booking/{bookingId}), cancelar, listar y gestionar conductores, comentarios y archivos.
BookingsPaymentsPagos de reservas: registrar un pago (POST /api/booking/pay), listar los pagos de una reserva y anular un pago.
CustomersApiGestión de clientes: listar (paginado), crear/actualizar, consultar por ID o globalId, métodos de pago, comentarios, adjuntos e imágenes de documentos.
CarsConsulta de la flota: obtener un auto, listar autos con filtros, ver sus reservas, reubicar/transferir entre sucursales y gestionar archivos.
OperationsOperativa de back-office: entregas y devoluciones programadas por sucursal y fecha, y procesar la entrega/pre-entrega y la pre-devolución de una reserva.
BookingCheckinApiSelf check-in del cliente previo a la entrega (PUT /api/selfcheckin).
IncidentsIncidentes/siniestros sobre vehículos: listar tipos, registrar un incidente y adjuntarle archivos.
InfractionsInfracciones de tránsito: agregar a una reserva (POST /api/booking/addinfractions), cobrar/pagar, listar las de un cliente y adjuntar el acta.
ServicesServicios y mantenimiento de vehículos: tipos de servicio y programación de servicios para un auto.
NotificationsNotificaciones por email: listar plantillas activas y enviar notificaciones usando una plantilla.
ConfigurationsConfiguración del tenant: tipos de documento y de contribuyente, config de reservas y mails, gateways y cuentas de pago, y settings generales.
CommercialAgreementsAcuerdos comerciales aplicables al cálculo de precios.
StorageGestión de archivos web.
tip

Para una integración de cotización y reserva típica, empezá por PublicApi y GeneralInformation (catálogo + búsqueda + precio), seguí con Bookings y BookingsPayments (crear y pagar), y sumá Operations para la entrega y devolución.

Errores y paginación

Los errores de negocio responden 400 con un cuerpo JSON { "ErrorMessage": "...", "ErrorCode": 1, "Id": "..." }, donde ErrorCode es un entero y Id es un identificador de correlación útil para soporte. Las respuestas 403 (no autenticado o sin permisos) y 404 (recurso no encontrado) no incluyen cuerpo.

Los listados usan paginación con los parámetros de query offset (por defecto 0) y limit (por defecto 30, máximo 100), y devuelven un objeto con Offset, Limit, Total, Results y NextOffset. Para avanzar de página, usá el NextOffset de la respuesta anterior como offset.