diff --git a/models/res_partner.py b/models/res_partner.py
index 00ff6bc7220d1f02ccad7e7608b777bdcae48b12..c899fb12eab2b02c282b7ecaea4c9e26a8da5203 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -397,13 +397,52 @@ class ScopPartner(models.Model):
                     coop.seed_end = datetime.today().date() + timedelta(2556)
             else:
                 coop.seed_end = False
-                
 
     @api.onchange('organization_type_id')
     def onchange_organization_type_id(self):
         for partner in self:
             partner.organization_subtype_id = False
 
+    @api.onchange('name')
+    def onchange_name(self):
+        if self.search_count([('name', '=ilike', self.name)]) > 0:
+            return {
+                'warning': {
+                    'title': "Attention",
+                    'message': "Ce nom / cette raison sociale existe déjà, "
+                               + "merci de vérifier que vous n'êtes pas en "
+                               + "train de créer un doublon"}}
+
+    @api.constrains('siret')
+    def _check_siret(self):
+        if self.siret:
+            siren = self.siret[:9]
+            if (self.search_count([('siret', '=like', siren+"%"),
+                                   ('is_cooperative', "=", True)]) > 1):
+                raise ValidationError(
+                    "Ce SIREN existe déjà parmi les coopératives")
+            elif self.search_count([('siret', '=', self.siret)]) > 1:
+                raise ValidationError("Ce SIRET existe déjà")
+
+    @api.onchange('siret')
+    def onchange_siret(self):
+        if self.siret:
+            siren = self.siret[:9]
+            if self.search_count([('siret', '=like', self.siret)]) > 0:
+                return {
+                    'warning': {
+                        'title': "Attention",
+                        'message': "Ce SIRET existe déjà, merci de vérifier "
+                                   + "que vous n'êtes pas en train de créer un"
+                                   + " doublon"}}
+            elif self.search_count([('siret', '=like', siren+"%")]) > 0:
+                return {
+                    'warning': {
+                        'title': "Attention",
+                        'message': "Ce SIREN existe déjà, merci de vérifier "
+                                   + "que vous n'êtes pas en train de créer un"
+                                   + " doublon"}}
+
     def _create_period(self, partner):
         new_period = self.env['scop.period'].create({
             'partner_id': partner.id,