diff --git a/modules/govuk_pay_webform/config/schema/govuk_pay_webform.schema.yml b/modules/govuk_pay_webform/config/schema/govuk_pay_webform.schema.yml
index db55e61..f841031 100644
--- a/modules/govuk_pay_webform/config/schema/govuk_pay_webform.schema.yml
+++ b/modules/govuk_pay_webform/config/schema/govuk_pay_webform.schema.yml
@@ -65,3 +65,6 @@ webform.handler.govuk_pay:
     confirmation_message:
       type: text
       label: 'Confirmation message'
+    confirmation_title:
+      type: text
+      label: 'Confirmation title'
diff --git a/modules/govuk_pay_webform/govuk_pay_webform.module b/modules/govuk_pay_webform/govuk_pay_webform.module
index 3702351..fa0933e 100644
--- a/modules/govuk_pay_webform/govuk_pay_webform.module
+++ b/modules/govuk_pay_webform/govuk_pay_webform.module
@@ -26,6 +26,7 @@ function govuk_pay_webform_theme($existing, $type, $theme, $path) {
         'payment_for' => NULL,
         'payment_reference' => NULL,
         'message' => NULL,
+        'confirmation_title' => NULL,
       ],
     ],
     // @todo check how many of these are filled in.
diff --git a/modules/govuk_pay_webform/src/Controller/GovPayWebformController.php b/modules/govuk_pay_webform/src/Controller/GovPayWebformController.php
index ecf7410..27d264c 100644
--- a/modules/govuk_pay_webform/src/Controller/GovPayWebformController.php
+++ b/modules/govuk_pay_webform/src/Controller/GovPayWebformController.php
@@ -130,7 +130,7 @@ class GovPayWebformController extends ControllerBase {
     LoggerInterface $logger,
     Token $token,
     ConfigFactoryInterface $config_factory,
-    PrivateTempStoreFactory $temp_store_factory
+    PrivateTempStoreFactory $temp_store_factory,
   ) {
     $this->entityTypeManager = $entity_type_manager;
     $this->paymentService = $payment_service;
@@ -225,6 +225,10 @@ class GovPayWebformController extends ControllerBase {
         $session_payment_data['submission_id'],
         $payment_details,
       );
+      // Get confirmation title from webform settings.
+      $handler = $this->getWebformHandler($session_payment_data['webform_id']);
+      $configuration = $handler->getConfiguration();
+      $page['#confirmation_title'] = $configuration['settings']['confirmation_title'];
     }
     $page['#cache']['contexts'][] = 'session';
     $page['#cache']['max-age'] = 0;
diff --git a/modules/govuk_pay_webform/src/GovUkPayWebformService.php b/modules/govuk_pay_webform/src/GovUkPayWebformService.php
index 3fa100d..4cc1130 100644
--- a/modules/govuk_pay_webform/src/GovUkPayWebformService.php
+++ b/modules/govuk_pay_webform/src/GovUkPayWebformService.php
@@ -619,6 +619,7 @@ class GovUkPayWebformService {
         $details['payment_reference'] = $config->get('gov_pay__reference');
       }
     }
+    $details['confirmation_title'] = 'Payment Confirmation';
 
     return $details;
   }
diff --git a/modules/govuk_pay_webform/src/Plugin/WebformHandler/GovPayHandler.php b/modules/govuk_pay_webform/src/Plugin/WebformHandler/GovPayHandler.php
index 6cbdcc4..90893cf 100644
--- a/modules/govuk_pay_webform/src/Plugin/WebformHandler/GovPayHandler.php
+++ b/modules/govuk_pay_webform/src/Plugin/WebformHandler/GovPayHandler.php
@@ -110,6 +110,7 @@ class GovPayHandler extends WebformHandlerBase {
       'default_markup' => '',
       'payment_for' => '',
       'payment_reference' => '',
+      'confirmation_title' => '',
       'confirmation_message' => '',
       'failure_message' => '',
       'metadata' => [],
@@ -245,6 +246,13 @@ class GovPayHandler extends WebformHandlerBase {
       '#default_value' => $this->configuration['payment_reference'],
     ];
 
+    $form['messages']['confirmation_title'] = [
+      '#type' => 'textfield',
+      '#title' => $this->t('Confirmation title'),
+      '#description' => $this->t('Text to display as the main heading on the confirmation page once the user returns to the site from GOV.UK Pay after a successful payment.'),
+      '#default_value' => $this->configuration['confirmation_title'],
+    ];
+
     $form['messages']['confirmation_message'] = [
       '#type' => 'webform_html_editor',
       '#title' => $this->t('Confirmation message'),
diff --git a/modules/govuk_pay_webform/templates/govuk-pay-webform--payment-success-page.html.twig b/modules/govuk_pay_webform/templates/govuk-pay-webform--payment-success-page.html.twig
index 11da358..afb40c4 100644
--- a/modules/govuk_pay_webform/templates/govuk-pay-webform--payment-success-page.html.twig
+++ b/modules/govuk_pay_webform/templates/govuk-pay-webform--payment-success-page.html.twig
@@ -1,7 +1,7 @@
 {{ attach_library('govuk_pay_webform/confirmation') }}
 <div>
     <div id="default_message">
-        <h2>{{ 'Payment complete'|t }}</h1>
+        <h2>{{ confirmation_title }}</h2>
         <dl>
             <dt>{{ 'ID'|t }}</dt><dd>{{ payment_id }}</dd></dt>
             <dt>{{ 'Reference'|t }}</dt><dd>{{ payment_reference }}</dd>
diff --git a/src/Entity/GovUkPayment.php b/src/Entity/GovUkPayment.php
index 95e2788..0ece14a 100644
--- a/src/Entity/GovUkPayment.php
+++ b/src/Entity/GovUkPayment.php
@@ -202,6 +202,22 @@ class GovUkPayment extends RevisionableContentEntityBase implements GovUkPayment
       ->setDisplayConfigurable('view', TRUE)
       ->setRevisionable(TRUE);
 
+    $fields['confirmation_title'] = BaseFieldDefinition::create('string')
+      ->setLabel(t('Confirmation Title'))
+      ->setDescription(t('The confirmation title shown to the user.'))
+      ->setSettings([
+        'default_value' => '',
+        'max_length' => 255,
+        'text_processing' => 0,
+      ])
+      ->setDisplayOptions('view', [
+        'label' => 'above',
+        'type' => 'string',
+        'weight' => -4,
+      ])
+      ->setDisplayConfigurable('view', TRUE)
+      ->setRevisionable(TRUE);
+
     $fields['created'] = BaseFieldDefinition::create('created')
       ->setLabel(t('Created'))
       ->setDescription(t('The time that the entity was created.'))
@@ -297,4 +313,11 @@ class GovUkPayment extends RevisionableContentEntityBase implements GovUkPayment
     return $this->toUrl($rel);
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getConfirmationTitle() {
+    return $this->get('confirmation_title')->value;
+  }
+
 }
