About 8 weeks ago we began looking into a CiviCRM / QuickBooks integration framework. Our goal is to write a module that allows CiviCRM contributions and contact information to be written to QuickBooks. Our target version is QuickBooks 2009 Premier Non-Profit edition, since that's what we use.
At the very least, the module should be able to:
- Map sources of income in CiviCRM with accounts in QuickBooks.
- Insert Donations, Deposits and Payments from CivCRM to QuickBooks.
- A seamless process that requires little management from the staff.
We found the QuickBooks PHP framework by Keith Palmer to be the best fit for our needs:
It's being actively developed and supported by a handful of programmers who are also using the framework in production environments. It makes SOAP calls using QuickBooks XML (QBXML) to the QuickBooks Web Connector (QBWC). QBWC runs on the same machine as QuickBooks, but CivCRM can of course be running anywhere... locally, on the same network, or in the cloud. The advantage of using his framework is that it already knows how to build proper QBXML messages, simplifies the setup/teardown of the SOAP server, has decent error handling, etc.
Our first task in evaluating the framework was to write some unit tests. We built out all the Object tests (~1800) using PHPUnit and contributed those back to the project. In the process we discovered bugs, fixed them, and contributed those changes back as well. Many more tests will eventually need to be written, but writing the core object tests gave us confidence in the framework.
We're still in the scoping/requirements/use-case phase and without funding it's a low priority for us. If you're interested in funding a CiviCRM/QuickBooks integration, please contact us. We're also blogging about this project on our site, regarding next steps and progress.