diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V6.1__Add_Column_Rollback_Ext_System_Error_Source.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V6.1__Add_Column_Rollback_Ext_System_Error_Source.sql
new file mode 100644
index 0000000..a4009be
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V6.1__Add_Column_Rollback_Ext_System_Error_Source.sql
@@ -0,0 +1,4 @@
+use requestdb;
+
+ALTER TABLE infra_active_requests ADD COLUMN IF NOT EXISTS ROLLBACK_EXT_SYSTEM_ERROR_SOURCE varchar(80);
+ALTER TABLE archived_infra_requests ADD COLUMN IF NOT EXISTS ROLLBACK_EXT_SYSTEM_ERROR_SOURCE varchar(80);
\ No newline at end of file
diff --git a/asdc-controller/src/test/resources/schema.sql b/asdc-controller/src/test/resources/schema.sql
index 5e4af83..652fc8f 100644
--- a/asdc-controller/src/test/resources/schema.sql
+++ b/asdc-controller/src/test/resources/schema.sql
@@ -1461,7 +1461,10 @@
   `CONFIGURATION_NAME` varchar(200) DEFAULT NULL,
   `OPERATIONAL_ENV_ID` varchar(45) DEFAULT NULL,
   `OPERATIONAL_ENV_NAME` varchar(200) DEFAULT NULL,
-  `REQUEST_URL` varchar(500) DEFAULT NULL,  
+  `REQUEST_URL` varchar(500) DEFAULT NULL,
+  `ORIGINAL_REQUEST_ID` varchar(45) DEFAULT NULL,
+  `EXT_SYSTEM_ERROR_SOURCE` varchar(80) DEFAULT NULL,
+  `ROLLBACK_EXT_SYSTEM_ERROR_SOURCE` varchar(80) DEFAULT NULL,
   PRIMARY KEY (`REQUEST_ID`),
   UNIQUE KEY `UK_bhu6w8p7wvur4pin0gjw2d5ak` (`CLIENT_REQUEST_ID`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java
index e9d9d87..e236003 100644
--- a/common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java
+++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java
@@ -38,6 +38,8 @@
     protected String timeStamp;
     @JsonProperty("extSystemErrorSource")
     protected String extSystemErrorSource;
+    @JsonProperty("rollbackExtSystemErrorSource")
+    protected String rollbackExtSystemErrorSource;
 
     public String getExtSystemErrorSource() {
         return extSystemErrorSource;
@@ -79,10 +81,19 @@
         this.timeStamp = timeStamp;
     }
 
+    public String getRollbackExtSystemErrorSource() {
+        return rollbackExtSystemErrorSource;
+    }
+
+    public void setRollbackExtSystemErrorSource(String rollbackExtSystemErrorSource) {
+        this.rollbackExtSystemErrorSource = rollbackExtSystemErrorSource;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this).append("requestState", requestState).append("statusMessage", statusMessage)
                 .append("percentProgress", percentProgress).append("timestamp", timeStamp)
-                .append("extSystemErrorSource", extSystemErrorSource).toString();
+                .append("extSystemErrorSource", extSystemErrorSource)
+                .append("rollbackExtSystemErrorSource", rollbackExtSystemErrorSource).toString();
     }
 }
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
index b4a3128..b63e391 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
@@ -440,6 +440,7 @@
             boolean extSystemErrorSource) {
         if (extSystemErrorSource) {
             status.setExtSystemErrorSource(iar.getExtSystemErrorSource());
+            status.setRollbackExtSystemErrorSource(iar.getRollbackExtSystemErrorSource());
         }
     }
 
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsUnitTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsUnitTest.java
index a400cae..99ff4ff 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsUnitTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsUnitTest.java
@@ -29,8 +29,6 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
 import javax.ws.rs.core.Response;
@@ -74,19 +72,13 @@
     private static final String ORIGINAL_REQUEST_ID = "8f2d38a6-7c20-465a-bd7e-075645f1394b";
     private static final String SERVICE = "service";
     private static final String EXT_SYSTEM_ERROR_SOURCE = "external system error source";
+    private static final String ROLLBACK_EXT_SYSTEM_ERROR_SOURCE = "SDNC";
     private InfraActiveRequests iar;
     boolean includeCloudRequest = false;
     boolean extSystemErrorSource = false;
-    private static final String SERVICE_INSTANCE_NAME = "serviceInstanceName";
-    private static final String VNF_ID = "00032ab7-na18-42e5-965d-8ea592502017";
-    private static final String VFMODULE_ID = "00032ab7-na18-42e5-965d-8ea592502016";
-    private static final String NETWORK_ID = "00032ab7-na18-42e5-965d-8ea592502015";
-    private static final String VOLUME_GROUP_ID = "00032ab7-na18-42e5-965d-8ea592502014";
-    private static final String VNF_NAME = "vnfName";
-    private static final String VFMODULE_NAME = "vfModuleName";
-    private static final String NETWORK_NAME = "networkName";
-    private static final String VOLUME_GROUP_NAME = "volumeGroupName";
+
     private static final String VERSION = "v7";
+
     List<org.onap.so.db.request.beans.RequestProcessingData> requestProcessingData = new ArrayList<>();
 
     @Before
@@ -164,6 +156,7 @@
         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
         RequestStatus requestStatus = new RequestStatus();
         requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
+        requestStatus.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
 
         Request expected = new Request();
         expected.setRequestId(REQUEST_ID);
@@ -174,6 +167,7 @@
         extSystemErrorSource = true;
         includeCloudRequest = false;
         iar.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
+        iar.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
 
         Request actual =
                 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql b/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
index 9482834..731d2be 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
@@ -1290,7 +1290,10 @@
   `CONFIGURATION_NAME` varchar(200) DEFAULT NULL,
   `OPERATIONAL_ENV_ID` varchar(45) DEFAULT NULL,
   `OPERATIONAL_ENV_NAME` varchar(200) DEFAULT NULL,
-  `REQUEST_URL` varchar(500) DEFAULT NULL,  
+  `REQUEST_URL` varchar(500) DEFAULT NULL,
+  `ORIGINAL_REQUEST_ID` varchar(45) DEFAULT NULL,
+  `EXT_SYSTEM_ERROR_SOURCE` varchar(80) DEFAULT NULL,
+  `ROLLBACK_EXT_SYSTEM_ERROR_SOURCE` varchar(80) DEFAULT NULL,
   PRIMARY KEY (`REQUEST_ID`),
   UNIQUE KEY `UK_bhu6w8p7wvur4pin0gjw2d5ak` (`CLIENT_REQUEST_ID`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/mso-api-handlers/mso-requests-db-repositories/src/test/resources/schema.sql b/mso-api-handlers/mso-requests-db-repositories/src/test/resources/schema.sql
index a47e1c4..192e6d5 100644
--- a/mso-api-handlers/mso-requests-db-repositories/src/test/resources/schema.sql
+++ b/mso-api-handlers/mso-requests-db-repositories/src/test/resources/schema.sql
@@ -98,7 +98,8 @@
     INSTANCE_GROUP_NAME VARCHAR SELECTIVITY 1,
     REQUEST_URL VARCHAR SELECTIVITY 1,
     ORIGINAL_REQUEST_ID VARCHAR SELECTIVITY 1,
-    EXT_SYSTEM_ERROR_SOURCE VARCHAR SELECTIVITY 1
+    EXT_SYSTEM_ERROR_SOURCE VARCHAR SELECTIVITY 1,
+    ROLLBACK_EXT_SYSTEM_ERROR_SOURCE VARCHAR SELECTIVITY 1
 );          
 
 INSERT INTO PUBLIC.INFRA_ACTIVE_REQUESTS(REQUEST_ID, CLIENT_REQUEST_ID, ACTION, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, AIC_NODE_CLLI, TENANT_ID, PROV_STATUS, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, REQUEST_TYPE, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, AAI_SERVICE_ID, AIC_CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraActiveRequests.java b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraActiveRequests.java
index 9da6ff2..d0a4aa2 100644
--- a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraActiveRequests.java
+++ b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraActiveRequests.java
@@ -89,6 +89,7 @@
                 .append("configurationName", getConfigurationName()).append("operationalEnvId", getOperationalEnvId())
                 .append("operationalEnvName", getOperationalEnvName()).append("requestUrl", getRequestUrl())
                 .append("originalRequestId", getOriginalRequestId())
-                .append("extSystemErrorSource", getExtSystemErrorSource()).toString();
+                .append("extSystemErrorSource", getExtSystemErrorSource())
+                .append("rollbackExtSystemErrorSource", getRollbackExtSystemErrorSource()).toString();
     }
 }
diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java
index ecc4f46..464cacb 100644
--- a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java
+++ b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java
@@ -157,6 +157,8 @@
     private String originalRequestId;
     @Column(name = "EXT_SYSTEM_ERROR_SOURCE", length = 80)
     private String extSystemErrorSource;
+    @Column(name = "ROLLBACK_EXT_SYSTEM_ERROR_SOURCE", length = 80)
+    private String rollbackExtSystemErrorSource;
 
     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
     @JoinColumn(name = "SO_REQUEST_ID", referencedColumnName = "REQUEST_ID")
@@ -590,6 +592,14 @@
         this.extSystemErrorSource = extSystemErrorSource;
     }
 
+    public String getRollbackExtSystemErrorSource() {
+        return this.rollbackExtSystemErrorSource;
+    }
+
+    public void setRollbackExtSystemErrorSource(String rollbackExtSystemErrorSource) {
+        this.rollbackExtSystemErrorSource = rollbackExtSystemErrorSource;
+    }
+
     @PrePersist
     protected void onCreate() {
         if (requestScope == null)
@@ -653,6 +663,6 @@
                 .append("operationalEnvName", getOperationalEnvName()).append("instanceGroupId", getInstanceGroupId())
                 .append("instanceGroupName", getInstanceGroupName()).append("requestUrl", getRequestUrl())
                 .append("originalRequestId", originalRequestId).append("extSystemErrorSource", extSystemErrorSource)
-                .toString();
+                .append("rollbackExtSystemErrorSource", rollbackExtSystemErrorSource).toString();
     }
 }
