NoloForWeb
Pour développeurs

Broker API de NoloForWeb : référence technique

La Broker API est l'interface REST par laquelle brokers, agences et tour-opérateurs lisent le catalogue, les disponibilités et les prix d'un loueur qui utilise NoloForWeb et réservent dans son calendrier. Le loueur active chaque broker avec ses propres identifiants et droits ; identifiants de test sur demande.

REST sur HTTPS, JSON Réservations idempotentes Webhooks signés HMAC-SHA256
Connexion

Adresse, authentification et limites

ÉlémentValeur
Adresse de basehttps://brokerapi.rilogi.it/broker/v1
AuthentificationClient credentials sur POST /auth/token (HTTP Basic, formulaire ou JSON avec client_id brk_… et client_secret). Réponse : access_token opaque, token_type: Bearer, expires_in, scope.
Session60 minutes, sans rafraîchissement : à l'échéance, on demande un nouveau jeton. Au maximum 20 sessions actives par identifiant ; POST /auth/revoke ferme la session courante.
EntrepriseDéduite uniquement de l'identifiant : les en-têtes X-Tenant-* sont ignorés.
DroitsPar domaine (catalogue, disponibilités, réservations, finance, compte) et niveau (lecture, écriture, gestion), attribués par le loueur ; dans les scopes ils apparaissent comme bookings:write.
SécuritéIdentifiant bloqué 15 minutes après 5 échecs, liste d'IP autorisées facultative, rotation du secret avec période de grâce.
Limites120 requêtes par minute par broker (modifiables par le loueur), 600 par entreprise, 10 par minute et par IP sur /auth/token. Au-delà : 429 avec Retry-After.
ErreursJSON {error, message, correlationId} ; chaque réponse porte X-Correlation-Id. Les erreurs de connexion suivent le format OAuth {error, error_description}.
Endpoints

Les appels disponibles

Méthode et cheminDroitÀ quoi il sert
GET /locationsCatalogue, lectureAgences ouvertes au broker, avec adresse et aéroport oui/non
GET /vehicle-groupsCatalogue, lectureGroupes de véhicules avec jusqu'à trois modèles d'exemple
GET /extras?culture=Catalogue, lectureOptions réservables, décrites dans la langue demandée
POST /availabilityDisponibilités, lectureOffres au prix de la grille du loueur, avec un offerToken signé valable 15 minutes
GET /images/{token}Lien signéPhotos des modèles présents dans les offres, avec ETag et cache d'un jour
POST /bookingsRéservations, écritureRéserve à partir d'un offerToken ; Idempotency-Key obligatoire ; répond 201 avec Location
GET /bookings/{brokerReference}Réservations, lectureLit une réservation
PATCH /bookings/{brokerReference}Réservations, écritureModifie dates, options, conducteur ou voucher
POST /bookings/{brokerReference}/cancelRéservations, gestionAnnule avec l'éventuelle pénalité ; répétée, donne le même résultat
GET /statements?from=&to=Finance, lectureRelevé de compte du broker, un an au maximum par appel
GET /invoicesFinance, lectureFactures émises au broker

Les listes ne sont pas paginées. Aucun endpoint ne liste les réservations : les changements d'état arrivent par webhook.

Idempotence et webhooks

Pas de doublons, chaque changement signé

ÉlémentFonctionnement
Idempotency-KeyDe 1 à 100 caractères ASCII, unique par broker, valable 24 heures. Même clé et même corps : la réponse enregistrée revient avec Idempotent-Replayed: true. Corps différent : 422 idempotency_key_reuse. Requête encore en cours : 409.
Événementsbooking.modified, booking.cancelled, booking.no_show, rental.closed
EnveloppeJSON {eventId, type, occurredAt, source, data}, avec source BACKOFFICE ou BROKER_API ; en-têtes X-N4W-Event-Id et X-N4W-Event-Type
SignatureX-N4W-Signature: t=<unix>,v1=<hex>, où hex est le HMAC-SHA256, avec le secret whsec_…, de <t>. suivi du corps brut en UTF-8. Nous conseillons de refuser les horodatages de plus de 5 minutes.
LivraisonAdresse https uniquement. Tout 2xx vaut réception, délai de 10 secondes ; jusqu'à 10 tentatives de 1 minute à 24 heures, avec le même eventId (l'horodatage de la signature change à chaque tentative).

L'adresse du webhook et son secret sont configurés par le loueur dans le logiciel : aucun endpoint ne permet de les enregistrer.

Le parcours

Une réservation en quatre appels

01

Jeton

POST /auth/token avec les identifiants du broker.

02

Disponibilités

POST /availability avec agences, dates et horaires : chaque offre a un prix et un offerToken valable 15 minutes.

03

Réservation

POST /bookings avec l'offerToken, les données du conducteur et une Idempotency-Key : une nouvelle tentative ne crée pas de doublon.

04

Mises à jour

Modifications, annulations, non-présentations et clôture de la location arrivent en webhooks signés.

Besoin d'identifiants de test ?

Écrivez-nous depuis la page Contact : spécifications complètes et identifiants de test sur demande.

Demander une démo