diff --git a/apps/agent/README.md b/apps/agent/README.md
index 63a0c6113ee88579512ff090302b25584e202825..4ac3348f0ac105fab17515d54b5b7442a06ea0b9 100644
--- a/apps/agent/README.md
+++ b/apps/agent/README.md
@@ -1,4 +1,4 @@
-# OCM ENGINE - AGENT 
+# OCM ENGINE - AGENT
 
 Agent service is a wrapper around @ocm-engine/askar library. 
 
diff --git a/apps/gateway/README.md b/apps/gateway/README.md
index 74397ba439284f4806c26f0be84e0ecde61109bb..054da564c09eeaa42862d7b47cfa28845d9f5593 100644
--- a/apps/gateway/README.md
+++ b/apps/gateway/README.md
@@ -1,4 +1,4 @@
-# OCM ENGINE - Gateway
+# OCM ENGINE - Gateway 
 
 External service.
 
diff --git a/apps/gateway/src/app/managers/connection.controller.ts b/apps/gateway/src/app/managers/connection.controller.ts
index 14f44d04e245918e30c3f2bc3c0dbef6be37e13e..6ed9f7336ed7e9e7b81f3b4411bea213806c1ca8 100644
--- a/apps/gateway/src/app/managers/connection.controller.ts
+++ b/apps/gateway/src/app/managers/connection.controller.ts
@@ -134,9 +134,9 @@ export class ConnectionController {
     },
   })
   @ApiOperation({
-    summary: "Accept invitation for connection",
+    summary: "Accept invitation long and short urls for connection",
     description:
-      "Method will accept the invitation and will return connection thought the websocket. The id of the response will be matched when you receive event from the websocket",
+      "Method will accept long and short invitation urls and will return connection thought the websocket. The id of the response will be matched when you receive event from the websocket",
     tags: ["Connections"],
   })
   async acceptInvitation(
diff --git a/libs/askar/src/agent.utils.ts b/libs/askar/src/agent.utils.ts
index 9bca784c0838eac47a45b12ac1ca83e3b0f23673..f28e6acb50f47cb9db57bd472dc0252c456bb523 100644
--- a/libs/askar/src/agent.utils.ts
+++ b/libs/askar/src/agent.utils.ts
@@ -22,6 +22,7 @@ import {
   V2ProofProtocol,
   WalletError,
   WalletKeyExistsError,
+  OutOfBandState,
 } from "@aries-framework/core";
 import {
   AnonCredsCredentialFormatService,
@@ -62,6 +63,7 @@ export type SubjectMessage = {
   message: EncryptedMessage;
   replySubject?: Subject<SubjectMessage>;
 };
+import { Request, Response, Express } from "express";
 
 export const importDidsToWallet = async (
   agent: Agent,
@@ -385,3 +387,34 @@ export const waitForProofExchangeRecordSubject = (
     ),
   );
 };
+
+export const attachShortUrlHandler = (server: Express, agent: Agent): void => {
+  server.get(
+    "/invitations/:invitationId",
+    async (req: Request, res: Response) => {
+      try {
+        const { invitationId } = req.params;
+
+        const outOfBandRecord = await agent.oob.findByCreatedInvitationId(
+          invitationId,
+        );
+
+        if (
+          !outOfBandRecord ||
+          outOfBandRecord.state !== OutOfBandState.AwaitResponse
+        ) {
+          return res.status(404).send("Not found");
+        }
+
+        const invitationJson = outOfBandRecord.outOfBandInvitation.toJSON();
+
+        return res
+          .header("Content-Type", "application/json")
+          .send(invitationJson);
+      } catch (error) {
+        console.error(error);
+        return res.status(500).send("Internal Server Error");
+      }
+    },
+  );
+};
diff --git a/libs/askar/src/askar/agent.service.ts b/libs/askar/src/askar/agent.service.ts
index 15ace71407fc3eae827b46e1bfcfebabcf9458d6..f8fc64551742b3a47e78064507b77c55dd033bf4 100644
--- a/libs/askar/src/askar/agent.service.ts
+++ b/libs/askar/src/askar/agent.service.ts
@@ -42,6 +42,7 @@ export class AgentService {
       domain: this.askar.agentConfig.agentPeerAddress,
     });
 
+    i.shortInvitationUrl = `${this.askar.agentConfig.agentPeerAddress}/invitations/${outOfBoundRecord.outOfBandInvitation.id}`;
     return i;
   };
 
diff --git a/libs/askar/src/askar/askar.service.ts b/libs/askar/src/askar/askar.service.ts
index 27c5307f0866f3cd1b07980fcac62b63759a9c91..6c81286a8174881bab6b98ad823f2dc564eb3a5c 100644
--- a/libs/askar/src/askar/askar.service.ts
+++ b/libs/askar/src/askar/askar.service.ts
@@ -24,11 +24,13 @@ import {
   generateKey,
   getAskarAnonCredsIndyModules,
   importDidsToWallet,
+  attachShortUrlHandler,
   setupEventReplaySubjects,
   setupSubjectTransports,
 } from "../agent.utils";
 import { IConfAgent } from "@ocm-engine/config";
 import { ReplaySubject } from "rxjs";
+import express from "express";
 
 @Injectable()
 export class AskarService implements OnModuleInit, OnModuleDestroy {
@@ -36,13 +38,14 @@ export class AskarService implements OnModuleInit, OnModuleDestroy {
   public agentR: ReplaySubject<BaseEvent>;
   public agentConfig: IConfAgent;
   private readonly logger: Logger = new Logger(AskarService.name);
+  private readonly server = express();
 
   constructor(
     private readonly configService: ConfigService,
     private readonly ledgersSerivce: LedgersService,
   ) {
     // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
-    this.agentConfig = configService.get<IConfAgent>("agent")!;
+    this.agentConfig = this.configService.get<IConfAgent>("agent")!;
 
     const config = {
       label: this.agentConfig.agentName,
@@ -72,8 +75,14 @@ export class AskarService implements OnModuleInit, OnModuleDestroy {
       ),
     });
 
+    //handler for short url invitations, look at agent service createInvitation
+    attachShortUrlHandler(this.server, this.agent);
+
     this.agent.registerInboundTransport(
-      new HttpInboundTransport({ port: this.agentConfig.agentPeerPort }),
+      new HttpInboundTransport({
+        app: this.server,
+        port: this.agentConfig.agentPeerPort,
+      }),
     );
 
     this.agent.registerOutboundTransport(new WsOutboundTransport());
diff --git a/libs/dtos/src/dtos/responses/create.invitation.response.dto.ts b/libs/dtos/src/dtos/responses/create.invitation.response.dto.ts
index bf9db3b0b1f55c3b23e4b8a1bd0cd8d7d27b19f3..e7dc02d0933dd50a7929c3110d166afb40a776ba 100644
--- a/libs/dtos/src/dtos/responses/create.invitation.response.dto.ts
+++ b/libs/dtos/src/dtos/responses/create.invitation.response.dto.ts
@@ -1,7 +1,13 @@
 export class CreateInvitationResponseDto {
   /**
-   * A list of user's roles
+   * Example of long invitation url
    * @example "http://0.0.0.0:8001?oob=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvb3V0LW9mLWJhbmQvMS4xL2ludml0YXRpb24iLCJAaWQiOiIzYWExNGIzNC04YTk5LTQxY2UtYTY3NC1jODUxYmVhMTIxMWEiLCJsYWJlbCI6IkRFeGNWYXNkX0FHRU5UXzQ1IiwiYWNjZXB0IjpbImRpZGNvbW0vYWlwMSIsImRpZGNvbW0vYWlwMjtlbnY9cmZjMTkiXSwiaGFuZHNoYWtlX3Byb3RvY29scyI6WyJodHRwczovL2RpZGNvbW0ub3JnL2RpZGV4Y2hhbmdlLzEuMCIsImh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wIl0sInNlcnZpY2VzIjpbeyJpZCI6IiNpbmxpbmUtMCIsInNlcnZpY2VFbmRwb2ludCI6Imh0dHA6Ly8wLjAuMC4wOjgwMDEiLCJ0eXBlIjoiZGlkLWNvbW11bmljYXRpb24iLCJyZWNpcGllbnRLZXlzIjpbImRpZDprZXk6ejZNa3VFcHllc1pNa3k0a1BpQzhEOEplZERlcm55YTFuaTREMUF3ZmdnWWt6YmR4Il0sInJvdXRpbmdLZXlzIjpbXX1dfQ"
    */
   public invitationUrl: string;
+
+  /**
+   *
+   * @example "http://0.0.0.0:8001/invitations/85a7c179-122b-4d2d-9a86-d92ad31cef2b"
+   */
+  public shortInvitationUrl: string;
 }