diff --git a/app/code/Magento/CatalogRule/etc/webapi_soap/events.xml b/app/code/Magento/CatalogRule/etc/webapi_soap/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..69fcd117f77002a0bfb84df8e45ceccb79123bf7
--- /dev/null
+++ b/app/code/Magento/CatalogRule/etc/webapi_soap/events.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="catalog_product_get_final_price">
+        <observer name="catalogrule" instance="Magento\CatalogRule\Model\Observer" method="processFrontFinalPrice" />
+    </event>
+    <event name="prepare_catalog_product_collection_prices">
+        <observer name="catalogrule" instance="Magento\CatalogRule\Model\Observer" method="prepareCatalogProductCollectionPrices" />
+    </event>
+</config>
diff --git a/app/code/Magento/Checkout/etc/webapi_rest/events.xml b/app/code/Magento/Checkout/etc/webapi_rest/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..64b405aacf3b2dce5e2b1411f9dba70705e3c177
--- /dev/null
+++ b/app/code/Magento/Checkout/etc/webapi_rest/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_save_after">
+        <observer name="set_checkout_quote_id" instance="Magento\Checkout\Model\Observer" method="salesQuoteSaveAfter" />
+    </event>
+</config>
diff --git a/app/code/Magento/Checkout/etc/webapi_soap/events.xml b/app/code/Magento/Checkout/etc/webapi_soap/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..64b405aacf3b2dce5e2b1411f9dba70705e3c177
--- /dev/null
+++ b/app/code/Magento/Checkout/etc/webapi_soap/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_save_after">
+        <observer name="set_checkout_quote_id" instance="Magento\Checkout\Model\Observer" method="salesQuoteSaveAfter" />
+    </event>
+</config>
diff --git a/app/code/Magento/Customer/etc/webapi_rest/events.xml b/app/code/Magento/Customer/etc/webapi_rest/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a605a1082011245cd4947b702800eb504bd917cf
--- /dev/null
+++ b/app/code/Magento/Customer/etc/webapi_rest/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_save_after">
+        <observer name="customer_visitor" instance="Magento\Customer\Model\Visitor" method="bindQuoteCreate" />
+    </event>
+</config>
diff --git a/app/code/Magento/Customer/etc/webapi_soap/events.xml b/app/code/Magento/Customer/etc/webapi_soap/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a605a1082011245cd4947b702800eb504bd917cf
--- /dev/null
+++ b/app/code/Magento/Customer/etc/webapi_soap/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_save_after">
+        <observer name="customer_visitor" instance="Magento\Customer\Model\Visitor" method="bindQuoteCreate" />
+    </event>
+</config>
diff --git a/app/code/Magento/Downloadable/etc/adminhtml/events.xml b/app/code/Magento/Downloadable/etc/events.xml
similarity index 85%
rename from app/code/Magento/Downloadable/etc/adminhtml/events.xml
rename to app/code/Magento/Downloadable/etc/events.xml
index 46f63240abdee844f9859bd2bd180fc3c9682efc..47dc66111e8da011772662ef6e547547ada65ce6 100644
--- a/app/code/Magento/Downloadable/etc/adminhtml/events.xml
+++ b/app/code/Magento/Downloadable/etc/events.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
     <event name="sales_order_item_save_commit_after">
         <observer name="downloadable_observer" instance="Magento\Downloadable\Model\Observer" method="saveDownloadableOrderItem" />
     </event>
diff --git a/app/code/Magento/Downloadable/etc/frontend/events.xml b/app/code/Magento/Downloadable/etc/frontend/events.xml
index ac54f059a374941dbacd66c49a5e67549d052f93..0b39fd0e3909d6ae458afd5d18568197412da811 100644
--- a/app/code/Magento/Downloadable/etc/frontend/events.xml
+++ b/app/code/Magento/Downloadable/etc/frontend/events.xml
@@ -6,12 +6,6 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
-    <event name="sales_order_item_save_commit_after">
-        <observer name="downloadable_observer" instance="Magento\Downloadable\Model\Observer" method="saveDownloadableOrderItem" />
-    </event>
-    <event name="sales_order_save_commit_after">
-        <observer name="downloadable_observer" instance="Magento\Downloadable\Model\Observer" method="setLinkStatus" />
-    </event>
     <event name="sales_model_service_quote_submit_success">
         <observer name="checkout_type_onepage_save_order_after" instance="Magento\Downloadable\Model\Observer" method="setHasDownloadableProducts" />
     </event>
diff --git a/app/code/Magento/Msrp/etc/webapi_rest/events.xml b/app/code/Magento/Msrp/etc/webapi_rest/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e4fb9f4b8aa02ca88a0230128a7a26f369ea4432
--- /dev/null
+++ b/app/code/Magento/Msrp/etc/webapi_rest/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_collect_totals_after">
+        <observer name="catalog_msrp" instance="Magento\Msrp\Model\Observer\Frontend\Quote\SetCanApplyMsrp" method="execute" />
+    </event>
+</config>
diff --git a/app/code/Magento/Msrp/etc/webapi_soap/events.xml b/app/code/Magento/Msrp/etc/webapi_soap/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e4fb9f4b8aa02ca88a0230128a7a26f369ea4432
--- /dev/null
+++ b/app/code/Magento/Msrp/etc/webapi_soap/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_collect_totals_after">
+        <observer name="catalog_msrp" instance="Magento\Msrp\Model\Observer\Frontend\Quote\SetCanApplyMsrp" method="execute" />
+    </event>
+</config>
diff --git a/app/code/Magento/Quote/etc/frontend/events.xml b/app/code/Magento/Quote/etc/events.xml
similarity index 81%
rename from app/code/Magento/Quote/etc/frontend/events.xml
rename to app/code/Magento/Quote/etc/events.xml
index 8c38cda0dbe8436fc9d64a6fed11f2d2a8582b96..b14058b03e5fd77f6eec749ddb213a1c41a4a825 100644
--- a/app/code/Magento/Quote/etc/frontend/events.xml
+++ b/app/code/Magento/Quote/etc/events.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
     <event name="sales_quote_address_collect_totals_before">
         <observer name="sales_customer_validate_vat_number" instance="Magento\Quote\Model\Observer\Frontend\Quote\Address\CollectTotals" method="dispatch" />
     </event>
diff --git a/app/code/Magento/Reports/etc/webapi_rest/events.xml b/app/code/Magento/Reports/etc/webapi_rest/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6e8d93278a9def14d6032555c93f01f73e2b323b
--- /dev/null
+++ b/app/code/Magento/Reports/etc/webapi_rest/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_item_save_before">
+        <observer name="reports" instance="Magento\Reports\Model\Event\Observer" method="checkoutCartAddProduct" />
+    </event>
+</config>
diff --git a/app/code/Magento/Reports/etc/webapi_soap/events.xml b/app/code/Magento/Reports/etc/webapi_soap/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6e8d93278a9def14d6032555c93f01f73e2b323b
--- /dev/null
+++ b/app/code/Magento/Reports/etc/webapi_soap/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_item_save_before">
+        <observer name="reports" instance="Magento\Reports\Model\Event\Observer" method="checkoutCartAddProduct" />
+    </event>
+</config>
diff --git a/app/code/Magento/Sales/etc/webapi_rest/events.xml b/app/code/Magento/Sales/etc/webapi_rest/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..763c0dcd5bc94cdd50da178debad4dc3146dd207
--- /dev/null
+++ b/app/code/Magento/Sales/etc/webapi_rest/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_address_collect_totals_after">
+        <observer name="sales_customer_validate_vat_number" instance="Magento\Sales\Model\Observer\Frontend\Quote\RestoreCustomerGroupId" method="execute" />
+    </event>
+</config>
diff --git a/app/code/Magento/Sales/etc/webapi_soap/events.xml b/app/code/Magento/Sales/etc/webapi_soap/events.xml
new file mode 100644
index 0000000000000000000000000000000000000000..763c0dcd5bc94cdd50da178debad4dc3146dd207
--- /dev/null
+++ b/app/code/Magento/Sales/etc/webapi_soap/events.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
+    <event name="sales_quote_address_collect_totals_after">
+        <observer name="sales_customer_validate_vat_number" instance="Magento\Sales\Model\Observer\Frontend\Quote\RestoreCustomerGroupId" method="execute" />
+    </event>
+</config>