diff --git a/README.md b/README.md
index 4383fa2..b83c394 100644
--- a/README.md
+++ b/README.md
@@ -47,3 +47,51 @@
 each instance of ONOS in a cluster might have a different set of objects in its
 cache. The thought behind this is that each instance in a cluster will be a
 master for a different set of devices and thus needs different information.
+
+
+### Configuration Paramters
+```
+"org.opencord.sadis" : {
+      "sadis" : {
+        "integration" : {
+          "url": "http://localhost/src/test/resources/%s",
+          "cache" : {
+            "maxsize" : 50,
+            "ttl" : "PT1m"
+          }
+        },
+        "entries" : [ {
+          "id" : "uni-1",
+          "cTag" : 2,
+          "sTag" : 2,
+          "nasPortId" : "PON 1",
+          "circuitId" : "VOLT-1",
+        }, {
+          "id" : "211702604597",
+          "hardwareIdentifier" : "00:1e:67:d2:ef:66",
+          "ipAddress" : "144.60.34.89",
+          "nasId" : "66"
+        }]
+      }
+    }
+```
+* __url__ - A url using which the subscriber and device data can be fetched. It is mandatory to have a `%s` in the url which will be substituted with the id for that subscriber/device to retrieve the data.
+* __maxsize__ - Maximum number of entries that the cache may contain
+* __ttl__ - Number of seconds after last access at which the cache entry expires
+
+Entries can be for Subscribers and OLT Devices; they are differentiated by the id.
+If the url is specified the data for the subscribers/devices are picked from there else the local data is used.
+
+##### For a subscriber
+* __id__ - Unique identifier for the subscriber. This should match the name of the logical port name for this subscriber as can be seen from the ONOS `ports` command
+* __cTag__ - C-Tag to be used for this subscriber
+* __sTag__ - S-Tag to be used for this subscriber
+* __nasPortId__ - NAS Port Id to be used for this subscriber; for example in RADIUS messages
+* __circuitId__ - Circuit Id to be used for this subscriber; for example in DHCP messages
+
+##### For an OLT Device
+* __id__ - Unique identifier for an OLT device. This should match the serial number of the device as can be seen from the ONOS `devices` command
+* __hardwareIdentifier__ - MAC address for this device
+* __ipAddress__ - IP address of this device
+* __nasId__ - NAS Id to be used for this device; for example in RADIUS messages
+
diff --git a/app/src/main/java/org/opencord/sadis/impl/SadisConfig.java b/app/src/main/java/org/opencord/sadis/impl/SadisConfig.java
index 42a11af..eb48fe0 100644
--- a/app/src/main/java/org/opencord/sadis/impl/SadisConfig.java
+++ b/app/src/main/java/org/opencord/sadis/impl/SadisConfig.java
@@ -81,6 +81,7 @@
     private static final String SADIS_URL = "url";
     private static final String SADIS_ENTRIES = "entries";
     private static final String DEFAULT_CACHE_TTL = "PT0S";
+    private static final String SUBSCRIBER_ID_SUB_PATTERN = "%s";
 
     /**
      * Returns SADIS integration URL.
@@ -99,7 +100,11 @@
         if (url.isMissingNode()) {
             return null;
         }
-
+        StringBuffer buf = new StringBuffer(SUBSCRIBER_ID_SUB_PATTERN);
+        if (!url.asText().contains(buf)) {
+            log.error("Error in url, missing {}", SUBSCRIBER_ID_SUB_PATTERN);
+            return null;
+        }
         return new URL(url.asText());
     }
 
diff --git a/app/src/main/java/org/opencord/sadis/impl/SubscriberAndDeviceInformationAdapter.java b/app/src/main/java/org/opencord/sadis/impl/SubscriberAndDeviceInformationAdapter.java
index 5085ae8..5026e66 100644
--- a/app/src/main/java/org/opencord/sadis/impl/SubscriberAndDeviceInformationAdapter.java
+++ b/app/src/main/java/org/opencord/sadis/impl/SubscriberAndDeviceInformationAdapter.java
@@ -192,14 +192,9 @@
             }
         } else {
             // Augment URL with query parameters
-            StringBuilder buf = new StringBuilder(this.url);
-            if (buf.charAt(buf.length() - 1) != '/') {
-                buf.append('/');
-            }
+            String urlWithSubId = this.url.replaceAll("%s", id);
 
-            buf.append(id);
-
-            try (InputStream io = new URL(buf.toString()).openStream()) {
+            try (InputStream io = new URL(urlWithSubId).openStream()) {
                 info = mapper.readValue(io, SubscriberAndDeviceInformation.class);
                 local.put(id, info);
                 return info;
diff --git a/app/src/test/resources/RemoteConfig.json b/app/src/test/resources/RemoteConfig.json
index b708fbc..e2c798f 100644
--- a/app/src/test/resources/RemoteConfig.json
+++ b/app/src/test/resources/RemoteConfig.json
@@ -1,6 +1,6 @@
 {
   "integration": {
-    "url": "file:src/test/resources",
+    "url": "file:src/test/resources/%s",
     "cache": {
       "maxsize": 50,
       "ttl": "PT1m"
