Aller au contenu principal

Préparer le contexte

Avant de rechercher la disponibilité et de créer des réservations, il convient de charger le contexte du tenant : quelles langues et devises il prend en charge, dans quels lieux il opère et avec quels horaires d'ouverture. Ensemble, ces catalogues définissent quelles réservations peuvent être créées (où, quand et dans quelle devise).

Mettez le contexte en cache

Ces données changent peu. Récupérez-les une fois au démarrage et réutilisez-les ; rafraîchissez-les de temps en temps au lieu de les demander à chaque opération. Tous les endpoints utilisent le header Authorization: Bearer {token}.

Langues

GET /api/languages renvoie les langues prises en charge par le système. Elles déterminent les valeurs valides du query param ?language= qui contrôle la langue des réponses (voir Langues).

curl "https://{tenant}.rently.com.ar/api/languages" \
-H "Authorization: Bearer {token}"
remarque

Pour des métadonnées plus riches de chaque langue (nom natif, etc.) il y a GET /api/languages-info.

Devises

GET /api/currencies renvoie les devises prises en charge avec leur taux de change. C'est de là que provient le CurrencyCode que vous utilisez dans GET /api/search, GET /api/booking/price et POST /api/booking/book.

curl "https://{tenant}.rently.com.ar/api/currencies" \
-H "Authorization: Bearer {token}"
[
{ "Id": 1, "ISOCode": "USD", "Name": "Dólar", "Symbol": "U$S", "ExchangeRate": 1.0, "IsSystemDefault": true },
{ "Id": 2, "ISOCode": "ARS", "Name": "Peso argentino", "Symbol": "$", "ExchangeRate": 950.0, "IsSystemDefault": false }
]
ChampDescription
ISOCodeCode ISO de la devise. C'est celui qui est envoyé comme CurrencyCode.
Symbol / NamePour l'affichage.
ExchangeRateTaux de change par rapport à la devise par défaut du système.
IsSystemDefaultIndique la devise de base du tenant.

Lieux

GET /api/places renvoie les lieux de livraison et de retour. Leurs Id sont ceux qui sont passés comme FromPlace/ToPlace (recherche) et DeliveryPlace/ReturnPlace (réservation). Chaque lieu appartient à une agence (BranchOfficeId) et a un type (aéroport, agence, hôtel…), dont le catalogue est GET /api/placetypes.

curl "https://{tenant}.rently.com.ar/api/places" \
-H "Authorization: Bearer {token}"
[
{
"Id": 1,
"Name": "Aeropuerto LAX",
"Category": "Aeropuerto",
"City": "Los Angeles",
"Country": "United States",
"BranchOfficeId": 10,
"BranchOfficeName": "LAX",
"BranchOfficeIATACode": "LAX"
}
]
ChampDescription
IdIdentifiant du lieu. C'est le FromPlace/ToPlace/DeliveryPlace.Id.
CategoryType de lieu (de GET /api/placetypes).
BranchOfficeId / BranchOfficeName / BranchOfficeIATACodeAgence à laquelle il appartient.

Horaires d'ouverture

GET /api/attentionschedule renvoie la configuration des horaires par agence. Cela définit quand une voiture peut être livrée et retournée : jours et heures d'ouverture, fuseau horaire, marges (gaps) et règles hors horaires. C'est ce qui détermine si un From/To donné est valide pour un lieu.

curl "https://{tenant}.rently.com.ar/api/attentionschedule" \
-H "Authorization: Bearer {token}"
ChampDescription
SchedulePlages d'ouverture par jour.
TimezoneId / TimezoneUTCOffsetFuseau horaire de l'agence (interprétez les From/To dans celui-ci).
Gap / GapForBookingTimeMarges minimales pour réserver / entre opérations.
AllowAfterHours / BeforeHoursMaxMinutes / AfterHoursMaxMinutesSi l'on autorise les opérations hors horaires et avec quelles limites.

Comment ils se relient

Pour savoir quelles réservations peuvent être créées, combinez les quatre catalogues :

Langue (?language=) → dans quelle langue arrivent les réponses

Lieu (place) → OÙ on livre/retourne (FromPlace / DeliveryPlace)
│ appartient à

Agence (branch office)
│ a

Horaire d'ouverture → QUAND c'est valide (jours/heures/timezone/after-hours) → définit From/To

Devise (CurrencyCode) → DANS QUELLE DEVISE le prix est calculé

En pratique :

  1. Choisissez un lieu de livraison (et de retour) dans GET /api/places.
  2. Regardez l'horaire d'ouverture de son agence (GET /api/attentionschedule) pour fixer un From/To dans les plages valides et dans le bon fuseau horaire.
  3. Choisissez une devise prise en charge (GET /api/currencies).
  4. Facultativement, fixez la langue des réponses avec ?language=.

Avec cela vous pouvez déjà démarrer la Réservation de bout en bout.