Try ERPNext Buy Support Partners Foundation

Bank Transactions - Import from OFX

Hi,

I need a way to import my bank transactions from my OFX bank statements (OFX - https://en.wikipedia.org/wiki/Open_Financial_Exchange).

Today, ERPNext import bank transactions from CSV bank statements files.

How can I support this development?

1 Like

Request added here https://github.com/frappe/erpnext/issues/18602

@rmehta could you please tell me how can I support this feature request?

Hey drop in a mail to hello@erpnext.com

@rmehta I already did and got a few answers and then silence for more than 10 days. Could you help me with that?

ERPNext is really missing this feature…

“ERPNext is really missing this feature…”

What might explain why the lack of initiative?

“The OFX Protocol is the standard for two-way exchange of financial data.”

https://www.ofx.net/

https://ofxtools.readthedocs.io/en/latest/

1 Like

@clarkej right, let’s try to investigate the reasons why OFX isn’t being developed.

Lack of Documentation for Community
Our team tried to understand how to start to develop for ERPNext and the lack of clear instructions about how we could contribute to ERPNext + Frappe is a real problem.

Should OFX import be implemented into the Frappe project first or go directly to ERPNext project? What are the code patterns and architecture specifications we should care about?

There is no clear communication or documentation or definition coming from ERPNext+Frappe.

ERPNext Team focus
ERPNext team may be focusing on things they care about and, for small businesses, financial control usually is not a priority - even though it should be…

Can you be specific what is amiss here - a forum search on ‘contribution guidelines’ also a Google search on ‘site: github erpnext guidelines’ turns up advice

“There is no clear communication or documentation or definition coming from ERPNext+Frappe.”

In light of the code, the docs and this forum, what more do you require?

I think that this specifies what you are asking:

In that case probably erpnext -

frappe@ubuntu1804lts:~/frappe-bench$ find . -name ‘bank_*.py’
./apps/erpnext/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.py
./apps/erpnext/erpnext/accounts/doctype/bank_transaction_mapping/bank_transaction_mapping.py
./apps/erpnext/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
./apps/erpnext/erpnext/accounts/doctype/bank_transaction/bank_transaction_upload.py
./apps/erpnext/erpnext/accounts/doctype/bank_statement_transaction_settings_item/bank_statement_transaction_settings_item.py
./apps/erpnext/erpnext/accounts/doctype/bank_statement_transaction_settings/bank_statement_transaction_settings.py
./apps/erpnext/erpnext/accounts/doctype/bank_statement_settings/bank_statement_settings.py
./apps/erpnext/erpnext/accounts/doctype/bank_statement_transaction_entry/bank_statement_transaction_entry.py
./apps/erpnext/erpnext/accounts/doctype/bank_guarantee/bank_guarantee.py
./apps/erpnext/erpnext/accounts/doctype/bank_statement_transaction_invoice_item/bank_statement_transaction_invoice_item.py
./apps/erpnext/erpnext/accounts/doctype/bank_account/bank_account_dashboard.py
./apps/erpnext/erpnext/accounts/doctype/bank_account/bank_account.py
./apps/erpnext/erpnext/accounts/doctype/bank_statement_transaction_payment_item/bank_statement_transaction_payment_item.py
./apps/erpnext/erpnext/accounts/doctype/bank_statement_settings_item/bank_statement_settings_item.py
./apps/erpnext/erpnext/accounts/doctype/bank/bank_dashboard.py
./apps/erpnext/erpnext/accounts/doctype/bank_transaction_payments/bank_transaction_payments.py
./apps/erpnext/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py
./apps/erpnext/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
./apps/erpnext/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
./apps/erpnext/erpnext/accounts/page/bank_reconciliation/bank_reconciliation.py
./apps/erpnext/erpnext/hr/report/bank_remittance/bank_remittance.py
./env/lib/python3.6/site-packages/stripe/api_resources/bank_account.py
./env/lib/python3.6/site-packages/gocardless_pro/resources/bank_details_lookup.py
./env/lib/python3.6/site-packages/gocardless_pro/services/bank_details_lookups_service.py

Here’s the file where Bank Statements are uploaded:

As you can see, lines 23 and 27, read_csv_content and read_xlsx_file_from_attached_file functions come from “frappe.utils”. So… in order to create a function “read_ofx_content” or something like that I must know where to place it respecting source code patterns, readability and architecture.

1 Like

Yes in that case you may want to add or modify a method here in frappe

https://github.com/frappe/frappe/blob/develop/frappe/handler.py

https://github.com/frappe/frappe/blob/develop/frappe/utils/file_manager.py

Your case for user transparency concern can be resolved in due course no?

Frappe and the community can advise you here.

Refactoring can fix problems that arise…