diff --git a/acquia_purge.routing.yml b/acquia_purge.routing.yml
new file mode 100644
index 0000000..edb58cf
--- /dev/null
+++ b/acquia_purge.routing.yml
@@ -0,0 +1,7 @@
+acquia_purge_ui.logging_config_form:
+  path: '/admin/config/development/performance/purge/softpurge'
+  defaults:
+    _title: 'Configure soft purge'
+    _form: 'Drupal\acquia_purge\Form\SoftPurgeConfigForm'
+  requirements:
+    _permission: 'Enable/Disable Soft Purge in Fastly'
diff --git a/src/AcquiaPlatformCdn/FastlyBackend.php b/src/AcquiaPlatformCdn/FastlyBackend.php
index deb73a7..2660a81 100644
--- a/src/AcquiaPlatformCdn/FastlyBackend.php
+++ b/src/AcquiaPlatformCdn/FastlyBackend.php
@@ -241,11 +241,19 @@ class FastlyBackend extends BackendBase implements BackendInterface {
     $opt['headers']['Accept'] = 'application/json';
     $opt['headers']['Fastly-Key'] = $this->token;
     $opt['headers']['User-Agent'] = 'Acquia Purge';
+
     // Trigger the debugging middleware when Purge's debug mode is enabled.
     if ($this->debugger()->enabled()) {
       $opt['acquia_purge_debugger'] = $this->debugger();
     }
-    return $opt;
+
+    $soft_purge = \Drupal::config('acquia_purge.soft_purge')->get('acquia_purge_soft_purge');
+	if($soft_purge) {
+	  \Drupal::logger('fastly')->notice('Soft purging fastly caches');
+	  $opt['headers']['Fastly-Soft-Purge'] = 1;
+	}
+
+	return $opt;
   }
 
   /**
diff --git a/src/Form/SoftPurgeConfigForm.php b/src/Form/SoftPurgeConfigForm.php
new file mode 100644
index 0000000..64f1854
--- /dev/null
+++ b/src/Form/SoftPurgeConfigForm.php
@@ -0,0 +1,88 @@
+<?php
+
+namespace Drupal\acquia_purge\Form;
+use Drupal\Core\Form\ConfigFormBase;
+use Drupal\Core\Form\FormBase;
+use Drupal\Core\Form\FormStateInterface;
+
+/**
+ * Configure logging behavior.
+ */
+class SoftPurgeConfigForm extends ConfigFormBase {
+
+  /**
+   * Construct a SoftPurgeConfigForm object.
+   *
+   */
+  final public function __construct() {
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getEditableConfigNames() {
+    return [
+      'acquia_purge.soft_purge',
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormId() {
+    return 'acquia_purge.softpurge_config_form';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildForm(array $form, FormStateInterface $form_state) {
+    $form['msg'] = [
+      '#prefix' => '<p>',
+      '#suffix' => '</p>',
+      '#markup' => $this->t("Fastly provides a Soft Purge feature that allows you to mark content as outdated (stale) instead of permanently purging and thereby deleting it from Fastly's caches. Objects invalidated with Soft Purge will be treated as outdated (stale) while Fastly fetches a new version from origin. For more information visit <a href='https://docs.fastly.com/en/guides/soft-purges'>https://docs.fastly.com/en/guides/soft-purges</a>"),
+    ];
+
+    $config = $this->config('acquia_purge.soft_purge');
+    $soft_purge = $config->get('acquia_purge_soft_purge');
+    $form['acquia_purge_soft_purge'] = array(
+      '#type' => 'checkbox',
+      '#title' => $this
+        ->t('Enable Fastly Soft Purge'),
+      '#default_value' => $soft_purge
+    );
+
+    $form['actions'] = ['#type' => 'actions'];
+    $form['actions']['submit'] = [
+      '#type' => 'submit',
+      '#value' => $this->t("Save"),
+      '#weight' => -10,
+      '#button_type' => 'primary',
+    ];
+
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitForm(array &$form, FormStateInterface $form_state) {
+
+    if (is_array($values = $form_state->getValue('acquia_purge_soft_purge'))) {
+      echo 'Soft purge enabled:' . $values;
+    }
+
+    $messenger = \Drupal::messenger();
+    $enabled = $form_state->getValue('acquia_purge_soft_purge');
+    if ($enabled) {
+      $messenger->addMessage('Fastly soft purge enabled', $messenger::TYPE_WARNING);
+    } else{
+      $messenger->addMessage('Fastly soft purge disabled');
+    }
+
+    $this->config('acquia_purge.soft_purge')
+      ->set('acquia_purge_soft_purge', $enabled)
+      ->save();
+  }
+
+}
diff --git a/src/Plugin/Purge/DiagnosticCheck/AcquiaPlatformCdnCheck.php b/src/Plugin/Purge/DiagnosticCheck/AcquiaPlatformCdnCheck.php
index f8ebf3e..5d8aed0 100644
--- a/src/Plugin/Purge/DiagnosticCheck/AcquiaPlatformCdnCheck.php
+++ b/src/Plugin/Purge/DiagnosticCheck/AcquiaPlatformCdnCheck.php
@@ -61,7 +61,13 @@ class AcquiaPlatformCdnCheck extends DiagnosticCheckBase implements DiagnosticCh
    * {@inheritdoc}
    */
   public function run() {
-    // Verify if we're able to fetch the Platform CDN configuration array.
+    $soft_purge = \Drupal::config('acquia_purge.soft_purge')->get('acquia_purge_soft_purge');
+    $messenger = \Drupal::messenger();
+    if ($soft_purge) {
+      $messenger->addMessage('Fastly soft Purge is enabled', $messenger::TYPE_WARNING);
+    }
+
+	  // Verify if we're able to fetch the Platform CDN configuration array.
     if (!$backend_config = BackendFactory::getConfig($this->platformInfo)) {
       $this->recommendation = $this->t("Platform CDN isn't yet configured, please contact Acquia Support to do this for you.");
       return self::SEVERITY_ERROR;
