Créer une réservation
Crée une réservation à partir d'un rateKey vérifié par checkrate. L'appel est idempotent grâce à votre clientReference.
Requête
Corps JSON
- Name
clientReference- Type
- string
- Description
Votre référence, obligatoire et unique. Un doublon renvoie la même réservation (
200+X-Idempotent-Replay: true). Voir Idempotence.
- Name
rateKey- Type
- string
- Description
Clé d'offre vérifiée par
checkrate(prix garanti 10 minutes).
- Name
customer- Type
- object
- Description
Contact principal :
civility,firstName,lastName,email,phone.
- Name
rooms- Type
- object[]
- Description
roomId,boardingId,adults[](civility,firstName,lastName),children[](firstName,lastName,age).
- Name
remarks- Type
- string
- Description
Remarques éventuelles pour l'hôtel (facultatif).
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 }
]
}]
}'
Réponse
201 Created à la création. 200 OK avec l'en-tête X-Idempotent-Replay: true si la clientReference a déjà été utilisée — le corps est alors la réservation existante.
{
"reference": "BPG-2026-000123",
"clientReference": "PARTNER-2026-000481",
"status": "confirmed",
"hotel": {
"id": 1803258,
"name": "Villa Demo Stays",
"city": { "id": 146070, "name": "La Marsa" }
},
"checkIn": "2027-01-15",
"checkOut": "2027-01-20",
"rooms": [
{
"roomId": "18",
"name": "Chambre Deluxe Vue Mer",
"boarding": { "id": 16, "name": "Petit-déjeuner" },
"adults": [{ "civility": "Mr", "firstName": "TEST-A", "lastName": "TEST-B" }],
"children": [{ "firstName": "TEST-C", "lastName": "TEST-B", "age": 8 }]
}
],
"amounts": { "total": 2500.0, "fees": 0.0, "currency": "TND" },
"cancellation": [
{ "from": "2026-12-15", "to": "2027-01-14", "type": "PERCENT", "value": 0 },
{ "from": "2027-01-14", "type": "PERCENT", "value": 100, "nature": "NO_SHOW" }
],
"createdAt": "2026-11-13T10:16:02+01:00"
}
Statuts possibles
status | Signification |
|---|---|
confirmed | Réservation confirmée (offre instant) |
pending | Sur demande (onRequest), en attente de confirmation |
Erreurs
400 validation_failed (voyageurs incohérents avec l'occupation du rateKey), 422 rate_expired (garantie de prix dépassée), 422 stop_sales. Voir Erreurs.