diff --git a/mappings/ps_error.jsonata b/mappings/ps_error.jsonata
new file mode 100644
index 0000000000000000000000000000000000000000..9e0f45a700b0425c0c198bf6484da0709d720c44
--- /dev/null
+++ b/mappings/ps_error.jsonata
@@ -0,0 +1,3 @@
+{
+    "error": error
+}
\ No newline at end of file
diff --git a/src/middleware/errorhandler.middleware.ts b/src/middleware/errorhandler.middleware.ts
index ed854f39a9b822b3f36eb6fae4580a5821cfb4ec..3fbf2bbe80844fbf7c2bdcaa5443fd6b72246c79 100644
--- a/src/middleware/errorhandler.middleware.ts
+++ b/src/middleware/errorhandler.middleware.ts
@@ -1,12 +1,19 @@
 import { inject, injectable } from 'inversify';
 import { Request, Response, NextFunction } from 'express';
 import { AppLogger } from '../app/app.logger';
+import { AxiosError } from 'axios';
+import { TLService } from '../tl/tl.service';
 
 @injectable()
 export class ErrorHandlerMiddleware {
-    constructor(@inject(AppLogger) private logger: AppLogger) { }
+    constructor(@inject(AppLogger) private logger: AppLogger, @inject(TLService) private tlService: TLService) { }
 
-    public handleError(error: Error, req: Request, res: Response, next: NextFunction): void {
+    public async handleError(error: Error | AxiosError, req: Request, res: Response, next: NextFunction) {
+        const { response } = error as AxiosError;
+        if (response?.status === 400) {
+            const transformedResponse = await this.tlService.transform(response.data, "ps_error");
+            return res.status(response.status).json(transformedResponse);
+        }
         this.logger.error("%s", error.stack);
         const statusCode = res.statusCode === 200 ? 500 : res.statusCode;
         res.status(statusCode).json({