diff --git a/erpnext/regional/germany/__init__.py b/erpnext/regional/germany/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/erpnext/regional/germany/address_template.html b/erpnext/regional/germany/address_template.html
new file mode 100644
index 00000000000..0df786713c9
--- /dev/null
+++ b/erpnext/regional/germany/address_template.html
@@ -0,0 +1,8 @@
+{{ address_line1 }}
+{% if address_line2 %}{{ address_line2 }}
{% endif -%}
+{{ pincode }} {{ city }}
+{% if country %}{{ country }}
{% endif -%}
+
+{% if phone %}Tel: {{ phone }}
{% endif -%}
+{% if fax %}Fax: {{ fax }}
{% endif -%}
+{% if email_id %}E-Mail: {{ email_id }}
{% endif -%}
diff --git a/erpnext/regional/germany/setup.py b/erpnext/regional/germany/setup.py
new file mode 100644
index 00000000000..a5471366ca2
--- /dev/null
+++ b/erpnext/regional/germany/setup.py
@@ -0,0 +1,31 @@
+import os
+import frappe
+
+
+def setup(company=None, patch=True):
+ if not patch:
+ update_address_template()
+
+
+def update_address_template():
+ """
+ Read address template from file. Update existing Address Template or create a
+ new one.
+ """
+ dir_name = os.path.dirname(__file__)
+ template_path = os.path.join(dir_name, 'address_template.html')
+
+ with open(template_path, 'r') as template_file:
+ template_html = template_file.read()
+
+ address_template = frappe.db.get_value('Address Template', 'Germany')
+
+ if address_template:
+ frappe.db.set_value('Address Template', 'Germany', 'template', template_html)
+ else:
+ # make new html template for Germany
+ frappe.get_doc(dict(
+ doctype='Address Template',
+ country='Germany',
+ template=template_html
+ )).insert()