Aller au contenu

Configurer un barème de taxe de séjour (INSERT append-only, NF203)

POST
/v1/operating-mandates/{mandateId}/tourist-tax-rules
curl --request POST \
--url https://example.com/v1/operating-mandates/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/tourist-tax-rules \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "communeInsee": "06088", "collectingEntityType": "commune", "collectingEntityCode": "06088", "classement": "hotel_palace", "unitTypeScope": "all", "periodFrom": "2026-01-01", "periodTo": "2027-01-01", "calcMode": "per_person_per_night", "perPersonPerNightCents": "example", "capRateBasisPoints": 1, "tarifMaxPerPersonPerNightCents": "example", "perRoomPerNightCents": "example", "additionnelleDeptBasisPoints": 1, "additionnelleRegionBasisPoints": 1, "declarationPeriodicity": "monthly", "currency": "EUR" }'

Crée un barème immuable. Pour modifier un barème actif, utiliser supersede. Montants en centimes (bigint string).

mandateId
required
string format: uuid
Media type application/json
object
communeInsee
required

Code INSEE commune (5 chiffres)

string
/^\d{5}$/
Example
06088
collectingEntityType
required
string
Allowed values: commune epci
collectingEntityCode
required
string
Example
06088
classement
required
string
Allowed values: hotel_palace hotel_5 hotel_4 hotel_3 hotel_2 hotel_1 camping_5 camping_4 camping_3 camping_2 camping_1 meuble_5 meuble_4 meuble_3 meuble_2 meuble_1 chambre_hotes residence_tourisme_5 residence_tourisme_4 residence_tourisme_3 residence_tourisme_2 residence_tourisme_1 village_vacances_5 village_vacances_4 village_vacances_3 village_vacances_2 village_vacances_1 aire_camping_cars non_classe en_cours_classement
unitTypeScope

Camping : emplacement nu (pitch) vs locatif (rental) vs tous (all)

string
Allowed values: all pitch rental
periodFrom
required
string format: date
Example
2026-01-01
periodTo
required

Exclu (borne ouverte)

string format: date
Example
2027-01-01
calcMode
required
string
Allowed values: per_person_per_night per_room_per_night
perPersonPerNightCents

Tarif réel classé en centimes (bigint string). Requis si calcMode=per_person_per_night ET classement non_classe/en_cours_classement absent.

string
nullable
capRateBasisPoints

Plafond % HT non-classé en basis points (ex. 500 = 5%). Requis si non_classe/en_cours_classement.

integer
nullable
tarifMaxPerPersonPerNightCents

Tarif max non-classé en centimes. Requis si non_classe/en_cours_classement.

string
nullable
perRoomPerNightCents

Forfait par chambre/nuit en centimes. Requis si calcMode=per_room_per_night.

string
nullable
additionnelleDeptBasisPoints

Surtaxe départementale en basis points (max 1000 = +10%). Défaut 0.

integer
additionnelleRegionBasisPoints

Surtaxe régionale en basis points (IDF : 20000 = 200% depuis LF 2024, CGCT L2531-17). Défaut 0.

integer
declarationPeriodicity
required
string
Allowed values: monthly quarterly annual
currency
required
string
Allowed values: EUR GBP

Barème créé

Media type application/json
object
data
required
object
ruleId
required
string format: uuid
Example generated
{
"data": {
"ruleId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
}
}

Corps ou paramètres invalides

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Non authentifié

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Permission refusée ou IDOR mandat

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Barème incohérent (mode/classement/montants)

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}