diff --git a/__manifest__.py b/__manifest__.py
index a0e5494910eb5dbcbaa2493771b37135f8a695fa..42561fe364c5a677275bc45cdf7645ee8437f9b9 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -8,6 +8,7 @@
     "depends": [
         "cgscop_base",
         "base_location",
+        "base_geolocalize_gouv_api",
         "lefilament_naf",
         "partner_address_street3",
         "partner_company_type",
@@ -20,6 +21,7 @@
         "security/security_rules.xml",
         "security/ir.model.access.csv",
         # Datas
+        "datas/cron_geolocalize.xml",
         "datas/union_regionale_data.xml",
         "datas/res_country_state.xml",
         "datas/res_partner_certification_data.xml",
diff --git a/datas/cron_geolocalize.xml b/datas/cron_geolocalize.xml
new file mode 100644
index 0000000000000000000000000000000000000000..24c90fde221e77ff4df634289df6c24953505c6c
--- /dev/null
+++ b/datas/cron_geolocalize.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2020 Le Filament (<https://www.le-filament.com>)
+     License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). -->
+<odoo>
+    <data noupdate="1">
+        <record id="ir_cron_geol_data_gouv" model="ir.cron">
+            <field name="name">CGSCOP - Geoloc Mise à jour Adhérents</field>
+            <field name="active" eval="True" />
+            <field name="interval_type">days</field>
+            <field name="numbercall">-1</field>
+            <field name="nextcall" >2020-10-10 02:20:00</field>
+            <field name="model_id" ref="model_res_partner"/>
+            <field name="state">code</field>
+            <field name="code">model._cron_geoloc_data_gouv()</field>
+        </record>
+    </data>
+</odoo>
diff --git a/models/res_partner.py b/models/res_partner.py
index 6e5f70c10e0bae46013cca0846c365495d3b3eca..5e294336e74e90b25ed2a88bde2e48bbb8bb5b9b 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -1,11 +1,16 @@
 # © 2019 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
+
+import time
+import logging
 from datetime import datetime, timedelta
 
 from odoo import _, api, fields, models
 from odoo.exceptions import ValidationError
 
+_logger = logging.getLogger(__name__)
+
 
 class ScopPartner(models.Model):
     _inherit = "res.partner"
@@ -1127,7 +1132,7 @@ class ScopPartner(models.Model):
                         partner.revision_next_exercice = base_rev + 2
 
     # ------------------------------------------------------
-    # Button Action
+    # Button & Action
     # ------------------------------------------------------
     def scop_send_to_cg(self):
         self.write(
@@ -1259,10 +1264,10 @@ class ScopPartner(models.Model):
     def write_contact(self):
         return self
 
-    # ------------------------------------------------------
-    # Affichage des coop avec filtre par défaut
-    # ------------------------------------------------------
     def show_coop(self):
+        """
+        Affichage des coop avec filtre par défaut
+        """
         ctx = {
             "default_is_company": True,
             "default_is_cooperative": True,
@@ -1311,10 +1316,10 @@ class ScopPartner(models.Model):
             "context": ctx,
         }
 
-    # ------------------------------------------------------
-    # Affichage des prospect avec filtre par défaut
-    # ------------------------------------------------------
     def show_prospect(self):
+        """
+        Affichage des prospect avec filtre par défaut
+        """
         ctx = {
             "default_is_company": True,
             "default_is_cooperative": True,
@@ -1368,11 +1373,10 @@ class ScopPartner(models.Model):
             "context": ctx,
         }
 
-    # ------------------------------------------------------
-    # Affichage des organismes avec filtre par défaut
-    # ------------------------------------------------------
     def show_organisme(self):
-
+        """
+        Affichage des organismes avec filtre par défaut
+        """
         ctx = {
             "default_is_company": True,
             "default_is_cooperative": True,
@@ -1407,3 +1411,38 @@ class ScopPartner(models.Model):
             "domain": [("is_cooperative", "=", True)],
             "context": ctx,
         }
+
+    # ------------------------------------------------------
+    # CRON function
+    # ------------------------------------------------------
+    def _cron_geoloc_data_gouv(self, days=1):
+        # Récupération des valeurs de suivi sur zip/city/street de la veille
+        yesterday = fields.Date.today() - timedelta(days=days)
+
+        mail_tracking_value_ids = self.env['mail.tracking.value'].search([
+            '|', '|', ('field', '=', 'zip'),
+            ('field', '=', 'city'),
+            ('field', '=', 'street'),
+            ('create_date', '>=', yesterday)])
+
+        # Récupération des messages de notif sur
+        # res.partner en lien avec les valeurs de suivi
+        mail_mess_ids = self.env['mail.message'].search([
+            ('model', '=', 'res.partner'),
+            ('message_type', '=', 'notification'),
+            ('tracking_value_ids', 'in', mail_tracking_value_ids.ids)])
+
+        partner_list = mail_mess_ids.mapped('res_id')
+
+        # Récupération des partners pour calcul des données GPS
+        partners = self.env['res.partner'].search([
+            ('id', 'in', partner_list),
+            ('membership_status', '=', 'member')])
+
+        i = 0
+        for partner in partners:
+            partner.geo_localize()
+            i += 1
+            time.sleep(1)
+        _logger.info(
+            "Mise à jour de %d coordonnées", i)