diff --git a/apps/upi_dynamic/lib/upi_dynamic/controllers/api/v1/upi_controller.ex b/apps/upi_dynamic/lib/upi_dynamic/controllers/api/v1/upi_controller.ex
index 2ad3b27..c755838 100644
--- a/apps/upi_dynamic/lib/upi_dynamic/controllers/api/v1/upi_controller.ex
+++ b/apps/upi_dynamic/lib/upi_dynamic/controllers/api/v1/upi_controller.ex
@@ -288,6 +292,16 @@ defmodule UpiDynamic.Api.V1.UpiController do
     # Step 1: Generate ACK XML
     msg_id_str = parsed_data.msg_id || "unknown"
 
+    # [ACC_IP_MT_03] CHANGED: IP must be unable to respond to ReqValQr (network issue at IP) so UPI
+    # declines with UG3/U09. Send the ACK only and never send RespValQr.
+    silent? = acc_ip_mt_03?(xml_body)
+
+    if silent? do
+      Logger.info(
+        "🎯 ACC_IP_MT_03: ACK only for ReqValQr msgId=#{msg_id_str} - NOT sending RespValQr (simulated IP network failure)"
+      )
+    end
+
     # [ACK ReqValQr ts] CHANGED: standard Ack with IST ts (was UTC with microseconds)
     # TSD §7.1: Ack = <ns2:Ack xmlns:ns2="http://npci.org/upi/schema/" api="<ReqApi>" reqMsgId="<request msgId>" ts="<IST seconds>"/>
     # OLD:     ack_xml = """
@@ -306,6 +320,11 @@ defmodule UpiDynamic.Api.V1.UpiController do
       |> send_resp(200, ack_xml)
 
     # Step 3: In a separate Task, process and send RespValQr to NPCI
+    # [ACC_IP_MT_03] CHANGED: skip RespValQr for the silent scenario
+    # OLD:     Task.start(fn ->
+    if silent? do
+      conn
+    else
     Task.start(fn ->
       case UpiTransactionManager.process_qr_validation(xml_body) do
         {:ok, {respvalqr_xml, qr_validation}} ->
@@ -531,11 +550,22 @@ defmodule UpiDynamic.Api.V1.UpiController do
           )
       end
     end)
+    end
 
     # Return the connection with ACK already sent
     conn
   end
 
+  # [ACC_IP_MT_03] ReqValQr whose Txn note is ACC_IP_MT_03: IP stays silent after the ACK
+  defp acc_ip_mt_03?(xml_body) when is_binary(xml_body) do
+    case Regex.run(~r/<Txn\b[^>]*\bnote="([^"]*)"/, xml_body) do
+      [_, note] -> String.trim(note) == "ACC_IP_MT_03"
+      _ -> false
+    end
+  end
+
+  defp acc_ip_mt_03?(_), do: false
+
   # Helper for static QR validation flow (mirrors dynamic QR pattern)
   defp process_static_qr_flow(conn, xml_body, parsed_data) do
     # Step 1: Generate ACK XML
