Aller au contenu principal

Vue d'ensemble de l'API de Rently

L'API de Rently est une API REST qui permet d'intégrer des systèmes externes à la plateforme de gestion de location de véhicules : rechercher la disponibilité et établir un devis, créer et administrer des réservations, enregistrer des paiements, gérer les livraisons et les retours, et gérer les clients, la flotte, les incidents et les infractions.

Cette page est le point d'entrée vers la reference : elle résume l'essentiel (URL de base, authentification, langues) et décrit chaque module de l'API avec son objectif.

URL de base

Tous les appels se font en HTTPS contre :

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

Les endpoints métier se trouvent sous /api (par exemple GET /api/search).

remarque

Rently est multi-tenant. Votre intégration opère toujours contre le host de votre tenant, qui identifie l'organisation et auquel reste lié le token d'accès.

Authentification

L'API utilise OAuth2 avec des tokens Bearer : vous demandez un token avec vos identifiants et vous l'envoyez dans le header Authorization: Bearer {token} dans chaque requête.

# 1. Obtenir le 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={utilisateur}" \
-d "client_secret={clé}"

La réponse contient access_token, token_type (bearer) et expires_in (le token est valable un jour). Utilisez ce token dans les appels suivants :

# 2. Appeler un endpoint avec le token
curl https://{tenant}.rently.com.ar/api/branchoffices \
-H "Authorization: Bearer {token}"
astuce

Réutilisez le même token jusqu'à son expiration au lieu d'en demander un nouveau à chaque appel. Si le token est absent, expiré ou ne correspond pas au tenant, l'API répond 401 en indiquant l'URL de l'endpoint de token dans WWW-Authenticate.

Langues

L'API résout la langue de la réponse par requête. Pour forcer une langue précise, ajoutez le paramètre de query ?language= (qui accepte le nom de culture complet, p. ex. es-AR, ou le code ISO à deux lettres, p. ex. es) :

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

S'il n'est pas spécifié, l'API utilise la langue de l'utilisateur, puis la langue par défaut du tenant et, en dernier recours, es-AR. Les langues disponibles dépendent de la configuration de chaque tenant ; vous pouvez les consulter avec GET /api/languages et GET /api/languages-info.

remarque

Le paramètre ?language= n'a d'effet que sur les requêtes d'API ; les valeurs non supportées par le tenant sont ignorées et la précédence par défaut s'applique.

Postman et autres clients

Vous pouvez importer toute l'API dans Postman, Insomnia, Bruno ou Hoppscotch :

Dans Postman : Import puis déposez le fichier ; la collection est créée avec tous les endpoints. Configurez la variable tenant et votre token Bearer pour commencer à tester.

Dans Insomnia / Bruno / Hoppscotch : importez directement le openapi.json.

Modules

L'API est organisée en modules. Chacun regroupe les endpoints d'un domaine fonctionnel ; consultez le détail de chaque opération (méthode, path, paramètres et exemples) dans la reference.

ModuleObjectif
PublicApiRecherche de disponibilité et devis : GET /api/search, GET /api/booking/price et GET /api/booking/additionals-price.
GeneralInformationCatalogues et données de référence : agences, lieux de livraison/retour, catégories et modèles, additionnels, devises, promotions, jours fériés, horaires d'ouverture et langues.
BookingsCycle de vie de la réservation : créer (POST /api/booking/book), réserver (POST /api/booking/reserve), consulter (GET /api/booking/{bookingId}), annuler, lister et gérer les conducteurs, les commentaires et les fichiers.
BookingsPaymentsPaiements des réservations : enregistrer un paiement (POST /api/booking/pay), lister les paiements d'une réservation et annuler un paiement.
CustomersApiGestion des clients : lister (paginé), créer/mettre à jour, consulter par ID ou globalId, moyens de paiement, commentaires, pièces jointes et images de documents.
CarsConsultation de la flotte : obtenir une voiture, lister les voitures avec filtres, voir leurs réservations, relocaliser/transférer entre agences et gérer les fichiers.
OperationsOpérationnel back-office : livraisons et retours programmés par agence et par date, et traitement de la livraison/pré-livraison et de la pré-restitution d'une réservation.
BookingCheckinApiSelf check-in du client avant la livraison (PUT /api/selfcheckin).
IncidentsIncidents/sinistres sur les véhicules : lister les types, enregistrer un incident et y joindre des fichiers.
InfractionsInfractions routières : ajouter à une réservation (POST /api/booking/addinfractions), facturer/payer, lister celles d'un client et joindre le procès-verbal.
ServicesServices et entretien des véhicules : types de service et planification des services d'une voiture.
NotificationsNotifications par email : lister les modèles actifs et envoyer des notifications à partir d'un modèle.
ConfigurationsConfiguration du tenant : types de document et de contribuable, config des réservations et des emails, gateways et comptes de paiement, et settings généraux.
CommercialAgreementsAccords commerciaux applicables au calcul des prix.
StorageGestion des fichiers web.
astuce

Pour une intégration de devis et de réservation typique, commencez par PublicApi et GeneralInformation (catalogue + recherche + prix), continuez avec Bookings et BookingsPayments (créer et payer), et ajoutez Operations pour la livraison et le retour.

Erreurs et pagination

Les erreurs métier répondent 400 avec un corps JSON { "ErrorMessage": "...", "ErrorCode": 1, "Id": "..." }, où ErrorCode est un entier et Id est un identifiant de corrélation utile pour le support. Les réponses 403 (non authentifié ou sans permissions) et 404 (ressource introuvable) n'incluent pas de corps.

Les listes utilisent la pagination avec les paramètres de query offset (par défaut 0) et limit (par défaut 30, maximum 100), et renvoient un objet avec Offset, Limit, Total, Results et NextOffset. Pour passer à la page suivante, utilisez le NextOffset de la réponse précédente comme offset.