diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index c6bd9ec..95adfd8 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -434,7 +434,7 @@
 erpnext.patches.v8_6.update_timesheet_company_from_PO
 erpnext.patches.v8_6.set_write_permission_for_quotation_for_sales_manager
 erpnext.patches.v8_5.remove_project_type_property_setter
-erpnext.patches.v8_7.add_more_gst_fields
+erpnext.patches.v8_7.add_more_gst_fields #21-09-2017
 erpnext.patches.v8_7.fix_purchase_receipt_status
 erpnext.patches.v8_6.rename_bom_update_tool
 erpnext.patches.v8_7.set_offline_in_pos_settings #11-09-17
@@ -445,3 +445,4 @@
 erpnext.patches.v8_9.set_default_customer_group
 erpnext.patches.v8_9.remove_employee_from_salary_structure_parent
 erpnext.patches.v8_9.delete_gst_doctypes_for_outside_india_accounts
+erpnext.patches.v8_9.update_billing_gstin_for_indian_account
\ No newline at end of file
diff --git a/erpnext/patches/v8_9/update_billing_gstin_for_indian_account.py b/erpnext/patches/v8_9/update_billing_gstin_for_indian_account.py
new file mode 100644
index 0000000..24e2040
--- /dev/null
+++ b/erpnext/patches/v8_9/update_billing_gstin_for_indian_account.py
@@ -0,0 +1,15 @@
+# Copyright (c) 2017, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	company = frappe.get_all('Company', filters = {'country': 'India'})
+
+	if company:
+		for doctype in ['Sales Invoice', 'Delivery Note']:
+			frappe.db.sql(""" update `tab{0}`
+				set billing_address_gstin = (select gstin from `tabAddress` 
+					where name = customer_address) 
+			where customer_address is not null and customer_address != ''""".format(doctype))
\ No newline at end of file
diff --git a/erpnext/regional/india/setup.py b/erpnext/regional/india/setup.py
index 2798cfb..fb40e32 100644
--- a/erpnext/regional/india/setup.py
+++ b/erpnext/regional/india/setup.py
@@ -113,12 +113,15 @@
 		]
 
 	sales_invoice_gst_fields = [
+			dict(fieldname='billing_address_gstin', label='Billing Address GSTIN',
+				fieldtype='Data', insert_after='customer_address',
+				options='customer_address.gstin', print_hide=1),
 			dict(fieldname='customer_gstin', label='Customer GSTIN',
 				fieldtype='Data', insert_after='shipping_address',
 				options='shipping_address_name.gstin', print_hide=1),
 			dict(fieldname='place_of_supply', label='Place of Supply',
 				fieldtype='Data', insert_after='customer_gstin', print_hide=1,
-				options='shipping_address_name.gst_state_number', read_only=1),
+				options='shipping_address_name.gst_state_number', read_only=0),
 			dict(fieldname='company_gstin', label='Company GSTIN',
 				fieldtype='Data', insert_after='company_address',
 				options='company_address.gstin', print_hide=1)
diff --git a/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.py b/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.py
index 40bbae8..4e57a52 100644
--- a/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.py
+++ b/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.py
@@ -8,6 +8,7 @@
 def execute(filters=None):
 	return _execute(filters, additional_table_columns=[
 		dict(fieldtype='Data', label='Customer GSTIN', width=120),
+		dict(fieldtype='Data', label='Billing Address GSTIN', width=140),
 		dict(fieldtype='Data', label='Company GSTIN', width=120),
 		dict(fieldtype='Data', label='Place of Supply', width=120),
 		dict(fieldtype='Data', label='Reverse Charge', width=120),
@@ -17,6 +18,7 @@
 		dict(fieldtype='Data', label='HSN Code', width=120)
 	], additional_query_columns=[
 		'customer_gstin',
+		'billing_address_gstin',
 		'company_gstin',
 		'place_of_supply',
 		'reverse_charge',
diff --git a/erpnext/regional/report/gst_sales_register/gst_sales_register.py b/erpnext/regional/report/gst_sales_register/gst_sales_register.py
index 7f6f809..e79d722 100644
--- a/erpnext/regional/report/gst_sales_register/gst_sales_register.py
+++ b/erpnext/regional/report/gst_sales_register/gst_sales_register.py
@@ -8,6 +8,7 @@
 def execute(filters=None):
 	return _execute(filters, additional_table_columns=[
 		dict(fieldtype='Data', label='Customer GSTIN', width=120),
+		dict(fieldtype='Data', label='Billing Address GSTIN', width=140),
 		dict(fieldtype='Data', label='Company GSTIN', width=120),
 		dict(fieldtype='Data', label='Place of Supply', width=120),
 		dict(fieldtype='Data', label='Reverse Charge', width=120),
@@ -16,6 +17,7 @@
 		dict(fieldtype='Data', label='E-Commerce GSTIN', width=130)
 	], additional_query_columns=[
 		'customer_gstin',
+		'billing_address_gstin',
 		'company_gstin',
 		'place_of_supply',
 		'reverse_charge',
