diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index 3f1078d8c4617558d6a0f129ca834a288ab23026..58b6e00e6147e860f181b4b3e54bb38b45c8ba66 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -1454,6 +1454,8 @@ const connection = Penpal.connectToParent({
         vCardImageClaimValue = vCardClaimResponse.data;
       }
 
+      var coordinates = {fromL: -1, fromR:-1, toL: -1, toR: -1}
+
       if (vCardImageClaimValue && "state" in vCardImageClaimValue && vCardImageClaimValue.state === "disabled") {
         vCardImageData = new ImageData({
           contentType: "image/png",
@@ -1467,15 +1469,32 @@ const connection = Penpal.connectToParent({
           null,
           passportUUID
         );
+
+        console.log(vCardImageResponse);
+
         if (vCardImageResponse.code !== "200") {
           return encodeResponse("400", "", vCardImageResponse.status);
         }
-        vCardImageData = new ImageData(vCardImageResponse.data);
+        vCardImageData = new ImageData(vCardImageResponse.data.Image);
         if (vCardImageData.contentType !== "image/png") {
           return encodeResponse("400", "", "Content type of vCard mmust be 'image/png'");
         }
+
+        coordinates = vCardImageResponse.data.QRCodeCoordinates
       }
 
+      var messageUUID = makeid()
+
+      var qrCodeBase64Content = await generateQrCode("https://" + location.host + "/check/" + messageUUID)
+
+      var qrCode = new ImageData(
+        {
+          contentType: "image/png",
+          content: qrCodeBase64Content,
+        }
+      )
+
+
       if (!parts) {
         parts = [];
       }
@@ -1531,6 +1550,9 @@ const connection = Penpal.connectToParent({
 
       passportChain.reverse();
 
+      console.log(qrCode);
+      console.log(coordinates);
+
       const signVCardResponse = await executeRestfulFunction(
         "private",
         window.viamApi,
@@ -1539,14 +1561,19 @@ const connection = Penpal.connectToParent({
         vCardImageData,
         privateKeyOneTime,
         passportChain,
-        parts
+        parts,
+        qrCode,
+        coordinates,
       );
       if (signVCardResponse.code !== "200") {
         return encodeResponse("400", "", signVCardResponse.status);
       }
 
       const signedVCardImageData = new ImageData(signVCardResponse.data);
-      return encodeResponse("200", signedVCardImageData, "vCard signed");
+      return encodeResponse("200", {
+        image: signedVCardImageData,
+        messageUUID: messageUUID,
+      }, "vCard signed");
     },
     generateQrCode,
     documentCreateDocument: async (passportUUID, path, contentType, title) => {