diff --git a/mappings/on_rating.jsonata b/mappings/on_rating.jsonata
new file mode 100644
index 0000000000000000000000000000000000000000..ae8487bf81647131dbba09aa833ee1ec8951e131
--- /dev/null
+++ b/mappings/on_rating.jsonata
@@ -0,0 +1,6 @@
+{
+    "data": $.responses.{
+        "context": context,
+        "message": message
+    }[]
+}
diff --git a/mappings/rating.jsonata b/mappings/rating.jsonata
new file mode 100644
index 0000000000000000000000000000000000000000..2cf3d622a0bc9df22b102849adba74dcca23db14
--- /dev/null
+++ b/mappings/rating.jsonata
@@ -0,0 +1,4 @@
+{
+    "context": context,
+    "message": message
+}
diff --git a/src/gcl/gcl.controller.ts b/src/gcl/gcl.controller.ts
index c6e9bfa46f94a69075cb2a8977693faa4a482e9d..6909ffdb89b2ad8c7a54c687ed09ad78f2a282c0 100644
--- a/src/gcl/gcl.controller.ts
+++ b/src/gcl/gcl.controller.ts
@@ -36,4 +36,10 @@ export class GCLController {
         const statusResult = await this.service.status(body);
         return statusResult;
     }
+
+    @httpPost('rating')
+    public async rating(@requestBody() body: any): Promise<any> {
+        const statusResult = await this.service.rating(body);
+        return statusResult;
+    }
 }
diff --git a/src/gcl/gcl.service.ts b/src/gcl/gcl.service.ts
index a490664626e6085f2730c6d96bd60d3dbd54b396..b0a51de26d4a2704a49bb6e205eff5971b6f9385 100644
--- a/src/gcl/gcl.service.ts
+++ b/src/gcl/gcl.service.ts
@@ -52,4 +52,12 @@ export class GCLService {
 
         return "In Progress";
     }
+
+    async rating(body: any) {
+        const payload = await this.tlService.transform(body, "rating");
+        const psResponse = await this.psClientService.post(payload);
+        const response = await this.tlService.transform(psResponse, "on_rating");
+
+        return response;
+    }
 }