Parcours complet
Cette page décrit le parcours de bout en bout : recherche → vérification de prix → réservation → statut → annulation. Les exemples sont en JSON ; ajoutez -H "Accept: application/xml" pour obtenir du XML (voir Format XML).
Les exemples utilisent les variables API_KEY, TIMESTAMP et SIGNATURE
définies dans le guide Signature des requêtes.
1. Rechercher les disponibilités
Recherchez par ville ou par liste d'hôtels (200 maximum). Chaque offre renvoie un rateKey signé qui servira aux étapes suivantes.
cURL
curl -s -X POST "https://partners.bravebooking.net/v1/1000/availability" \
-H "X-Api-Key: $API_KEY" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" \
-H "Content-Type: application/json" -H "Accept: application/json" \
-d '{
"city": 146070,
"checkIn": "2027-01-15",
"checkOut": "2027-01-20",
"rooms": [{ "adults": 2, "children": [8] }],
"currency": "TND",
"language": "fr"
}'
Gardez le rateKey de l'offre choisie, par exemple rk_x9F2kQ8example. Détail : Disponibilités.
2. Vérifier le prix (checkrate)
Le rateKey rejoué dans checkrate vérifie que l'offre est toujours vendable et garantit le prix pendant 10 minutes.
cURL
curl -s -X POST "https://partners.bravebooking.net/v1/1000/checkrate" \
-H "X-Api-Key: $API_KEY" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" \
-H "Content-Type: application/json" -H "Accept: application/json" \
-d '{ "rateKey": "rk_x9F2kQ8example" }'
La réponse contient expiresAt : passé ce délai, relancez une recherche. Détail : Vérification de prix.
3. Réserver
Envoyez le rateKey vérifié, vos voyageurs et surtout votre clientReference : obligatoire et unique, elle rend l'appel idempotent (un doublon renvoie la même réservation, sans double débit).
cURL
curl -s -X POST "https://partners.bravebooking.net/v1/1000/bookings" \
-H "X-Api-Key: $API_KEY" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" \
-H "Content-Type: application/json" -H "Accept: application/json" \
-d '{
"clientReference": "PARTNER-2026-000481",
"rateKey": "rk_x9F2kQ8example",
"customer": {
"civility": "Mr", "firstName": "TEST-A", "lastName": "TEST-B",
"email": "test@example.com", "phone": "+21620000000"
},
"rooms": [{
"roomId": "18", "boardingId": 16,
"adults": [{ "civility": "Mr", "firstName": "TEST-A", "lastName": "TEST-B" }],
"children": [{ "firstName": "TEST-C", "lastName": "TEST-B", "age": 8 }]
}]
}'
La réponse (201) contient la référence passerelle, ex. BPG-2026-000123. Détail : Créer une réservation.
Ne jamais réessayer une réservation en cas de doute sur le résultat :
rejouez plutôt la même requête avec la même clientReference, qui renverra la
réservation existante. Voir Idempotence.
4. Suivre le statut
cURL
curl -s "https://partners.bravebooking.net/v1/1000/bookings/BPG-2026-000123" \
-H "X-Api-Key: $API_KEY" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" \
-H "Accept: application/json"
Pour synchroniser vos dossiers, listez les réservations par période :
cURL
curl -s "https://partners.bravebooking.net/v1/1000/bookings?from=2026-11-01&to=2026-11-30" \
-H "X-Api-Key: $API_KEY" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" \
-H "Accept: application/json"
Le voucher (confirmé de réservation) se télécharge via Voucher. Détail : Détail de réservation, Liste des réservations.
5. Annuler
Simulez d'abord pour connaître les frais, puis annulez réellement :
cURL — simulation
curl -s -X POST "https://partners.bravebooking.net/v1/1000/bookings/BPG-2026-000123/cancel?simulate=true" \
-H "X-Api-Key: $API_KEY" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" \
-H "Accept: application/json"
cURL — annulation
curl -s -X POST "https://partners.bravebooking.net/v1/1000/bookings/BPG-2026-000123/cancel" \
-H "X-Api-Key: $API_KEY" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" \
-H "Accept: application/json"
Détail : Annulation.
Ordre des opérations, en résumé
| Étape | Appel | Clé transmise |
|---|---|---|
| 1 | POST /v1/{code}/availability | — |
| 2 | POST /v1/{code}/checkrate | rateKey reçu en 1 |
| 3 | POST /v1/{code}/bookings | rateKey vérifié + clientReference unique |
| 4 | GET /v1/{code}/bookings/{ref} | référence reçue en 3 |
| 5 | POST /v1/{code}/bookings/{ref}/cancel | référence reçue en 3 |