diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetAvailablePaymentMethodsTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetAvailablePaymentMethodsTest.php
index 5695aab6854d4..a7287ada093b8 100644
--- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetAvailablePaymentMethodsTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetAvailablePaymentMethodsTest.php
@@ -56,9 +56,86 @@ protected function setUp()
      */
     public function testGetCartWithPaymentMethods()
     {
-        $maskedQuoteId = $this->getMaskedQuoteIdByReversedQuoteId('test_order_item_with_items');
+        $maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId('test_order_item_with_items');
+        $query = $this->getQuery($maskedQuoteId);
+        $response = $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+
+        self::assertArrayHasKey('cart', $response);
+        self::assertEquals('checkmo', $response['cart']['available_payment_methods'][0]['code']);
+        self::assertEquals('Check / Money order', $response['cart']['available_payment_methods'][0]['title']);
+        self::assertGreaterThan(
+            0,
+            count($response['cart']['available_payment_methods']),
+            'There are no available payment methods for customer cart!'
+        );
+    }
 
-        $query = <<<QUERY
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_saved.php
+     */
+    public function testGetPaymentMethodsFromGuestCart()
+    {
+        $guestQuoteMaskedId = $this->getMaskedQuoteIdByReservedOrderId(
+            'test_order_with_virtual_product_without_address'
+        );
+        $query = $this->getQuery($guestQuoteMaskedId);
+
+        $this->expectExceptionMessage(
+            "The current user cannot perform operations on cart \"$guestQuoteMaskedId\""
+        );
+        $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/three_customers.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php
+     */
+    public function testGetPaymentMethodsFromAnotherCustomerCart()
+    {
+        $maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId('test_order_item_with_items');
+        $query = $this->getQuery($maskedQuoteId);
+
+        $this->expectExceptionMessage(
+            "The current user cannot perform operations on cart \"$maskedQuoteId\""
+        );
+        $this->graphQlQuery($query, [], '', $this->getHeaderMap('customer3@search.example.com'));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php
+     * @magentoApiDataFixture Magento/Payment/_files/disable_all_active_payment_methods.php
+     */
+    public function testGetPaymentMethodsIfPaymentsAreNotSet()
+    {
+        $maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId('test_order_item_with_items');
+        $query = $this->getQuery($maskedQuoteId);
+        $response = $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+
+        self::assertEquals(0, count($response['cart']['available_payment_methods']));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @expectedException \Exception
+     * @expectedExceptionMessage Could not find a cart with ID "non_existent_masked_id"
+     */
+    public function testGetPaymentMethodsOfNonExistentCart()
+    {
+        $maskedQuoteId = 'non_existent_masked_id';
+        $query = $this->getQuery($maskedQuoteId);
+
+        $this->graphQlQuery($query, [], '', $this->getHeaderMap());
+    }
+
+    /**
+     * @param string $maskedQuoteId
+     * @return string
+     */
+    private function getQuery(
+        string $maskedQuoteId
+    ): string {
+        return <<<QUERY
 {
   cart(cart_id: "$maskedQuoteId") {
     available_payment_methods {
@@ -68,11 +145,6 @@ public function testGetCartWithPaymentMethods()
   }
 }
 QUERY;
-        $response = $this->graphQlQuery($query, [], '', $this->getHeaderMap());
-
-        self::assertArrayHasKey('cart', $response);
-        self::assertEquals('checkmo', $response['cart']['available_payment_methods'][0]['code']);
-        self::assertEquals('Check / Money order', $response['cart']['available_payment_methods'][0]['title']);
     }
 
     /**
@@ -88,13 +160,13 @@ private function getHeaderMap(string $username = 'customer@example.com', string
     }
 
     /**
-     * @param string $reversedQuoteId
+     * @param string $reservedOrderId
      * @return string
      */
-    private function getMaskedQuoteIdByReversedQuoteId(string $reversedQuoteId): string
+    private function getMaskedQuoteIdByReservedOrderId(string $reservedOrderId): string
     {
         $quote = $this->quoteFactory->create();
-        $this->quoteResource->load($quote, $reversedQuoteId, 'reserved_order_id');
+        $this->quoteResource->load($quote, $reservedOrderId, 'reserved_order_id');
 
         return $this->quoteIdToMaskedId->execute((int)$quote->getId());
     }
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetCartTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetCartTest.php
index fe9b7b3c49a7c..286742936da8e 100644
--- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetCartTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetCartTest.php
@@ -72,8 +72,8 @@ public function testGetCart()
     }
 
     /**
-     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
      * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
      */
     public function testGetGuestCart()
     {
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/RemoveItemFromCartTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/RemoveItemFromCartTest.php
index 70ec646c10008..e80a2127ad420 100644
--- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/RemoveItemFromCartTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/RemoveItemFromCartTest.php
@@ -129,7 +129,7 @@ public function testRemoveItemIfItemIsNotBelongToCart()
     }
 
     /**
-     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
      * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_saved.php
      */
     public function testRemoveItemFromGuestCart()
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/UpdateCartItemsTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/UpdateCartItemsTest.php
index 632ee839834e0..74e7aa8b5d0a4 100644
--- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/UpdateCartItemsTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/UpdateCartItemsTest.php
@@ -156,7 +156,7 @@ public function testUpdateItemIfItemIsNotBelongToCart()
     }
 
     /**
-     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
      * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_saved.php
      */
     public function testUpdateItemInGuestCart()
diff --git a/dev/tests/integration/testsuite/Magento/Payment/_files/disable_all_active_payment_methods.php b/dev/tests/integration/testsuite/Magento/Payment/_files/disable_all_active_payment_methods.php
new file mode 100644
index 0000000000000..ac811e67c580a
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Payment/_files/disable_all_active_payment_methods.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+declare(strict_types=1);
+
+use Magento\Config\Model\Config;
+use Magento\Framework\App\Config\ScopeConfigInterface;
+use Magento\Store\Model\Store;
+use Magento\TestFramework\Helper\Bootstrap;
+
+$objectManager = Bootstrap::getObjectManager();
+$paymentMethodList = $objectManager->get(\Magento\Payment\Api\PaymentMethodListInterface::class);
+$rollbackConfigKey = 'test/payment/disabled_payment_methods';
+$configData = [];
+$disabledPaymentMethods = [];
+
+// Get all active Payment Methods
+foreach ($paymentMethodList->getActiveList(Store::DEFAULT_STORE_ID) as $paymentMethod) {
+    $configData['payment/' . $paymentMethod->getCode() . '/active'] = 0;
+    $disabledPaymentMethods[] = $paymentMethod->getCode();
+}
+// Remember all manually disabled Payment Methods for rollback
+$configData[$rollbackConfigKey] = implode(',', $disabledPaymentMethods);
+
+/** @var Config $defConfig */
+$defConfig = $objectManager->create(Config::class);
+$defConfig->setScope(ScopeConfigInterface::SCOPE_TYPE_DEFAULT);
+
+foreach ($configData as $key => $value) {
+    $defConfig->setDataByPath($key, $value);
+    $defConfig->save();
+}
diff --git a/dev/tests/integration/testsuite/Magento/Payment/_files/disable_all_active_payment_methods_rollback.php b/dev/tests/integration/testsuite/Magento/Payment/_files/disable_all_active_payment_methods_rollback.php
new file mode 100644
index 0000000000000..4a56888058e4d
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Payment/_files/disable_all_active_payment_methods_rollback.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+declare(strict_types=1);
+
+use Magento\Framework\App\Config\ScopeConfigInterface;
+use Magento\Framework\App\Config\Storage\WriterInterface;
+use Magento\TestFramework\Helper\Bootstrap;
+
+$objectManager = Bootstrap::getObjectManager();
+$rollbackConfigKey = 'test/payment/disabled_payment_methods';
+
+$configWriter = $objectManager->create(WriterInterface::class);
+$rollbackConfigValue = $objectManager->get(\Magento\Store\Model\StoreManagerInterface::class)
+    ->getStore(\Magento\Store\Model\Store::DEFAULT_STORE_ID)
+    ->getConfig($rollbackConfigKey);
+
+$disabledPaymentMethods = [];
+if (!empty($rollbackConfigValue)) {
+    $disabledPaymentMethods = explode(',', $rollbackConfigValue);
+}
+
+if (count($disabledPaymentMethods)) {
+    foreach ($disabledPaymentMethods as $keyToRemove) {
+        $configWriter->delete(sprintf('payment/%s/active', $keyToRemove));
+    }
+}
+$configWriter->delete($rollbackConfigKey);
+
+$scopeConfig = $objectManager->get(ScopeConfigInterface::class);
+$scopeConfig->clean();