Collection Postman
Une collection Postman v2.1 prête à l'emploi couvre les trois portes : Brave (JSON/XML), OS-Travel et Cyberesa.
Installation
- Postman → Import → sélectionnez le fichier
brave-partner-gateway.postman_collection.json. - Ouvrez les variables de collection et renseignez vos identifiants réels.
- Lancez Ping : le script pré-requête calcule automatiquement
X-TimestampetX-Signature.
Variables
| Variable | Description | Exemple |
|---|---|---|
base_url | URL de base de la passerelle | https://partners.bravebooking.net |
company_code | Code société Brave | 1000 |
api_key | Votre X-Api-Key | VOTRE_CLE_API |
api_secret | Votre secret (signature) | VOTRE_SECRET |
timestamp / signature | Calculés par le script pré-requête | — |
rate_key | Dernier rateKey / Token utilisé | rk_x9F2kQ8example |
booking_ref | Dernière référence de réservation | BPG-2026-000123 |
os_login / os_password | Identifiants porte OS-Travel | demo_os_login |
cy_login / cy_password | Identifiants porte Cyberesa | demo_cy_login |
cy_user | Identifiant numérique d'agence Cyberesa | 12345 |
Script pré-requête (dossier « Porte Brave »)
Le script calcule la signature pour chaque requête du dossier — le même calcul que dans le guide Signature :
// Schéma v2 (relecture sécurité n°2) : clé dérivée du secret EN CLAIR (jamais de l'empreinte)
const crypto = require('crypto-js')
const apiKey = pm.collectionVariables.get('api_key')
const signingKey = crypto.SHA256('sig-v2|' + pm.collectionVariables.get('api_secret')).toString()
const timestamp = Math.floor(Date.now() / 1000).toString()
// Chemin tel qu'envoyé, query string incluse
const url = pm.request.url
let path = url.getPath()
const query = url.query ? url.query.toString() : ''
if (query) path += '?' + query
// Corps brut exact (chaîne vide si aucun corps)
const body = (pm.request.body && pm.request.body.raw) || ''
const bodyHash = crypto.SHA256(body).toString()
const payload = pm.request.method.toUpperCase() + '\n' + path + '\n' + timestamp + '\n' + bodyHash
const signature = crypto.HmacSHA256(payload, signingKey).toString()
pm.collectionVariables.set('timestamp', timestamp)
pm.collectionVariables.set('signature', signature)
Contenu de la collection
- Porte Brave — ping, hôtels, détail hôtel, référentiels, disponibilités (ville et liste d'hôtels), checkrate, création de réservation, doublon
clientReference, détail, liste, simulation d'annulation, annulation, voucher — chaque requête en variante JSON et XML. - OS-Travel —
ListCountry,ListCity,ListBoarding,ListCategorie,ListCurrency,ListHotel,HotelDetail,HotelSearch,BookingCreation(PreBooking),BookingList,BookingDetail,BookingCancellation(PreCancelled). - Cyberesa —
HotelSearchREQ,HotelQuoteREQ,HotelBookingCreationREQ,HotelBookingCancellationREQ,StaticDataRQ(corps form-url-encodedstrRQ).
Les valeurs de la colonne « Exemple » sont des exemples fictifs — remplacez-les par vos identifiants réels fournis par Brave Booking.