diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp
--- a/src/qt/paymentserver.cpp
+++ b/src/qt/paymentserver.cpp
@@ -77,7 +77,7 @@
 // We store payment URIs and requests received before the main GUI window is up
 // and ready to ask the user to send payment.
 //
-static QList<QString> savedPaymentRequests;
+static QSet<QString> savedPaymentRequests;
 
 static std::string ipcParseURI(const QString &arg, const CChainParams &params,
                                bool useCashAddr) {
@@ -177,7 +177,10 @@
             continue;
         }
 
-        savedPaymentRequests.append(arg);
+        if (savedPaymentRequests.contains(arg)) {
+            continue;
+        }
+        savedPaymentRequests.insert(arg);
 #endif
         chosenNetwork = itemNetwork;
     }
@@ -370,7 +373,7 @@
 
 void PaymentServer::handleURIOrFile(const QString &s) {
     if (saveURIs) {
-        savedPaymentRequests.append(s);
+        savedPaymentRequests.insert(s);
         return;
     }