diff -Nuar a/vendor/magento/module-customer-balance/Model/Plugin/InvoiceRepository.php b/vendor/magento/module-customer-balance/Model/Plugin/InvoiceRepository.php
index b88514d7f78..21a1c82ff0f 100644
--- a/vendor/magento/module-customer-balance/Model/Plugin/InvoiceRepository.php
+++ b/vendor/magento/module-customer-balance/Model/Plugin/InvoiceRepository.php
@@ -5,22 +5,29 @@
  */
 namespace Magento\CustomerBalance\Model\Plugin;
 
+use Magento\Sales\Api\Data\InvoiceExtension;
+use Magento\Sales\Api\Data\InvoiceExtensionFactory;
 use Magento\Sales\Api\Data\InvoiceInterface;
+use Magento\Sales\Api\Data\InvoiceSearchResultInterface;
+use Magento\Sales\Api\InvoiceRepositoryInterface;
 
+/**
+ * Plugin for Invoice repository
+ */
 class InvoiceRepository
 {
     /**
-     * @var \Magento\Sales\Api\Data\InvoiceExtensionFactory
+     * @var InvoiceExtensionFactory
      */
     private $extensionFactory;
 
     /**
      * Init plugin
      *
-     * @param \Magento\Sales\Api\Data\InvoiceExtensionFactory $invoiceExtensionFactory
+     * @param InvoiceExtensionFactory $invoiceExtensionFactory
      */
     public function __construct(
-        \Magento\Sales\Api\Data\InvoiceExtensionFactory $invoiceExtensionFactory
+        InvoiceExtensionFactory $invoiceExtensionFactory
     ) {
         $this->extensionFactory = $invoiceExtensionFactory;
     }
@@ -28,16 +35,16 @@ class InvoiceRepository
     /**
      * Get invoice customer balance
      *
-     * @param \Magento\Sales\Api\InvoiceRepositoryInterface $subject
-     * @param \Magento\Sales\Api\Data\InvoiceInterface $resultEntity
-     * @return \Magento\Sales\Api\Data\InvoiceInterface
+     * @param InvoiceRepositoryInterface $subject
+     * @param InvoiceInterface $resultEntity
+     * @return InvoiceInterface
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function afterGet(
-        \Magento\Sales\Api\InvoiceRepositoryInterface $subject,
-        \Magento\Sales\Api\Data\InvoiceInterface $resultEntity
+        InvoiceRepositoryInterface $subject,
+        InvoiceInterface $resultEntity
     ) {
-        /** @var \Magento\Sales\Api\Data\InvoiceExtension $extensionAttributes */
+        /** @var InvoiceExtension $extensionAttributes */
         $extensionAttributes = $resultEntity->getExtensionAttributes();
         if ($extensionAttributes === null) {
             $extensionAttributes = $this->extensionFactory->create();
@@ -51,14 +58,16 @@ class InvoiceRepository
     }
 
     /**
-     * @param \Magento\Sales\Api\InvoiceRepositoryInterface $subject
-     * @param \Magento\Sales\Api\Data\InvoiceSearchResultInterface $resultInvoice
-     * @return \Magento\Sales\Api\Data\InvoiceSearchResultInterface
+     * Add customer balance amount information to invoice list
+     *
+     * @param InvoiceRepositoryInterface $subject
+     * @param InvoiceSearchResultInterface $resultInvoice
+     * @return InvoiceSearchResultInterface
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function afterGetList(
-        \Magento\Sales\Api\InvoiceRepositoryInterface $subject,
-        \Magento\Sales\Api\Data\InvoiceSearchResultInterface $resultInvoice
+        InvoiceRepositoryInterface $subject,
+        InvoiceSearchResultInterface $resultInvoice
     ) {
         /** @var InvoiceInterface $invoice */
         foreach ($resultInvoice->getItems() as $invoice) {
@@ -70,19 +79,25 @@ class InvoiceRepository
     /**
      * Add customer balance amount information to invoice
      *
-     * @param \Magento\Sales\Api\InvoiceRepositoryInterface $subject
-     * @param \Magento\Sales\Api\Data\InvoiceInterface $entity
+     * @param InvoiceRepositoryInterface $subject
+     * @param InvoiceInterface $entity
      *
      * @return void
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function beforeSave(
-        \Magento\Sales\Api\InvoiceRepositoryInterface $subject,
-        \Magento\Sales\Api\Data\InvoiceInterface $entity
+        InvoiceRepositoryInterface $subject,
+        InvoiceInterface $entity
     ) {
         $extensionAttributes = $entity->getExtensionAttributes();
-        if ($extensionAttributes) {
+        if (!$extensionAttributes) {
+            return;
+        }
+
+        if ($extensionAttributes->getCustomerBalanceAmount() !== null) {
             $entity->setCustomerBalanceAmount($extensionAttributes->getCustomerBalanceAmount());
+        }
+        if ($extensionAttributes->getBaseCustomerBalanceAmount() !== null) {
             $entity->setBaseCustomerBalanceAmount($extensionAttributes->getBaseCustomerBalanceAmount());
         }
     }
diff -Nuar a/vendor/magento/module-gift-card-account/Model/Plugin/InvoiceRepository.php b/vendor/magento/module-gift-card-account/Model/Plugin/InvoiceRepository.php
index 8b9bb605033..ba681ffd49a 100644
--- a/vendor/magento/module-gift-card-account/Model/Plugin/InvoiceRepository.php
+++ b/vendor/magento/module-gift-card-account/Model/Plugin/InvoiceRepository.php
@@ -5,38 +5,44 @@
  */
 namespace Magento\GiftCardAccount\Model\Plugin;
 
+use Magento\Sales\Api\Data\InvoiceExtension;
+use Magento\Sales\Api\Data\InvoiceExtensionFactory;
+use Magento\Sales\Api\Data\InvoiceInterface;
+use Magento\Sales\Api\Data\InvoiceSearchResultInterface;
+use Magento\Sales\Api\InvoiceRepositoryInterface;
+
 /**
  * Plugin for Invoice repository.
  */
 class InvoiceRepository
 {
     /**
-     * @var \Magento\Sales\Api\Data\InvoiceExtensionFactory
+     * @var InvoiceExtensionFactory
      */
     private $extensionFactory;
 
     /**
-     * @param \Magento\Sales\Api\Data\InvoiceExtensionFactory $extensionFactory
+     * @param InvoiceExtensionFactory $extensionFactory
      */
     public function __construct(
-        \Magento\Sales\Api\Data\InvoiceExtensionFactory $extensionFactory
+        InvoiceExtensionFactory $extensionFactory
     ) {
         $this->extensionFactory = $extensionFactory;
     }
 
     /**
-     * @param \Magento\Sales\Api\InvoiceRepositoryInterface $subject
-     * @param \Magento\Sales\Api\Data\InvoiceInterface $entity
-     *
-     * @return \Magento\Sales\Api\Data\InvoiceInterface
+     * Sets gift card account data from extension attributes to Invoice models after get
      *
+     * @param InvoiceRepositoryInterface $subject
+     * @param InvoiceInterface $entity
+     * @return InvoiceInterface
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function afterGet(
-        \Magento\Sales\Api\InvoiceRepositoryInterface $subject,
-        \Magento\Sales\Api\Data\InvoiceInterface $entity
+        InvoiceRepositoryInterface $subject,
+        InvoiceInterface $entity
     ) {
-        /** @var \Magento\Sales\Api\Data\InvoiceExtension $extensionAttributes */
+        /** @var InvoiceExtension $extensionAttributes */
         $extensionAttributes = $entity->getExtensionAttributes();
 
         if ($extensionAttributes === null) {
@@ -52,16 +58,17 @@ class InvoiceRepository
     }
 
     /**
-     * @param \Magento\Sales\Api\InvoiceRepositoryInterface $subject
-     * @param \Magento\Sales\Api\Data\InvoiceSearchResultInterface $entities
+     * Sets gift card account data from extension attributes to Invoice models after get list
      *
-     * @return \Magento\Sales\Api\Data\InvoiceSearchResultInterface
+     * @param InvoiceRepositoryInterface $subject
+     * @param InvoiceSearchResultInterface $entities
+     * @return InvoiceSearchResultInterface
      */
     public function afterGetList(
-        \Magento\Sales\Api\InvoiceRepositoryInterface $subject,
-        \Magento\Sales\Api\Data\InvoiceSearchResultInterface $entities
+        InvoiceRepositoryInterface $subject,
+        InvoiceSearchResultInterface $entities
     ) {
-        /** @var \Magento\Sales\Api\Data\InvoiceInterface $entity */
+        /** @var InvoiceInterface $entity */
         foreach ($entities->getItems() as $entity) {
             $this->afterGet($subject, $entity);
         }
@@ -70,24 +77,26 @@ class InvoiceRepository
     }
 
     /**
-     * Sets gift card account data from extension attributes
-     * to Invoice model.
-     *
-     * @param \Magento\Sales\Api\InvoiceRepositoryInterface $subject
-     * @param \Magento\Sales\Api\Data\InvoiceInterface $entity
+     * Sets gift card account data from extension attributes to Invoice model before save
      *
+     * @param InvoiceRepositoryInterface $subject
+     * @param InvoiceInterface $entity
      * @return void
-     *
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function beforeSave(
-        \Magento\Sales\Api\InvoiceRepositoryInterface $subject,
-        \Magento\Sales\Api\Data\InvoiceInterface $entity
+        InvoiceRepositoryInterface $subject,
+        InvoiceInterface $entity
     ) {
         $extensionAttributes = $entity->getExtensionAttributes();
+        if (!$extensionAttributes) {
+            return;
+        }
 
-        if ($extensionAttributes) {
+        if ($extensionAttributes->getGiftCardsAmount() !== null) {
             $entity->setGiftCardsAmount($extensionAttributes->getGiftCardsAmount());
+        }
+        if ($extensionAttributes->getBaseGiftCardsAmount() !== null) {
             $entity->setBaseGiftCardsAmount($extensionAttributes->getBaseGiftCardsAmount());
         }
     }
