Skip to content
Se connecter
Veridien Docs

Établissement et catalogue

Les endpoints du catalogue sont en lecture seule et décrivent ce que vous pouvez vendre : l'établissement lui-même, ses types de chambres, les disponibilités en temps réel et les tarifs qu'un client a le droit de réserver.


GET /property

Renvoie les métadonnées de l'établissement auquel la clé est liée. N'importe quelle clé authentifiée peut l'appeler.

curl "$VRDN_BASE/property" -H "Authorization: Bearer $VRDN_KEY"
{
  "id": "p_8f2a1c",
  "slug": "sunrise-bay",
  "name": "Sunrise Bay Resort",
  "currency": "USD",
  "timezone": "Pacific/Fiji",
  "child_max_age": 12,
  "infant_max_age": 2
}
ChampTypeNotes
idstringIdentifiant de l'établissement.
slugstringSlug d'URL.
namestringNom affiché.
currencystringLa devise de base de l'établissement (ISO 4217).
timezonestringFuseau horaire IANA, utilisé pour « aujourd'hui » dans les fenêtres tarifaires.
child_max_ageintegerLes clients de cet âge ou moins sont tarifés comme des enfants.
infant_max_ageintegerLes clients de cet âge ou moins sont tarifés comme des bébés.

GET /room-types

Portée : availability:read

Chaque type de chambre avec ses données de présentation : description, capacité, équipements, configurations de lits et photos (la photo principale en premier).

curl "$VRDN_BASE/room-types" -H "Authorization: Bearer $VRDN_KEY"
{
  "data": [
    {
      "id": "9b2f6c3e-8d1a-4f5b-a7c9-4e0d2b8f1a63",
      "name": "Deluxe Ocean Villa",
      "description": "A private villa over the lagoon.",
      "max_occupancy": 3,
      "currency": "USD",
      "amenities": ["Ocean view", "Private deck"],
      "bed_configs": [{ "id": "bc_king", "label": "1 King" }],
      "photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"]
    }
  ]
}

GET /availability

Portée : availability:read

Le nombre minimum de chambres disponibles sur toutes les nuits de la période, par type de chambre. Seuls les types de chambres dont le max_occupancy accueille le groupe sont renvoyés.

Paramètre de requêteRequisNotes
check_inouiYYYY-MM-DD.
check_outouiYYYY-MM-DD, après check_in. Les séjours sont plafonnés à 30 nuits.
adultsouiEntier ≥ 1.
childrennonEntier ≥ 0, 0 par défaut.
child_agesnonÂges des enfants séparés par des virgules (par exemple 5,7).
curl "$VRDN_BASE/availability?check_in=2026-08-01&check_out=2026-08-04&adults=2" \
  -H "Authorization: Bearer $VRDN_KEY"
{
  "check_in": "2026-08-01",
  "check_out": "2026-08-04",
  "data": [
    {
      "room_type_id": "9b2f6c3e-8d1a-4f5b-a7c9-4e0d2b8f1a63",
      "name": "Deluxe Ocean Villa",
      "description": "A private villa over the lagoon.",
      "max_occupancy": 3,
      "available": 4,
      "currency": "USD",
      "amenities": ["Ocean view", "Private deck"],
      "bed_configs": [{ "id": "bc_king", "label": "1 King" }],
      "photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"]
    }
  ]
}

available est le nombre que vous pouvez encore réserver. 0 signifie complet sur au moins une nuit de la période.


GET /rates

Portée : availability:read

Chaque type de chambre avec ses tarifs visibles et un détail de prix par nuit sur la période. C'est l'endpoint qu'un moteur de réservation affiche.

Paramètre de requêteRequisNotes
check_inouiYYYY-MM-DD.
check_outouiYYYY-MM-DD, après check_in.
adultsouiEntier ≥ 1.
childrennonEntier ≥ 0, 0 par défaut.
child_agesnonÂges des enfants séparés par des virgules (par exemple 5,7). Quand il est présent, il fait foi pour le nombre d'enfants et pilote la tarification par tranche d'âge.
guest_idnonDébloque les tarifs propres à un client (résident local vérifié, niveau de fidélité).
promo_codenonDébloque les tarifs réservés à un code promo.

La visibilité est appliquée côté serveur

Un tarif peut porter des règles : réservé aux résidents locaux, exige un code promo, durée de séjour minimum, fenêtre de réservation anticipée ou niveau de fidélité. L'API les évalue au regard du contexte de la requête et ne renvoie que les tarifs auxquels le client a droit. Les mêmes règles sont revérifiées quand vous créez un blocage, un tarif jamais affiché ne peut donc pas être réservé par son identifiant.

curl "$VRDN_BASE/rates?check_in=2026-08-01&check_out=2026-08-04&adults=2&promo_code=SUMMER" \
  -H "Authorization: Bearer $VRDN_KEY"
{
  "check_in": "2026-08-01",
  "check_out": "2026-08-04",
  "data": [
    {
      "room_type_id": "9b2f6c3e-8d1a-4f5b-a7c9-4e0d2b8f1a63",
      "name": "Deluxe Ocean Villa",
      "description": "A private villa over the lagoon.",
      "max_occupancy": 3,
      "base_occupancy": 2,
      "amenities": ["Ocean view", "Private deck"],
      "bed_configs": [{ "id": "bc_king", "label": "1 King" }],
      "photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"],
      "rate_plans": [
        {
          "rate_plan_id": "5c1e8f4a-2b7d-4a9c-8e6f-1d3b9a5c7e02",
          "name": "Flexible",
          "currency": "USD",
          "total": "1260.00",
          "room_subtotal": "1260.00",
          "base_occupancy": 2,
          "extra_guest_charge": "0.00",
          "single_occupancy_discount": "0.00",
          "extra_guest_total": "0.00",
          "taxes_total": "0.00",
          "tax_breakdown": [
            { "title": "GST", "amount": "135.00", "is_inclusive": true, "rate": "12", "kind": "percent" }
          ],
          "nightly_rates": [
            { "date": "2026-08-01", "day_of_week": 6, "rate": "420.00", "source": "base_price" },
            { "date": "2026-08-02", "day_of_week": 0, "rate": "420.00", "source": "base_price" },
            { "date": "2026-08-03", "day_of_week": 1, "rate": "420.00", "source": "base_price" }
          ]
        }
      ]
    }
  ]
}

Chaque tarif de nuit indique son source : interval quand une période saisonnière a fixé le prix de ce jour, ou base_price quand il est retombé sur le prix de base du tarif.

Le type de chambre porte base_occupancy (le nombre de clients inclus avant que la tarification par personne supplémentaire ne s'applique) et ses bed_configs. Chaque tarif indique un détail de prix complet :

ChampTypeNotes
totalstringLe total du séjour entièrement tarifé, y compris les taxes non incluses dans le prix. Il est égal au total du blocage.
room_subtotalstringSomme des tarifs de nuit avant ajustements d'occupation et taxes.
base_occupancyintegerClients inclus dans le tarif de base ; au-delà, la tarification par personne supplémentaire s'applique.
extra_guest_chargestringLe montant par nuit du tarif pour chaque client au-delà de base_occupancy.
single_occupancy_discountstringRemise totale appliquée quand la chambre n'est occupée que par une personne.
extra_guest_totalstringSupplément total pour personnes supplémentaires sur tout le séjour.
taxes_totalstringTotal des taxes non incluses ajoutées à total. Les taxes incluses ne sont pas comptées ici.
tax_breakdownarrayUne ligne par frais : title, amount, is_inclusive, rate, kind. Les lignes incluses sont affichées par transparence et ne s'ajoutent pas à total.

Comme le blocage est tarifé par le même moteur de frais, ce total est toujours égal au total que vous renvoie POST /holds.


GET /services

Portée : availability:read

Les extras réservables par le client (par exemple un transfert aéroport), pour l'étape « Ajouter à votre chambre » d'un moteur de réservation. Ne renvoie que les services actifs et réservables par le client, avec leurs modifiers (les options et champs de saisie que le client remplit). Passez ?category= pour filtrer par catégorie.

Paramètre de requêteRequisNotes
categorynonNe renvoyer que les services de cette catégorie (par exemple, transport).
curl "$VRDN_BASE/services?category=transport" -H "Authorization: Bearer $VRDN_KEY"
{
  "data": [
    {
      "id": "f1c8e5a3-6b2d-4c9f-8a7e-3d0b5c2f6e94",
      "name": "Airport transfer",
      "category": "transport",
      "provider_name": "Harbour Transfers",
      "image_url": "https://cdn.veridien.app/p_8f2a1c/transfer.jpg",
      "short_description": "Private speedboat from the international airport.",
      "currency": "USD",
      "is_taxable": true,
      "modifiers": []
    }
  ]
}
ChampTypeNotes
idstringIdentifiant du service, référencé sous service_id dans les add_ons d'un blocage.
namestringNom affiché.
categorystring | nullLibellé de catégorie utilisé par le filtre ?category=.
provider_namestring | nullLe prestataire qui assure le service.
image_urlstring | nullImage de présentation.
short_descriptionstring | nullDescription en une ligne.
currencystringDevise de tarification ; par défaut, la devise de base de l'établissement.
is_taxablebooleanSi des taxes s'appliquent à cet extra.
modifiersarrayLes options et champs de saisie (listes déroulantes tarifées, champs date-heure ou texte) que le client renseigne en l'ajoutant à un blocage.

Rattachez un service choisi à une réservation via le champ add_ons de POST /holds.

  • Réservations : transformer un tarif en blocage puis en réservation confirmée.
  • Tarifs : comment les tarifs et les périodes saisonnières se configurent.