KYC validation through Google App Script with the help of IDFYS Central API

Hi,
My case study is I want to validate PAN number entered by customer in my shopify store and then it validate real time with the help of IDFYs central API . For this I am using Google App Script as a middleware. I have tried these code , but getting CORS error on fetch() and 405 on preflight. Can anyone help me out so that I can complete my project & deliver to the client. This is my google app script code

// Handles form submission from Shopify page

function doGet(e) {
return ContentService.createTextOutput(“Use POST for PAN verification.”);
}

// For CORS preflight (useful if calling from frontend directly)
function doOption(e) {
return ContentService.createTextOutput(“”)
.setMimeType(ContentService.MimeType.TEXT)
.setHeader(“Access-Control-Allow-Origin”, “*”)
.setHeader(“Access-Control-Allow-Methods”, “POST, GET, OPTIONS”)
.setHeader(“Access-Control-Allow-Headers”, “Content-Type”);
}

function doPost(e) {
try {
const requestData = JSON.parse(e.postData.contents);

const pan = requestData.pan_number;
const orderId = requestData.order_id;
const email = requestData.email;

if (!pan || !/^[A-Z]{5}[0-9]{4}[A-Z]{1}$/.test(pan)) {
  /*return ContentService
    .createTextOutput(JSON.stringify({ success: false, message: "Invalid PAN format" }))
    .setMimeType(ContentService.MimeType.JSON);*/
    return corsJson({ success: false, message: "Invalid PAN format" });

}

/*if (!pan || !/^[A-Z]{5}[0-9]{4}[A-Z]{1}$/.test(pan)) {
  return corsJson({ success: false, message: "Invalid PAN format" });
}*/

const apiKey = "IDFY-API-KEY"; 
const accountId = "IDFY-ACCOUNT-ID"; 
const apiUrl = "https://api.idfy.com/v3/tasks/async/verify_with_source/ind_pan";

const payload = {
  task_id: "pan_" + new Date().getTime(),
  group_id: "oraa_kyc",
  data: {
    pan_number: pan
  }
};

const options = {
  method: "post",
  contentType: "application/json",
  headers: {
    "api-key": apiKey,
    "account-id": accountId
  },
  payload: JSON.stringify(payload),
  muteHttpExceptions: true
};

const response = UrlFetchApp.fetch(apiUrl, options);
const json = JSON.parse(response.getContentText());

if (json.status && json.status === "submitted") {
  return corsJson({ success: true, message: "PAN verification submitted." });
} else {
  return corsJson({ success: false, message: "IDfy Error", details: json });
}  

} catch (error) {
return corsJson({ success: false, message: “Script Error”, error: error.message });
}
}

// Returns a JSON response with CORS headers using HtmlService

function corsJson(obj) {
return ContentService
.createTextOutput(JSON.stringify(obj))
.setMimeType(ContentService.MimeType.JSON)
.setHeader(“Access-Control-Allow-Origin”, “*”)
.setHeader(“Access-Control-Allow-Headers”, “Content-Type”)
.setHeader(“Access-Control-Allow-Methods”, “POST, GET, OPTIONS”);
}

and this is my shopify page code

Verify your KYC

PAN Number:


Submit