diff --git a/assets/images/integrationicons/export/microsoft-dynamics-icon.svg b/assets/images/integrationicons/export/microsoft-dynamics-icon.svg
new file mode 100644
index 000000000000..cce4eae540b4
--- /dev/null
+++ b/assets/images/integrationicons/export/microsoft-dynamics-icon.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20">
+  <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141)  -->
+  <defs>
+    <style>
+      .st0 {
+        fill: none;
+      }
+
+      .st1 {
+        fill-rule: evenodd;
+      }
+
+      .st2 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="st0" width="20" height="20"/>
+    </clipPath>
+  </defs>
+  <g class="st2">
+    <path class="st1" d="M10,0c5.523,0,10,4.477,10,10s-4.477,10-10,10S0,15.523,0,10,4.477,0,10,0ZM14.439,7.848c0,.26-.081.514-.229.727-.149.213-.36.375-.604.464l-1.704.623v2.444c0,.258-.079.51-.226.722-.147.212-.354.375-.596.466l-.866.325c-.038.014-.079.02-.12.015-.041-.005-.08-.02-.113-.043-.034-.023-.061-.055-.08-.091-.019-.036-.029-.077-.029-.118v-2.978l-1.696.619c-.097.036-.181.101-.24.186-.059.085-.092.186-.092.29v3.993c0,.352.35.597.682.477l5.081-1.856c.244-.089.455-.252.604-.465.149-.213.229-.467.229-.727v-5.073ZM6.238,4.03c-.33-.118-.678.127-.678.478v3.996c0,.105.033.207.093.292.06.086.146.15.244.186l3.298,1.178c.33.118.678-.127.678-.478v-2.295c0-.041.01-.082.029-.118.019-.036.046-.068.08-.091.034-.023.073-.038.113-.043.041-.005.082,0,.12.015l.864.324c.242.091.45.254.597.466.147.212.226.464.226.722v.733l1.618-.591c.37-.135.826-.768.894-1.198-.043-.215-.141-.416-.284-.582-.143-.166-.327-.291-.533-.365l-7.359-2.628Z"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/assets/images/integrationicons/export/netsuite-icon.svg b/assets/images/integrationicons/export/netsuite-icon.svg
new file mode 100644
index 000000000000..2f8d94f5ba83
--- /dev/null
+++ b/assets/images/integrationicons/export/netsuite-icon.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20">
+  <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141)  -->
+  <defs>
+    <style>
+      .st0 {
+        fill: none;
+      }
+
+      .st1 {
+        fill-rule: evenodd;
+      }
+
+      .st2 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="st0" width="20" height="20"/>
+    </clipPath>
+  </defs>
+  <g class="st2">
+    <path class="st1" d="M10,0c5.523,0,10,4.477,10,10s-4.477,10-10,10S0,15.523,0,10,4.477,0,10,0ZM14.496,6.773c-.867-.385-1.835-.384-2.566.132-.111.079-.022.253.106.204.709-.274,1.611-.209,2.335.414.909.782,1.327,2.282.498,3.271-.273.326-.652.567-1.077.627-.755.107-1.521-.151-2.149-.558-.341-.22-.65-.487-.92-.791-.324-.364-.632-.743-.916-1.139-.478-.667-.886-1.339-1.583-1.804-.572-.38-1.254-.599-1.943-.556-.69.043-1.389.378-1.913.869-.946.888-1.116,2.376-.521,3.532.429.834,1.167,1.432,2,1.825.153.074.253-.103.158-.19-.786-.716-1.514-1.85-1.257-2.772.155-.565.463-.793.944-.788.358.002.832.426,1.062.734.084.113.169.225.257.335.625.785,1.217,1.392,2.494,2.271v.002c2.674,1.935,6.683,1.267,6.984-2.315.097-1.146-.439-2.616-1.993-3.306ZM5.508,9.303c-.521.131-.678.832-.501,1.431l.006.018c.679,1.841,2.861,3.186,4.487,2.247.017-.01.032-.022.045-.036,0,0,0-.001.002-.002.077-.084.063-.218-.032-.281l-.467-.315c-.03-.02-.065-.031-.102-.032-.192-.004-.608-.004-.887-.035-1.491-.13-2.875-1.48-2.454-2.891.018-.06-.037-.117-.098-.103ZM6.083,10.519c-.046-.041-.115.008-.093.066.095.247.332.672.908,1.054.27.178.619.26.998.31.111.014.221.026.328.032.06.003.089-.075.041-.112-.207-.163-.41-.34-.609-.529v-.002c-.066-.062-.153-.097-.244-.095-.491.014-1.057-.477-1.329-.723ZM14.498,9.491c-.07-.092-.194-.123-.297-.066-.173.095-.356.179-.52.28-.165.101-.325.216-.472.339-.272.228-.53.472-.782.72-.085.083-.057.226.053.271.618.252,1.282.154,1.282.154.019-.003.848-.138,1.002-.719.104-.396-.113-.774-.267-.978ZM6.631,10.095c-.428-.538-.812-.816-.812-.171,0,.115.063.222.164.283.402.243.774.632,1.203.744.074.019.127-.066.076-.12-.215-.227-.416-.465-.633-.734v-.002ZM13.966,8.993c-.273-.084-.699-.205-1.327.072-.677.299-1.186.701-1.426.875-.07.051-.082.151-.025.216.126.144.378.388.769.576.062.03.136.014.179-.039.233-.281,1.203-1.135,1.843-1.426.123-.056.116-.235-.013-.274ZM12.931,7.208c-.618.003-1.16.32-1.587.748-.217.218-.401.467-.58.716-.33.462-.46.538-.254.775l.186.215c.104.121.206.182.335.089.299-.213.681-.457.995-.645.35-.207.734-.405,1.148-.439.404-.033.828.071,1.158.303.252.177.458.425.56.719h.001c.035.093.173.076.184-.021.074-.594-.236-1.286-.614-1.723-.379-.437-.939-.738-1.532-.736Z"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/assets/images/integrationicons/export/netsuite-oracle-icon.svg b/assets/images/integrationicons/export/netsuite-oracle-icon.svg
new file mode 100644
index 000000000000..9e9e6031b851
--- /dev/null
+++ b/assets/images/integrationicons/export/netsuite-oracle-icon.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20">
+  <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141)  -->
+  <defs>
+    <style>
+      .st0 {
+        fill: none;
+      }
+
+      .st1 {
+        fill-rule: evenodd;
+      }
+
+      .st2 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="st0" width="20" height="20"/>
+    </clipPath>
+  </defs>
+  <g class="st2">
+    <g>
+      <path d="M6.374,10.824c.167,0,.287.043.357.128.071.083.108.219.11.406h-.98c.012-.17.06-.301.142-.391.087-.095.213-.144.37-.144Z"/>
+      <path d="M16.166,10.824c.167,0,.288.043.358.128.07.083.108.219.11.406h-.981c.012-.17.061-.301.143-.391.087-.094.212-.144.369-.144Z"/>
+      <path d="M4.334,7.732c.223,0,.405.181.405.404,0,.223-.181.403-.405.403h-.692c-.223,0-.404-.181-.404-.403,0-.223.181-.404.404-.404h.692Z"/>
+      <path class="st1" d="M10,0c5.523,0,10,4.477,10,10s-4.477,10-10,10S0,15.523,0,10,4.477,0,10,0ZM9.821,9.74c-.297,0-.534.066-.706.197-.173.133-.262.316-.262.546,0,.161.054.304.162.425.108.116.287.223.53.318l.287.112c.185.071.316.141.386.208.068.065.102.149.102.25,0,.139-.056.244-.17.322-.113.079-.274.12-.477.12-.245,0-.506-.056-.775-.167l-.028-.011v.35l.117.049c.039.014.08.028.125.04.09.025.188.045.29.06.104.015.206.022.301.022.314,0,.562-.069.736-.206.178-.14.269-.338.269-.587,0-.174-.056-.323-.165-.445-.106-.124-.288-.236-.539-.334l-.287-.112c-.178-.071-.304-.138-.374-.201-.068-.061-.101-.133-.102-.22,0-.265.193-.394.588-.394.21,0,.444.054.693.162l.028.013v-.35l-.011-.005c-.093-.05-.206-.091-.337-.118-.13-.03-.259-.045-.382-.045ZM6.374,10.508c-.286,0-.51.088-.665.261-.156.177-.228.417-.229.756,0,.339.081.606.241.786.162.178.403.269.716.269.137,0,.265-.013.381-.038.119-.025.216-.06.287-.104l.01-.007v-.326l-.029.013c-.102.046-.204.082-.302.104-.098.022-.203.032-.312.032-.195,0-.344-.048-.441-.144-.094-.094-.151-.245-.168-.446h1.346v-.236c0-.61-.281-.919-.834-.919ZM10.993,10.549v1.226c0,.258.061.458.181.596.123.138.297.209.519.209.144,0,.28-.034.401-.1.11-.058.204-.14.281-.242l.054.301h.266v-1.988h-.377v1.284c-.051.129-.127.234-.228.312-.098.076-.203.115-.315.115-.132,0-.234-.043-.301-.127-.069-.085-.103-.21-.104-.371v-1.215h-.377ZM16.166,10.508c-.285,0-.509.088-.664.261-.156.177-.228.417-.229.756,0,.339.081.606.24.786.162.178.403.269.716.269.137,0,.266-.013.382-.038.119-.025.215-.06.286-.104l.01-.007v-.326l-.029.013c-.102.046-.204.082-.302.104-.098.022-.203.032-.312.032-.195,0-.344-.048-.441-.144-.094-.094-.151-.245-.168-.446h1.346v-.235c0-.61-.281-.92-.834-.92ZM7.816,10.012l-.136.534-.338.113v.206h.336v1.058c0,.213.046.374.139.476.096.104.244.155.44.155.04,0,.078,0,.113-.003.038-.003.075-.008.111-.016l.017-.004v-.33l-.022.002c-.025.003-.053.007-.082.012h0c-.027.004-.055.005-.084.005-.172,0-.256-.099-.256-.301v-1.054h.422v-.317h-.422v-.537h-.237ZM14.39,10.012l-.136.534-.339.113v.206h.336v1.058c0,.213.047.374.14.476.096.104.245.155.441.155.04,0,.078,0,.113-.003.038-.003.075-.008.111-.016l.016-.004v-.33l-.022.002c-.025.003-.053.007-.081.012h-.001c-.027.004-.055.005-.084.005-.172,0-.256-.099-.256-.301v-1.054h.422v-.317h-.422v-.537h-.237ZM3,9.784v2.753h.384v-2.095l1.406,2.086.007.009h.359v-2.753h-.384v2.096l-1.406-2.086-.007-.01h-.359ZM13.058,10.55v.169l.194.123v1.695h.377v-1.987h-.571ZM13.174,9.904v.343h.451v-.343h-.451ZM5.102,7.512v1.249h.239v-1.027h.795c.112,0,.202.09.202.201,0,.111-.09.203-.202.203h-.676l.717.624h.348l-.48-.404h.109l.085-.01c.193-.039.336-.21.336-.414,0-.233-.189-.422-.423-.422h-1.05ZM11.812,7.513c-.344,0-.624.279-.624.625s.28.624.624.624h.741l.141-.221h-.865c-.185,0-.341-.126-.39-.295h1.025l.142-.22h-1.167c.048-.171.203-.294.389-.294h.704l.141-.22h-.86ZM3.625,7.512c-.346,0-.625.279-.625.625,0,.346.279.624.625.624h0s.726,0,.726,0c.345,0,.623-.279.623-.623,0-.344-.278-.625-.624-.625h-.726ZM7.486,7.5c-.06,0-.116.029-.148.077l-.756,1.184h.283l.621-.985.338.545h-.64l.142.221h.649l.133.22h.282l-.758-1.186c-.033-.047-.086-.075-.146-.075ZM9.883,7.512v1.13c0,.031.013.061.035.083.022.024.055.036.087.036h1.094l.143-.22h-1.119v-1.029h-.239ZM8.894,7.511c-.345,0-.625.28-.625.626,0,.346.28.623.625.623h.739l.141-.22h-.864c-.224,0-.405-.181-.405-.403,0-.222.181-.404.405-.404h.704l.143-.222h-.862Z"/>
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/assets/images/integrationicons/export/oracle-icon.svg b/assets/images/integrationicons/export/oracle-icon.svg
new file mode 100644
index 000000000000..805c34cb4496
--- /dev/null
+++ b/assets/images/integrationicons/export/oracle-icon.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20">
+  <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141)  -->
+  <defs>
+    <style>
+      .st0 {
+        fill: none;
+      }
+
+      .st1 {
+        fill-rule: evenodd;
+      }
+
+      .st2 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="st0" width="20" height="20"/>
+    </clipPath>
+  </defs>
+  <g class="st2">
+    <g>
+      <path d="M3.863,9.408c.095-.003.19.013.278.047.088.034.169.085.237.151.068.066.122.145.159.232.037.087.056.182.056.276s-.019.189-.056.276c-.037.087-.091.167-.159.232-.068.066-.149.117-.237.151-.088.034-.184.05-.278.047h-1.214c-.184-.006-.358-.083-.485-.215-.128-.132-.199-.308-.199-.492,0-.184.071-.36.199-.492.128-.132.302-.209.485-.215h1.214Z"/>
+      <path class="st1" d="M10,0c5.523,0,10,4.477,10,10s-4.477,10-10,10S0,15.523,0,10,4.477,0,10,0ZM13.581,10.998c0,.028.006.055.017.08.011.025.026.048.046.067.02.02.044.037.07.048.026.011.055.017.083.017h1.913l.249-.387h-1.959l.002-1.803h-.421v1.977ZM2.622,9.021c-.146-.004-.292.022-.428.075-.136.053-.26.133-.364.234-.105.102-.187.224-.244.358-.057.134-.086.279-.086.425,0,.146.029.29.086.425.057.134.14.257.244.358.104.102.228.182.364.235.136.053.282.078.428.074h1.271c.285-.007.555-.125.754-.329.199-.204.311-.479.311-.764,0-.285-.112-.559-.311-.763-.199-.204-.469-.323-.754-.33h-1.271ZM5.205,11.207h.42v-1.799h1.394c.094,0,.184.037.25.104.066.066.104.156.105.25,0,.094-.038.184-.105.25-.066.066-.156.104-.25.104h-1.185l1.255,1.092h.609l-.843-.707h.189c.196,0,.384-.078.522-.217.139-.139.217-.327.217-.522,0-.196-.078-.385-.217-.523-.139-.139-.327-.217-.522-.217h-1.84v2.186ZM9.381,9c-.05,0-.1.013-.145.036-.045.023-.083.057-.112.099l-1.324,2.072h.495l1.089-1.727.593.956h-1.119l.247.385h1.135l.232.386h.495l-1.327-2.076c-.029-.041-.068-.074-.113-.097-.045-.023-.095-.035-.146-.034ZM11.845,9.021c-.146-.004-.291.022-.427.075-.136.053-.26.133-.364.234-.105.102-.187.224-.244.358-.057.134-.086.279-.086.425,0,.146.029.29.086.425.057.134.14.257.244.358.104.102.228.182.364.235.136.053.281.078.427.074h1.297l.246-.385h-1.514c-.095.003-.19-.013-.278-.047-.088-.034-.169-.085-.237-.151-.068-.066-.122-.145-.159-.232-.037-.087-.056-.181-.056-.276s.019-.189.056-.276c.037-.087.091-.167.159-.232.068-.066.149-.117.237-.151.089-.034.183-.05.278-.047h1.232l.249-.387h-1.51ZM16.956,9.021c-.285.008-.555.126-.754.33-.199.204-.311.479-.311.764,0,.285.112.559.311.763.199.204.469.323.754.33h1.298l.246-.385h-1.516l-.113-.009c-.113-.018-.22-.064-.312-.134-.123-.093-.213-.224-.255-.372h1.797l.247-.386h-2.044c.042-.148.131-.279.254-.372.123-.093.274-.143.428-.143h1.232l.247-.387h-1.509Z"/>
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/assets/images/integrationicons/export/qbo-icon.svg b/assets/images/integrationicons/export/qbo-icon.svg
new file mode 100644
index 000000000000..670cd14caa36
--- /dev/null
+++ b/assets/images/integrationicons/export/qbo-icon.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20">
+  <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141)  -->
+  <defs>
+    <style>
+      .st0 {
+        fill: none;
+      }
+
+      .st1 {
+        fill-rule: evenodd;
+      }
+
+      .st2 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="st0" width="20" height="20"/>
+    </clipPath>
+  </defs>
+  <g class="st2">
+    <path class="st1" d="M10,0c5.523,0,10,4.477,10,10s-4.477,10-10,10S0,15.523,0,10,4.477,0,10,0ZM7.462,7.038c-1.635,0-2.962,1.327-2.962,2.962,0,1.635,1.324,2.959,2.962,2.959h.423v-1.099h-.423c-1.027,0-1.861-.834-1.861-1.86,0-1.027.835-1.86,1.861-1.86h1.017v5.752c0,.606.492,1.099,1.099,1.099v-7.952h-2.115ZM10.423,12.959h2.115c1.635,0,2.962-1.326,2.962-2.959s-1.324-2.959-2.962-2.959h-.423v1.099h.423c1.027,0,1.861.834,1.861,1.86s-.835,1.86-1.861,1.86h-1.017v-5.752c0-.606-.492-1.099-1.099-1.099v7.949Z"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/assets/images/integrationicons/export/sage-intacct-icon.svg b/assets/images/integrationicons/export/sage-intacct-icon.svg
new file mode 100644
index 000000000000..dd923f1aa970
--- /dev/null
+++ b/assets/images/integrationicons/export/sage-intacct-icon.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20">
+  <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141)  -->
+  <defs>
+    <style>
+      .st0 {
+        fill: none;
+      }
+
+      .st1 {
+        fill-rule: evenodd;
+      }
+
+      .st2 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="st0" width="20" height="20"/>
+    </clipPath>
+  </defs>
+  <g class="st2">
+    <path class="st1" d="M10,0c5.523,0,10,4.477,10,10s-4.477,10-10,10S0,15.523,0,10,4.477,0,10,0ZM11.749,8.444c-.916,0-1.62.703-1.62,1.62,0,.999.688,1.359,1.498,1.621.695.221,1.104.442,1.104.974,0,.467-.368.827-.933.827-.532,0-.958-.393-.966-.925-.008-.237-.164-.36-.352-.36s-.352.131-.352.418c0,.851.761,1.506,1.678,1.506.95,0,1.629-.671,1.629-1.53,0-.958-.704-1.286-1.498-1.548-.688-.229-1.104-.475-1.104-1.056,0-.516.409-.909.925-.909.532,0,.974.377.974.941,0,.336-.163.418-.163.606,0,.18.139.327.344.327.303,0,.523-.418.523-.958,0-.884-.762-1.555-1.687-1.555ZM4.547,6.25c-.876,0-1.547.655-1.547,1.49,0,.925.647,1.26,1.425,1.538.696.246,1.031.467,1.031.991,0,.425-.336.777-.844.777-.483,0-.908-.336-.908-.859,0-.295.139-.369.139-.532,0-.188-.131-.327-.344-.327-.245,0-.499.368-.499.892,0,.843.728,1.466,1.612,1.466.9,0,1.548-.663,1.548-1.49,0-.949-.68-1.269-1.425-1.539-.696-.254-1.031-.474-1.031-.974,0-.458.36-.794.835-.794.507,0,.909.352.917.826.008.221.164.353.344.353.188,0,.36-.131.352-.368-.016-.843-.729-1.449-1.604-1.449ZM8.145,8.444c-.901,0-1.646.696-1.646,1.629,0,.9.737,1.612,1.621,1.612.393,0,.695-.131.695-.385,0-.188-.164-.319-.319-.319-.114,0-.197.049-.385.049-.507,0-.908-.442-.908-.957,0-.557.409-.991.925-.991.581,0,.949.442.949,1.089v1.171c0,.205.164.344.36.344.188,0,.353-.139.353-.344v-1.195c0-.982-.68-1.702-1.646-1.702ZM15.403,8.444c-.9,0-1.629.72-1.629,1.62,0,.9.753,1.621,1.67,1.621.458,0,.827-.123,1.073-.278.245-.155.344-.286.344-.434,0-.156-.115-.295-.328-.295-.253,0-.458.368-1.08.368-.54,0-.975-.434-.975-.982,0-.54.426-.99.95-.99.564,0,.867.368.867.605,0,.065-.049.099-.114.099h-.704c-.188,0-.327.131-.327.295,0,.172.139.303.327.303h.941c.36,0,.581-.188.581-.499,0-.802-.688-1.433-1.597-1.433Z"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/assets/images/integrationicons/export/sap-icon.svg b/assets/images/integrationicons/export/sap-icon.svg
new file mode 100644
index 000000000000..db21c228712f
--- /dev/null
+++ b/assets/images/integrationicons/export/sap-icon.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20">
+  <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141)  -->
+  <defs>
+    <style>
+      .st0 {
+        fill: none;
+      }
+
+      .st1 {
+        fill-rule: evenodd;
+      }
+
+      .st2 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="st0" width="20" height="20"/>
+    </clipPath>
+  </defs>
+  <g class="st2">
+    <g>
+      <path d="M10,0c5.523,0,10,4.477,10,10s-4.477,10-10,10c-3.904,0-7.283-2.238-8.93-5.5h8.43l9-9H1.07C2.717,2.238,6.096,0,10,0Z"/>
+      <path class="st1" d="M2.953,7.156c.633,0,1.424.158,2.018.475l-.634,1.068c-.633-.316-.949-.317-1.305-.356-.514-.04-.792.159-.792.356,0,.277.515.475.989.633.712.237,1.622.554,1.78,1.424l1.306-3.481h1.543l1.543,4.193v-4.193h1.78c1.701,0,2.492.554,2.492,1.899,0,1.187-.831,1.859-2.216,1.859h-.554v1.582h-2.69l-.197-.672c-.593.198-1.266.158-1.859,0l-.277.672h-1.503l.079-.355c-.435.396-1.227.554-1.741.554-.751,0-1.384-.159-1.978-.515l.554-1.068c.593.356.989.435,1.464.396.277,0,.672-.079.712-.435,0-.277-.396-.435-.91-.594-.395-.119-.831-.276-1.187-.514-.435-.316-.633-.713-.633-1.267.04-.396.159-.751.436-1.028.396-.396,1.029-.633,1.78-.633ZM7.067,8.976l-.555,1.78c.356.119.752.119,1.147,0l-.554-1.78h-.039ZM10.904,8.422v1.424h.396c.514,0,.91-.197.91-.751,0-.514-.396-.673-.91-.673h-.396Z"/>
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/assets/images/integrationicons/export/xero-icon.svg b/assets/images/integrationicons/export/xero-icon.svg
new file mode 100644
index 000000000000..0d55c0f54204
--- /dev/null
+++ b/assets/images/integrationicons/export/xero-icon.svg
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20">
+  <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141)  -->
+  <defs>
+    <style>
+      .st0 {
+        fill: none;
+      }
+
+      .st1 {
+        fill-rule: evenodd;
+      }
+
+      .st2 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="st0" width="20" height="20"/>
+    </clipPath>
+  </defs>
+  <g class="st2">
+    <g>
+      <path d="M8.786,8.354c.766,0,1.408.532,1.576,1.247h-3.147c0-.008,0-.017,0-.025.178-.702.813-1.222,1.57-1.222Z"/>
+      <path class="st1" d="M15.487,8.361c.887,0,1.609.722,1.609,1.609,0,.887-.722,1.608-1.609,1.608-.887,0-1.608-.721-1.608-1.608,0-.887.721-1.609,1.608-1.609ZM15.488,9.415c-.307,0-.556.249-.556.556,0,.306.249.556.556.556s.556-.249.556-.556c0-.306-.25-.556-.556-.556Z"/>
+      <path class="st1" d="M10,0c5.523,0,10,4.477,10,10s-4.477,10-10,10S0,15.523,0,10,4.477,0,10,0ZM9.995,8.078c-.76-.483-1.765-.456-2.499.066-.599.426-.944,1.124-.944,1.842,0,.18.021.361.066.54.226.89.991,1.563,1.903,1.675.271.033.534.018.807-.053.234-.057.461-.152.67-.286.217-.139.399-.324.574-.544.003-.004.007-.008.011-.012.122-.151.099-.365-.035-.468-.113-.086-.302-.122-.451.069-.032.046-.068.093-.107.14-.119.131-.266.258-.442.356-.224.12-.48.188-.751.189-.889-.01-1.366-.631-1.535-1.074-.03-.083-.052-.168-.068-.257-.002-.016-.003-.032-.004-.047.183,0,3.153,0,3.191-.001.438-.009.673-.318.608-.671-.132-.624-.473-1.137-.993-1.466ZM15.487,7.729c-1.236,0-2.242,1.006-2.242,2.242,0,1.236,1.006,2.242,2.242,2.242,1.236,0,2.243-1.006,2.243-2.242,0-1.236-1.007-2.242-2.243-2.242ZM6.275,7.739c-.082,0-.159.032-.217.091l-1.705,1.705-1.713-1.707c-.058-.057-.135-.089-.216-.089-.168,0-.306.137-.306.306,0,.082.033.16.092.218l1.706,1.706-1.705,1.709c-.06.059-.093.136-.093.219,0,.169.137.306.306.306.081,0,.158-.032.216-.09l1.71-1.707,1.704,1.701c.06.062.138.096.221.096.169,0,.307-.137.307-.306,0-.081-.032-.158-.09-.216l-1.705-1.71,1.706-1.711c.057-.058.089-.134.089-.215,0-.169-.138-.306-.307-.306ZM12.992,7.767c-.282,0-.555.089-.782.265-.03-.137-.153-.24-.299-.24-.168,0-.302.134-.303.303,0,.015,0,3.776,0,3.776,0,.168.137.305.306.305s.305-.136.306-.305v-2.322c0-.774.071-1.087.733-1.17.061-.008.129-.006.129-.006.181-.006.31-.131.31-.3,0-.168-.138-.306-.307-.306h-.094Z"/>
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/src/CONST/index.ts b/src/CONST/index.ts
index 04e6d43d6a4a..e3467bbf663c 100755
--- a/src/CONST/index.ts
+++ b/src/CONST/index.ts
@@ -1037,10 +1037,7 @@ const CONST = {
             APPROVE: 'approve',
             UNAPPROVE: 'unapprove',
             CANCEL_PAYMENT: 'cancelPayment',
-            EXPORT_TO_ACCOUNTING: 'exportToAccounting',
-            MARK_AS_EXPORTED: 'markAsExported',
             HOLD: 'hold',
-            DOWNLOAD_CSV: 'downloadCSV',
             DOWNLOAD_PDF: 'downloadPDF',
             CHANGE_WORKSPACE: 'changeWorkspace',
             VIEW_DETAILS: 'viewDetails',
@@ -1049,6 +1046,7 @@ const CONST = {
             ADD_EXPENSE: 'addExpense',
             SPLIT: 'split',
             REOPEN: 'reopen',
+            EXPORT: 'export',
             PAY: 'pay',
         },
         PRIMARY_ACTIONS: {
@@ -1392,6 +1390,7 @@ const CONST = {
         EXPORT_OPTIONS: {
             EXPORT_TO_INTEGRATION: 'exportToIntegration',
             MARK_AS_EXPORTED: 'markAsExported',
+            DOWNLOAD_CSV: 'downloadCSV',
         },
         ROOM_MEMBERS_BULK_ACTION_TYPES: {
             REMOVE: 'remove',
diff --git a/src/components/Icon/Expensicons.ts b/src/components/Icon/Expensicons.ts
index 23e099dc4282..b408eeb724f2 100644
--- a/src/components/Icon/Expensicons.ts
+++ b/src/components/Icon/Expensicons.ts
@@ -122,6 +122,14 @@ import ImageCropSquareMask from '@assets/images/image-crop-square-mask.svg';
 import Inbox from '@assets/images/inbox.svg';
 import Info from '@assets/images/info.svg';
 import CircleSlash from '@assets/images/integrationicons/circle-slash.svg';
+import MicrosoftDynamicsExport from '@assets/images/integrationicons/export/microsoft-dynamics-icon.svg';
+import NetSuiteExport from '@assets/images/integrationicons/export/netsuite-icon.svg';
+import NetSuiteOracleExport from '@assets/images/integrationicons/export/netsuite-oracle-icon.svg';
+import OracleExport from '@assets/images/integrationicons/export/oracle-icon.svg';
+import QBOExport from '@assets/images/integrationicons/export/qbo-icon.svg';
+import SageIntacctExport from '@assets/images/integrationicons/export/sage-intacct-icon.svg';
+import SapExport from '@assets/images/integrationicons/export/sap-icon.svg';
+import XeroExport from '@assets/images/integrationicons/export/xero-icon.svg';
 import MicrosoftDynamicsSquare from '@assets/images/integrationicons/microsoft-dynamics-icon-square.svg';
 import NetSuiteSquare from '@assets/images/integrationicons/netsuite-icon-square.svg';
 import OracleSquare from '@assets/images/integrationicons/oracle-icon-square.svg';
@@ -470,4 +478,12 @@ export {
     Minus,
     UserLock,
     EmptyStateSpyPigeon,
+    MicrosoftDynamicsExport,
+    NetSuiteExport,
+    NetSuiteOracleExport,
+    OracleExport,
+    QBOExport,
+    SageIntacctExport,
+    SapExport,
+    XeroExport,
 };
diff --git a/src/components/MoneyReportHeader.tsx b/src/components/MoneyReportHeader.tsx
index 602cefbbb246..3132c7082274 100644
--- a/src/components/MoneyReportHeader.tsx
+++ b/src/components/MoneyReportHeader.tsx
@@ -22,15 +22,15 @@ import Navigation from '@libs/Navigation/Navigation';
 import {buildOptimisticNextStepForPreventSelfApprovalsEnabled} from '@libs/NextStepUtils';
 import {isSecondaryActionAPaymentOption, selectPaymentType} from '@libs/PaymentUtils';
 import type {KYCFlowEvent, TriggerKYCFlow} from '@libs/PaymentUtils';
-import {getValidConnectedIntegration} from '@libs/PolicyUtils';
+import {getConnectedIntegration, getValidConnectedIntegration} from '@libs/PolicyUtils';
 import {getOriginalMessage, getReportAction, isMoneyRequestAction} from '@libs/ReportActionsUtils';
 import {getAllExpensesToHoldIfApplicable, getReportPrimaryAction} from '@libs/ReportPrimaryActionUtils';
-import {getSecondaryReportActions} from '@libs/ReportSecondaryActionUtils';
+import {getSecondaryExportReportActions, getSecondaryReportActions} from '@libs/ReportSecondaryActionUtils';
 import {
     changeMoneyRequestHoldStatus,
     getArchiveReason,
     getBankAccountRoute,
-    getIntegrationIcon,
+    getIntegrationExportIcon,
     getIntegrationNameFromExportMessage as getIntegrationNameFromExportMessageUtils,
     getNextApproverAccountID,
     getNonHeldAndFullAmount,
@@ -209,6 +209,7 @@ function MoneyReportHeader({
     const canAllowSettlement = hasUpdatedTotal(moneyRequestReport, policy);
     const policyType = policy?.type;
     const connectedIntegration = getValidConnectedIntegration(policy);
+    const connectedIntegrationFallback = getConnectedIntegration(policy);
     const hasScanningReceipt = getTransactionsWithReceipts(moneyRequestReport?.reportID).some((t) => isScanning(t));
     const hasOnlyPendingTransactions = useMemo(() => {
         return !!transactions && transactions.length > 0 && transactions.every((t) => isExpensifyCardTransaction(t) && isPending(t));
@@ -506,6 +507,62 @@ function MoneyReportHeader({
         [moneyRequestReport?.reportID, policy, translate],
     );
 
+    const [offlineModalVisible, setOfflineModalVisible] = useState(false);
+
+    const exportDropdownOptions: Record<ValueOf<typeof CONST.REPORT.EXPORT_OPTIONS>, DropdownOption<ValueOf<typeof CONST.REPORT.EXPORT_OPTIONS>>> = useMemo(
+        () => ({
+            [CONST.REPORT.EXPORT_OPTIONS.DOWNLOAD_CSV]: {
+                text: translate('common.basicExport'),
+                icon: Expensicons.Table,
+                value: CONST.REPORT.EXPORT_OPTIONS.DOWNLOAD_CSV,
+                onSelected: () => {
+                    if (!moneyRequestReport) {
+                        return;
+                    }
+                    if (isOffline) {
+                        setOfflineModalVisible(true);
+                        return;
+                    }
+                    exportReportToCSV({reportID: moneyRequestReport.reportID, transactionIDList: transactionIDs}, () => {
+                        setDownloadErrorModalVisible(true);
+                    });
+                },
+            },
+            [CONST.REPORT.EXPORT_OPTIONS.EXPORT_TO_INTEGRATION]: {
+                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+                text: translate('workspace.common.exportIntegrationSelected', {connectionName: connectedIntegrationFallback!}),
+                icon: getIntegrationExportIcon(connectedIntegration ?? connectedIntegrationFallback),
+                value: CONST.REPORT.EXPORT_OPTIONS.EXPORT_TO_INTEGRATION,
+                onSelected: () => {
+                    if (!connectedIntegration || !moneyRequestReport) {
+                        return;
+                    }
+                    if (isExported) {
+                        setExportModalStatus(CONST.REPORT.EXPORT_OPTIONS.EXPORT_TO_INTEGRATION);
+                        return;
+                    }
+                    exportToIntegration(moneyRequestReport?.reportID, connectedIntegration);
+                },
+            },
+            [CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED]: {
+                text: translate('workspace.common.markAsExported'),
+                icon: getIntegrationExportIcon(connectedIntegration ?? connectedIntegrationFallback),
+                value: CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED,
+                onSelected: () => {
+                    if (!connectedIntegration || !moneyRequestReport) {
+                        return;
+                    }
+                    if (isExported) {
+                        setExportModalStatus(CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED);
+                        return;
+                    }
+                    markAsManuallyExported(moneyRequestReport?.reportID, connectedIntegration);
+                },
+            },
+        }),
+        [translate, connectedIntegrationFallback, connectedIntegration, moneyRequestReport, isOffline, transactionIDs, isExported],
+    );
+
     const primaryActionsImplementation = {
         [CONST.REPORT.PRIMARY_ACTIONS.SUBMIT]: (
             <Button
@@ -619,8 +676,6 @@ function MoneyReportHeader({
         ),
     };
 
-    const [offlineModalVisible, setOfflineModalVisible] = useState(false);
-
     const beginPDFExport = (reportID: string) => {
         setIsPDFModalVisible(true);
         exportReportToPDF({reportID});
@@ -643,6 +698,13 @@ function MoneyReportHeader({
         });
     }, [moneyRequestReport, transactions, violations, policy, reportNameValuePairs, reportActions, policies, chatReport, isChatReportArchived]);
 
+    const secondaryExportActions = useMemo(() => {
+        if (!moneyRequestReport) {
+            return [];
+        }
+        return getSecondaryExportReportActions(moneyRequestReport, policy, reportActions);
+    }, [moneyRequestReport, policy, reportActions]);
+
     const secondaryActionsImplementation: Record<
         ValueOf<typeof CONST.REPORT.SECONDARY_ACTIONS>,
         DropdownOption<ValueOf<typeof CONST.REPORT.SECONDARY_ACTIONS>> & Pick<PopoverMenuItem, 'backButtonText'>
@@ -655,22 +717,12 @@ function MoneyReportHeader({
                 navigateToDetailsPage(moneyRequestReport, Navigation.getReportRHPActiveRoute());
             },
         },
-        [CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_CSV]: {
-            value: CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_CSV,
-            text: translate('common.downloadAsCSV'),
-            icon: Expensicons.Download,
-            onSelected: () => {
-                if (!moneyRequestReport) {
-                    return;
-                }
-                if (isOffline) {
-                    setOfflineModalVisible(true);
-                    return;
-                }
-                exportReportToCSV({reportID: moneyRequestReport.reportID, transactionIDList: transactionIDs}, () => {
-                    setDownloadErrorModalVisible(true);
-                });
-            },
+        [CONST.REPORT.SECONDARY_ACTIONS.EXPORT]: {
+            value: CONST.REPORT.SECONDARY_ACTIONS.EXPORT,
+            text: translate('common.export'),
+            backButtonText: translate('common.export'),
+            icon: Expensicons.Export,
+            subMenuItems: secondaryExportActions.map((action) => exportDropdownOptions[action]),
         },
         [CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_PDF]: {
             value: CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_PDF,
@@ -726,39 +778,6 @@ function MoneyReportHeader({
                 setIsCancelPaymentModalVisible(true);
             },
         },
-        [CONST.REPORT.SECONDARY_ACTIONS.EXPORT_TO_ACCOUNTING]: {
-            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
-            text: translate('workspace.common.exportIntegrationSelected', {connectionName: connectedIntegration!}),
-            icon: getIntegrationIcon(connectedIntegration),
-            value: CONST.REPORT.SECONDARY_ACTIONS.EXPORT_TO_ACCOUNTING,
-            onSelected: () => {
-                if (!connectedIntegration || !moneyRequestReport) {
-                    return;
-                }
-                if (isExported) {
-                    setExportModalStatus(CONST.REPORT.EXPORT_OPTIONS.EXPORT_TO_INTEGRATION);
-                    return;
-                }
-                exportToIntegration(moneyRequestReport?.reportID, connectedIntegration);
-            },
-            additionalIconStyles: styles.integrationIcon,
-            displayInDefaultIconColor: true,
-        },
-        [CONST.REPORT.SECONDARY_ACTIONS.MARK_AS_EXPORTED]: {
-            text: translate('workspace.common.markAsExported'),
-            icon: Expensicons.CheckCircle,
-            value: CONST.REPORT.SECONDARY_ACTIONS.MARK_AS_EXPORTED,
-            onSelected: () => {
-                if (!connectedIntegration || !moneyRequestReport) {
-                    return;
-                }
-                if (isExported) {
-                    setExportModalStatus(CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED);
-                    return;
-                }
-                markAsManuallyExported(moneyRequestReport?.reportID, connectedIntegration);
-            },
-        },
         [CONST.REPORT.SECONDARY_ACTIONS.HOLD]: {
             text: translate('iou.hold'),
             icon: Expensicons.Stopwatch,
diff --git a/src/components/Search/SearchPageHeader/SearchPageHeader.tsx b/src/components/Search/SearchPageHeader/SearchPageHeader.tsx
index ec763bb28ba1..04f215c36169 100644
--- a/src/components/Search/SearchPageHeader/SearchPageHeader.tsx
+++ b/src/components/Search/SearchPageHeader/SearchPageHeader.tsx
@@ -29,7 +29,7 @@ function SearchPageHeader({queryJSON, searchRouterListVisible, hideSearchRouterL
 
     const selectedTransactionsKeys = Object.keys(selectedTransactions ?? {});
 
-    if (shouldUseNarrowLayout && selectionMode?.isEnabled) {
+    if (shouldUseNarrowLayout && selectionMode?.isEnabled && headerButtonsOptions.length > 0) {
         return (
             <View>
                 <SearchSelectedNarrow
diff --git a/src/hooks/useSelectedTransactionsActions.ts b/src/hooks/useSelectedTransactionsActions.ts
index f73dcb4a97d0..a62448478e5f 100644
--- a/src/hooks/useSelectedTransactionsActions.ts
+++ b/src/hooks/useSelectedTransactionsActions.ts
@@ -158,18 +158,26 @@ function useSelectedTransactionsActions({
         }
 
         options.push({
-            value: CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_CSV,
-            text: translate('common.downloadAsCSV'),
-            icon: Expensicons.Download,
-            onSelected: () => {
-                if (!report) {
-                    return;
-                }
-                exportReportToCSV({reportID: report.reportID, transactionIDList: selectedTransactionIDs}, () => {
-                    onExportFailed?.();
-                });
-                clearSelectedTransactions(true);
-            },
+            value: CONST.REPORT.SECONDARY_ACTIONS.EXPORT,
+            text: translate('common.export'),
+            backButtonText: translate('common.export'),
+            icon: Expensicons.Export,
+            subMenuItems: [
+                {
+                    text: translate('common.basicExport'),
+                    icon: Expensicons.Table,
+                    value: CONST.REPORT.EXPORT_OPTIONS.DOWNLOAD_CSV,
+                    onSelected: () => {
+                        if (!report) {
+                            return;
+                        }
+                        exportReportToCSV({reportID: report.reportID, transactionIDList: selectedTransactionIDs}, () => {
+                            onExportFailed?.();
+                        });
+                        clearSelectedTransactions(true);
+                    },
+                },
+            ],
         });
 
         const canSelectedExpensesBeMoved = selectedTransactions.every((transaction) => {
diff --git a/src/languages/de.ts b/src/languages/de.ts
index 009734101f8e..b3a0abe524b5 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -549,6 +549,7 @@ const translations = {
         userID: 'Benutzer-ID',
         disable: 'Deaktivieren',
         export: 'Exportieren',
+        basicExport: 'Basis Export',
         initialValue: 'Anfangswert',
         currentDate: 'Aktuelles Datum',
         value: 'Wert',
@@ -3405,7 +3406,7 @@ const translations = {
             welcomeNote: 'Bitte verwenden Sie Expensify, um Ihre Belege zur Erstattung einzureichen, danke!',
             subscription: 'Abonnement',
             markAsEntered: 'Als manuell eingegeben markieren',
-            markAsExported: 'Als manuell exportiert markieren',
+            markAsExported: 'Als exportiert markieren',
             exportIntegrationSelected: ({connectionName}: ExportIntegrationSelectedParams) => `Exportieren nach ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`,
             letsDoubleCheck: 'Lassen Sie uns noch einmal überprüfen, ob alles richtig aussieht.',
             lineItemLevel: 'Positionsebene',
diff --git a/src/languages/en.ts b/src/languages/en.ts
index 52ecce2dae4d..7dad314b34fb 100755
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -540,6 +540,7 @@ const translations = {
         userID: 'User ID',
         disable: 'Disable',
         export: 'Export',
+        basicExport: 'Basic export',
         initialValue: 'Initial value',
         currentDate: 'Current date',
         value: 'Value',
@@ -3396,7 +3397,7 @@ const translations = {
             welcomeNote: 'Please use Expensify to submit your receipts for reimbursement, thanks!',
             subscription: 'Subscription',
             markAsEntered: 'Mark as manually entered',
-            markAsExported: 'Mark as manually exported',
+            markAsExported: 'Mark as exported',
             exportIntegrationSelected: ({connectionName}: ExportIntegrationSelectedParams) => `Export to ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`,
             letsDoubleCheck: "Let's double check that everything looks right.",
             lineItemLevel: 'Line-item level',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 7c9337d9b2f0..0eeef00d711b 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -533,6 +533,7 @@ const translations = {
         userID: 'Usuario ID',
         disable: 'Deshabilitar',
         export: 'Exportar',
+        basicExport: 'Exportar básico',
         initialValue: 'Valor inicial',
         currentDate: 'Fecha actual',
         value: 'Valor',
@@ -3387,7 +3388,7 @@ const translations = {
             welcomeNote: `Por favor, utiliza Expensify para enviar tus recibos para reembolso, ¡gracias!`,
             subscription: 'Suscripción',
             markAsEntered: 'Marcar como introducido manualmente',
-            markAsExported: 'Marcar como exportado manualmente',
+            markAsExported: 'Marcar como exportado',
             exportIntegrationSelected: ({connectionName}: ExportIntegrationSelectedParams) => `Exportar a  ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`,
             letsDoubleCheck: 'Verifiquemos que todo esté correcto',
             reportField: 'Campo del informe',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index df9aeca1dbdb..d85a23b5a70a 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -549,6 +549,7 @@ const translations = {
         userID: 'ID utilisateur',
         disable: 'Désactiver',
         export: 'Exportation',
+        basicExport: 'Exportation basique',
         initialValue: 'Valeur initiale',
         currentDate: 'Current date',
         value: 'Valeur',
@@ -3409,7 +3410,7 @@ const translations = {
             welcomeNote: 'Veuillez utiliser Expensify pour soumettre vos reçus pour remboursement, merci !',
             subscription: 'Abonnement',
             markAsEntered: 'Marquer comme saisi manuellement',
-            markAsExported: 'Marquer comme exporté manuellement',
+            markAsExported: 'Marquer comme exporté',
             exportIntegrationSelected: ({connectionName}: ExportIntegrationSelectedParams) => `Exporter vers ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`,
             letsDoubleCheck: 'Vérifions que tout est correct.',
             lineItemLevel: 'Niveau des postes de dépense',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 04ce417248ef..69331eeb62ee 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -549,6 +549,7 @@ const translations = {
         userID: 'User ID',
         disable: 'Disabilita',
         export: 'Esporta',
+        basicExport: 'Esportazione basica',
         initialValue: 'Valore iniziale',
         currentDate: 'La data odierna',
         value: 'Valore',
@@ -3416,7 +3417,7 @@ const translations = {
             welcomeNote: 'Per favore, usa Expensify per inviare le tue ricevute per il rimborso, grazie!',
             subscription: 'Abbonamento',
             markAsEntered: 'Segna come inserito manualmente',
-            markAsExported: 'Segna come esportato manualmente',
+            markAsExported: 'Segna come esportato',
             exportIntegrationSelected: ({connectionName}: ExportIntegrationSelectedParams) => `Esporta in ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`,
             letsDoubleCheck: 'Verifichiamo che tutto sia corretto.',
             lineItemLevel: 'Livello voce di dettaglio',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index cfbfa10b6faf..c74d8a1673c1 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -549,6 +549,7 @@ const translations = {
         userID: 'ユーザーID',
         disable: '無効にする',
         export: 'エクスポート',
+        basicExport: '基本エクスポート',
         initialValue: '初期値',
         currentDate: '現在の日付',
         value: '値段',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 274e841fb122..117a06765989 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -549,6 +549,7 @@ const translations = {
         userID: 'Gebruikers-ID',
         disable: 'Uitschakelen',
         export: 'Exporteren',
+        basicExport: 'Basis export',
         initialValue: 'Initiële waarde',
         currentDate: "I'm unable to provide real-time information, including the current date. Please check your device or calendar for the current date.",
         value: 'Waarde',
@@ -3423,7 +3424,7 @@ const translations = {
             welcomeNote: 'Gebruik alstublieft Expensify om uw bonnetjes in te dienen voor terugbetaling, bedankt!',
             subscription: 'Abonnement',
             markAsEntered: 'Markeren als handmatig ingevoerd',
-            markAsExported: 'Markeren als handmatig geëxporteerd',
+            markAsExported: 'Markeren als geëxporteerd',
             exportIntegrationSelected: ({connectionName}: ExportIntegrationSelectedParams) => `Exporteer naar ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`,
             letsDoubleCheck: 'Laten we dubbel controleren of alles er goed uitziet.',
             lineItemLevel: 'Regelniveau',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 97fd26d754d1..3ecd58a26003 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -549,8 +549,9 @@ const translations = {
         userID: 'ID użytkownika',
         disable: 'Wyłącz',
         export: 'Eksportuj',
+        basicExport: 'Eksport podstawowy',
         initialValue: 'Wartość początkowa',
-        currentDate: 'Current date',
+        currentDate: 'Aktualna data',
         value: 'Wartość',
         downloadFailedTitle: 'Pobieranie nie powiodło się',
         downloadFailedDescription: 'Nie udało się zakończyć pobierania. Spróbuj ponownie później.',
@@ -3416,7 +3417,7 @@ const translations = {
             welcomeNote: 'Proszę użyć Expensify do przesyłania paragonów do zwrotu kosztów, dziękuję!',
             subscription: 'Subskrypcja',
             markAsEntered: 'Oznacz jako wprowadzone ręcznie',
-            markAsExported: 'Oznacz jako wyeksportowane ręcznie',
+            markAsExported: 'Oznacz jako wyeksportowane',
             exportIntegrationSelected: ({connectionName}: ExportIntegrationSelectedParams) => `Eksportuj do ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`,
             letsDoubleCheck: 'Sprawdźmy podwójnie, czy wszystko wygląda dobrze.',
             lineItemLevel: 'Poziom pozycji linii',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 6945bdb5a107..4adde7cf474c 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -549,6 +549,7 @@ const translations = {
         userID: 'ID do Usuário',
         disable: 'Desativar',
         export: 'Exportar',
+        basicExport: 'Exporta\u00E7\u00E3o b\u00E1sica',
         initialValue: 'Valor inicial',
         currentDate: 'Data atual',
         value: 'Valor',
@@ -3420,7 +3421,7 @@ const translations = {
             welcomeNote: 'Por favor, use o Expensify para enviar seus recibos para reembolso, obrigado!',
             subscription: 'Assinatura',
             markAsEntered: 'Marcar como inserido manualmente',
-            markAsExported: 'Marcar como exportado manualmente',
+            markAsExported: 'Marcar como exportado',
             exportIntegrationSelected: ({connectionName}: ExportIntegrationSelectedParams) => `Exportar para ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`,
             letsDoubleCheck: 'Vamos verificar se tudo está correto.',
             lineItemLevel: 'Nível de item linha',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index f2dfe105f18a..a12f887f8587 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -549,6 +549,7 @@ const translations = {
         userID: '用户 ID',
         disable: '禁用',
         export: '导出',
+        basicExport: '基本导出',
         initialValue: '初始值',
         currentDate: '当前日期',
         value: '值',
diff --git a/src/libs/ReportSecondaryActionUtils.ts b/src/libs/ReportSecondaryActionUtils.ts
index d12e18dc975e..2f10bf465f4b 100644
--- a/src/libs/ReportSecondaryActionUtils.ts
+++ b/src/libs/ReportSecondaryActionUtils.ts
@@ -530,14 +530,6 @@ function getSecondaryReportActions({
         options.push(CONST.REPORT.SECONDARY_ACTIONS.CANCEL_PAYMENT);
     }
 
-    if (isExportAction(report, policy, reportActions)) {
-        options.push(CONST.REPORT.SECONDARY_ACTIONS.EXPORT_TO_ACCOUNTING);
-    }
-
-    if (isMarkAsExportedAction(report, policy)) {
-        options.push(CONST.REPORT.SECONDARY_ACTIONS.MARK_AS_EXPORTED);
-    }
-
     if (isRetractAction(report, policy)) {
         options.push(CONST.REPORT.SECONDARY_ACTIONS.RETRACT);
     }
@@ -554,7 +546,7 @@ function getSecondaryReportActions({
         options.push(CONST.REPORT.SECONDARY_ACTIONS.SPLIT);
     }
 
-    options.push(CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_CSV);
+    options.push(CONST.REPORT.SECONDARY_ACTIONS.EXPORT);
 
     options.push(CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_PDF);
 
@@ -571,6 +563,22 @@ function getSecondaryReportActions({
     return options;
 }
 
+function getSecondaryExportReportActions(report: Report, policy?: Policy, reportActions?: ReportAction[]): Array<ValueOf<typeof CONST.REPORT.EXPORT_OPTIONS>> {
+    const options: Array<ValueOf<typeof CONST.REPORT.EXPORT_OPTIONS>> = [];
+
+    if (isExportAction(report, policy, reportActions)) {
+        options.push(CONST.REPORT.EXPORT_OPTIONS.EXPORT_TO_INTEGRATION);
+    }
+
+    if (isMarkAsExportedAction(report, policy)) {
+        options.push(CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED);
+    }
+
+    options.push(CONST.REPORT.EXPORT_OPTIONS.DOWNLOAD_CSV);
+
+    return options;
+}
+
 function getSecondaryTransactionThreadActions(
     parentReport: Report,
     reportTransaction: Transaction,
@@ -595,4 +603,4 @@ function getSecondaryTransactionThreadActions(
 
     return options;
 }
-export {getSecondaryReportActions, getSecondaryTransactionThreadActions, isDeleteAction};
+export {getSecondaryReportActions, getSecondaryTransactionThreadActions, isDeleteAction, getSecondaryExportReportActions};
diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts
index c90103355399..51dd43bbd6e1 100644
--- a/src/libs/ReportUtils.ts
+++ b/src/libs/ReportUtils.ts
@@ -13,7 +13,7 @@ import Onyx from 'react-native-onyx';
 import type {SvgProps} from 'react-native-svg';
 import type {OriginalMessageChangePolicy, OriginalMessageExportIntegration, OriginalMessageModifiedExpense} from 'src/types/onyx/OriginalMessage';
 import type {SetRequired, TupleToUnion, ValueOf} from 'type-fest';
-import {FallbackAvatar, IntacctSquare, NetSuiteSquare, QBDSquare, QBOSquare, XeroSquare} from '@components/Icon/Expensicons';
+import {FallbackAvatar, IntacctSquare, NetSuiteExport, NetSuiteSquare, QBDSquare, QBOExport, QBOSquare, SageIntacctExport, XeroExport, XeroSquare} from '@components/Icon/Expensicons';
 import * as defaultGroupAvatars from '@components/Icon/GroupDefaultAvatars';
 import * as defaultWorkspaceAvatars from '@components/Icon/WorkspaceDefaultAvatars';
 import type {MoneyRequestAmountInputProps} from '@components/MoneyRequestAmountInput';
@@ -10736,6 +10736,23 @@ function getIntegrationIcon(connectionName?: ConnectionName) {
     return undefined;
 }
 
+function getIntegrationExportIcon(connectionName?: ConnectionName) {
+    if (connectionName === CONST.POLICY.CONNECTIONS.NAME.XERO) {
+        return XeroExport;
+    }
+    if (connectionName === CONST.POLICY.CONNECTIONS.NAME.QBO || connectionName === CONST.POLICY.CONNECTIONS.NAME.QBD) {
+        return QBOExport;
+    }
+    if (connectionName === CONST.POLICY.CONNECTIONS.NAME.NETSUITE) {
+        return NetSuiteExport;
+    }
+    if (connectionName === CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT) {
+        return SageIntacctExport;
+    }
+
+    return undefined;
+}
+
 function canBeExported(report: OnyxEntry<Report>) {
     if (!report?.statusNum) {
         return false;
@@ -11397,6 +11414,7 @@ export {
     getReportViolations,
     findPolicyExpenseChatByPolicyID,
     getIntegrationIcon,
+    getIntegrationExportIcon,
     canBeExported,
     isExported,
     hasExportError,
diff --git a/src/pages/Search/SearchPage.tsx b/src/pages/Search/SearchPage.tsx
index 80ab6215bf58..1ac12c860ad8 100644
--- a/src/pages/Search/SearchPage.tsx
+++ b/src/pages/Search/SearchPage.tsx
@@ -123,35 +123,42 @@ function SearchPage({route}: SearchPageProps) {
         const isAnyTransactionOnHold = Object.values(selectedTransactions).some((transaction) => transaction.isHeld);
 
         const downloadButtonOption: DropdownOption<SearchHeaderOptionValue> = {
-            icon: Expensicons.Download,
-            text: translate('common.download'),
+            icon: Expensicons.Export,
+            text: translate('common.export'),
+            backButtonText: translate('common.export'),
             value: CONST.SEARCH.BULK_ACTION_TYPES.EXPORT,
             shouldCloseModalOnSelect: true,
-            onSelected: () => {
-                if (isOffline) {
-                    setIsOfflineModalVisible(true);
-                    return;
-                }
-
-                if (isExportMode) {
-                    setIsDownloadExportModalVisible(true);
-                    return;
-                }
-
-                const reportIDList = selectedReports?.filter((report) => !!report).map((report) => report.reportID) ?? [];
-                exportSearchItemsToCSV(
-                    {
-                        query: status,
-                        jsonQuery: JSON.stringify(queryJSON),
-                        reportIDList,
-                        transactionIDList: selectedTransactionsKeys,
-                    },
-                    () => {
-                        setIsDownloadErrorModalVisible(true);
+            subMenuItems: [
+                {
+                    text: translate('common.basicExport'),
+                    icon: Expensicons.Table,
+                    onSelected: () => {
+                        if (isOffline) {
+                            setIsOfflineModalVisible(true);
+                            return;
+                        }
+
+                        if (isExportMode) {
+                            setIsDownloadExportModalVisible(true);
+                            return;
+                        }
+
+                        const reportIDList = selectedReports?.filter((report) => !!report).map((report) => report.reportID) ?? [];
+                        exportSearchItemsToCSV(
+                            {
+                                query: status,
+                                jsonQuery: JSON.stringify(queryJSON),
+                                reportIDList,
+                                transactionIDList: selectedTransactionsKeys,
+                            },
+                            () => {
+                                setIsDownloadErrorModalVisible(true);
+                            },
+                        );
+                        clearSelectedTransactions(undefined, true);
                     },
-                );
-                clearSelectedTransactions();
-            },
+                },
+            ],
         };
 
         if (isExportMode) {
diff --git a/src/pages/Search/SearchSelectedNarrow.tsx b/src/pages/Search/SearchSelectedNarrow.tsx
index aaaa7ad1591e..291c498cca00 100644
--- a/src/pages/Search/SearchSelectedNarrow.tsx
+++ b/src/pages/Search/SearchSelectedNarrow.tsx
@@ -2,8 +2,7 @@ import React, {useRef, useState} from 'react';
 import {View} from 'react-native';
 import Button from '@components/Button';
 import type {DropdownOption} from '@components/ButtonWithDropdownMenu/types';
-import MenuItem from '@components/MenuItem';
-import Modal from '@components/Modal';
+import PopoverMenu from '@components/PopoverMenu';
 import type {SearchHeaderOptionValue} from '@components/Search/SearchPageHeader/SearchPageHeader';
 import useLocalize from '@hooks/useLocalize';
 import useThemeStyles from '@hooks/useThemeStyles';
@@ -58,24 +57,33 @@ function SearchSelectedNarrow({options, itemsLength}: SearchSelectedNarrowProps)
                 shouldShowRightIcon={options.length !== 0}
                 success
             />
-            <Modal
+            <PopoverMenu
                 isVisible={isModalVisible}
-                type={CONST.MODAL.MODAL_TYPE.BOTTOM_DOCKED}
                 onClose={handleOnCloseMenu}
                 onModalHide={handleOnModalHide}
-            >
-                {options.map((option, index) => (
-                    <MenuItem
-                        // eslint-disable-next-line react/jsx-props-no-spreading
-                        {...option}
-                        title={option.text}
-                        titleStyle={option.titleStyle}
-                        icon={option.icon}
-                        onPress={() => handleOnMenuItemPress(option, index)}
-                        key={option.value}
-                    />
-                ))}
-            </Modal>
+                onItemSelected={(selectedItem, index) => {
+                    handleOnMenuItemPress(selectedItem as DropdownOption<SearchHeaderOptionValue>, index);
+                }}
+                anchorPosition={{horizontal: 0, vertical: 0}}
+                anchorRef={buttonRef}
+                anchorAlignment={{
+                    horizontal: CONST.MODAL.ANCHOR_ORIGIN_HORIZONTAL.LEFT,
+                    vertical: CONST.MODAL.ANCHOR_ORIGIN_VERTICAL.BOTTOM,
+                }}
+                fromSidebarMediumScreen={false}
+                shouldUseModalPaddingStyle
+                menuItems={options.map((item, index) => ({
+                    ...item,
+                    onSelected: item.onSelected
+                        ? () => {
+                              item.onSelected?.();
+                          }
+                        : () => {
+                              handleOnMenuItemPress(item, index);
+                          },
+                    shouldCallAfterModalHide: true,
+                }))}
+            />
         </View>
     );
 }
diff --git a/tests/unit/ReportSecondaryActionUtilsTest.ts b/tests/unit/ReportSecondaryActionUtilsTest.ts
index a4c63010fe40..4528522eed06 100644
--- a/tests/unit/ReportSecondaryActionUtilsTest.ts
+++ b/tests/unit/ReportSecondaryActionUtilsTest.ts
@@ -1,5 +1,5 @@
 import Onyx from 'react-native-onyx';
-import {getSecondaryReportActions, getSecondaryTransactionThreadActions} from '@libs/ReportSecondaryActionUtils';
+import {getSecondaryExportReportActions, getSecondaryReportActions, getSecondaryTransactionThreadActions} from '@libs/ReportSecondaryActionUtils';
 import CONST from '@src/CONST';
 import * as ReportActionsUtils from '@src/libs/ReportActionsUtils';
 import * as ReportUtils from '@src/libs/ReportUtils';
@@ -48,7 +48,7 @@ describe('getSecondaryAction', () => {
         const report = {} as unknown as Report;
         const policy = {} as unknown as Policy;
 
-        const result = [CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_CSV, CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_PDF, CONST.REPORT.SECONDARY_ACTIONS.VIEW_DETAILS];
+        const result = [CONST.REPORT.SECONDARY_ACTIONS.EXPORT, CONST.REPORT.SECONDARY_ACTIONS.DOWNLOAD_PDF, CONST.REPORT.SECONDARY_ACTIONS.VIEW_DETAILS];
         expect(getSecondaryReportActions({report, chatReport, reportTransactions: [], violations: {}, policy})).toEqual(result);
     });
 
@@ -308,141 +308,6 @@ describe('getSecondaryAction', () => {
         expect(result.includes(CONST.REPORT.SECONDARY_ACTIONS.CANCEL_PAYMENT)).toBe(true);
     });
 
-    it('does not include EXPORT option for invoice reports', async () => {
-        const report = {
-            reportID: REPORT_ID,
-            type: CONST.REPORT.TYPE.INVOICE,
-            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
-        } as unknown as Report;
-        const policy = {
-            connections: {
-                [CONST.POLICY.CONNECTIONS.NAME.QBO]: {},
-            },
-        } as unknown as Policy;
-        await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT}${REPORT_ID}`, report);
-
-        const result = getSecondaryReportActions({report, chatReport, reportTransactions: [], violations: {}, policy});
-        expect(result.includes(CONST.REPORT.SECONDARY_ACTIONS.EXPORT_TO_ACCOUNTING)).toBe(false);
-    });
-
-    it('includes EXPORT option for expense report with payments enabled', () => {
-        const report = {
-            reportID: REPORT_ID,
-            type: CONST.REPORT.TYPE.EXPENSE,
-            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
-            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
-            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
-        } as unknown as Report;
-        const policy = {
-            role: CONST.POLICY.ROLE.ADMIN,
-            reimbursementChoice: CONST.POLICY.REIMBURSEMENT_CHOICES.REIMBURSEMENT_YES,
-            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {}},
-        } as unknown as Policy;
-
-        const result = getSecondaryReportActions({report, chatReport, reportTransactions: [], violations: {}, policy});
-        expect(result.includes(CONST.REPORT.SECONDARY_ACTIONS.EXPORT_TO_ACCOUNTING)).toBe(true);
-    });
-
-    it('includes EXPORT option for expense report with payments disabled', () => {
-        const report = {
-            reportID: REPORT_ID,
-            type: CONST.REPORT.TYPE.EXPENSE,
-            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
-            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
-            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
-        } as unknown as Report;
-        const policy = {
-            role: CONST.POLICY.ROLE.ADMIN,
-            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {config: {autosync: {enabled: true}}}},
-        } as unknown as Policy;
-
-        const result = getSecondaryReportActions({report, chatReport, reportTransactions: [], violations: {}, policy});
-        expect(result.includes(CONST.REPORT.SECONDARY_ACTIONS.EXPORT_TO_ACCOUNTING)).toBe(true);
-    });
-
-    it('includes MARK_AS_EXPORTED option for invoice report sender', async () => {
-        const report = {
-            reportID: REPORT_ID,
-            type: CONST.REPORT.TYPE.INVOICE,
-            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
-        } as unknown as Report;
-        const policy = {
-            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {}},
-        } as unknown as Policy;
-        await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT}${REPORT_ID}`, report);
-
-        const result = getSecondaryReportActions({report, chatReport, reportTransactions: [], violations: {}, policy});
-        expect(result.includes(CONST.REPORT.SECONDARY_ACTIONS.MARK_AS_EXPORTED)).toBe(true);
-    });
-
-    it('includes MARK_AS_EXPORTED option for expense report with payments enabled', () => {
-        const report = {
-            reportID: REPORT_ID,
-            type: CONST.REPORT.TYPE.EXPENSE,
-            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
-            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
-            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
-        } as unknown as Report;
-        const policy = {
-            role: CONST.POLICY.ROLE.ADMIN,
-            reimbursementChoice: CONST.POLICY.REIMBURSEMENT_CHOICES.REIMBURSEMENT_YES,
-            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {}},
-        } as unknown as Policy;
-
-        const result = getSecondaryReportActions({report, chatReport, reportTransactions: [], violations: {}, policy});
-        expect(result.includes(CONST.REPORT.SECONDARY_ACTIONS.MARK_AS_EXPORTED)).toBe(true);
-    });
-
-    it('includes MARK_AS_EXPORTED option for expense report with payments disabled', () => {
-        const report = {
-            reportID: REPORT_ID,
-            type: CONST.REPORT.TYPE.EXPENSE,
-            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
-            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
-            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
-        } as unknown as Report;
-        const policy = {
-            role: CONST.POLICY.ROLE.ADMIN,
-            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {config: {autosync: {enabled: true}}}},
-        } as unknown as Policy;
-
-        const result = getSecondaryReportActions({report, chatReport, reportTransactions: [], violations: {}, policy});
-        expect(result.includes(CONST.REPORT.SECONDARY_ACTIONS.MARK_AS_EXPORTED)).toBe(true);
-    });
-
-    it('includes MARK_AS_EXPORTED option for expense report preferred exporter', () => {
-        const report = {
-            reportID: REPORT_ID,
-            type: CONST.REPORT.TYPE.EXPENSE,
-            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
-            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
-            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
-        } as unknown as Report;
-        const policy = {
-            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {config: {export: {exporter: EMPLOYEE_EMAIL}, autoSync: {enabled: false}}}},
-        } as unknown as Policy;
-
-        const result = getSecondaryReportActions({report, chatReport, reportTransactions: [], violations: {}, policy});
-        expect(result.includes(CONST.REPORT.SECONDARY_ACTIONS.MARK_AS_EXPORTED)).toBe(true);
-    });
-
-    it('includes MARK_AS_EXPORTED option for expense report admin', () => {
-        const report = {
-            reportID: REPORT_ID,
-            type: CONST.REPORT.TYPE.EXPENSE,
-            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
-            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
-            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
-        } as unknown as Report;
-        const policy = {
-            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {config: {export: {exporter: ADMIN_EMAIL}, autoSync: {enabled: true}}}},
-            role: CONST.POLICY.ROLE.ADMIN,
-        } as unknown as Policy;
-
-        const result = getSecondaryReportActions({report, chatReport, reportTransactions: [], violations: {}, policy});
-        expect(result.includes(CONST.REPORT.SECONDARY_ACTIONS.MARK_AS_EXPORTED)).toBe(true);
-    });
-
     it('includes HOLD option ', () => {
         const report = {
             reportID: REPORT_ID,
@@ -922,6 +787,180 @@ describe('getSecondaryAction', () => {
     });
 });
 
+describe('getSecondaryExportReportActions', () => {
+    beforeAll(() => {
+        Onyx.init({
+            keys: ONYXKEYS,
+        });
+    });
+
+    beforeEach(async () => {
+        jest.clearAllMocks();
+        Onyx.clear();
+        await Onyx.merge(ONYXKEYS.SESSION, SESSION);
+        await Onyx.set(ONYXKEYS.PERSONAL_DETAILS_LIST, {[EMPLOYEE_ACCOUNT_ID]: PERSONAL_DETAILS});
+    });
+
+    it('should always return default option', () => {
+        const report = {} as unknown as Report;
+        const policy = {} as unknown as Policy;
+
+        const result = [CONST.REPORT.EXPORT_OPTIONS.DOWNLOAD_CSV];
+        expect(getSecondaryExportReportActions(report, policy)).toEqual(result);
+    });
+
+    it('does not include EXPORT option for invoice reports', async () => {
+        const report = {
+            reportID: REPORT_ID,
+            type: CONST.REPORT.TYPE.INVOICE,
+            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
+        } as unknown as Report;
+        const policy = {
+            connections: {
+                [CONST.POLICY.CONNECTIONS.NAME.QBO]: {},
+            },
+        } as unknown as Policy;
+        await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT}${REPORT_ID}`, report);
+
+        const result = getSecondaryExportReportActions(report, policy);
+        expect(result.includes(CONST.REPORT.EXPORT_OPTIONS.EXPORT_TO_INTEGRATION)).toBe(false);
+    });
+
+    it('includes EXPORT option for expense report with payments enabled', () => {
+        const report = {
+            reportID: REPORT_ID,
+            type: CONST.REPORT.TYPE.EXPENSE,
+            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
+            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
+            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
+        } as unknown as Report;
+        const policy = {
+            role: CONST.POLICY.ROLE.ADMIN,
+            reimbursementChoice: CONST.POLICY.REIMBURSEMENT_CHOICES.REIMBURSEMENT_YES,
+            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {}},
+        } as unknown as Policy;
+
+        const result = getSecondaryExportReportActions(report, policy);
+        expect(result.includes(CONST.REPORT.EXPORT_OPTIONS.EXPORT_TO_INTEGRATION)).toBe(true);
+    });
+
+    it('includes EXPORT option for expense report with payments disabled', () => {
+        const report = {
+            reportID: REPORT_ID,
+            type: CONST.REPORT.TYPE.EXPENSE,
+            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
+            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
+            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
+        } as unknown as Report;
+        const policy = {
+            role: CONST.POLICY.ROLE.ADMIN,
+            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {config: {autosync: {enabled: true}}}},
+        } as unknown as Policy;
+
+        const result = getSecondaryExportReportActions(report, policy);
+        expect(result.includes(CONST.REPORT.EXPORT_OPTIONS.EXPORT_TO_INTEGRATION)).toBe(true);
+    });
+
+    it('includes MARK_AS_EXPORTED option for invoice report sender', async () => {
+        const report = {
+            reportID: REPORT_ID,
+            type: CONST.REPORT.TYPE.INVOICE,
+            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
+        } as unknown as Report;
+        const policy = {
+            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {}},
+        } as unknown as Policy;
+        await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT}${REPORT_ID}`, report);
+
+        const result = getSecondaryExportReportActions(report, policy);
+        expect(result.includes(CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED)).toBe(true);
+    });
+
+    it('includes MARK_AS_EXPORTED option for expense report preferred exporter', () => {
+        const report = {
+            reportID: REPORT_ID,
+            type: CONST.REPORT.TYPE.EXPENSE,
+            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
+            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
+            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
+        } as unknown as Report;
+        const policy = {
+            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {config: {export: {exporter: EMPLOYEE_EMAIL}, autoSync: {enabled: false}}}},
+        } as unknown as Policy;
+
+        const result = getSecondaryExportReportActions(report, policy);
+        expect(result.includes(CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED)).toBe(true);
+    });
+
+    it('includes MARK_AS_EXPORTED option for expense report with payments enabled', () => {
+        const report = {
+            reportID: REPORT_ID,
+            type: CONST.REPORT.TYPE.EXPENSE,
+            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
+            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
+            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
+        } as unknown as Report;
+        const policy = {
+            role: CONST.POLICY.ROLE.ADMIN,
+            reimbursementChoice: CONST.POLICY.REIMBURSEMENT_CHOICES.REIMBURSEMENT_YES,
+            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {}},
+        } as unknown as Policy;
+
+        const result = getSecondaryExportReportActions(report, policy);
+        expect(result.includes(CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED)).toBe(true);
+    });
+
+    it('includes MARK_AS_EXPORTED option for expense report with payments disabled', () => {
+        const report = {
+            reportID: REPORT_ID,
+            type: CONST.REPORT.TYPE.EXPENSE,
+            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
+            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
+            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
+        } as unknown as Report;
+        const policy = {
+            role: CONST.POLICY.ROLE.ADMIN,
+            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {config: {autosync: {enabled: true}}}},
+        } as unknown as Policy;
+
+        const result = getSecondaryExportReportActions(report, policy);
+        expect(result.includes(CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED)).toBe(true);
+    });
+
+    it('includes MARK_AS_EXPORTED option for expense report preferred exporter', () => {
+        const report = {
+            reportID: REPORT_ID,
+            type: CONST.REPORT.TYPE.EXPENSE,
+            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
+            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
+            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
+        } as unknown as Report;
+        const policy = {
+            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {config: {export: {exporter: EMPLOYEE_EMAIL}, autoSync: {enabled: false}}}},
+        } as unknown as Policy;
+
+        const result = getSecondaryExportReportActions(report, policy);
+        expect(result.includes(CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED)).toBe(true);
+    });
+
+    it('includes MARK_AS_EXPORTED option for expense report admin', () => {
+        const report = {
+            reportID: REPORT_ID,
+            type: CONST.REPORT.TYPE.EXPENSE,
+            ownerAccountID: EMPLOYEE_ACCOUNT_ID,
+            stateNum: CONST.REPORT.STATE_NUM.APPROVED,
+            statusNum: CONST.REPORT.STATUS_NUM.APPROVED,
+        } as unknown as Report;
+        const policy = {
+            connections: {[CONST.POLICY.CONNECTIONS.NAME.QBD]: {config: {export: {exporter: ADMIN_EMAIL}, autoSync: {enabled: true}}}},
+            role: CONST.POLICY.ROLE.ADMIN,
+        } as unknown as Policy;
+
+        const result = getSecondaryExportReportActions(report, policy);
+        expect(result.includes(CONST.REPORT.EXPORT_OPTIONS.MARK_AS_EXPORTED)).toBe(true);
+    });
+});
+
 describe('getSecondaryTransactionThreadActions', () => {
     beforeAll(() => {
         Onyx.init({
