Purchase Reconciliation Tool

{
	"frappe": "15.103.1",
	"payments": "0.0.1",
	"erpnext": "15.102.0",
	"hrms": "15.58.4",
	"india_compliance": "15.26.1",
	"print_designer": "1.6.7",
	"webshop": "0.0.1"
}

Hi @Smit_Vora

We are using above setup on a self hosted environment in production mode.

We are downloading the 2A and 2B reports from GST Portal in .json format and trying to upload them on Purchase Reconciliation Tool. But everytime we are getting an error saying:
App Versions

{
	"erpnext": "15.102.0",
	"frappe": "15.103.1",
	"hrms": "15.58.4",
	"india_compliance": "15.26.1",
	"payments": "0.0.1",
	"print_designer": "1.6.7",
	"webshop": "0.0.1"
}

Route

Form/Purchase Reconciliation Tool/Purchase Reconciliation Tool

Traceback

Traceback (most recent call last):
  File "apps/frappe/frappe/app.py", line 120, in application
    response = frappe.api.handle(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/api/__init__.py", line 52, in handle
    data = endpoint(**arguments)
           ^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/api/v1.py", line 40, in handle_rpc_call
    return frappe.handler.handle()
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/handler.py", line 53, in handle
    data = execute_cmd(cmd)
           ^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/handler.py", line 86, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/__init__.py", line 1764, in call
    return fn(*args, **newargs)
           ^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/handler.py", line 346, in run_doc_method
    response = doc.run_method(method, **args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1011, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1371, in composer
    return composed(self, method, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1353, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1008, in fn
    return method_object(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/utils/typing_validations.py", line 32, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
TypeError: PurchaseReconciliationTool.get_import_history() missing 1 required positional argument: 'date_range'

Request Data

{
	"type": "POST",
	"args": {
		"company_gstin": "All",
		"return_type": "GSTR2b",
		"for_download": false,
		"docs": "{\"name\":\"Purchase Reconciliation Tool\",\"owner\":\"Administrator\",\"modified\":\"2025-07-25 12:26:16.514282\",\"modified_by\":\"Administrator\",\"docstatus\":0,\"idx\":\"0\",\"include_ignored\":0,\"purchase_period\":\"\",\"inward_supply_period\":\"\",\"gst_return\":\"GSTR 2B\",\"doctype\":\"Purchase Reconciliation Tool\",\"__onload\":{\"has_missing_2b_documents\":false},\"__last_sync_on\":\"2026-03-28T13:47:18.023Z\",\"data_state\":null,\"company\":\"TRACKOMATIC INDIA PVT. LTD.\",\"company_gstin\":\"All\",\"__unsaved\":1}",
		"method": "get_import_history",
		"args": "{\"company_gstin\":\"All\",\"return_type\":\"GSTR2b\",\"for_download\":false}"
	},
	"headers": {},
	"error_handlers": {},
	"url": "/api/method/run_doc_method",
	"request_id": null
}

Response Data

{
	"exception": "TypeError: PurchaseReconciliationTool.get_import_history() missing 1 required positional argument: 'date_range'",
	"exc_type": "TypeError"
}

Moreover, If we try to upload the .json file as per below process, we keep getting the errors:

We are continously getting this notification irrespective of the .json files for GSTR-2B directly downloaded from GST Portal and uploaded to ERPNExt without even trying to open/modify the files..

Can you help us if it is an error, bug or mistake from our end??? Or if a solution/fix for this problem has already been provided in any update of India_compliance app???