Courtiers et régies
Documentation
Dernière mise à jour : 12 novembre 2026
Tout ce qu’une régie ou un courtier indépendant doit savoir pour publier sur ImmGate : ce que ça coûte, comment on ouvre votre espace, comment brancher votre logiciel, et ce que deviennent vos annonces. Cette page est publique : lisez-la avant de vous inscrire.
Rejoindre ImmGate, en quatre étapes
Rien à installer, rien à ressaisir. Comptez une demi-heure, dont vingt minutes passées dans votre propre logiciel.
Vous réservez votre place
Par le formulaire de la page d’accueil, ou par courriel. Nous vérifions votre inscription au registre du commerce, qui est la condition pour publier, et nous créons la fiche de votre agence.
Nous ouvrons votre espace
Vous recevez un lien de connexion à usage unique, qui vous laisse choisir votre mot de passe. Vous êtes administrateur de votre espace : vous pouvez y ajouter vos collaborateurs.
Vous branchez votre logiciel
Dans votre espace, l’onglet « Flux » attend l’adresse de votre export SwissRETS. Le bouton « Tester la connexion » va le chercher et vous dit ce qu’il contient, sans rien publier.
Vos annonces paraissent
Avec la même visibilité que celles de tout le monde. Votre profil d’agence et celui de chaque courtier sont publics et référencés, sans supplément.
Ce que ça coûte, et ce que ça comprend
49 CHF par mois tout compris, pour toutes vos annonces. Location et vente, sans frais par annonce, résiliable chaque mois.
- Annonces illimitées : le prix ne dépend pas du nombre de biens que vous publiez.
- Aucune option payante, aucun niveau, aucune mise en avant à vendre.
- Les 100 premiers partenaires : six mois offerts, puis le prix garanti trois ans.
- Un profil public pour l’agence et un pour chaque courtier, compris dans l’abonnement.
- L’import automatique depuis votre logiciel, compris lui aussi.
Il n’y a pas de deuxième tarif. Si vous en cherchez un, c’est qu’il n’existe pas.
La visibilité ne s’achète pas
C’est la règle qui tient tout le reste : le classement des résultats dépend de ce que le visiteur cherche, jamais de ce que l’annonceur paie. Il n’y a ni niveau d’abonnement, ni annonce sponsorisée, ni remontée dans la liste contre supplément.
Cela veut dire que vous ne pouvez pas acheter de la visibilité chez nous, et que personne ne peut en acheter contre vous.
Qui peut publier
Les professionnels de l’immobilier inscrits au registre du commerce suisse : régies, courtiers indépendants, promoteurs. Nous vérifions l’inscription avant d’activer un compte.
Les particuliers ne publient pas sur ImmGate. La consultation, elle, est gratuite pour tout le monde, pour toujours : pas d’abonnement, pas d’accès prioritaire payant, pas d’annonce réservée à ceux qui paient.
Votre espace, en une page
Une fois connecté, le bouton « Mon espace » en haut à droite ouvre votre tableau de bord. Il répond à quatre questions, dans cet ordre.
- Mon flux : son état, la dernière lecture réussie, et le bouton pour le régler et le tester.
- Mes annonces : combien sont en ligne, lesquelles sont hors ligne, et le lien pour corriger chacune.
- Mon équipe : les fiches de vos courtiers, et de quoi ajouter un collaborateur.
- Ma fiche : votre profil public, vos cantons, et vos honoraires par défaut.
L’espace est habillé comme le reste du site, dans votre langue. Vous n’avez jamais affaire à une interface d’administration technique.
Brancher votre logiciel : le format
ImmGate lit le standard suisse SwissRETS, dans ses deux formes. Vous n’avez rien à exporter dans un format à nous.
- SwissRETS JSON, version 3.x : la forme que la norme fait évoluer, celle que nous demandons en premier.
- SwissRETS XML, version 2.7 : figée par Qualipool, mais encore produite par beaucoup de logiciels suisses. Nous l’acceptons exactement de la même façon.
Le XML est traduit chez nous vers la structure du JSON, puis les deux suivent le même chemin. Autrement dit : le format de votre logiciel ne change rien à ce que vos annonces deviennent chez nous.
Si votre logiciel exporte vers CASAGATEWAY, Immomig, Casasoft ou un autre diffuseur, c’est le même fichier que vous nous donnez à lire. Dites-nous lequel vous utilisez, nous vous indiquons le réglage exact.
Brancher votre logiciel : l’adresse et la clé
Dans l’onglet « Flux » de votre fiche, trois champs suffisent.
- Le format : laissez « Détecter automatiquement » en cas de doute. Un document qui commence par « < » est lu comme du XML, un document qui commence par « { » comme du JSON.
- L’adresse de l’export : une adresse https, ou le chemin d’un fichier déposé sur notre serveur. Pas de http simple : un inventaire en clair se lit et se modifie en chemin, et il porte les coordonnées de vos vendeurs.
- La clé d’accès, si votre export est protégé. Elle part dans un en-tête « Authorization », jamais dans l’adresse : une adresse se retrouve dans les journaux du serveur d’en face, pas un en-tête.
Brancher votre logiciel : l’API, s’il sait envoyer
Certains logiciels n’exposent pas leur inventaire à une adresse : ils l’envoient. Pour eux, ImmGate a une API. Dans l’onglet « API » de votre espace, créez une clé (elle n’est montrée qu’une fois) et posez-la dans votre logiciel.
- POST /api/v1/inventaire : votre logiciel dépose son inventaire SwissRETS complet, en JSON ou en XML. Réponse 202 : il est lu dans la minute.
- POST /api/v1/reveil : « mon inventaire a changé ». Un export que nous lisons chez vous est relu tout de suite, sans attendre la demi-heure.
- GET /api/v1/etat : la dernière lecture, quand elle a eu lieu, et ce qui a été créé, modifié ou retiré.
- GET /api/v1/journal/{numéro} : une lecture en détail, avec l’erreur exacte de chaque annonce.
La clé part dans l’en-tête « Authorization: Bearer … », jamais dans une adresse. Nous n’en gardons que l’empreinte : une clé perdue se révoque et se refait. Deux clés peuvent être actives à la fois, pour en changer sans coupure.
Un document illisible est refusé tout de suite (422), avec la raison. Les messages suivent la langue que votre logiciel demande (Accept-Language : fr, de, it ou en). Le dépôt est toujours un inventaire complet. Il n’y a pas d’ordre « supprime l’annonce 12 » : ce qui manque est retiré avec les mêmes garde-fous qu’un flux.
curl -X POST https://www.immgate.ch/api/v1/inventaire \
-H "Authorization: Bearer ig_live_…" \
-H "Content-Type: application/json" \
-H "Accept-Language: fr" \
--data-binary @inventaire.json
# 202 Accepted
{
"accepte": true,
"annonces": 42,
"projets": 1,
"ecarts": [],
"etat": "https://www.immgate.ch/api/v1/etat"
}
Le test de connexion, avant toute publication
Le bouton « Tester la connexion » va chercher votre document, le lit, le confronte au schéma officiel de la norme, et vous répond en quelques secondes :
- la taille reçue et le format reconnu
- le logiciel qui a produit le fichier, quand il le déclare
- le nombre d’annonces lues
- et, s’il y en a, les écarts au standard, annonce par annonce et champ par champ.
Rien n’est écrit, aucune annonce n’est créée, aucune n’est modifiée. Vous corrigez dans votre logiciel, vous relancez le test, et vous n’avez personne à appeler.
Un test concluant fait passer votre flux de « brouillon » à « testé ». Il ne l’active pas : l’activation reste une décision, pas un effet de bord.
Choisir ce que vous publiez
Votre logiciel exporte tout votre inventaire, mais vous ne voulez pas forcément tout publier sur ImmGate. Vous le réglez sur l’onglet « Flux », sans rien changer dans votre logiciel et sans appeler votre éditeur. Par défaut, tout est repris.
- Les offres : les biens à louer, les biens à vendre, ou les deux.
- Les types de biens : habitation, commercial, parking, terrain… Décochez les places de parc, par exemple, si vous ne les louez qu’avec un logement.
- Les cantons : toute la Suisse, ou seulement ceux que vous cochez.
- Des biens à toujours reprendre, par leur référence, même si vos autres choix les écartent.
- Des biens à ne jamais reprendre, par leur référence.
Le test de connexion vous montre ce que vos choix donnent avant de les enregistrer : combien de biens sont repris, lesquels ne le sont pas, et pourquoi. Le journal le redit à chaque lecture.
Un bien que vous écartez n’est pas créé. S’il était déjà en ligne, il est retiré à la lecture suivante, sans délai puisque c’est votre décision. Il n’est jamais supprimé et revient dès que vos choix le reprennent.
Les états d’un flux
Votre flux porte un état, visible sur le tableau de bord comme sur l’onglet « Flux ».
- Brouillon : la source est déclarée, rien n’a encore été éprouvé.
- Testé : la connexion répond et le document se lit. Des écarts au standard n’empêchent pas d’activer : ils vous sont signalés.
- Actif : les annonces du flux sont reprises.
- Suspendu : vos annonces restent en ligne, mais ne sont plus mises à jour.
- En erreur : trois lectures de suite ont échoué. Le message exact est dans votre journal. Nous continuons d’essayer, de moins en moins souvent, et le flux redevient actif dès qu’une lecture réussit.
Aucun import ne supprime quoi que ce soit. Un bien qui disparaît de votre export est dépublié et conservé : s’il revient, il reprend sa place.
La synchronisation, une fois le flux activé
Un flux actif est relu toutes les demi-heures, sans que vous ayez rien à faire. Vous pouvez aussi le lire tout de suite, avec le bouton « Lire mon flux maintenant » ou par l’API. Chaque lecture suit les mêmes six étapes.
- Récupérer : nous allons chercher votre document, à votre adresse ou là où votre logiciel l’a déposé. S’il ne répond pas, nous nous arrêtons là : rien ne bouge.
- Lire : le document est confronté au schéma officiel SwissRETS. Ce qui s’en écarte est signalé dans le journal pour votre éditeur, mais tout ce qui se comprend est repris.
- Traduire : chaque annonce devient une fiche ImmGate, dans les langues que vous fournissez. Les projets d’abord, puis leurs lots.
- Comparer : une empreinte de chaque annonce dit si quelque chose a changé. Une annonce identique n’est pas touchée, pas même son historique.
- Appliquer : une annonce nouvelle est créée. Une annonce modifiée est mise à jour, et l’historique dit ce qui a changé (« Loyer net », « Photos »). Les photos sont copiées chez nous. Si l’une ne répond pas, l’ancienne galerie reste et nous réessayons. Si votre inventaire ne donne plus aucune photo pour un bien, sa galerie est vidée.
- Réconcilier : une annonce absente de votre inventaire n’est retirée qu’après deux lectures et vingt-quatre heures. Elle est dépubliée, pas supprimée : si elle revient, elle reprend sa place, son adresse et son historique.
Trois garde-fous protègent votre vitrine d’un export défectueux, sans jamais rien vous demander. Le délai d’un jour vaut pour tout : qu’il manque une annonce ou qu’il les manque toutes, rien n’est retiré avant vingt-quatre heures et deux lectures, et le journal vous dit dès la première quand le retrait aura lieu. Ce qui a été retiré par erreur revient de lui-même, à la même adresse, dès que votre inventaire le mentionne à nouveau. Enfin, un flux injoignable ne retire jamais rien : une panne de trois jours chez votre éditeur ne compte pas pour trois jours d’absence. Après trois échecs de suite, votre flux passe « en erreur » dans votre espace, et redevient « actif » de lui-même à la lecture réussie suivante.
Chaque lecture laisse une ligne dans le journal de l’onglet « Flux », dans votre langue : ce qui a été créé, modifié ou retiré, et l’erreur exacte de chaque annonce qui n’a pas pu être reprise.
Ce que le flux possède, il le garde. Un prix corrigé chez nous serait écrasé à la lecture suivante : corrigez-le dans votre logiciel. Vos honoraires saisis dans votre espace ne sont jamais écrasés tant que votre flux n’en déclare pas. Les documents, comme les plans et les extraits du registre foncier, gardent leur lien vers votre serveur.
Retirer un bien, et ce que devient son adresse
Un bien loué ou vendu se retire de deux façons, et la différence compte.
- Le dépublier : il disparaît du site, mais garde son adresse et son historique. S’il revient sur le marché, il reprend sa place. C’est ce que fait votre flux quand un bien sort de votre inventaire.
- Le supprimer : il disparaît pour de bon. Son adresse, dans chaque langue, renvoie alors vers son projet s’il en a un, sinon vers la page de votre agence : un lien partagé ou gardé en favori ne tombe jamais sur une page vide.
Un bien que votre flux a retiré et qui n’est pas revenu en six mois est supprimé de lui-même, avec la même redirection : nous ne gardons pas sans raison les données d’une annonce qui ne reviendra pas. Une annonce saisie à la main, ou remise en ligne par vous, n’est jamais supprimée par une machine.
Attention à une annonce qui vient de votre flux : si vous la supprimez chez nous alors qu’elle figure encore dans votre export, la lecture suivante la recrée. Retirez-la de votre logiciel, et nous nous occupons du reste.
Les honoraires : vous fixez, nous affichons
C’est la particularité d’ImmGate, et elle mérite d’être dite précisément. Nous n’intervenons jamais sur le montant de vos honoraires : ni tarif conseillé, ni plafond, ni valeur par défaut, ni moyenne affichée nulle part. Vous fixez librement vos tarifs.
Ce que nous demandons, c’est leur affichage. Sur l’annonce, pas sur votre profil public : un tarif hors contexte devient une étiquette de prix, et ce n’est pas ce que cherche la personne qui regarde un bien.
- Les champs vivent à trois niveaux : l’annonce, le courtier, l’agence. La première valeur renseignée gagne.
- Vous posez votre tarif par défaut sur votre fiche d’agence. Un courtier qui pratique autrement le remplace sur la sienne, et une annonce particulière peut encore le remplacer.
- Le flux peut les porter lui aussi, par les options du publisher « immgate ». Dites-le-nous et nous vous donnons les clés exactes.
- Les champs ne sont pas obligatoires : une annonce sans honoraires renseignés paraît quand même, simplement sans encadré.
Saisir une annonce à la main
Vous n’avez pas de logiciel d’export, ou vous voulez publier un bien avant de brancher votre flux ? Votre espace permet de saisir une annonce directement. Les champs suivent la norme, et le formulaire ne vous montre que ceux qui correspondent à votre transaction : pas de « loyer net » sur une vente.
Un courtier corrige ses propres annonces. L’administrateur de l’agence voit et corrige toutes celles de la régie.
Les projets : promotions et immeubles neufs
Une promotion de douze logements n’est pas douze annonces sans lien. Sur ImmGate, un projet a sa propre page : ses photos, son état d’avancement, ses fourchettes de prix, de pièces et de surfaces, et la liste de ses lots encore disponibles, du moins cher au plus cher.
- Par votre flux : SwissRETS décrit les projets dans « projects », et chaque lot dit à quel projet il appartient par son « unitReferenceId ». Nous créons le projet et y rattachons ses lots, sans rien à faire de votre côté.
- À la main : dans votre espace, « Ajouter un projet », puis, sur chaque annonce concernée, choisissez-le dans le champ « Projet ». Seuls les projets de votre agence vous sont proposés.
- Chaque lot reste une annonce à part entière, avec son prix et ses honoraires. Sa fiche renvoie vers le projet et ses autres lots.
Un projet suit les mêmes règles qu’une annonce : relu à chaque lecture, retiré s’il sort de votre inventaire, jamais supprimé d’un coup. Supprimé, il libère ses lots, qui restent en ligne.
Vos langues
Le portail, la recherche et les alertes sont en français, allemand, italien et anglais. Chaque annonce s’affiche dans les langues que vous publiez : nous ne traduisons pas automatiquement vos textes.
Une annonce que vous ne fournissez qu’en français reste en français, dans les quatre versions du site. C’est votre texte, votre responsabilité, et une traduction automatique d’un descriptif de bien se repère tout de suite.
Vos annonces, chez les assistants d’intelligence artificielle
ImmGate ouvre son catalogue aux assistants d’IA, comme Claude, ChatGPT et tout agent qui parle le protocole MCP, par un serveur : https://www.immgate.ch/mcp. La personne y connecte son compte ImmGate, gratuit. Quand elle demande à son assistant « un 3,5 pièces à louer près de Lausanne, jusqu’à 2500 francs », elle peut tomber sur vos biens, avec leur adresse sur ImmGate.
- Une personne demande À son assistant, comme à quelqu’un : un 3,5 pièces autour de Lausanne.
- Il cherche sur ImmGate La même recherche que le site, le même classement pour tous.
- Il vous écrit La demande part à votre agence, au nom de la personne, avec la mention qu’un assistant l’a envoyée.
- Vous répondez Par courriel, comme à une demande du site. Votre adresse n’a jamais été donnée.
- La même recherche et le même classement que sur le site : les plus récentes d’abord, jamais selon un paiement.
- Vos honoraires tels que vous les publiez, jamais un taux suggéré.
- Aucune adresse électronique transmise : quand un visiteur demande à son assistant de vous écrire, la demande vous arrive comme celles du site, par courriel, avec une copie pour lui et la mention qu’un assistant l’a envoyée.
- Une limite de débit et cent annonces au plus par recherche : un concurrent ne peut pas aspirer votre inventaire.
Écris à l’agence du 4,5 pièces de Bienne pour une visite, et demande quel dossier fournir.
Demande à l’annonceur
contact_advertiser
C’est envoyé, en votre nom. L’agence vous répondra directement par courriel.
Il n’y a rien à faire de votre côté : vos annonces publiées sur ImmGate y sont, dans leurs langues.
Les dossiers de candidature que vous recevez
Un chercheur peut constituer une fois son dossier sur ImmGate (identité, revenu par tranche, extrait des poursuites, fiches de salaire, pièce d’identité) et le joindre à sa demande. Le courriel que vous recevez porte alors un bouton « Ouvrir le dossier de candidature ».
- Le lien mène à une page d’ImmGate : saisissez l’une des adresses qui ont reçu la demande (celle du courtier, de l’agence ou de la boîte de réception de votre logiciel).
- Un code à six chiffres y arrive aussitôt, valable quinze minutes.
- Le code ouvre le dossier pour deux heures, dans ce navigateur : les informations, et chaque pièce à télécharger, ou tout en un fichier ZIP.
- Le lien reste valable trente jours, tant que le candidat ne retire pas l’accès. Chaque ouverture et chaque téléchargement lui sont montrés.
Ce sont des données sensibles, que le candidat vous confie. Le Préposé fédéral à la protection des données rappelle qu’une régie ne peut exiger copie de la pièce d’identité ou des fiches de salaire que du candidat retenu, et doit détruire les copies des autres : ImmGate vous le rappelle sur la page du dossier.
« Postuler avec ImmGate » : deux lignes sur votre site
Deux lignes à coller, et votre site a son bouton « Postuler avec ImmGate ». Le candidat clique, accepte sur ImmGate, et son dossier complet, informations et pièces, arrive en JSON sur votre site, à l’adresse que votre développeur a donnée (voir plus bas).
Dans votre espace ImmGate, carte « Postuler avec ImmGate » : « Activer », puis saisissez l’adresse de votre développeur. Il reçoit sa page, avec les deux lignes déjà remplies.
- Collez la ligne du script dans l’en-tête de vos pages, une fois.
- Collez le bouton là où il doit paraître, avec la référence et le titre du bien.
- C’est tout. Le bouton se dessine tout seul, à nos couleurs, dans la langue de votre page, et passe à « Dossier envoyé » quand le candidat a accepté.
Réglages facultatifs, sur la même ligne : data-dossier="achat" pour un bien à vendre, data-langue="de" pour forcer la langue, data-taille="grand", data-largeur="plein" pour un bouton sur toute la largeur, data-fenetre="meme" pour ouvrir ImmGate dans le même onglet.
Votre clé de bouton n’est pas secrète : elle ne sert qu’à ouvrir la page d’accord. Le dossier part toujours à l’adresse de réception de votre agence, jamais ailleurs. Copiée sur un autre site, elle vous enverrait les dossiers à vous. Une nouvelle clé se crée d’un clic dans votre espace.
<!-- 1. Une fois, dans l’en-tête de vos pages -->
<script src="https://www.immgate.ch/postuler.js" defer></script>
<!-- 2. Là où le bouton doit paraître -->
<div class="immgate-postuler" data-agence="VOTRE_CLE"
data-bien-ref="LAC-12" data-bien-titre="3,5 pièces, Rue du Lac 12"></div>
Recevoir les candidatures en JSON, sur votre site
Le dossier n’arrive que de cette façon, sans courriel. Dans votre espace, saisissez l’adresse de votre développeur : il reçoit un lien vers une page où tout est prêt. Le bouton fonctionne dès qu’il a donné l’adresse de réception.
- Il colle les deux lignes du bouton.
- Il donne l’adresse de votre site qui recevra les candidatures (https).
- Il s’envoie un exemple, d’un clic, pour vérifier.
- Ensuite, à chaque candidature acceptée, ImmGate envoie le dossier à cette adresse : une requête POST en JSON, signée.
Chaque requête porte l’en-tête X-ImmGate-Signature : « sha256= » suivi du HMAC-SHA256 du corps, calculé avec le secret de la page du développeur. Vérifiez-le avant de lire le JSON, et répondez 200.
Le JSON donne le bien (votre référence et votre titre), le candidat, en clair les tranches et statuts dans « labels », et chaque pièce avec son adresse de téléchargement. Ces adresses, et « file_url » pour relire le dossier, valent tant que le partage est ouvert : trente jours, ou jusqu’à ce que le candidat retire l’accès (403 « access_withdrawn »).
Si votre site ne répond pas, ou répond autre chose qu’un code 2xx, ImmGate réessaie après 5 minutes, 30 minutes, 2, 6 et 12 heures. Votre espace montre l’état de chaque livraison et permet de la relancer. Le candidat voit dans « Mes envois » que son dossier a été remis à votre site, et chaque téléchargement.
// Ce qu’ImmGate envoie à votre adresse, à chaque candidature acceptée
POST https://votre-site.ch/immgate/candidature
Content-Type: application/json
X-ImmGate-Event: candidature
X-ImmGate-Signature: sha256=5f2c…
{
"event": "candidature",
"agency": { "name": "Régie du Lac SA" },
"reference": 41,
"file": "rental",
"property": { "reference": "LAC-12", "title": "3,5 pièces, Rue du Lac 12" },
"complete": true,
"applicant": {
"email": "[email protected]",
"first_name": "Léa", "last_name": "Exemple",
"profession": "Infirmière", "annual_income": "80_100"
},
"labels": { "annual_income": "80’000 à 100’000 CHF" },
"documents": [
{ "category": "payslip", "name": "Fiche-de-salaire-octobre.pdf",
"url": "https://www.immgate.ch/api/v1/partage/…/pieces/2" }
],
"file_url": "https://www.immgate.ch/api/v1/partage/…",
"shared_until": "2026-12-13T20:20:54+01:00"
}
// Votre adresse, en PHP : vérifier la signature, puis lire
$body = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $body, IMMGATE_SECRET);
if (!hash_equals($expected, $_SERVER['HTTP_X_IMMGATE_SIGNATURE'] ?? '')) {
http_response_code(401);
exit;
}
$application = json_decode($body, true);
http_response_code(200);
Pour aller plus loin : le dossier dans votre logiciel (API)
Le bouton et la livraison en JSON suffisent à la plupart des agences. Si votre logiciel doit demander le dossier lui-même, créez dans votre espace un identifiant et un secret, avec l’adresse de retour de votre site : c’est OAuth 2.1, avec PKCE.
- Le bouton mène à la page d’autorisation d’ImmGate, avec la portée dossier_location (ou dossier_achat) et un défi PKCE.
- Le candidat se connecte et partage son dossier. Il ne peut le partager que s’il est complet.
- Votre site reçoit un code à son adresse de retour, et l’échange contre un jeton avec votre secret.
- Avec le jeton, il lit le dossier en JSON, puis chaque pièce.
- Le partage vaut trente jours. Le candidat voit chaque lecture et peut retirer l’accès : le jeton ne sert alors plus à rien.
Le défi PKCE et l’état se fabriquent à chaque clic : un vérificateur aléatoire gardé en session, son empreinte SHA-256 en base64url comme défi, et un état aléatoire. Gardez avec l’état la référence du bien : au retour, il vous dit pour quel bien le candidat postule. Un retour dont l’état est inconnu se rejette.
Ajoutez au bouton la référence et le titre du bien (bien_ref, bien_titre) : le candidat voit pour quel bien il postule, le retrouve dans « Mes envois », et la réponse vous le rend dans « property ». Si votre agence retire son bouton ou quitte ImmGate, les partages se ferment et le bouton mène à une page « ce bouton n’est plus actif ».
La réponse donne le candidat (ses champs, et en clair les tranches et statuts dans « labels », dans la langue du candidat, ou celle de ?lang=fr|de|it|en), puis ses pièces avec leur adresse. Si vous avez les deux portées, ?file=rental ou ?file=purchase choisit le dossier.
Les refus : 401 sans jeton valable, 403 « access_withdrawn » si le candidat a retiré l’accès ou après trente jours, 403 « insufficient_scope » pour un dossier non demandé, 429 au-delà de trois cents lectures par heure. Le jeton vaut une heure, et le jeton de renouvellement trente jours au plus. Si le candidat refuse, votre adresse de retour reçoit error=access_denied.
Le dossier vous est confié par le candidat : vous le traitez sous votre propre responsabilité. Le Préposé fédéral demande de ne garder les copies de la pièce d’identité et des fiches de salaire que pour le candidat retenu, et de détruire celles des autres.
# PKCE : VERIFICATEUR = 64 caractères aléatoires, gardés en session ;
# DEFI_PKCE = base64url(sha256(VERIFICATEUR)), sans « = ».
# 1. Le bouton, sur votre site
<a href="https://www.immgate.ch/oauth/authorize?response_type=code&client_id=VOTRE_ID&redirect_uri=https%3A%2F%2Fvotre-site.ch%2Fimmgate%2Fretour&scope=dossier_location&state=ETAT&code_challenge=DEFI_PKCE&code_challenge_method=S256&bien_ref=REF_DU_BIEN&bien_titre=TITRE_DU_BIEN"
style="display:inline-flex;align-items:center;gap:10px;padding:12px 22px;border-radius:999px;background:#E8192C;color:#fff;font:600 16px system-ui,sans-serif;text-decoration:none">
<img src="https://www.immgate.ch/themes/custom/immgate/images/logo-mark-white.svg" alt="" width="20" height="20">
Postuler avec ImmGate
</a>
# 2. Le code contre un jeton (sur votre serveur)
curl -X POST https://www.immgate.ch/oauth/token \
-d grant_type=authorization_code -d client_id=VOTRE_ID -d client_secret=VOTRE_SECRET \
-d code=CODE -d redirect_uri=https://votre-site.ch/immgate/retour -d code_verifier=VERIFICATEUR_PKCE
# 3. Le dossier, puis chaque pièce
curl https://www.immgate.ch/api/v1/candidature -H "Authorization: Bearer JETON"
curl -O https://www.immgate.ch/api/v1/candidature/pieces/123 -H "Authorization: Bearer JETON"
# 4. La réponse (extrait)
{
"reference": 21,
"file": "rental",
"property": { "reference": "LHA-LAC-12", "title": "3,5 pièces, Rue du Lac 12" },
"complete": true,
"applicant": {
"email": "[email protected]",
"first_name": "Léa", "last_name": "Exemple", "phone": "021 000 00 00",
"residence_status": "suisse", "annual_income": "80_100",
"profession": "Infirmière", "employer": "Hôpital Exemple SA",
"adults": 2, "children": 1, "move_in_date": "2027-04-01",
"co_first_name": "Marc", "co_last_name": "Exemple"
},
"labels": { "residence_status": "Suisse", "annual_income": "80’000 à 100’000 CHF" },
"language": "fr",
"documents": [
{ "id": 92, "category": "debt_collection_extract", "name": "Extrait-poursuites.pdf",
"size_kb": 84, "uploaded": "2026-11-13", "to_renew": false,
"url": "https://www.immgate.ch/api/v1/candidature/pieces/92" }
],
"shared_until": "2026-12-13T19:17:21+01:00",
"notice": "Shared by the applicant through ImmGate. …"
}
Votre logiciel n’exporte qu’en IDX 3.01, ou par SFTP ?
C’est l’ancien format suisse d’échange d’annonces, encore produit par certains logiciels et souvent déposé par SFTP. Nous ne le branchons pas d’office : SwissRETS fait mieux, et la plupart des logiciels le proposent déjà.
Si le vôtre ne sait faire que ça, dites-le-nous : nous l’intégrons sur demande, pour que vous n’ayez rien à ressaisir.
Vos données, et les nôtres
Aucun cookie de suivi, aucun outil de mesure d’audience sur ce site. Les coordonnées des propriétaires éventuellement présentes dans votre export sont écartées à la lecture : elles n’entrent jamais dans notre base.
Le détail de ce que nous collectons, pourquoi, et combien de temps nous le gardons est dans notre politique de confidentialité.
Partenaires pionniers
Les 100 premiers ont six mois offerts
Réservez votre place maintenant : 6 mois offerts, puis 49 CHF par mois tout compris, prix garanti 3 ans. Toutes vos annonces, sans frais par annonce, résiliable chaque mois.
Une question que cette page ne règle pas
Écrivez-nous : une équipe en Suisse vous répond, le plus vite possible. Dites-nous quel logiciel vous utilisez, c’est la première chose que nous demanderions.