diff --git a/config/schema/currency.schema.yml b/config/schema/currency.schema.yml
index 7dadfdf..40ce1a6 100644
--- a/config/schema/currency.schema.yml
+++ b/config/schema/currency.schema.yml
@@ -1,19 +1,19 @@
 currency.currency.*:
   label: Currency
-  type: mapping
+  type: config_entity
   mapping:
     alternativeSigns:
       type: sequence
       label: Alternative signs
       sequence:
-        - type: string
-          label: Alternative sign
+        type: string
+        label: Alternative sign
     exchangeRates:
       type: sequence
       label: Historical exchange reates
       sequence:
-        - type: string
-          label: Historical exchange rates
+        type: string
+        label: Historical exchange rates
     currencyCode:
       label: Currency code
       type: string
@@ -32,32 +32,26 @@ currency.currency.*:
     subunits:
       label: Number of subunits
       type: integer
-    status:
-      label: Status
-      type: boolean
     usages:
       type: sequence
       label: Usages
       sequence:
-        - type: mapping
-          label: Usage
-          mapping:
-            countryCode:
-              label: Country code
-              type: string
-            start:
-              label: Start date
-              type: string
-            end:
-              label: End date
-              type: string
-    uuid:
-      label: Universally Unique ID
-      type: string
+        type: mapping
+        label: Usage
+        mapping:
+          countryCode:
+            label: Country code
+            type: string
+          start:
+            label: Start date
+            type: string
+          end:
+            label: End date
+            type: string
 
 currency.currency_locale.*:
   label: Currency locale
-  type: mapping
+  type: config_entity
   mapping:
     decimalSeparator:
       label: Decimal separator
@@ -71,9 +65,6 @@ currency.currency_locale.*:
     pattern:
       label: Unicode CLDR number pattern
       type: string
-    uuid:
-      label: Universally Unique ID
-      type: string
 
 currency.amount_formatting:
   label: Currency amount formatting
@@ -90,15 +81,15 @@ currency.exchange_rate_provider:
     plugins:
       type: sequence
       sequence:
-        - type: mapping
-          label: Plugin
-          mapping:
-            plugin_id:
-              label: Plugin ID
-              type: string
-            status:
-              label: Status
-              type: boolean
+        type: mapping
+        label: Plugin
+        mapping:
+          plugin_id:
+            label: Plugin ID
+            type: string
+          status:
+            label: Status
+            type: boolean
 
 currency.exchanger.fixed_rates:
   label: Fixed currency exchange rates
@@ -107,15 +98,15 @@ currency.exchanger.fixed_rates:
     rates:
       type: sequence
       sequence:
-        - type: mapping
-          label: Plugin
-          mapping:
-            currency_code_from:
-              label: Source currency code
-              type: string
-            currency_code_to:
-              label: Destination currency code
-              type: string
-            rate:
-              label: Exchange rate
-              type: string
+        type: mapping
+        label: Plugin
+        mapping:
+          currency_code_from:
+            label: Source currency code
+            type: string
+          currency_code_to:
+            label: Destination currency code
+            type: string
+          rate:
+            label: Exchange rate
+            type: string
diff --git a/src/Entity/Currency.php b/src/Entity/Currency.php
index 6d379b9..a4d8238 100644
--- a/src/Entity/Currency.php
+++ b/src/Entity/Currency.php
@@ -33,6 +33,19 @@ use Drupal\currency\Usage;
  *     "uuid" = "uuid",
  *     "status" = "status"
  *   },
+ *   config_export = {
+ *     "alternativeSigns",
+ *     "exchangeRates",
+ *     "currencyCode",
+ *     "currencyNumber",
+ *     "label",
+ *     "roundingStep",
+ *     "sign",
+ *     "subunits",
+ *     "status",
+ *     "usages",
+ *     "uuid",
+ *   },
  *   id = "currency",
  *   label = @Translation("Currency"),
  *   links = {
@@ -436,14 +449,7 @@ class Currency extends ConfigEntityBase implements CurrencyInterface {
    * {@inheritdoc}
    */
   public function toArray() {
-    $properties['alternativeSigns'] = $this->getAlternativeSigns();
-    $properties['currencyCode'] = $this->id();
-    $properties['currencyNumber'] = $this->getCurrencyNumber();
-    $properties['label'] = $this->label();
-    $properties['roundingStep'] = $this->roundingStep;
-    $properties['sign'] = $this->getSign();
-    $properties['subunits'] = $this->getSubunits();
-    $properties['status'] = $this->status();
+    $properties = parent::toArray();
     $properties['usages'] = [];
     foreach ($this->getUsages() as $usage) {
       $properties['usages'][] = array(
@@ -452,7 +458,6 @@ class Currency extends ConfigEntityBase implements CurrencyInterface {
         'countryCode' => $usage->getCountryCode(),
       );
     }
-    $properties['uuid'] = $this->uuid();
 
     return $properties;
   }
diff --git a/src/Entity/CurrencyLocale.php b/src/Entity/CurrencyLocale.php
index e640ded..42a4b4a 100644
--- a/src/Entity/CurrencyLocale.php
+++ b/src/Entity/CurrencyLocale.php
@@ -31,6 +31,13 @@ use Drupal\Core\StringTranslation\StringTranslationTrait;
  *     "uuid" = "uuid",
  *     "status" = "status"
  *   },
+ *   config_export = {
+ *     "decimalSeparator",
+ *     "groupingSeparator",
+ *     "locale",
+ *     "pattern",
+ *     "uuid",
+ *   },
  *   id = "currency_locale",
  *   label = @Translation("Currency currency locale"),
  *   links = {
@@ -195,19 +202,6 @@ class CurrencyLocale extends ConfigEntityBase implements CurrencyLocaleInterface
   }
 
   /**
-   * {@inheritdoc}
-   */
-  public function toArray() {
-    $properties['decimalSeparator'] = $this->getDecimalSeparator();
-    $properties['groupingSeparator'] = $this->getGroupingSeparator();
-    $properties['locale'] = $this->id();
-    $properties['pattern'] = $this->getPattern();
-    $properties['uuid'] = $this->uuid();
-
-    return $properties;
-  }
-
-  /**
    * Sets the country manager.
    *
    * @param \Drupal\Core\Locale\CountryManagerInterface $country_manager
