diff --git a/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeAssignBillingAddress.php b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeAssignBillingAddress.php
new file mode 100644
index 00000000000..e1184376f3a
--- /dev/null
+++ b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeAssignBillingAddress.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+declare(strict_types=1);
+
+namespace Magento\Checkout\Plugin\Api;
+
+use Magento\Checkout\Helper\Data as CheckoutHelper;
+use Magento\Framework\Exception\CouldNotSaveException;
+use Magento\Quote\Api\CartRepositoryInterface;
+use Magento\Quote\Api\Data\AddressInterface;
+use Magento\Quote\Api\GuestBillingAddressManagementInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+class VerifyIsGuestCheckoutEnabledBeforeAssignBillingAddress
+{
+    /**
+     * @var CheckoutHelper
+     */
+    private CheckoutHelper $checkoutHelper;
+
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    private QuoteIdMaskFactory $quoteIdMaskFactory;
+
+    /**
+     * @var CartRepositoryInterface
+     */
+    private CartRepositoryInterface $cartRepository;
+
+    /**
+     * @param CheckoutHelper $checkoutHelper
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     * @param CartRepositoryInterface $cartRepository
+     */
+    public function __construct(
+        CheckoutHelper $checkoutHelper,
+        QuoteIdMaskFactory $quoteIdMaskFactory,
+        CartRepositoryInterface $cartRepository
+    ) {
+        $this->checkoutHelper = $checkoutHelper;
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->cartRepository = $cartRepository;
+    }
+
+    /**
+     * Checks whether guest checkout is enabled before assigning billing address
+     *
+     * @param GuestBillingAddressManagementInterface $subject
+     * @param string $cartId
+     * @param AddressInterface $address
+     * @param bool $useForShipping
+     * @return void
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function beforeAssign(
+        GuestBillingAddressManagementInterface $subject,
+        $cartId,
+        AddressInterface $address,
+        $useForShipping = false
+    ): void {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        $quote = $this->cartRepository->get($quoteIdMask->getQuoteId());
+        if (!$this->checkoutHelper->isAllowedGuestCheckout($quote)) {
+            throw new CouldNotSaveException(__('Sorry, guest checkout is not available.'));
+        }
+    }
+}
diff --git a/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforePlaceOrder.php b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforePlaceOrder.php
new file mode 100644
index 00000000000..3691b25c308
--- /dev/null
+++ b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforePlaceOrder.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+declare(strict_types=1);
+
+namespace Magento\Checkout\Plugin\Api;
+
+use Magento\Checkout\Helper\Data as CheckoutHelper;
+use Magento\Framework\Exception\CouldNotSaveException;
+use Magento\Quote\Api\CartRepositoryInterface;
+use Magento\Quote\Api\Data\PaymentInterface;
+use Magento\Quote\Api\GuestCartManagementInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+class VerifyIsGuestCheckoutEnabledBeforePlaceOrder
+{
+    /**
+     * @var CheckoutHelper
+     */
+    private CheckoutHelper $checkoutHelper;
+
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    private QuoteIdMaskFactory $quoteIdMaskFactory;
+
+    /**
+     * @var CartRepositoryInterface
+     */
+    private CartRepositoryInterface $cartRepository;
+
+    /**
+     * @param CheckoutHelper $checkoutHelper
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     * @param CartRepositoryInterface $cartRepository
+     */
+    public function __construct(
+        CheckoutHelper $checkoutHelper,
+        QuoteIdMaskFactory $quoteIdMaskFactory,
+        CartRepositoryInterface $cartRepository
+    ) {
+        $this->checkoutHelper = $checkoutHelper;
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->cartRepository = $cartRepository;
+    }
+
+    /**
+     * Checks whether guest checkout is enabled before placing order
+     *
+     * @param GuestCartManagementInterface $subject
+     * @param string $cartId
+     * @param PaymentInterface|null $paymentMethod
+     * @return void
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function beforePlaceOrder(
+        GuestCartManagementInterface $subject,
+        $cartId,
+        PaymentInterface $paymentMethod = null
+    ): void {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        $quote = $this->cartRepository->get($quoteIdMask->getQuoteId());
+        if (!$this->checkoutHelper->isAllowedGuestCheckout($quote)) {
+            throw new CouldNotSaveException(__('Sorry, guest checkout is not available.'));
+        }
+    }
+}
diff --git a/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeSavePaymentInformation.php b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeSavePaymentInformation.php
new file mode 100644
index 00000000000..1644bf945cd
--- /dev/null
+++ b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeSavePaymentInformation.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+declare(strict_types=1);
+
+namespace Magento\Checkout\Plugin\Api;
+
+use Magento\Checkout\Api\GuestPaymentInformationManagementInterface;
+use Magento\Checkout\Helper\Data as CheckoutHelper;
+use Magento\Framework\Exception\CouldNotSaveException;
+use Magento\Quote\Api\CartRepositoryInterface;
+use Magento\Quote\Api\Data\AddressInterface;
+use Magento\Quote\Api\Data\PaymentInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+class VerifyIsGuestCheckoutEnabledBeforeSavePaymentInformation
+{
+    /**
+     * @var CheckoutHelper
+     */
+    private CheckoutHelper $checkoutHelper;
+
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    private QuoteIdMaskFactory $quoteIdMaskFactory;
+
+    /**
+     * @var CartRepositoryInterface
+     */
+    private CartRepositoryInterface $cartRepository;
+
+    /**
+     * @param CheckoutHelper $checkoutHelper
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     * @param CartRepositoryInterface $cartRepository
+     */
+    public function __construct(
+        CheckoutHelper $checkoutHelper,
+        QuoteIdMaskFactory $quoteIdMaskFactory,
+        CartRepositoryInterface $cartRepository
+    ) {
+        $this->checkoutHelper = $checkoutHelper;
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->cartRepository = $cartRepository;
+    }
+
+    /**
+     * Checks whether guest checkout is enabled before saving payment information
+     *
+     * @param GuestPaymentInformationManagementInterface $subject
+     * @param string $cartId
+     * @param string $email
+     * @param PaymentInterface $paymentMethod
+     * @param AddressInterface|null $billingAddress
+     * @return void
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function beforeSavePaymentInformation(
+        GuestPaymentInformationManagementInterface $subject,
+        $cartId,
+        $email,
+        PaymentInterface $paymentMethod,
+        AddressInterface $billingAddress = null
+    ): void {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        $quote = $this->cartRepository->get($quoteIdMask->getQuoteId());
+        if (!$this->checkoutHelper->isAllowedGuestCheckout($quote)) {
+            throw new CouldNotSaveException(__('Sorry, guest checkout is not available.'));
+        }
+    }
+}
diff --git a/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeSaveShippingInformation.php b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeSaveShippingInformation.php
new file mode 100644
index 00000000000..6888fe0a3ff
--- /dev/null
+++ b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeSaveShippingInformation.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+declare(strict_types=1);
+
+namespace Magento\Checkout\Plugin\Api;
+
+use Magento\Checkout\Api\Data\ShippingInformationInterface;
+use Magento\Checkout\Api\GuestShippingInformationManagementInterface;
+use Magento\Checkout\Helper\Data as CheckoutHelper;
+use Magento\Framework\Exception\CouldNotSaveException;
+use Magento\Quote\Api\CartRepositoryInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+class VerifyIsGuestCheckoutEnabledBeforeSaveShippingInformation
+{
+    /**
+     * @var CheckoutHelper
+     */
+    private CheckoutHelper $checkoutHelper;
+
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    private QuoteIdMaskFactory $quoteIdMaskFactory;
+
+    /**
+     * @var CartRepositoryInterface
+     */
+    private CartRepositoryInterface $cartRepository;
+
+    /**
+     * @param CheckoutHelper $checkoutHelper
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     * @param CartRepositoryInterface $cartRepository
+     */
+    public function __construct(
+        CheckoutHelper $checkoutHelper,
+        QuoteIdMaskFactory $quoteIdMaskFactory,
+        CartRepositoryInterface $cartRepository
+    ) {
+        $this->checkoutHelper = $checkoutHelper;
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->cartRepository = $cartRepository;
+    }
+
+    /**
+     * Checks whether guest checkout is enabled before saving shipping information
+     *
+     * @param GuestShippingInformationManagementInterface $subject
+     * @param string $cartId
+     * @param ShippingInformationInterface $addressInformation
+     * @return void
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function beforeSaveAddressInformation(
+        GuestShippingInformationManagementInterface $subject,
+        $cartId,
+        ShippingInformationInterface $addressInformation
+    ): void {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        $quote = $this->cartRepository->get($quoteIdMask->getQuoteId());
+        if (!$this->checkoutHelper->isAllowedGuestCheckout($quote)) {
+            throw new CouldNotSaveException(__('Sorry, guest checkout is not available.'));
+        }
+    }
+}
diff --git a/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeSetPaymentMethod.php b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeSetPaymentMethod.php
new file mode 100644
index 00000000000..3a2fcd96119
--- /dev/null
+++ b/vendor/magento/module-checkout/Plugin/Api/VerifyIsGuestCheckoutEnabledBeforeSetPaymentMethod.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+declare(strict_types=1);
+
+namespace Magento\Checkout\Plugin\Api;
+
+use Magento\Checkout\Helper\Data as CheckoutHelper;
+use Magento\Framework\Exception\CouldNotSaveException;
+use Magento\Quote\Api\CartRepositoryInterface;
+use Magento\Quote\Api\Data\PaymentInterface;
+use Magento\Quote\Api\GuestPaymentMethodManagementInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+class VerifyIsGuestCheckoutEnabledBeforeSetPaymentMethod
+{
+    /**
+     * @var CheckoutHelper
+     */
+    private CheckoutHelper $checkoutHelper;
+
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    private QuoteIdMaskFactory $quoteIdMaskFactory;
+
+    /**
+     * @var CartRepositoryInterface
+     */
+    private CartRepositoryInterface $cartRepository;
+
+    /**
+     * @param CheckoutHelper $checkoutHelper
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     * @param CartRepositoryInterface $cartRepository
+     */
+    public function __construct(
+        CheckoutHelper $checkoutHelper,
+        QuoteIdMaskFactory $quoteIdMaskFactory,
+        CartRepositoryInterface $cartRepository
+    ) {
+        $this->checkoutHelper = $checkoutHelper;
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->cartRepository = $cartRepository;
+    }
+
+    /**
+     * Checks whether guest checkout is enabled before setting payment method
+     *
+     * @param GuestPaymentMethodManagementInterface $subject
+     * @param string $cartId
+     * @param PaymentInterface $method
+     * @return void
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function beforeSet(
+        GuestPaymentMethodManagementInterface $subject,
+        $cartId,
+        PaymentInterface $method
+    ): void {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        $quote = $this->cartRepository->get($quoteIdMask->getQuoteId());
+        if (!$this->checkoutHelper->isAllowedGuestCheckout($quote)) {
+            throw new CouldNotSaveException(__('Sorry, guest checkout is not available.'));
+        }
+    }
+}
diff --git a/vendor/magento/module-checkout/etc/webapi_rest/di.xml b/vendor/magento/module-checkout/etc/webapi_rest/di.xml
new file mode 100644
index 00000000000..2f426d96b4e
--- /dev/null
+++ b/vendor/magento/module-checkout/etc/webapi_rest/di.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
+    <type name="Magento\Checkout\Api\GuestPaymentInformationManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforeSavePaymentInformation"/>
+    </type>
+    <type name="Magento\Checkout\Api\GuestShippingInformationManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforeSaveShippingInformation"/>
+    </type>
+    <type name="Magento\Quote\Api\GuestCartManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforePlaceOrder"/>
+    </type>
+    <type name="Magento\Quote\Api\GuestPaymentMethodManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforeSetPaymentMethod"/>
+    </type>
+    <type name="Magento\Quote\Api\GuestBillingAddressManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforeAssignBillingAddress"/>
+    </type>
+</config>
diff --git a/vendor/magento/module-checkout/etc/webapi_soap/di.xml b/vendor/magento/module-checkout/etc/webapi_soap/di.xml
new file mode 100644
index 00000000000..2f426d96b4e
--- /dev/null
+++ b/vendor/magento/module-checkout/etc/webapi_soap/di.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
+    <type name="Magento\Checkout\Api\GuestPaymentInformationManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforeSavePaymentInformation"/>
+    </type>
+    <type name="Magento\Checkout\Api\GuestShippingInformationManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforeSaveShippingInformation"/>
+    </type>
+    <type name="Magento\Quote\Api\GuestCartManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforePlaceOrder"/>
+    </type>
+    <type name="Magento\Quote\Api\GuestPaymentMethodManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforeSetPaymentMethod"/>
+    </type>
+    <type name="Magento\Quote\Api\GuestBillingAddressManagementInterface">
+        <plugin name="verify_is_guest_checkout_enabled" type="Magento\Checkout\Plugin\Api\VerifyIsGuestCheckoutEnabledBeforeAssignBillingAddress"/>
+    </type>
+</config>
