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).
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}"
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.
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:
- Especificación OpenAPI (cualquier cliente): descargar
openapi.json - Colección de Postman (lista para usar): descargar
rently-api.postman_collection.json - Environment de Postman (variables): descargar
rently-api.postman_environment.json
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ódulo | Propósito |
|---|---|
| PublicApi | Búsqueda de disponibilidad y cotización: GET /api/search, GET /api/booking/price y GET /api/booking/additionals-price. |
| GeneralInformation | Catálogos y datos maestros: sucursales, lugares de entrega/devolución, categorías y modelos, adicionales, monedas, promociones, feriados, horarios de atención e idiomas. |
| Bookings | Ciclo 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. |
| BookingsPayments | Pagos de reservas: registrar un pago (POST /api/booking/pay), listar los pagos de una reserva y anular un pago. |
| CustomersApi | Gestión de clientes: listar (paginado), crear/actualizar, consultar por ID o globalId, métodos de pago, comentarios, adjuntos e imágenes de documentos. |
| Cars | Consulta de la flota: obtener un auto, listar autos con filtros, ver sus reservas, reubicar/transferir entre sucursales y gestionar archivos. |
| Operations | Operativa 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. |
| BookingCheckinApi | Self check-in del cliente previo a la entrega (PUT /api/selfcheckin). |
| Incidents | Incidentes/siniestros sobre vehículos: listar tipos, registrar un incidente y adjuntarle archivos. |
| Infractions | Infracciones de tránsito: agregar a una reserva (POST /api/booking/addinfractions), cobrar/pagar, listar las de un cliente y adjuntar el acta. |
| Services | Servicios y mantenimiento de vehículos: tipos de servicio y programación de servicios para un auto. |
| Notifications | Notificaciones por email: listar plantillas activas y enviar notificaciones usando una plantilla. |
| Configurations | Configuración del tenant: tipos de documento y de contribuyente, config de reservas y mails, gateways y cuentas de pago, y settings generales. |
| CommercialAgreements | Acuerdos comerciales aplicables al cálculo de precios. |
| Storage | Gestión de archivos web. |
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.