diff --git a/mappings/on_init.jsonata b/mappings/on_init.jsonata
index e4249d7f56dd37627b8a030921dd16feb892fbd5..9618881a42c34bfbf7f0135683cdc65646fde221 100644
--- a/mappings/on_init.jsonata
+++ b/mappings/on_init.jsonata
@@ -51,7 +51,8 @@
                         "display": display,
                         "list": list.{ "code": descriptor.code, "name": descriptor.name, "value": value }[]
                     }[]
-                },
+                    "xinput":$xInput(xinput, $action)
+                }[],
                 "xinput": $xInput(message.order.xinput, $action),
                 "fulfillments": message.order.fulfillments,
                 "quote": message.order.quote,
diff --git a/src/httpclient/http.service.ts b/src/httpclient/http.service.ts
index 266567786e9200d8ada701233e8de0aef317c64e..dd21f9a3621b4eadb8912c711913b11ebf695b0a 100644
--- a/src/httpclient/http.service.ts
+++ b/src/httpclient/http.service.ts
@@ -1,60 +1,89 @@
-import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from 'axios';
-import { inject, injectable } from 'inversify';
-import { AppLogger } from '../app/app.logger';
+import axios, {
+  AxiosInstance,
+  AxiosRequestConfig,
+  AxiosResponse,
+  InternalAxiosRequestConfig
+} from "axios";
+import { inject, injectable } from "inversify";
+import { AppLogger } from "../app/app.logger";
 
 @injectable()
 class HttpClient {
-    private readonly client: AxiosInstance;
-
-    constructor(@inject(AppLogger) private logger: AppLogger) {
-        this.client = axios.create({
-            headers: {
-                'Content-Type': 'application/json',
-            },
-        });
-
-        // Add request interceptor
-        this.client.interceptors.request.use((config: InternalAxiosRequestConfig) => {
-            // Modify the request config if needed
-            logger.info("Making network request: \n%s %s\nHEADERS %s \nDATA %o", config.method?.toUpperCase(), config.url, JSON.stringify(config.headers), JSON.stringify(config.data));
-            return config;
-        }, (error: any) => {
-            // Handle request error
-            logger.error("Request error: \n%o", error.data);
-            return Promise.reject(error);
-        });
-
-        // Add response interceptor
-        this.client.interceptors.response.use((response: AxiosResponse) => {
-            // Modify the response data if needed
-            logger.info("Response received: %o\n", JSON.stringify(response.data));
-            return response;
-        }, (error: any) => {
-            // Handle response error
-            logger.error("Response error: %o", error.message);
-            return Promise.reject(error);
-        });
-    }
-
-    async get<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
-        const response: AxiosResponse<T> = await this.client.get(url, config);
-        return response.data;
-    }
-
-    async post<T>(url: string, data: any, config?: AxiosRequestConfig): Promise<T> {
-        const response: AxiosResponse<T> = await this.client.post(url, data, config);
-        return response.data;
-    }
-
-    async put<T>(url: string, data: any, config?: AxiosRequestConfig): Promise<T> {
-        const response: AxiosResponse<T> = await this.client.put(url, data, config);
-        return response.data;
-    }
-
-    async delete<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
-        const response: AxiosResponse<T> = await this.client.delete(url, config);
-        return response.data;
-    }
+  public readonly client: AxiosInstance;
+
+  constructor(@inject(AppLogger) private logger: AppLogger) {
+    this.client = axios.create({
+      headers: {
+        "Content-Type": "application/json"
+      }
+    });
+
+    // Add request interceptor
+    this.client.interceptors.request.use(
+      (config: InternalAxiosRequestConfig) => {
+        // Modify the request config if needed
+        logger.info(
+          "Making network request: \n%s %s\nHEADERS %s \nDATA %o",
+          config.method?.toUpperCase(),
+          config.url,
+          JSON.stringify(config.headers),
+          JSON.stringify(config.data)
+        );
+        return config;
+      },
+      (error: any) => {
+        // Handle request error
+        logger.error("Request error: \n%o", error.data);
+        return Promise.reject(error);
+      }
+    );
+
+    // Add response interceptor
+    this.client.interceptors.response.use(
+      (response: AxiosResponse) => {
+        // Modify the response data if needed
+        logger.info("Response received: %o\n", JSON.stringify(response.data));
+        return response;
+      },
+      (error: any) => {
+        // Handle response error
+        logger.error("Response error: %o", error.message);
+        return Promise.reject(error);
+      }
+    );
+  }
+
+  async get<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
+    const response: AxiosResponse<T> = await this.client.get(url, config);
+    return response.data;
+  }
+
+  async post<T>(
+    url: string,
+    data: any,
+    config?: AxiosRequestConfig
+  ): Promise<T> {
+    const response: AxiosResponse<T> = await this.client.post(
+      url,
+      data,
+      config
+    );
+    return response.data;
+  }
+
+  async put<T>(
+    url: string,
+    data: any,
+    config?: AxiosRequestConfig
+  ): Promise<T> {
+    const response: AxiosResponse<T> = await this.client.put(url, data, config);
+    return response.data;
+  }
+
+  async delete<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
+    const response: AxiosResponse<T> = await this.client.delete(url, config);
+    return response.data;
+  }
 }
 
 export default HttpClient;
diff --git a/src/tl/tl.helper.ts b/src/tl/tl.helper.ts
index c6bd437a17a474801ea3deacc0ee402c345f7368..9ae4e23501ba54b59b581d3c4ebe96a3dc2a3377 100644
--- a/src/tl/tl.helper.ts
+++ b/src/tl/tl.helper.ts
@@ -1,24 +1,35 @@
 import jsonata from "jsonata";
-import path from 'path';
-import fs from 'fs';
-import appRootPath from 'app-root-path';
-import moment from 'moment';
-import { v4 as uuid } from 'uuid';
+import path from "path";
+import fs from "fs";
+import appRootPath from "app-root-path";
+import moment from "moment";
+import { v4 as uuid } from "uuid";
 import { XInputService } from "../x-input/x-input.service";
-import { container } from '../inversify/inversify.config';
+import { container } from "../inversify/inversify.config";
 
 export const context = async (data: any, action: string) => {
-    const expression = jsonata(fs.readFileSync(path.join(appRootPath.toString(), `/mappings/context.jsonata`), "utf8"));
-    return await expression.evaluate(data, { env: process.env, moment, uuid, action });
-}
+  const expression = jsonata(
+    fs.readFileSync(
+      path.join(appRootPath.toString(), `/mappings/context.jsonata`),
+      "utf8"
+    )
+  );
+  return await expression.evaluate(data, {
+    env: process.env,
+    moment,
+    uuid,
+    action
+  });
+};
 
 export async function xInput(xinput: any, action: string) {
-    if (action.startsWith('on_') && xinput?.form?.url) {
-        const xInputService = container.resolve<XInputService>(XInputService);
-        const xInputHTML = await xInputService.getXInputForm(xinput.form.url);
-        return {
-            mime_type: xinput?.form?.mime_type,
-            html: xInputHTML
-        }
-    }
+  if (action.startsWith("on_") && xinput?.form?.url) {
+    const xInputService = container.resolve<XInputService>(XInputService);
+    const xInputHTML = await xInputService.getXInputForm(xinput.form.url);
+
+    return {
+      mime_type: xinput?.form?.mime_type,
+      html: xInputHTML
+    };
+  }
 }
diff --git a/src/x-input/x-input.service.ts b/src/x-input/x-input.service.ts
index 80f0c27419d608fe71e3bc0a7c5c6847eecdb3e3..c7ec96b5a8a3dff473ccd5a7a42f2ca767462ce9 100644
--- a/src/x-input/x-input.service.ts
+++ b/src/x-input/x-input.service.ts
@@ -8,19 +8,18 @@ export class XInputService {
   constructor(
     @inject(AppLogger) private logger: AppLogger,
     @inject(HttpClient) private httpClient: HttpClient
-  ) { }
+  ) {}
 
   async getXInputForm(url: string) {
     try {
       const xInputRes = await this.httpClient.get<any>(url);
-      const xinputHTML = await this.sanatizeXInputHtml(xInputRes);
+
+      const xinputHTML = await this.sanatizeXInputHtml(xInputRes?.textHtml);
+
       return xinputHTML;
     } catch (e) {
-      this.logger.error(
-        "Error in fetching xinput form",
-        e
-      );
-      return {}
+      this.logger.error("Error in fetching xinput form", e);
+      return {};
     }
   }
 
@@ -44,9 +43,14 @@ export class XInputService {
   async submitXInputForm(body: any) {
     try {
       const actionUrl = body?.action;
+      const method = body?.method;
       delete body.action;
       delete body.method;
-      const submitFormDataResp = await this.httpClient.post(actionUrl, body);
+      const submitFormDataResp = await this.httpClient.client({
+        url: actionUrl,
+        method,
+        data: body
+      });
       return submitFormDataResp;
     } catch (error: any) {
       return { message: error.message };