I’d like my software to be able to pull bank account transaction information (obviously securely) into a budgeting database. Its possible that customers will come from many different banks. What is the best way to go about doing this?

Web Services. You must make some arrangements with the banking company for details on their exposed web services to get the bank transactions of specific users.

Once you get the specific web services, you can just call these on your application.