Taxe de séjour - l'API

Présentation de l'API

Cette API permet de calculer la taxe de séjour en France. Elle accepte des requêtes POST au format JSON et retourne les détails de la taxe calculée.

Le post doit être une liste de séjours.

Pour chaque séjour, vous fournissez une liste de un ou plusieurs 'splits', chacun représentant une partie du séjour différente (par le nombre de personnes).

Le post doit être une liste de séjours.

Pour chaque séjour, vous fournissez une liste de un ou plusieurs 'splits', chacun représentant une partie du séjour différente (par le nombre de personnes).

Années disponibles

  • 2025

En cas de calcul sur une année qui n'est pas encore disponible, une estimation est faite par rapport à la même date de la dernière année disponible.

C'est la clé is_estimation:bool dans les lignes et dans le footer qui l'indique.

l'API gère aussi une estimation future sur un 29 février.

Détails de la Route

URL: https://api.sejour.tax/tds/process/calculate

Méthode: POST

Content-Type: application/json

Vous désirez la tester ?

L'API est accessible par une clé d'API. Si vous désirez la tester pour l'intégrer à vos outils, contactez-nous sur purefrance.com

Format de la requête

Le POST est une liste d'objets.

Chaque objet a les clés suivantes:

  • internal_ref : (string) Cette clé est facultative et vous permet de différencier les séjours entre eux.
  • house : (objet) Cette clé est obligatoire. Elle contient un objet avec les clés:
    • rent: (float) le loyer (Obligatoire)
    • siren: (str) le siren de la commune (Obligatoire)
    • category: (int) la catégorie du bien (Obligatoire)
    • nature: (int) la nature du bien (Obligatoire)
  • splits : (liste) Cette clé est obligatoire. Chaque élément de la liste est un objet contenant :
    • arrival_date : (string) La date de début du split. ("%Y-%m-%d"). (Obligatoire).
    • departure_date : (string) La date de fin du split. ("%Y-%m-%d"). (Obligatoire).
    • adults :(int) Nombre d'adultes assujétis. (Obligatoire).
    • exo_or_child : (int) Nombre de personnes exonérées. (Obligatoire).
    La sommes adults + exo_or_child ne peut être inférieure ou égale à zéro.

Les dates des différents splits doivent être consécutives. La dernière d'un split doit être la première du suivant.

En cas d'erreur une réponse avec la clé "message" est retournée avec la raison de l'erreur.

Format de la réponse

La réponse est une liste d'objets.

Chaque objet correspond à un séjour. et contient les clés :

  • invoice_header : (objet) Rappel les détail du séjour.
  • invoice_line : (objet) Détaille le calcul jour par jour.
  • invoice_footer : (objet) Récapitule les totaux.

Dans le footer, la clé 'invoice_total' est le montant total de la taxe à percevoir (et reverser).

Exemple de requête

Encadré en rouge ci-dessous l'objet qui correspond à un séjour avec deux périodes différentes.

[
      
{ "internal_ref":"MAREFPERSO01", "house": { "rent": 10200.00, "siren": "214000655", "category": 9, "nature": 4 }, "splits": [ { "arrival_date": "2025-12-27", "departure_date": "2025-12-30", "adults": 8, "exo_or_child":2 }, { "arrival_date": "2025-12-30", "departure_date": "2026-01-03", "adults":4, "exo_or_child": 0 } ] },
{ "internal_ref":"MAREFPERSO02", "house": { "rent": 1000.00, "siren": "214000655", "category": 5, "nature": 4 }, "splits": [ { "arrival_date": "2025-12-27", "departure_date": "2025-12-30", "adults": 8, "exo_or_child": 4 } ] } ]

Exemple de Réponse

            [
            {
                "invoice_footer": {
                    "detail_taxes": {
                        "department": "30.72",
                        "lgv": "104.32",
                        "regional": "0.00",
                        "tx200": "0.00"
                    },
                    "invoice_total": "442.24",
                    "is_estimation": true,
                    "tds_without_add_taxes": "307.20",
                    "total_add_taxes": "135.04"
                },
                "invoice_header": {
                    "arrival_date": "2025-12-27",
                    "category": "9",
                    "departure_date": "2026-01-04",
                    "internal_ref": "MAREFPERSO01",
                    "nature": 4,
                    "rent": "10200.0",
                    "siren": "214000655",
                    "tarification": "%"
                },
                "invoice_line": [
                    {
                        "date": "2025-12-27",
                        "is_estimation": false,
                        "liable_for_tax": 8,
                        "per_person_with_taxes": "6.91",
                        "per_person_without_taxes": "4.80",
                        "taxes": {
                            "dpt": "0.48",
                            "lgv": "1.63",
                            "reg": "0.00",
                            "tx2": "0.00"
                        },
                        "total_of_the_day": "55.28"
                    },
                    {
                        "date": "2025-12-28",
                        "is_estimation": false,
                        "liable_for_tax": 8,
                        "per_person_with_taxes": "6.91",
                        "per_person_without_taxes": "4.80",
                        "taxes": {
                            "dpt": "0.48",
                            "lgv": "1.63",
                            "reg": "0.00",
                            "tx2": "0.00"
                        },
                        "total_of_the_day": "55.28"
                    },
                    {
                        "date": "2025-12-29",
                        "is_estimation": false,
                        "liable_for_tax": 8,
                        "per_person_with_taxes": "6.91",
                        "per_person_without_taxes": "4.80",
                        "taxes": {
                            "dpt": "0.48",
                            "lgv": "1.63",
                            "reg": "0.00",
                            "tx2": "0.00"
                        },
                        "total_of_the_day": "55.28"
                    },
                    {
                        "date": "2025-12-30",
                        "is_estimation": false,
                        "liable_for_tax": 8,
                        "per_person_with_taxes": "6.91",
                        "per_person_without_taxes": "4.80",
                        "taxes": {
                            "dpt": "0.48",
                            "lgv": "1.63",
                            "reg": "0.00",
                            "tx2": "0.00"
                        },
                        "total_of_the_day": "55.28"
                    },
                    {
                        "date": "2025-12-31",
                        "is_estimation": false,
                        "liable_for_tax": 8,
                        "per_person_with_taxes": "6.91",
                        "per_person_without_taxes": "4.80",
                        "taxes": {
                            "dpt": "0.48",
                            "lgv": "1.63",
                            "reg": "0.00",
                            "tx2": "0.00"
                        },
                        "total_of_the_day": "55.28"
                    },
                    {
                        "date": "2026-01-01",
                        "is_estimation": true,
                        "liable_for_tax": 8,
                        "per_person_with_taxes": "6.91",
                        "per_person_without_taxes": "4.80",
                        "taxes": {
                            "dpt": "0.48",
                            "lgv": "1.63",
                            "reg": "0.00",
                            "tx2": "0.00"
                        },
                        "total_of_the_day": "55.28"
                    },
                   ...
                ]
            },
            Second séjour:
            {
                "invoice_footer": {
                    "detail_taxes": {
                        "department": "2.40",
                        "lgv": "8.16",
                        "regional": "0.00",
                        "tx200": "0.00"
                    },
                    "invoice_total": "34.56",
                    "is_estimation": false,
                    "tds_without_add_taxes": "24.00",
                    "total_add_taxes": "10.56"
                },
                "invoice_header": {
                    "arrival_date": "2025-12-27",
                    "category": "5",
                    "departure_date": "2025-12-30",
                    "internal_ref": "MAREFPERSO02",
                    "nature": 4,
                    "rent": "1000.0",
                    "siren": "214000655",
                    "tarification": "€"
                },
                "invoice_line": [
                    {
                        "date": "2025-12-27",
                        "is_estimation": false,
                        "liable_for_tax": 8,
                        "per_person_with_taxes": "1.44",
                        "per_person_without_taxes": "1.00",
                        "taxes": {
                            "dpt": "0.10",
                            "lgv": "0.34",
                            "reg": "0.00",
                            "tx2": "0.00"
                        },
                        "total_of_the_day": "11.52"
                    },
                    ...
                ]
            }
        ]