Intégrer les annonces Modelo Office sur un site externe avec le flux XML
Ce guide s’adresse au prestataire chargé de développer ou d’alimenter le site externe d’un client Modelo Office. Il décrit la récupération du flux, sa logique de mise à jour et la structure du fichier XML
Ce que contient le flux
Le fichier XML contient les annonces que le client a choisi de diffuser depuis Modelo Office. Chaque annonce est représentée par un élément bien placé sous la racine biens.
Le flux XML classique concerne les biens suivants :
- Appartement
- Maison
- Immeuble
- Immobilier Pro
- Fonds de commerce
- Entreprise
- Droit au Bail
- Stationnement
- Terrain
- Viager
- Programme immobilier
Récupérer le fichier
Deux méthodes sont disponibles :
- Dépôt sur votre serveur FTP
- Vous fournissez l’hôte, le port, l’utilisateur et le mot de passe.
- Le fichier est déposé avec les droits du compte transmis.
- Si le dépôt doit arriver dans un dossier particulier, configurez le compte FTP pour que ce dossier soit son répertoire d’arrivée. Aucun sous-dossier de dépôt n’est ciblé séparément.
- Mise à disposition par URL
- Une URL propre au client permet de télécharger le fichier XML.
- Votre système doit interroger cette URL périodiquement.
Pour demander l’activation, le client commun doit ouvrir un ticket depuis son espace client en précisant :
- la méthode souhaitée : FTP ou URL ;
- le format XML ;
- pour un dépôt FTP, les paramètres de connexion nécessaires ;
- si plusieurs agences sont concernées, le mode d’activation souhaité.
Une activation peut être réalisée :
- pour toute l’installation : un fichier commun à toutes les agences ;
- par agence : un fichier distinct par agence, nommé à partir du code agence fourni.
Un export distinct par utilisateur n’est pas disponible.
Fréquence et logique de synchronisation
Les exports démarrent deux fois par jour, aux alentours de 2 h et 14 h. Les passerelles étant traitées successivement, le fichier peut être disponible plus tard.
Pour une récupération avec davantage de marge, programmez vos imports :
- vers 6 h le matin ;
- vers 18 h en fin d’après-midi.
Il n’existe pas de notification, de webhook ou d’e-mail signalant la disponibilité d’un nouvel export. Le site doit donc interroger périodiquement le FTP ou l’URL.
Fonctionnement « Annule et Remplace »
Chaque fichier constitue un état complet des annonces sélectionnées au moment de l’export :
- créez les annonces présentes pour la première fois ;
- mettez à jour les annonces déjà connues ;
- retirez de la diffusion toute annonce présente dans l’export précédent mais absente du dernier fichier.
N’interprétez pas le fichier comme une liste de modifications incrémentales. Il remplace l’état précédent.
Structure générale
<biens>: racine du document.<bien>: une annonce immobilière.- Les valeurs textuelles sont placées dans des sections
CDATA. - Les descriptions peuvent contenir des balises
brpour représenter des retours à la ligne.

Balises absentes ou vides
Une balise absente ou vide signifie que la donnée n’est pas renseignée ou qu’elle ne s’applique pas à l’annonce.
Exemple : type_location peut être absent sur une annonce de vente.
Votre import doit donc :
- accepter les balises absentes ;
- accepter les éléments présents mais vides ;
- ne pas générer d’erreur lorsqu’une valeur facultative manque ;
- supprimer ou vider l’ancienne valeur côté site lorsque le nouveau flux ne la fournit plus.
Valeurs brutes et balises _formatee
Certaines données sont envoyées deux fois :
- une balise principale contenant la valeur brute ;
- une balise portant le même nom avec le suffixe _formatee, contenant une valeur préparée pour l’affichage.

Les deux approches sont possibles :
- utiliser la valeur brute et gérer vous-même son affichage ;
- utiliser la valeur formatée fournie ;
- ignorer entièrement les balises _formatee.
Aucune priorité n’est imposée. Les balises formatées viennent en complément et peuvent être ignorées.
Types utilisés dans la référence
Les types ci-dessous décrivent la façon recommandée de lire et stocker les valeurs, sans imposer un langage ou un moteur de base de données particulier.
| Type | Utilisation |
|---|---|
| string | Chaîne de caractères, texte libre, référence, code, date ou valeur de sélection. Pour une date, le format attendu est précisé dans la description. |
| boolean | Valeur logique transmise dans le XML. |
| integer | Nombre entier ou code numérique. |
| number | Surface, montant, coordonnée ou autre nombre pouvant contenir des décimales. |
| array | Collection contenant plusieurs éléments ou sous-éléments. |
Référence des balises
Les valeurs ci-dessous sont des exemples et non des listes exhaustives.
Identification et contenu
| Balise | Type | Description | Valeurs exemples |
|---|---|---|---|
| reference_a_afficher | string | Référence destinée à l’affichage. | REF-EXEMPLE-001, REF-EXEMPLE-002 |
| reference_technique | string | Référence technique interne du bien. | VA0001-AGENCE, VM0002-AGENCE |
| reference_programme | string | Référence d’un programme immobilier destinée à l’affichage. | VN008, VN1234 |
| titre | string | Titre de l’annonce. | Appartement T3 avec terrasse, Maison familiale avec jardin |
| description | string | Descriptif principal ; peut contenir des retours à la ligne sous forme de balises br. | Appartement lumineux avec terrasse et stationnement. |
| description_impression | string | Second descriptif, généralement utilisé pour les affiches vitrines. | Appartement T3 avec terrasse, proche des commodités. |
| accroche | string | Accroche commerciale ; peut contenir des valeurs personnalisées. | Coup de cœur, Exclusivité, Nouveauté, À saisir, À voir absolument, Spécial investisseur |
| points_forts | string | Points forts du bien ; contenu personnalisable. | Grande terrasse, Ascenseur, Proche commerces |
| reason | string | Raison de la vente, saisie libre. | Autres projets |
| commod | string | Champ « Autre » de la fiche du bien ; contenu personnalisable. | Accès handicapés, Digicode, Interphone, Climatisation |
Caractéristiques du bien
| Balise | Type | Description | Valeurs exemples |
|---|---|---|---|
| surface_habitable | number | Surface habitable. | 40.00, 23.50, 12.00, 125,25 |
| nb_sdb | integer | Nombre de salles de bains. | 0, 1, 2, 3 |
| nb_sde | integer | Nombre de salles d’eau. | 0, 1, 2, 3, 4 |
| ascenseur | boolean | Indique la présence d’un ascenseur. Une valeur vide peut également être transmise. | vide, 0 = Non, 1 = Oui |
| wc | integer | Nombre de WC. | 0, 1, 2, 3, 5 |
| surface_jardin | number | Surface du jardin en m², utilisée pour les maisons. | 40.00, 23.50, 12.00, 125,25 |
| surface_terrain | number | Surface du terrain en m². | 40.00, 23.50, 12.00, 125,25 |
| piscine | boolean | Indique la présence d’une piscine. Une valeur vide peut également être transmise. | vide, 0 = Non, 1 = Oui |
| cave | boolean | Indique la présence d’une cave. Une valeur vide peut également être transmise. | vide, 0 = Non, 1 = Oui |
| grenier | string | Oui ou Non. | NON, OUI |
| stationnement_interne | integer | Nombre de stationnements intérieurs. | 0, 1, 2, 3 |
| stationnement_externe | integer | Nombre de stationnements extérieurs. | 0, 1, 2, 3 |
| nb_balcon | integer | Nombre de balcons. | 0, 1, 2, 3 |
| surface_balcon | number | Surface des balcons en m². | 0.00, 3.00, 4.00, 7.00 |
| nb_terrasse | integer | Nombre de terrasses. | 0, 1, 2, 3 |
| surface_terrasse | number | Surface des terrasses en m². | 0, 6, 8, 10 |
| etage | integer | Étage du bien. | 0, 1, 2, 3, 4 |
| nb_etage | integer | Nombre d’étages. | 0, 2, 3, 4, 5 |
| vue | string | Type de vue ; peut contenir des valeurs personnalisées. | Dégagée, Jardin, terrasse, Rue, Mer, Verdure |
| nb_piece | integer | Nombre de pièces. | 1, 2, 3, 4, 5 |
| nb_chambre | integer | Nombre de chambres. | 0, 1, 2, 3, 4 |
| annee | integer | Année de construction. | 1970, 1980, 2015, 2026 |
| old_new | string | Catégorie de construction : Ancien, Récent ou Neuf. | Ancien, Récent, Neuf |
| cuisine | string | Équipement de la cuisine. | Equipée, Aménagée et équipée, Aménagée, Nue, Non équipée, Partiellement équipée |
| type_cuisine | string | Type de cuisine. | Américaine, Coin cuisine, Indépendante |
| type_chauffage | string | Type de chauffage principal. | Individuel, Collectif, De ville, En citerne, Mixte |
| ameublement | string | Niveau d’ameublement. | Non meublé, Entièrement meublé, Partiellement meublé |
| mise_en_avant | boolean | Indique si l’annonce est mise en avant. | 0 = Non, 1 = Oui |
| luxe | boolean | Indique si le bien est identifié comme prestigieux ou luxueux. | 0 = Non, 1 = Oui |
| ouverture | string | Type d’ouvertures. | PVC Double vitrage, Double vitrage, Aluminium Double vitrage, Bois Double vitrage |
| isolation | string | Information d’isolation saisie librement. | Extérieure, Laine de roche, Laine de verre |
| materiaux_de_construction | string | Matériaux de construction. | Béton cellulaire, Pierre, Brique classique, Béton armé |
| chauffages | array | Contient plusieurs éléments chauffage. | Électricité, Climatisation réversible |
| climatisations | array | Contient plusieurs éléments climatisation. | Split mural, Réversible |
| details_pieces | array | Contient des séquences piece, surface et niveau. | Voir section ci-dessous. |
Détail des pièces
Les sous-éléments sont transmis par séquences : un nom de pièce, sa surface, puis son niveau.
Lors de l’import, associez chaque triplet piece / surface / niveau dans l’ordre où il apparaît.

Localisation et typologie
| Balise | Type | Description | Valeurs exemples |
|---|---|---|---|
| code_postal | string | Code postal. | 67000 |
| ville | string | Commune du bien. | Strasbourg |
| pays | string | Pays. | France |
| code_pays | string | Code pays. | FR |
| quartier | string | Quartier. | Cronenbourg |
| secteur | string | Secteur personnalisable. | Faculté |
| latitude | number | Latitude transmise selon le niveau de précision choisi par le client. | 48.000000 |
| longitude | number | Longitude transmise selon le niveau de précision choisi par le client. | 2.000000 |
| type_annonce | string | Nature de l’opération associée à l’annonce. | Vente, Location, Vente à terme, Viager |
| type_prod | string | Type de bien. | Appartement, Maison, Stationnement, Immobilier Pro, Terrain, Immeuble, Droit au Bail, Entreprise, Fonds de commerce, Programme immobilier |
| sous_type_prod | string | Sous-type du bien. Peut contenir des sous types personnalisés. | Appartement T3, Appartement T2, Villa, Appartement T4, Maison de village, Autres commerces, Boutique, Hôtel, hébergement, Local commercial, Local industriel, Presse, tabac, Restaurant, bar |
| type_location | string | Normale ou Saisonnière ; applicable aux locations. | Normale |
| type_viager | string | Libre, nue propriété, occupé, sans rente ou semi occupé. | Libre |
| exposition | string | Exposition du bien. | Sud, Sud-Est, Ouest, Est, Sud-Ouest, Est-Ouest, Nord-Est, Nord, Nord-Sud, Nord-Ouest, Traversant |
Prix, location et honoraires
| Balise | Type | Description | Valeurs exemples |
|---|---|---|---|
| prix | number | Prix de vente. | 99000.00, 108000.00, 169900.00, 189000.00 |
| loyer | number | Loyer total transmis. | 490.00, 505.00, 530.00 |
| prix_hors_honoraires_acquereur | number | Prix net vendeur. | 99000, 108000, 169900, 189000 |
| charges | number | Charges mensuelles. | 0.00, 50.00, 70.00, 100.00 |
| area_subject_to_rent_control | string | Indique si le bien est situé dans une zone soumise à l’encadrement des loyers. | Non |
| increased_reference_rent | number | Loyer de référence majoré. | 0.00, 50.00, 70.00, 100.00 |
| rent_complement | number | Complément de loyer. | 0.00, 50.00, 70.00, 100.00 |
| charges_type | string | Modalités des charges. | Provision sur charges 50,00 €/mois, régularisation annuelle |
| depot_garantie | number | Dépôt de garantie. | 0.00, 385.00, 470.00 |
| frais_notaire | number | Frais de notaire payés par le vendeur. | 0.00, 3.00, 8.50 |
| taxe_fonciere | number | Montant de la taxe foncière. | 0.00, 950.00, 1000.00, 1100.00 |
| honoraires_visite_dossier | number | Part des honoraires liée à la visite et au dossier. | 0.00, 200.53, 370.11 |
| honoraires_etat_lieux | number | Part des honoraires liée à l’état des lieux. | 0.00, 92.55, 114.00 |
| honoraires_acquereur | number | Honoraires acquéreur. | 0.00, 9000.00, 10000.00, 15000.00 |
| honoraires_locataire | number | Honoraires locataire. | 0.00, 51.00, 342.00 |
| honoraires_charges | string | Partie supportant les honoraires pour une vente. En location, utilisez les champs d’honoraires dédiés. | Vendeur, Acquéreur, Vendeur et acquéreur |
DPE, GES, risques et copropriété
| Balise | Type | Description | Valeurs exemples |
|---|---|---|---|
| bilan_energie | string | Note « Consommation d’énergie primaire ». NS = Non Soumis, VI = Vierge | A, B, C, D, E, F, G, NS, VI |
| valeur_energie | number | Valeur numérique de consommation d’énergie primaire. | 0, 50, 95, 124, 138 |
| bilan_ges | string | Note « Émissions GES ». NS = Non Soumis, VI = Vierge | A, B, C, D, E, F, NS, VI |
| valeur_ges | number | Valeur numérique des émissions de GES. | 0, 3, 4, 5, 6 |
| dpe_version | string | Version du DPE. | DPE_v07-2021, DPE_v01-2011, en fonction de la date de réalisation |
| dpe_date_realisation | string | Date de réalisation du DPE. En cas d’écart avec dpe_version, cette date fait foi. | 15/01/2026 |
| dpe_cout_min_conso | number | Estimation minimale des coûts de consommation. | 0.00, 300.00, 450.00, 530.00, 1700.00 |
| dpe_cout_max_conso | number | Estimation maximale des coûts de consommation. | 0.00, 427.00, 500.00, 800.00, 1170.00 |
| dpe_annee_reference_conso | integer | Année de référence du calcul des coûts. | 0, 2021, 2023, 2024, 2025 |
| dpe_etat | string | État du DPE. | Effectué, Non soumis au DPE, Vierge, A faire, En cours |
| georisque | boolean | Indique si le bien est exposé aux géorisques. | 0 = Non, 1 = Oui |
| copro | string | Oui ou Non. | Oui, Non |
| nb_lots_copro | integer | Nombre total de lots. | 0, 6, 21, 25, 60 |
| quotepart | number | Quote-part moyenne du budget prévisionnel. | 0.00, 900.00, 1000.00, 1100.00, 1500.00 |
| copro_procedure | string | Oui ou Non. | Non |
| copro_procedure_info | string | Précisions sur la procédure en cours. | Travaux de toiture en cours |
État, dates et programme
| Balise | Type | Description | Valeurs exemples |
|---|---|---|---|
| etat_avancement | string | État d’avancement. |
Avant-première, Commercialisation en cours, Démarrage des travaux, Dernière opportunité, Fin de programme, Lancement commercial, Travaux en cours |
| livraison_estimee_semestre | string | Semestre estimé de livraison + année | 2ème trimestre 2026 |
| date_creation | string | Date de création du bien. | 2025-01-15T10:30:00+01:00 |
| date_modification | string | Date de dernière modification du bien. | 2026-06-20T14:45:00+02:00 |
| date_mise_en_ligne | string | Date de mise en ligne de l’annonce sur le site lorsque le client dispose d’un site Septeo. | 2026-06-21T09:00:00+02:00 |
| date_disponibilite | string | Date à laquelle le bien est disponible pour l’acquéreur ou le locataire. | 2026-09-01T00:00:00+02:00 |
| etat | boolean | 1 = sur le marché ; 2 = sous compromis ; 3 = vendu ou loué. | 1, 2, 3 |
Coordonnées d’affichage, agence et négociateur
| Balise | Type | Description | Valeurs exemples |
|---|---|---|---|
| nom_a_afficher | string | Nom affiché ; peut provenir de l’agence ou du négociateur selon le choix du client. | AGENCE EXEMPLE |
| email_a_afficher | string | Adresse e-mail affichée. | contact@agence-exemple.fr |
| tel_a_afficher | string | Numéro de téléphone affiché. | 0102030405 |
| adresse_mandataire | string | Adresse liée à l’agence assignée au bien. | 10 rue de l’Exemple |
| cp_mandataire | string | Code postal de l’agence assignée. | 67000 |
| ville_mandataire | string | Ville de l’agence assignée. | Strasbourg |
| telephone_mandataire | string | Téléphone de l’agence assignée. | 0102030405 |
| negociateur_nom | string | Nom du négociateur assigné. | DUPONT |
| negociateur_prenom | string | Prénom du négociateur assigné. | Camille |
| negociateur_adresse | string | Adresse du négociateur assigné. | 10 rue de l’Exemple |
| negociateur_cp | string | Code postal du négociateur assigné. | 67000 |
| negociateur_ville | string | Ville du négociateur assigné. | Strasbourg |
| negociateur_telephone | string | Téléphone du négociateur assigné. | 0601020304 |
Médias
|
Balise |
Type |
Description |
Valeurs exemples |
|---|---|---|---|
|
video |
string |
Lien vers une vidéo. |
https://exemple.test/video |
|
visite_virtuelle |
string |
Lien vers une visite virtuelle |
https://exemple.test/visitevirtuelle |
|
negociateur_photo |
string |
URL de la photo du négociateur. |
https://exemple.test/nego |
|
images |
array |
Images du bien |
Voir le bloc ci-dessous |
Images
Chaque élément image contient l’URL d’une photo et porte un attribut id qui est défini en fonction de l'ordre des photos dans le logiciel.

Sous-types de biens
Les sous-types disponibles dépendent du type de bien sélectionné.
Des sous-types personnalisés ont pu être ajoutés à la demande.
| Sous-type Appartement | Sous-type Droit au bail | Sous-type Commerce | Sous-type Entreprise | Sous-type Maison |
|---|---|---|---|---|
| Studio | Bureaux | Commerce de services | Commerce de services | Individuelle |
| T1 | Local d’activité | Commerce d’alimentation | Commerce d’alimentation | Mitoyenne 1 côté |
| T1/2 | Local commercial | Magasin, boutique | Magasin, boutique | Mitoyenne 2 côtés |
| T2 | Local industriel | Restaurant, bar | Restaurant, bar | Plain-pied |
| T2/3 | Entrepôt | Presse, tabac | Presse, tabac | Traditionnelle |
| T3 | Boutique | Hôtel, hébergement | Hôtel, hébergement | Contemporaine |
| T3/4 | Autres commerces | Autres commerces | Bourgeoise | |
| T4 | Box de stockage | Villa | ||
| T4/5 | Manoir | |||
| T5 et plus | Château | |||
| Loft | Ferme | |||
| Duplex | Mas | |||
| Autre | Bastide | |||
| Chalet | ||||
| Ancienne | ||||
| Maison de campagne |
| Sous-type Terrain | Sous-type Stationnement | Sous-type Immobilier pro | Sous-type Viager |
|---|---|---|---|
| Constructible | Garage | Bureaux | libre |
| Agricole | Parking | Local d’activité | occupé |
| Viticole | Local commercial | semi occupé | |
| Industriel | Local industriel | sans rente | |
| Étang | Entrepôt | nue propriété | |
| Forêt | Boutique | ||
| Box de stockage |
Assistance
Pour toute question sur la structure du flux ou l’activation d’une passerelle, contactez portails-realestate@septeo.com.