diff --git a/lib/parse-result.js b/lib/parse-result.js
index ad7ce6a..d8a3f96 100644
--- a/lib/parse-result.js
+++ b/lib/parse-result.js
@@ -10,7 +10,9 @@ const report = require('./report');
 const translateRc = require('./translate-rc');
 
 module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
-    logger.verbose(`${MODULE_NAME} 58547863: Processing XML message`, { xid });
+    logger.verbose(`${MODULE_NAME} 58547863: Processing XML message`, { xid, isCallback });
+
+    const responseType = isCallback ? 'CALLBACK' : 'DIRECT-RESPONSE';
 
     if (!trxIdFromCaller && !isCallback) {
         if (logger) logger.warn(`${MODULE_NAME} 8CAAD7C9: No trx id on non callback`, { xid });
@@ -19,7 +21,8 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
 
     const obj = parseXml(xid, xml);
     if (!obj) {
-        logger.warn(`${MODULE_NAME} B46CAAD1: Invalid XML`, { xid });
+        const e = new Error(`${MODULE_NAME} B46CAAD1: Invalid XML`);
+        logger.warn(e.message, { xid });
 
         if (trxIdFromCaller) {
             report(xid, {
@@ -27,9 +30,11 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
                 rc: '68',
                 message: {
                     xid,
-                    isDirectResponse: !isCallback,
-                    isCallback: !!isCallback,
-                    body: xml,
+                    responseType,
+                    'GW-ERROR': {
+                        message: e.message,
+                        responseFromPartner: xml,
+                    },
                 },
             });
         }
@@ -49,10 +54,10 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
                 rc: '68',
                 message: {
                     xid,
-                    responseType: isCallback ? 'CALLBACK' : 'DIRECT-RESPONSE',
+                    responseType,
                     'GW-ERROR': {
                         message: e.message,
-                        response: obj,
+                        responseFromPartner: obj,
                     },
                 },
             });
@@ -67,8 +72,9 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
     const responseCodeField = (config.partner.xmlrpc_field && config.partner.xmlrpc_field.responseCode) || 'RESPONSECODE';
     const responseCodeFromResponse = params[responseCodeField];
 
-    const messageField = (config.partner.xmlrpc_field && config.partner.xmlrpc_field.message) || 'MESSAGE';
-    const messageFromResponse = params[messageField];
+    // eslint-disable-next-line max-len
+    // const messageField = (config.partner.xmlrpc_field && config.partner.xmlrpc_field.message) || 'MESSAGE';
+    // const messageFromResponse = params[messageField];
 
     const snField = (config.partner.xmlrpc_field && config.partner.xmlrpc_field.sn) || 'SN';
     const snFromResponse = params[snField];
@@ -90,8 +96,7 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback) => {
         message: {
             xid,
             responseType: isCallback ? 'CALLBACK' : 'DIRECT-RESPONSE',
-            message: messageFromResponse,
-            detail: params,
+            message: params,
         },
     });
 };