Disponibilités

Cœur de l'API : recherche des disponibilités et des prix nets partenaire par ville ou par liste d'hôtels. Chaque offre renvoie un rateKey signé à rejouer dans Vérification de prix.

POST/v1/{code}/availability

Requête

Corps JSON

  • Name
    city
    Type
    integer
    Description

    Identifiant de la ville (référentiel). Obligatoire si hotels absent.

  • Name
    hotels
    Type
    integer[]
    Description

    Liste d'identifiants d'hôtels (200 maximum). Obligatoire si city absent.

  • Name
    checkIn
    Type
    string
    Description

    ISO YYYY-MM-DD.

  • Name
    checkOut
    Type
    string
    Description

    ISO YYYY-MM-DD.

  • Name
    rooms
    Type
    object[]
    Description

    Occupation des chambres : { "adults": 2, "children": [8, 12] } (âges des enfants).

  • Name
    currency
    Type
    string
    Description

    Devise de réponse (ex. TND). Devise de votre compte partenaire par défaut.

  • Name
    language
    Type
    string
    Description

    Langue des libellés (défaut fr).

Règles

  • city ou hotels, jamais les deux.
  • Une recherche identique (même partenaire, ville, dates, occupation) est cachée 5 minutes côté passerelle.
  • Les offres fournisseurs ne sont jamais exposées : seul le stock propre (contrats directs) répond.
POST
/v1/1000/availability
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"
  }'

Réponse

{
  "searchId": "srch_01JC8EXAMPLE",
  "hotels": [
    {
      "id": 1803258,
      "name": "Villa Demo Stays",
      "image": "https://stage-public.s3.fr-par.scw.cloud/clients/1000/hotels/1803258/thumb.jpg",
      "offers": [
        {
          "rateKey": "rk_x9F2kQ8example",
          "room": { "id": "18", "name": "Chambre Deluxe Vue Mer" },
          "boarding": { "id": 16, "name": "Petit-déjeuner" },
          "price": { "amount": 500.0, "currency": "TND", "net": true },
          "cancellation": [
            { "from": "2026-12-15", "to": "2027-01-14", "type": "PERCENT", "value": 0 },
            { "from": "2027-01-14", "type": "PERCENT", "value": 100, "nature": "NO_SHOW" }
          ],
          "confirmation": "instant",
          "promotion": null,
          "onRequest": false,
          "stopSales": []
        }
      ]
    }
  ]
}

Champs d'une offre

  • Name
    rateKey
    Type
    string
    Description

    Clé d'offre signée et opaque. À rejouer telle quelle dans checkrate puis dans la réservation. Ne pas décoder ni modifier.

  • Name
    price
    Type
    object
    Description

    Prix net partenaire (net: true), montant total du séjour pour l'occupation demandée.

  • Name
    cancellation
    Type
    object[]
    Description

    Frais d'annulation chiffrés et datés : from, to (optionnel), type (PERCENT, NIGHT, PRICE), value, nature optionnelle (NO_SHOW, NON_REFUNDABLE…).

  • Name
    confirmation
    Type
    string
    Description

    instant (confirmation immédiate) ou onRequest (sur demande, délai de confirmation).

  • Name
    promotion
    Type
    object | null
    Description

    Promotion éventuelle appliquée au prix.

  • Name
    stopSales
    Type
    object[]
    Description

    Arrêts de vente éventuels (from, to, motif).

Erreurs

400 validation_failed (ville et hôtels absents, dates invalides, plus de 200 hôtels), 422 stop_sales (aucune offre vendable sur la période). Voir Erreurs.

Cette page vous a-t-elle été utile ?