diff --git a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
index 83fb1fd..5fd44f1 100644
--- a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
+++ b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
@@ -735,10 +735,10 @@
      URL to the Auth'n'Auth-service
 * *ldap.enabled* If set to "true" the ldap functionality will be enabled
 * *ldap.scheduling.enabled* (true or false) switches the ldap synchronisation on/off
-
-db-id-mapping: (-1) off = editable
-    mail-id: 1
-    telephone-number-id: 2
+* *ldap-sync.db-id-mapping.telephone-number-id* the primary ID for "telephone number" row in table REF_COMMUNICATION_TYPE.
+    (Default 1) If set to -1 ldapmapping is disable for "telephone number"
+* *ldap-sync.db-id-mapping.mail-id* the primary ID for "mail" row in table REF_COMMUNICATION_TYPE.
+    (Default 2) If set to -1 ldapmapping is disable for "telephone number"
 
 === CI- and CD-Components
 
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/model/RefCommunicationType.java b/src/main/java/org/eclipse/openk/contactbasedata/model/RefCommunicationType.java
index 10f6d85..e1aa62b 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/model/RefCommunicationType.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/model/RefCommunicationType.java
@@ -31,7 +31,6 @@
     private UUID uuid;
     private String  type;
     private String description;
-    private boolean editable;
     private boolean typeEmail;
 
 }
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/CommunicationTypeService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/CommunicationTypeService.java
index 06cdbae..6009672 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/service/CommunicationTypeService.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/service/CommunicationTypeService.java
@@ -56,6 +56,8 @@
         if (Objects.equals(telephoneNumberId, communicationTypeDto.getId())
                 || Objects.equals(mailId, communicationTypeDto.getId())) {
             communicationTypeDto.setMappingLdap(true);
+        } else {
+            communicationTypeDto.setEditable(true);
         }
 
         return communicationTypeDto;
@@ -71,6 +73,8 @@
             if (Objects.equals(telephoneNumberId, communicationTypeDto.getId())
                     || Objects.equals(mailId, communicationTypeDto.getId())) {
                 communicationTypeDto.setMappingLdap(true);
+            } else {
+                communicationTypeDto.setEditable(true);
             }
         }
 
diff --git a/src/main/resources/db/migration/V0_19__CREATE_CBD_DB.sql b/src/main/resources/db/migration/V0_19__CREATE_CBD_DB.sql
index 96d11aa..a6cc25d 100644
--- a/src/main/resources/db/migration/V0_19__CREATE_CBD_DB.sql
+++ b/src/main/resources/db/migration/V0_19__CREATE_CBD_DB.sql
@@ -206,7 +206,6 @@
   UUID uuid NOT NULL,
   TYPE character varying(30),
   DESCRIPTION character varying(255),
-  EDITABLE boolean,
   TYPE_EMAIL boolean,
   CONSTRAINT REF_COMMUNICATION_TYPE_PKEY PRIMARY KEY (ID)
 );
@@ -216,11 +215,11 @@
 
 CREATE UNIQUE INDEX idx_ref_communication_type_uuid ON public.REF_COMMUNICATION_TYPE ( UUID ASC );
 
-INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, EDITABLE, TYPE_EMAIL) VALUES ( '4757ca3a-72c2-4f13-a2f6-ce092e3eadf4', 'E-Mail', 'E-Mail Adresse', false, true );
-INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, EDITABLE, TYPE_EMAIL) VALUES ( '77028572-ff57-4c1d-999a-78fa3fcbc1cd', 'Festnetz', '', false, false );
-INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, EDITABLE, TYPE_EMAIL) VALUES ( 'f7d5b343-00c2-4d7f-8e03-009aad3d90f7', 'Mobil', '', true, false );
-INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, EDITABLE, TYPE_EMAIL) VALUES ( '2bfe40f9-c4eb-4d2e-855f-6b0883912846', 'Fax', '', true, false );
-INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, EDITABLE, TYPE_EMAIL) VALUES ( 'd00d1a61-c8e7-43b2-959f-66e986731441', 'WhatsApp', '', true, false );
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( '4757ca3a-72c2-4f13-a2f6-ce092e3eadf4', 'E-Mail', 'E-Mail Adresse', true );
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( '77028572-ff57-4c1d-999a-78fa3fcbc1cd', 'Festnetz', '', false );
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( 'f7d5b343-00c2-4d7f-8e03-009aad3d90f7', 'Mobil', '', false );
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( '2bfe40f9-c4eb-4d2e-855f-6b0883912846', 'Fax', '', false );
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( 'd00d1a61-c8e7-43b2-959f-66e986731441', 'WhatsApp', '', false );
 
 -- ---------------------------------------------
 -- TABLE REF_SALUTATION
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java b/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
index 1c7daed..ed5fc35 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
@@ -327,7 +327,6 @@
         communicationType.setUuid(UUID.randomUUID());
         communicationType.setDescription("Fax");
         communicationType.setType("Fax");
-        communicationType.setEditable(true);
 
         return communicationType;
     }
