diff --git a/__manifest__.py b/__manifest__.py
index 2509c56de4be3b48052ddcfc7437ca5cb74f0ed3..255efbd8a18f8ea8128eb59d528ddddc80a674d8 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -25,6 +25,7 @@
         "datas/res.partner.certification.csv",
         "datas/res.partner.company.type.csv",
         "datas/res.partner.cooperative.form.csv",
+        "datas/res.partner.creation.origin.csv",
         "datas/res.partner.dissolution.reason.csv",
         "datas/res.partner.organization.type.csv",
         "datas/res.partner.rgpd.origin.csv",
diff --git a/datas/res.partner.creation.origin.csv b/datas/res.partner.creation.origin.csv
new file mode 100644
index 0000000000000000000000000000000000000000..b020397a9e0f55746984698eea2ca77c5be800f9
--- /dev/null
+++ b/datas/res.partner.creation.origin.csv
@@ -0,0 +1,17 @@
+"id","parent_id:id","name","id_riga"
+1,,"Ex-Nihilo",14215
+15,1,"Création par des porteurs de projet",14648
+16,1,"Création d'une filiale de Scop ou de Scic",14649
+17,1,"Essaimage",14658
+2,,"Transmission d'entreprise saine",14634
+21,2,"Transmission d'une entreprise indépendante saine avec départ des dirigeants (succession) ",14993
+22,2,"Transmission d'une entreprise indépendante saine avec maintien des dirigeants",14992
+26,2,"Transmission d'une filiale suite à restructuration de groupe",14661
+27,2,"Transmission d'une filiale d'une association",14660
+3,,"Reprise d'entreprise en difficulté",14217
+35,3,"Reprise d'une entreprise en procédure collective",14656
+36,3,"Reprise d'une entreprise en difficulté économique",14652
+37,3,"Création suite à un arrêt d'activité",14655
+4,,"Transformation d'association ou de coopérative",14218
+45,4,"Transformation d'une association (hors association de préfiguration)",14659
+46,4,"Transformation d'une Coopérative",14653
diff --git a/models/res_partner.py b/models/res_partner.py
index 06858bd53c946cb8981771843183398154ee431a..b30090d396fbb4baf2c4268f6c93254d13877974 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -3,6 +3,7 @@
 
 from datetime import datetime, timedelta
 from odoo import models, fields, api
+from odoo.exceptions import ValidationError
 
 
 class ScopPartner(models.Model):
@@ -74,15 +75,15 @@ class ScopPartner(models.Model):
     parent_group_name = fields.Char('Coopérative mère')
 
     # Infos générales / Infos activité
-    creation_origin = fields.Selection(
-        [('null', 'Ex-nihilo'),
-         ('transformation', 'Transformation'),
-         ('transmission', 'Transmission'),
-         ('takeover', 'reprise')],
-        string='Origine création en coop')
+    creation_origin_id = fields.Many2one(
+        'res.partner.creation.origin',
+        string="Origine création en coop",
+        domain=[('parent_id', '=', False)],
+        on_delete='restrict')
     creation_suborigin_id = fields.Many2one(
-        'res.partner.creation.suborigin',
+        'res.partner.creation.origin',
         string="Sous-Origine création en coop",
+        domain=[('child_ids', '=', False)],
         on_delete='restrict')
     date_1st_sign = fields.Date(
         'Date 1er signature coop')
@@ -324,6 +325,11 @@ class ScopPartner(models.Model):
             "url": self.twitter,
         }
 
+    @api.onchange('creation_origin_id')
+    def onchange_creation_origin_id(self):
+        for coop in self:
+            coop.creation_suborigin_id = False
+
 
 class ResPartneCertification(models.Model):
     _name = "res.partner.certification"
@@ -339,11 +345,33 @@ class ResPartnerCooperativeForm(models.Model):
     name = fields.Char('Cooperative form')
 
 
-class ResPartnerCreationSuborigin(models.Model):
-    _name = "res.partner.creation.suborigin"
-    _description = "Creation Sub-Origin"
+class ResPartnerCreationOrigin(models.Model):
+    _name = "res.partner.creation.origin"
+    _description = "Creation Origin"
+    _parent_name = "parent_id"
+    _parent_store = True
+    _rec_name = 'name'
+    _order = 'id'
 
-    name = fields.Char('Creation Sub-Origin')
+    name = fields.Char('Origine / Sous-Origine', index=True, required=True)
+    parent_id = fields.Many2one(
+        comodel_name='res.partner.creation.origin',
+        string='Origine (parent)',
+        index=True,
+        ondelete='restrict')
+    parent_path = fields.Char(index=True)
+    child_ids = fields.One2many(
+        comodel_name='res.partner.creation.origin',
+        inverse_name='parent_id',
+        string='Sous origines')
+    id_riga = fields.Integer("ID RIGA")
+
+    @api.constrains('parent_id')
+    def _check_origin_recursion(self):
+        if not self._check_recursion():
+            raise ValidationError(
+                'Vous ne pouvez pas créer des origines récusrives.')
+        return True
 
 
 class ResPartnerDissolutionReason(models.Model):
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index e4c5425392d8fa12aa0808b7933ed7c76d2b5fd3..524ee5308273bd20efc5064b84e9c9dfa4aab9d4 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -10,7 +10,7 @@ access_res_partner_dissolution_reason,access_res_partner_dissolution_reason,mode
 access_res_partner_organization_type,access_res_partner_organization_type,model_res_partner_organization_type,base.group_user,1,1,1,1 
 access_res_partner_cooperative_form,access_res_partner_cooperative_form,model_res_partner_cooperative_form,base.group_user,1,1,1,1 
 access_res_partner_certification,access_res_partner_certification,model_res_partner_certification,base.group_user,1,1,1,1 
-access_res_partner_creation_suborigin,access_res_partner_creation_suborigin,model_res_partner_creation_suborigin,base.group_user,1,1,1,1
+access_res_partner_creation_origin,access_res_partner_creation_origin,model_res_partner_creation_origin,base.group_user,1,1,1,1
 access_res_partner_rgpd_origin,access_res_partner_rgpd_origin,model_res_partner_rgpd_origin,base.group_user,1,1,1,1 
 access_res_partner_newsletter_subscription,access_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,base.group_user,1,1,1,1 
 access_res_partner_newsletter,access_res_partner_newsletter,model_res_partner_newsletter,base.group_user,1,1,1,1 
diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml
index 2a6c1578842b4844a424fc29b66ce1192b8a091b..be1d4f8b14563a7e4df3ed86bb7540a2ecb311df 100644
--- a/views/res_partner_cooperative.xml
+++ b/views/res_partner_cooperative.xml
@@ -246,12 +246,11 @@
                                 <field name="followup_delegate_id" widget="res_partner_many2one" attrs="{'required':[('project_status','in',('5_suivi'))]}"/>
                                 <field name="revision_person_id" widget="res_partner_many2one" readonly="True"/>
                                 <field name="parent_group_name"/>
-                                <field name="category_id" string="Segmentation" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}"
-                                    domain="['!',('parent_id', 'child_of', %(l10n_eu_nace.nace_root)d), ('child_ids', '=', False)]"/>
+                                <field name="category_id" string="Segmentation" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}"/>
                             </group>
                             <group string="Informations Activité">
-                                <field name="creation_origin" required="True"/>
-                                <field name="creation_suborigin_id" attrs="{'invisible': [('creation_origin', '=', 'null')], 'required':[('creation_origin','!=','null')]}"/>
+                                <field name="creation_origin_id" required="True"/>
+                                <field name="creation_suborigin_id" attrs="{'required':[('creation_origin_id','!=',False)]}" domain="[('parent_id', '=', creation_origin_id)]"/>
                                 <field name="date_1st_sign" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/>
                                 <field name="registration_date" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/>
                                 <field name="social_object" attrs="{'required':[('project_status','in',('4_adhesion', '5_suivi'))]}"/>
diff --git a/views/scop_config_views.xml b/views/scop_config_views.xml
index 163d76af14544f01d41270144b893dc1f7997104..51119da039f3efa40d016182489bf9ac9c6d7fc2 100644
--- a/views/scop_config_views.xml
+++ b/views/scop_config_views.xml
@@ -36,33 +36,23 @@
         </record>
 
         <!-- Creation Suborigin -->
-        <record id="view_res_partner_creation_suborigin_tree" model="ir.ui.view">
-            <field name="name">res.partner.creation.suborigin.tree</field>
-            <field name="model">res.partner.creation.suborigin</field>
+        <record id="view_res_partner_creation_origin_tree" model="ir.ui.view">
+            <field name="name">res.partner.creation.origin.tree</field>
+            <field name="model">res.partner.creation.origin</field>
             <field name="arch" type="xml">
-                <tree string="Creation Sub-Origins">
+                <tree string="Creation Origins" editable="bottom">
                     <field name="name"/>
+                    <field name="parent_id"/>
+                    <field name="id_riga"/>
                 </tree>
             </field>
         </record>
 
-        <record id="view_res_partner_creation_suborigin_form" model="ir.ui.view">
-            <field name="name">res.partner.creation.suborigin.form</field>
-            <field name="model">res.partner.creation.suborigin</field>
-            <field name="arch" type="xml">
-                <form string="Creation Sub-Origin">
-                    <group name="main">
-                        <field name="name"/>
-                    </group>
-                </form>
-            </field>
-        </record>
-
-        <record id="action_view_res_partner_creation_suborigin_tree" model="ir.actions.act_window">
+        <record id="action_view_res_partner_creation_origin_tree" model="ir.actions.act_window">
             <field name="name">Creation Sub-Origins</field>
-            <field name="res_model">res.partner.creation.suborigin</field>
-            <field name="view_mode">tree,form</field>
-            <field name="help">Display and manage the list of Creation Sub-Origins.</field>
+            <field name="res_model">res.partner.creation.origin</field>
+            <field name="view_mode">tree</field>
+            <field name="help">Display and manage the list of Creation Origins.</field>
         </record>
 
         <!-- Organization Type -->
@@ -270,9 +260,9 @@
             parent="menu_scop"
             action="action_view_res_partner_certification_tree"
             sequence="10"/>
-        <menuitem id="l10n_fr_naf_ape.menu_ape_category_form"
+        <menuitem id="lefilament_naf.menu_naf_id"
             parent="menu_scop"
-            name="APE codes"
+            name="Codes NAF"
             sequence="20"/>
         <menuitem id="menu_res_partner_cooperative_form"
             parent="menu_scop"
@@ -282,17 +272,17 @@
             parent="menu_scop"
             action="action_view_res_partner_dissolution_reason_tree"
             sequence="40"/>
+        <menuitem id="menu_res_partner_creation_origin"
+            parent="menu_scop"
+            action="action_view_res_partner_creation_origin_tree"
+            sequence="50"/>
         <menuitem id="menu_res_partner_rgpd_origin"
             parent="menu_scop"
             action="action_view_res_partner_rgpd_origin_tree"
-            sequence="50"/>
+            sequence="60"/>
         <menuitem id="menu_res_partner_prescriber_canal"
             parent="menu_scop"
             action="action_view_res_partner_prescriber_canal_tree"
-            sequence="60"/>
-        <menuitem id="menu_res_partner_creation_suborigin"
-            parent="menu_scop"
-            action="action_view_res_partner_creation_suborigin_tree"
             sequence="70"/>
         <menuitem id="menu_res_partner_company_type"
             parent="menu_scop"