diff --git a/src/Amazon.php b/src/Amazon.php
index ecfe5c5..776b90f 100644
--- a/src/Amazon.php
+++ b/src/Amazon.php
@@ -20,10 +20,11 @@ class Amazon {
 
   /**
    * The server environment variables for (optionally) specifying the access
-   * key and secret.
+   * key, secret and locale.
    */
   const AMAZON_ACCESS_KEY = 'AMAZON_ACCESS_KEY';
   const AMAZON_ACCESS_SECRET = 'AMAZON_ACCESS_SECRET';
+  const AMAZON_ACCESS_LOCALE = 'AMAZON_ACCESS_LOCALE';
 
   /**
    * @var \ApaiIO\ApaiIO
@@ -44,9 +45,9 @@ class Amazon {
    *   the access key is determined from other system variables.
    * @param string $locale
    *   (optional) Which locale to run queries against. Valid values include: de,
-   *   com, co.uk, ca, fr, co.jp, it, cn, es, in.
+   *   com, co.uk, ca, fr, co.jp, it, cn, es, in, com.br, com.mx, com.au.
    */
-  public function __construct($associatesId, $accessKey = '', $accessSecret = '', $locale = 'com') {
+  public function __construct($associatesId, $accessKey = '', $accessSecret = '', $locale = '') {
     if (empty($accessKey)) {
       $accessKey = self::getAccessKey();
       if (!$accessKey) {
@@ -59,6 +60,12 @@ class Amazon {
         throw new \InvalidArgumentException('Configuration missing: Amazon access secret.');
       }
     }
+    if (empty($locale)) {
+      $locale = self::getLocale();
+      if (!$locale) {
+        $locale = 'com';
+      }
+    }
 
     $conf = new GenericConfiguration();
     $conf
@@ -76,7 +83,7 @@ class Amazon {
    * @return string|bool
    *   String on success, FALSE otherwise.
    */
-  static public function getAccessSecret() {
+  public static function getAccessSecret() {
     // Use credentials from environment variables, if available.
     $secret = getenv(self::AMAZON_ACCESS_SECRET);
     if ($secret) {
@@ -85,7 +92,7 @@ class Amazon {
 
     // If not, use Drupal config variables. (Automatically handles overrides
     // in settings.php.)
-    $secret = \Drupal::config('amazon.configuration')->get('access_secret');
+    $secret = \Drupal::config('amazon.settings')->get('access_secret');
     if ($secret) {
       return $secret;
     }
@@ -99,7 +106,7 @@ class Amazon {
    * @return string|bool
    *   String on success, FALSE otherwise.
    */
-  static public function getAccessKey() {
+  public static function getAccessKey() {
     // Use credentials from environment variables, if available.
     $key = getenv(self::AMAZON_ACCESS_KEY);
     if ($key) {
@@ -108,7 +115,30 @@ class Amazon {
 
     // If not, use Drupal config variables. (Automatically handles overrides
     // in settings.php.)
-    $key = \Drupal::config('amazon.configuration')->get('access_key');
+    $key = \Drupal::config('amazon.settings')->get('access_key');
+    if ($key) {
+      return $key;
+    }
+
+    return FALSE;
+  }
+
+  /**
+   * Returns the locale for API calls.
+   *
+   * @return string|bool
+   *   String on success, FALSE otherwise.
+   */
+  public static function getLocale() {
+    // Use value from environment variable, if available.
+    $key = getenv(self::AMAZON_ACCESS_LOCALE);
+    if ($key) {
+      return $key;
+    }
+
+    // If not, use Drupal config variables. (Automatically handles overrides
+    // in settings.php.)
+    $key = \Drupal::config('amazon.settings')->get('locale');
     if ($key) {
       return $key;
     }
diff --git a/src/Form/SettingsForm.php b/src/Form/SettingsForm.php
index a026de1..df574c1 100644
--- a/src/Form/SettingsForm.php
+++ b/src/Form/SettingsForm.php
@@ -78,6 +78,13 @@ class SettingsForm extends ConfigFormBase {
       '#default_value' => $config->get('associates_id'),
     ];
 
+    $form['locale'] = [
+      '#type' => 'textfield',
+      '#title' => $this->t('The locale to be used when calling API.'),
+      '#description' => $this->t('Needs to be entered as top level domain (eg. for Brasil enter "com.br"). See <a href=":url">SOAP Endpoints</a> for available options.', [':url' => 'https://docs.aws.amazon.com/AWSECommerceService/latest/DG/SOAPEndpoints.html']),
+      '#default_value' => $config->get('locale') ?? 'com',
+    ];
+
     $max_age = $config->get('default_max_age');
     if ($max_age == '') {
       // Defaults to 15 minutes.
@@ -113,6 +120,7 @@ class SettingsForm extends ConfigFormBase {
       ->set('access_key', $form_state->getValue('access_key'))
       ->set('access_secret', $form_state->getValue('access_secret'))
       ->set('associates_id', $form_state->getValue('associates_id'))
+      ->set('locale', $form_state->getValue('locale'))
       ->set('default_max_age', $form_state->getValue('default_max_age'))
       ->save();
   }
