diff --git a/packages/desktop-client/src/components/modals/ImportTransactions.jsx b/packages/desktop-client/src/components/modals/ImportTransactions.jsx
index 8ec04d8afd036b8200cc456291eb1298d3759b95..b4b1b59474d62cc33fd520c5875615acb656a06d 100644
--- a/packages/desktop-client/src/components/modals/ImportTransactions.jsx
+++ b/packages/desktop-client/src/components/modals/ImportTransactions.jsx
@@ -755,6 +755,7 @@ export function ImportTransactions({ modalProps, options }) {
   const [outValue, setOutValue] = useState('');
   const [flipAmount, setFlipAmount] = useState(false);
   const [multiplierEnabled, setMultiplierEnabled] = useState(false);
+  const [reconcile, setReconcile] = useState(true);
   const { accountId, categories, onImported } = options;
 
   // This cannot be set after parsing the file, because changing it
@@ -980,7 +981,11 @@ export function ImportTransactions({ modalProps, options }) {
       savePrefs({ [`flip-amount-${accountId}-${filetype}`]: flipAmount });
     }
 
-    const didChange = await importTransactions(accountId, finalTransactions);
+    const didChange = await importTransactions(
+      accountId,
+      finalTransactions,
+      reconcile,
+    );
     if (didChange) {
       await getPayees();
     }
@@ -1105,21 +1110,32 @@ export function ImportTransactions({ modalProps, options }) {
       )}
 
       {isOfxFile(filetype) && (
-        <CheckboxOption
-          id="form_fallback_missing_payee"
-          checked={fallbackMissingPayeeToMemo}
-          onChange={() => {
-            setFallbackMissingPayeeToMemo(state => !state);
-            parse(
-              filename,
-              getParseOptions('ofx', {
-                fallbackMissingPayeeToMemo: !fallbackMissingPayeeToMemo,
-              }),
-            );
-          }}
-        >
-          Use Memo as a fallback for empty Payees
-        </CheckboxOption>
+        <>
+          <CheckboxOption
+            id="form_fallback_missing_payee"
+            checked={fallbackMissingPayeeToMemo}
+            onChange={() => {
+              setFallbackMissingPayeeToMemo(state => !state);
+              parse(
+                filename,
+                getParseOptions('ofx', {
+                  fallbackMissingPayeeToMemo: !fallbackMissingPayeeToMemo,
+                }),
+              );
+            }}
+          >
+            Use Memo as a fallback for empty Payees
+          </CheckboxOption>
+          <CheckboxOption
+            id="form_dont_reconcile"
+            checked={reconcile}
+            onChange={() => {
+              setReconcile(state => !state);
+            }}
+          >
+            Reconcile transactions
+          </CheckboxOption>
+        </>
       )}
 
       {/*Import Options */}
diff --git a/packages/loot-core/src/client/actions/account.ts b/packages/loot-core/src/client/actions/account.ts
index 0f31d3b4ac34d304786c94ee5e5d48ba924928ca..52b41608d1b437c27bfe9e49b5fcc815052eddee 100644
--- a/packages/loot-core/src/client/actions/account.ts
+++ b/packages/loot-core/src/client/actions/account.ts
@@ -183,8 +183,17 @@ export function parseTransactions(filepath, options) {
   };
 }
 
-export function importTransactions(id, transactions) {
-  return async (dispatch: Dispatch) => {
+export function importTransactions(id: string, transactions, reconcile = true) {
+  return async (dispatch: Dispatch): Promise<boolean> => {
+    if (!reconcile) {
+      await send('api/transactions-add', {
+        accountId: id,
+        transactions,
+      });
+
+      return true;
+    }
+
     const {
       errors = [],
       added,
diff --git a/upcoming-release-notes/2564.md b/upcoming-release-notes/2564.md
new file mode 100644
index 0000000000000000000000000000000000000000..af2421d177a90a3d6a4b62f115635db80b10302d
--- /dev/null
+++ b/upcoming-release-notes/2564.md
@@ -0,0 +1,6 @@
+---
+category: Features
+authors: [keriati]
+---
+
+Add options to disable reconciliation when importing OFX files.