Ré-éditer la structure tarifaire d'un plan (grille camping per_person / forfait / dérivé)
const url = 'https://example.com/v1/rate-plans/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/base-rate';const options = { method: 'PUT', headers: {'X-API-Key': '<X-API-Key>', 'Content-Type': 'application/json'}, body: '{"baseRateRule":{"pricingUnit":"per_room","currency":"EUR","flatNightlyCents":12000,"derivedFromRatePlanId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","derivedBasisPoints":8000,"occupancy":{"baseUnitNightlyCents":1,"adultNightlyCents":1,"childTiers":[{"ageFrom":1,"ageTo":1,"nightlyCents":1}],"infantFreeUpToAge":1,"petNightlyCents":1,"extraVehicleNightlyCents":1,"includedVehicles":1,"electricityMode":"included","electricityFlatNightlyCents":1}}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/v1/rate-plans/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/base-rate \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <X-API-Key>' \ --data '{ "baseRateRule": { "pricingUnit": "per_room", "currency": "EUR", "flatNightlyCents": 12000, "derivedFromRatePlanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "derivedBasisPoints": 8000, "occupancy": { "baseUnitNightlyCents": 1, "adultNightlyCents": 1, "childTiers": [ { "ageFrom": 1, "ageTo": 1, "nightlyCents": 1 } ], "infantFreeUpToAge": 1, "petNightlyCents": 1, "extraVehicleNightlyCents": 1, "includedVehicles": 1, "electricityMode": "included", "electricityFlatNightlyCents": 1 } } }'Remplace COMPLÈTEMENT la baseRateRule d’un plan existant (union discriminée sur pricingUnit, identique au corps de création). Cas d’usage : ré-éditer la grille d’occupation camping (emplacement/adulte/tranches enfant/animaux/véhicules/électricité), corriger un tarif forfaitaire. La DEVISE du plan est IMMUABLE (un changement casserait les saisons déjà posées → 400 RATE_PLAN_CURRENCY_IMMUTABLE). Bump de version NF203 (append-only) : les réservations déjà confirmées gardent leur snapshot tarifaire figé, jamais reprisées. Tous montants en centimes entiers.
Authorizations
Section intitulée « Authorizations »Parameters
Section intitulée « Parameters »Path Parameters
Section intitulée « Path Parameters »Identifiant du plan tarifaire
Request Body required
Section intitulée « Request Body required »Nouvelle structure tarifaire. baseRateRule = union discriminée sur pricingUnit (per_room / per_person / derived), identique à la création.
object
Union discriminée sur pricingUnit.
object
Discriminant de la règle tarifaire.
Doit rester la devise actuelle du plan (immuable).
(per_room uniquement) Tarif nuit forfaitaire en centimes entiers.
Example
12000(derived uniquement) ID du plan tarifaire source.
(derived uniquement) Pourcentage en points de base (ex: 8000 = 80 %).
Example
8000(per_person uniquement) Grille de tarification à l’occupant.
object
object
Responses
Section intitulée « Responses »Structure tarifaire remplacée
object
object
Example generated
{ "data": { "version": 1 }}Corps invalide, règle tarifaire invalide ou changement de devise
object
Code machine de l’erreur
Message lisible
Origine domaine de l’erreur (optionnel)
object
Identifiant de corrélation pour le support
Example
{ "code": "RESERVATION_NOT_FOUND", "message": "Réservation introuvable", "status": 404}Non authentifié
object
Code machine de l’erreur
Message lisible
Origine domaine de l’erreur (optionnel)
object
Identifiant de corrélation pour le support
Example
{ "code": "RESERVATION_NOT_FOUND", "message": "Réservation introuvable", "status": 404}Permission refusée
object
Code machine de l’erreur
Message lisible
Origine domaine de l’erreur (optionnel)
object
Identifiant de corrélation pour le support
Example
{ "code": "RESERVATION_NOT_FOUND", "message": "Réservation introuvable", "status": 404}Plan introuvable
object
Code machine de l’erreur
Message lisible
Origine domaine de l’erreur (optionnel)
object
Identifiant de corrélation pour le support
Example
{ "code": "RESERVATION_NOT_FOUND", "message": "Réservation introuvable", "status": 404}