diff --git a/models/res_partner.py b/models/res_partner.py
index ab0e6e4eb9ad79b42e5d9064c62e3faee4d18c93..09f34a8cb7c04a127597e84a40eb96dc62e4ab95 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -391,18 +391,36 @@ class ResPartner(models.Model):
         """
 
         logger.info(_(f"Update forme juridique for {self.name}: {self.siren}"))
+        current_period = self._get_current_period()
+
         if not inpi_data.formality.content.personneMorale:
-            return self._get_current_period()
+            return current_period
+
         inpi_forme_juridique = inpi_data.formality.content.personneMorale.identite.entreprise.formeJuridique
 
         # check if full code in base
         cj_id = self.env["res.partner.company.type"].search([("code_forme_juridique", "=", inpi_forme_juridique)])
+        # if not check if there is a "niveau 2" code in base, CG use only a few CJ code
         if not cj_id:
             cj_id = self.env["res.partner.company.type"].search([
-                ("code_forme_juridique", "=", inpi_forme_juridique[:3])])
+                ("code_forme_juridique", "=", inpi_forme_juridique[:2])])
 
-        if cj_id:
+        if cj_id and cj_id.id != self.partner_company_type_id.id:
             self.partner_company_type_id = cj_id.id
+            period_values = self._get_values_from_period(current_period)
+            if new_period:
+                current_period.write(
+                    {"end": datetime.datetime.now().date(), "end_reason": "adr"}
+                )
+                period_values["start"] = fields.Date.today()
+                period_values["partner_id"] = self.id
+            period_values["res_partner_company_type"] = cj_id.id
+
+            if new_period:
+                return self.env["scop.period"].with_context().create(period_values)
+            else:
+                current_period.write(period_values)
+
         return self._get_current_period()
 
 
@@ -477,7 +495,6 @@ class ResPartner(models.Model):
                     to_write[value] = inpi_address.get(value)
                 self.write(to_write)
 
-
             if changing_period_values:
                 if new_period:
                     period.write(