diff --git a/src/test/cord-api/Framework/restApi.py b/src/test/cord-api/Framework/restApi.py
index 68c1d18..789bb6f 100644
--- a/src/test/cord-api/Framework/restApi.py
+++ b/src/test/cord-api/Framework/restApi.py
@@ -133,23 +133,31 @@
     time.sleep(5)
     result = test.ApiDelete(key, urlSuffix)
 '''
+'''
 test = restApi()
 #key = "UTILS_SYNCHRONIZER"
-key = "CORE_USERS"
-key2 = "UTILS_LOGIN"
+#key = "CORE_USERS"
+#key2 = "UTILS_LOGIN"
 #key = "TENANT_SUBSCRIBER"
 #jsonGetData = test.ApiGet(key)
-#jsonResponse = test.ApiPut(key,{"identity":{"name":"My House 22"}},"71")
-jsonResponse = test.ApiPost(key,{"firstname":"Test002","lastname":"User002","email":"test002@onlab.us","password":"TestUser002","site": "http://localhost:8000/api/core/sites/1/"})
+#jsonResponse = test.ApiPost(key,{"identity":{"name":"My House 22"}})
+#jsonResponse = test.ApiPost(key,{"firstname":"Test002","lastname":"User002","email":"test002@onlab.us","password":"TestUser002","site": "http://localhost:8000/api/core/sites/1/"})
 #jsonResponse = test.ApiDelete(key,15)
 #jsonResponse = test.ApiPut(key,{"firstname":"Test002","lastname":"User002","email":"test002update@onlab.us","password":"TestUser002","site": "http://localhost:8000/api/core/sites/1/"},14)
 #jsonResponse = test.ApiPost(key2,{"username":"test002update@onlab.us","password":"TestUser002"})
 #jsonResponse = test.ApiPost(key2,{"username":"padmin@vicci.org","password":"letmein"})
 #jsonResponse = test.ApiPut(key,{"username":"testuser","password":"TestUser001"},"9")
-key = "UTILS_SYNCHRONIZER"
-#key = "TENANT_SUBSCRIBER"
-jsonGetData = test.ApiGet(key)
+#key = "UTILS_SYNCHRONIZER"
+key = "TENANT_VOLT"
+#input_dict = { "s_tag" : "111", "c_tag" : "222", "subscriber" : 23}
+#jsonResponse = test.ApiPost(key,input_dict)
+#jsonGetData = test.ApiGet(key)
+print "========="
+#print jsonGetData
+#jsonEdit = test.ApiPut(key,{"c_tag" : "666","s_tag" : "123"},"7")
+jsonO = test.ApiDelete(key,"36")
 #jsonResponse = test.ApiPut(key,{"identity":{"name":"My House 22"}},"71")
 #jsonResponse = test.ApiPost(key,{"name":"test-2"})
-jsonResponse = test.ApiPut(key,{"name":"test1-changed"},"9")
+#jsonResponse = test.ApiPut(key,{"name":"test1-changed"},"9")
 print "========="
+'''
diff --git a/src/test/cord-api/Framework/utils/utils.py b/src/test/cord-api/Framework/utils/utils.py
index 85508a5..c807189 100644
--- a/src/test/cord-api/Framework/utils/utils.py
+++ b/src/test/cord-api/Framework/utils/utils.py
@@ -129,12 +129,16 @@
     @Returns: Returns the value of the Key that was provided
     '''
     def getFieldValueFromDict(self,search_dict, field):
+        print "search_dict", search_dict, "field...", field
         results = ''
         found = False
         input_keys = search_dict.keys()
         for key in input_keys:
+            print "key...", key
             if key == field:
+               print "entered if..."
                results = search_dict[key]
+               print "results...", results
                if not results:
                   found = True
                   break
@@ -151,17 +155,44 @@
                         results, found = self.search_dictionary(item, field)
                         if found == True:
                            break
+            if results:
+               break
 
         return results
 
+    def setFieldValueInDict(self,input_dict,field,field_value):
+        input_dict[field]=field_value
+        return input_dict
+
 '''
 #Test
+dict_list = {
+ "humanReadableName": "cordSubscriber-17",
+        "id": 17,
+        "features": {
+            "uplink_speed": 1000000000,
+            "downlink_speed": 1000000000,
+            "status": "enabled"
+        },
+        "identity": {
+            "account_num": "20",
+            "name": "My House"
+        },
+        "related": {}
+    }
+input_dict = {
+ "s_tag" : "111",
+ "c_tag" : "222",
+ "subscriber" : ""
+ }
+new_value = 3
 test = utils()
 #data=test.jsonToList("Subscribers.json","SubscriberInfo")
 #print  test.jsonToList("Subscribers.json","SubscriberInfo")
 #print "index 1...",test.listToDict(data,1)
 #result = test.getDictFromListOfDict(dict_list,"email",21)
-result = test.getFieldValueFromDict(dict_list,"id")
-result = test.getDictFromListOfDict(dict_list,"account_num",21)
+#result = test.getFieldValueFromDict(dict_list,"id")
+#result = test.getDictFromListOfDict(dict_list,"account_num",21)
+result = test.setFieldValueInDict(input_dict,"subscriber",new_value)
 print "finalllllll result....", result
 '''
diff --git a/src/test/cord-api/Properties/RestApiProperties.py b/src/test/cord-api/Properties/RestApiProperties.py
index aedaa36..8daa483 100644
--- a/src/test/cord-api/Properties/RestApiProperties.py
+++ b/src/test/cord-api/Properties/RestApiProperties.py
@@ -4,6 +4,7 @@
 USER = 'padmin@vicci.org'
 PASSWD = 'letmein'
 TENANT_SUBSCRIBER = '/api/tenant/cord/subscriber/'
+TENANT_VOLT = '/api/tenant/cord/volt/'
 UTILS_SYNCHRONIZER = '/api/utility/synchronizer/'
 UTILS_LOGIN = '/api/utility/login/'
 CORE_USERS = '/api/core/users/'
diff --git a/src/test/cord-api/Tests/Robot-TemplateTest.txt b/src/test/cord-api/Tests/Robot-TemplateTest.txt
deleted file mode 100644
index ec0f5d2..0000000
--- a/src/test/cord-api/Tests/Robot-TemplateTest.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-*** Settings ***
-Documentation     Test suite for Subscriber verification
-Suite Setup       Read InputFile
-Test Template     Verify Subscriber functionality
-Library           Collections
-Library           String
-Library           OperatingSystem
-Library           XML
-Library           RequestsLibrary
-Library           ../Framework/restapi/RestApiTest.py
-Library           ../Framework/restapi/utils.py
-
-*** Variables ***
-${USER}           admin
-${PASSWORD}       admin
-${PATHFILE}       ${CURDIR}/../Framework/restapi/Subscribers.json
-
-*** Test Cases ***    TYPE        LISTINDEX
-Test Subscriber-1     CREATEP     0
-
-Test Get_Subscriber-1
-                      RETRIEVE    0
-
-Test Subscriber-2     CREATEP     1
-
-Test Get_Subscriber-2
-                      RETRIEVE    1
-
-*** Keywords ***
-Read InputFile
-    ${subscriberList} =    utils.jsonToList    ${PATHFILE}    SubscriberInfo
-    Set Suite Variable    ${slist}    ${subscriberList}
-
-Verify Subscriber functionality
-    [Arguments]    ${type}    ${listIndex}
-    Run Keyword If    "${type}" == "CREATEP"    Test Post Subscriber API    ${listIndex}
-    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Subscriber API    ${listIndex}
-
-Test Post Subscriber API
-    [Arguments]    ${listIndex}
-    ${subscriberList} =    Get Variable Value    ${slist}
-    ${subscriberDict}=    utils.listToDict    ${subscriberList}    ${listIndex}
-    ${api_result}=    RestApiTest.TestPost    ${subscriberDict}
-    Should Be True    ${api_result}
-
-Test Get Subscriber API
-    [Arguments]    ${listIndex}
-    ${json_result}=    RestApiTest.TestGet
-    Log    ${json_result}
-    #${actual_json}=    Get From Dictionary    ${subscriber.json}    Subscriber
-    #Dictionaries Should Be Equal    ${json_result}    ${actual_json}
diff --git a/src/test/cord-api/Tests/SubscriberTest.txt b/src/test/cord-api/Tests/SubscriberTest.txt
index 4df3faf..d69181e 100644
--- a/src/test/cord-api/Tests/SubscriberTest.txt
+++ b/src/test/cord-api/Tests/SubscriberTest.txt
@@ -17,7 +17,8 @@
 ${PATHFILE2}      ${CURDIR}/data/putSubscriber.json
 
 *** Test Cases ***    TYPE        LISTINDEX
-Test Subscriber-1     CREATE      0
+Test Create Subscriber-1
+                      CREATE      0
 
 Test Get_Subscriber-1
                       RETRIEVE    0
@@ -25,21 +26,17 @@
 Test Edit Subscriber-1
                       PUT         0
 
-Test Delete Subscriber Data-1
-                      DELETE      0
-
-Test Subscriber-2     CREATE      1
+Test Create Subscriber-2
+                      CREATE      1
 
 Test Get_Subscriber-2
                       RETRIEVE    1
 
-Test Edit Subscriber Data-2
+Test Edit Subscriber-2
                       PUT         1
 
-Test Delete Subscriber-2
-                      DELETE      1
-
-Test Subscriber-3     CREATE      2
+Test Create Subscriber-3
+                      CREATE      2
 
 Test Get_Subcriber-3
                       RETRIEVE    2
@@ -47,9 +44,6 @@
 Test Edit Subscriber-3
                       PUT         2
 
-Test Delete Subscriber-3
-                      DELETE      2
-
 *** Keywords ***
 Read InputFile
     ${subscriberList} =    utils.jsonToList    ${PATHFILE}    SubscriberInfo
diff --git a/src/test/cord-api/Tests/SubscriberVolt_Delete.txt b/src/test/cord-api/Tests/SubscriberVolt_Delete.txt
new file mode 100644
index 0000000..5621b24
--- /dev/null
+++ b/src/test/cord-api/Tests/SubscriberVolt_Delete.txt
@@ -0,0 +1,55 @@
+*** Settings ***
+Documentation     Test suite for Deletion of Subscribers and voltTenants
+Suite Setup       Read InputFile
+Test Template     Verify Deletion of Subscriber and volt Tenant functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/VoltTenant.json
+
+*** Test Cases ***    TYPE      LISTINDEX
+Test Delete Subscriber and volt_tenant-1
+                      DELETE    0
+
+Test Delete Subscriber and volt_tenant-2
+                      DELETE    1
+
+Test Delete Subscriber and volt_tenant-3
+                      DELETE    2
+
+*** Keywords ***
+Read InputFile
+    ${voltList} =    utils.jsonToList    ${PATHFILE}    voltSubscriberInfo
+    Set Suite Variable    ${vlist}    ${voltList}
+
+Verify Deletion of Subscriber and volt Tenant functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Subscriber and voltTenant    ${listIndex}
+
+Test Delete Subscriber and voltTenant
+    [Arguments]    ${listIndex}
+    ${getSubscriber_result}=    restApi.ApiGet    TENANT_SUBSCRIBER
+    ${getVoltTenant_result}=    restApi.ApiGet    TENANT_VOLT
+    ${voltList}=    Get Variable Value    ${vlist}
+    ${voltTenantDict}=    utils.listToDict    ${voltList}    ${listIndex}
+    ${voltDict}=    Get From Dictionary    ${voltTenantDict}    voltTenant
+    ${account_num}=    Get From Dictionary    ${voltTenantDict}    account_num
+    ${subscriberDict}=    utils.getDictFromListofDict    ${getSubscriber_result}    account_num    ${account_num}
+    Log    ${subscriberDict}
+    ${subscriberId}=    utils.getFieldValueFromDict    ${subscriberDict}    id
+    Log    ${subscriberId}
+    ${subscriber_delete_result}=    restApi.ApiDelete    TENANT_SUBSCRIBER    ${subscriberId}
+    Should Be True    ${subscriber_delete_result}
+    # Deletion of volt Tenants
+    ${getVoltDict}=    utils.getDictFromListOfDict    ${getVoltTenant_result}    subscriber    ${subscriberId}
+    ${voltID}=    utils.getFieldValueFromDict    ${getVoltDict}    id
+    ${volt_delete_result}=    restApi.ApiDelete    TENANT_VOLT    ${voltID}
+    Should Be True    ${volt_delete_result}
diff --git a/src/test/cord-api/Tests/VoltTenant.txt b/src/test/cord-api/Tests/VoltTenant.txt
new file mode 100644
index 0000000..136cae6
--- /dev/null
+++ b/src/test/cord-api/Tests/VoltTenant.txt
@@ -0,0 +1,65 @@
+*** Settings ***
+Documentation     Test suite for volt Tenant Verification
+Suite Setup       Read InputFile
+Test Template     Verify volt Tenant Functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/VoltTenant.json
+${PATHFILE2}      ${CURDIR}/data/putVoltTenant.json
+
+*** Test Cases ***    TYPE      LISTINDEX
+Test volt Tenant-1    CREATE    0
+
+Test volt Tenant-2    CREATE    1
+
+Test volt Tenant-3    CREATE    2
+
+*** Keywords ***
+Read InputFile
+    ${voltList} =    utils.jsonToList    ${PATHFILE}    voltSubscriberInfo
+    Set Suite Variable    ${vlist}    ${voltList}
+    ${putvoltList}=    utils.jsonToList    ${PATHFILE2}    voltSubscriberInfo
+    Set Suite Variable    ${putList}    ${putvoltList}
+
+Verify volt Tenant Functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post volt Tenant API    ${listIndex}
+
+Test Post volt Tenant API
+    [Arguments]    ${listIndex}
+    ${voltTenantList} =    Get Variable Value    ${vlist}
+    ${voltTenantDict}=    utils.listToDict    ${voltTenantList}    ${listIndex}
+    ${voltDict}=    Get From Dictionary    ${voltTenantDict}    voltTenant
+    ${account_num}=    Get From Dictionary    ${voltTenantDict}    account_num
+    ${get_result}=    restApi.ApiGet    TENANT_SUBSCRIBER
+    ${subscriberDict}=    utils.getDictFromListofDict    ${get_result}    account_num    ${account_num}
+    ${subscriberID}=    utils.getFieldValueFromDict    ${subscriberDict}    id
+    ${updatedVoltDict}=    utils.setFieldValueInDict    ${voltDict}    subscriber    ${subscriberID}
+    ${api_result}=    restApi.ApiPost    TENANT_VOLT    ${updatedVoltDict}
+    Should Be True    ${api_result}
+    # Verifying Get operation after POST
+    ${getVolt_result}=    restApi.ApiGet    TENANT_VOLT
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${getVolt_result}    subscriber    ${subscriberID}
+    ${test_result}=    utils.compare_dict    ${voltDict}    ${getJsonDict}
+    Should Be True    ${test_result}
+    # Verifying PUT operation
+    ${putvoltList}=    Get Variable Value    ${putList}
+    ${putVoltDict}=    utils.listToDict    ${putvoltList}    ${listIndex}
+    ${putvoltTenantDict}=    Get From Dictionary    ${putVoltDict}    voltTenant
+    ${voltID}=    utils.getFieldValueFromDict    ${getJsonDict}    id
+    ${put_result}=    restApi.ApiPut    TENANT_VOLT    ${putvoltTenantDict}    ${voltID}
+    Should Be True    ${put_result}
+    # Verifying Get after PUT operation
+    ${getVolt_afterPut}=    restApi.ApiGet    TENANT_VOLT
+    ${getVoltDict}=    utils.getDictFromListofDict    ${getVolt_afterPut}    id    ${voltID}
+    ${result_afterPut}=    utils.compare_dict    ${putvoltTenantDict}    ${getVoltDict}
+    Should Be True    ${result_afterPut}
diff --git a/src/test/cord-api/Tests/data/Subscriber.json b/src/test/cord-api/Tests/data/Subscriber.json
index 8605026..d36453c 100644
--- a/src/test/cord-api/Tests/data/Subscriber.json
+++ b/src/test/cord-api/Tests/data/Subscriber.json
@@ -1,8 +1,6 @@
 {
     "SubscriberInfo" : [
     {
-        "humanReadableName": "cordSubscriber-2",
-        "id": 2,
         "features": {
             "cdn": true,
             "uplink_speed": 1000000000,
@@ -16,8 +14,6 @@
         }
     },
     {
-        "humanReadableName": "cordSubscriber-3",
-        "id": 3,
         "features": {
             "cdn": false,
             "uplink_speed": 500000000,
diff --git a/src/test/cord-api/Tests/data/VoltTenant.json b/src/test/cord-api/Tests/data/VoltTenant.json
new file mode 100644
index 0000000..7bf5b73
--- /dev/null
+++ b/src/test/cord-api/Tests/data/VoltTenant.json
@@ -0,0 +1,31 @@
+{
+    "voltSubscriberInfo" : [
+    {
+      "voltTenant" : 
+       {
+         "s_tag" : "111",
+         "c_tag" : "222",
+         "subscriber" : ""
+       },
+       "account_num" : 20
+    },
+    {
+     "voltTenant" : 
+      {
+        "s_tag" : "111",
+        "c_tag" : "333",
+        "subscriber" : ""
+      },
+      "account_num" : 21
+    },
+    {
+     "voltTenant" :
+      {
+        "s_tag" : "111",
+        "c_tag" : "444",
+        "subscriber" : ""
+      },
+     "account_num" : 22
+    }
+ ]
+} 
diff --git a/src/test/cord-api/Tests/data/putVoltTenant.json b/src/test/cord-api/Tests/data/putVoltTenant.json
new file mode 100644
index 0000000..78a4c25
--- /dev/null
+++ b/src/test/cord-api/Tests/data/putVoltTenant.json
@@ -0,0 +1,28 @@
+{
+    "voltSubscriberInfo" : [
+    {
+      "voltTenant" : 
+       {
+         "s_tag" : "111",
+         "c_tag" : "221"
+       },
+       "account_num" : 20
+    },
+    {
+     "voltTenant" : 
+      {
+        "s_tag" : "112",
+        "c_tag" : "331"
+      },
+      "account_num" : 21
+    },
+    {
+     "voltTenant" :
+      {
+        "s_tag" : "112",
+        "c_tag" : "442"
+      },
+      "account_num" : 22
+    }
+ ]
+} 
