refactor!: remove `GoCardless Templates`
diff --git a/erpnext/templates/includes/integrations/gocardless_checkout.js b/erpnext/templates/includes/integrations/gocardless_checkout.js
deleted file mode 100644
index b18d550..0000000
--- a/erpnext/templates/includes/integrations/gocardless_checkout.js
+++ /dev/null
@@ -1,24 +0,0 @@
-$(document).ready(function() {
-	var data = {{ frappe.form_dict | json }};
-	var doctype = "{{ reference_doctype }}"
-	var docname = "{{ reference_docname }}"
-
-	frappe.call({
-		method: "erpnext.templates.pages.integrations.gocardless_checkout.check_mandate",
-		freeze: true,
-		headers: {
-			"X-Requested-With": "XMLHttpRequest"
-		},
-		args: {
-			"data": JSON.stringify(data),
-			"reference_doctype": doctype,
-			"reference_docname": docname
-		},
-		callback: function(r) {
-			if (r.message) {
-				window.location.href = r.message.redirect_to
-			}
-		}
-	})
-
-})
diff --git a/erpnext/templates/includes/integrations/gocardless_confirmation.js b/erpnext/templates/includes/integrations/gocardless_confirmation.js
deleted file mode 100644
index fee1d2b..0000000
--- a/erpnext/templates/includes/integrations/gocardless_confirmation.js
+++ /dev/null
@@ -1,24 +0,0 @@
-$(document).ready(function() {
-	var redirect_flow_id = "{{ redirect_flow_id }}";
-	var doctype = "{{ reference_doctype }}";
-	var docname = "{{ reference_docname }}";
-
-	frappe.call({
-		method: "erpnext.templates.pages.integrations.gocardless_confirmation.confirm_payment",
-		freeze: true,
-		headers: {
-			"X-Requested-With": "XMLHttpRequest"
-		},
-		args: {
-			"redirect_flow_id": redirect_flow_id,
-			"reference_doctype": doctype,
-			"reference_docname": docname
-		},
-		callback: function(r) {
-			if (r.message) {
-				window.location.href = r.message.redirect_to;
-			}
-		}
-	});
-
-});
diff --git a/erpnext/templates/pages/integrations/__init__.py b/erpnext/templates/pages/integrations/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/templates/pages/integrations/__init__.py
+++ /dev/null
diff --git a/erpnext/templates/pages/integrations/gocardless_checkout.html b/erpnext/templates/pages/integrations/gocardless_checkout.html
deleted file mode 100644
index 6072db4..0000000
--- a/erpnext/templates/pages/integrations/gocardless_checkout.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{% extends "templates/web.html" %}
-
-{% block title %} Payment {% endblock %}
-
-{%- block header -%}{% endblock %}
-
-{% block script %}
-<script>{% include "templates/includes/integrations/gocardless_checkout.js" %}</script>
-{% endblock %}
-
-{%- block page_content -%}
-<p class='lead text-center'>
-	<span class='gocardless-loading'>{{ _("Loading Payment System") }}</span>
-</p>
-
-{% endblock %}
diff --git a/erpnext/templates/pages/integrations/gocardless_checkout.py b/erpnext/templates/pages/integrations/gocardless_checkout.py
deleted file mode 100644
index 655be52..0000000
--- a/erpnext/templates/pages/integrations/gocardless_checkout.py
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import json
-
-import frappe
-from frappe import _
-from frappe.utils import flt, get_url
-
-from erpnext.erpnext_integrations.doctype.gocardless_settings.gocardless_settings import (
-	get_gateway_controller,
-	gocardless_initialization,
-)
-
-no_cache = 1
-
-expected_keys = (
-	"amount",
-	"title",
-	"description",
-	"reference_doctype",
-	"reference_docname",
-	"payer_name",
-	"payer_email",
-	"order_id",
-	"currency",
-)
-
-
-def get_context(context):
-	context.no_cache = 1
-
-	# all these keys exist in form_dict
-	if not (set(expected_keys) - set(frappe.form_dict.keys())):
-		for key in expected_keys:
-			context[key] = frappe.form_dict[key]
-
-		context["amount"] = flt(context["amount"])
-
-		gateway_controller = get_gateway_controller(context.reference_docname)
-		context["header_img"] = frappe.db.get_value(
-			"GoCardless Settings", gateway_controller, "header_img"
-		)
-
-	else:
-		frappe.redirect_to_message(
-			_("Some information is missing"),
-			_("Looks like someone sent you to an incomplete URL. Please ask them to look into it."),
-		)
-		frappe.local.flags.redirect_location = frappe.local.response.location
-		raise frappe.Redirect
-
-
-@frappe.whitelist(allow_guest=True)
-def check_mandate(data, reference_doctype, reference_docname):
-	data = json.loads(data)
-
-	client = gocardless_initialization(reference_docname)
-
-	payer = frappe.get_doc("Customer", data["payer_name"])
-
-	if payer.customer_type == "Individual" and payer.customer_primary_contact is not None:
-		primary_contact = frappe.get_doc("Contact", payer.customer_primary_contact)
-		prefilled_customer = {
-			"company_name": payer.name,
-			"given_name": primary_contact.first_name,
-		}
-		if primary_contact.last_name is not None:
-			prefilled_customer.update({"family_name": primary_contact.last_name})
-
-		if primary_contact.email_id is not None:
-			prefilled_customer.update({"email": primary_contact.email_id})
-		else:
-			prefilled_customer.update({"email": frappe.session.user})
-
-	else:
-		prefilled_customer = {"company_name": payer.name, "email": frappe.session.user}
-
-	success_url = get_url(
-		"./integrations/gocardless_confirmation?reference_doctype="
-		+ reference_doctype
-		+ "&reference_docname="
-		+ reference_docname
-	)
-
-	try:
-		redirect_flow = client.redirect_flows.create(
-			params={
-				"description": _("Pay {0} {1}").format(data["amount"], data["currency"]),
-				"session_token": frappe.session.user,
-				"success_redirect_url": success_url,
-				"prefilled_customer": prefilled_customer,
-			}
-		)
-
-		return {"redirect_to": redirect_flow.redirect_url}
-
-	except Exception as e:
-		frappe.log_error("GoCardless Payment Error")
-		return {"redirect_to": "/integrations/payment-failed"}
diff --git a/erpnext/templates/pages/integrations/gocardless_confirmation.html b/erpnext/templates/pages/integrations/gocardless_confirmation.html
deleted file mode 100644
index d961c63..0000000
--- a/erpnext/templates/pages/integrations/gocardless_confirmation.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{% extends "templates/web.html" %}
-
-{% block title %} Payment {% endblock %}
-
-{%- block header -%}{% endblock %}
-
-{% block script %}
-<script>{% include "templates/includes/integrations/gocardless_confirmation.js" %}</script>
-{% endblock %}
-
-{%- block page_content -%}
-<p class='lead text-center'>
-	<span class='gocardless-loading'>{{ _("Payment Confirmation") }}</span>
-</p>
-
-{% endblock %}
diff --git a/erpnext/templates/pages/integrations/gocardless_confirmation.py b/erpnext/templates/pages/integrations/gocardless_confirmation.py
deleted file mode 100644
index 559aa48..0000000
--- a/erpnext/templates/pages/integrations/gocardless_confirmation.py
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import frappe
-from frappe import _
-
-from erpnext.erpnext_integrations.doctype.gocardless_settings.gocardless_settings import (
-	get_gateway_controller,
-	gocardless_initialization,
-)
-
-no_cache = 1
-
-expected_keys = ("redirect_flow_id", "reference_doctype", "reference_docname")
-
-
-def get_context(context):
-	context.no_cache = 1
-
-	# all these keys exist in form_dict
-	if not (set(expected_keys) - set(frappe.form_dict.keys())):
-		for key in expected_keys:
-			context[key] = frappe.form_dict[key]
-
-	else:
-		frappe.redirect_to_message(
-			_("Some information is missing"),
-			_("Looks like someone sent you to an incomplete URL. Please ask them to look into it."),
-		)
-		frappe.local.flags.redirect_location = frappe.local.response.location
-		raise frappe.Redirect
-
-
-@frappe.whitelist(allow_guest=True)
-def confirm_payment(redirect_flow_id, reference_doctype, reference_docname):
-
-	client = gocardless_initialization(reference_docname)
-
-	try:
-		redirect_flow = client.redirect_flows.complete(
-			redirect_flow_id, params={"session_token": frappe.session.user}
-		)
-
-		confirmation_url = redirect_flow.confirmation_url
-		gocardless_success_page = frappe.get_hooks("gocardless_success_page")
-		if gocardless_success_page:
-			confirmation_url = frappe.get_attr(gocardless_success_page[-1])(
-				reference_doctype, reference_docname
-			)
-
-		data = {
-			"mandate": redirect_flow.links.mandate,
-			"customer": redirect_flow.links.customer,
-			"redirect_to": confirmation_url,
-			"redirect_message": "Mandate successfully created",
-			"reference_doctype": reference_doctype,
-			"reference_docname": reference_docname,
-		}
-
-		try:
-			create_mandate(data)
-		except Exception as e:
-			frappe.log_error("GoCardless Mandate Registration Error")
-
-		gateway_controller = get_gateway_controller(reference_docname)
-		frappe.get_doc("GoCardless Settings", gateway_controller).create_payment_request(data)
-
-		return {"redirect_to": confirmation_url}
-
-	except Exception as e:
-		frappe.log_error("GoCardless Payment Error")
-		return {"redirect_to": "/integrations/payment-failed"}
-
-
-def create_mandate(data):
-	data = frappe._dict(data)
-	frappe.logger().debug(data)
-
-	mandate = data.get("mandate")
-
-	if frappe.db.exists("GoCardless Mandate", mandate):
-		return
-
-	else:
-		reference_doc = frappe.db.get_value(
-			data.get("reference_doctype"),
-			data.get("reference_docname"),
-			["reference_doctype", "reference_name"],
-			as_dict=1,
-		)
-		erpnext_customer = frappe.db.get_value(
-			reference_doc.reference_doctype, reference_doc.reference_name, ["customer_name"], as_dict=1
-		)
-
-		try:
-			frappe.get_doc(
-				{
-					"doctype": "GoCardless Mandate",
-					"mandate": mandate,
-					"customer": erpnext_customer.customer_name,
-					"gocardless_customer": data.get("customer"),
-				}
-			).insert(ignore_permissions=True)
-
-		except Exception:
-			frappe.log_error("Gocardless: Unable to create mandate")