Published
Thursday, August 20, 2009 - 09:43
Written by

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:

  1. Map sources of income in CiviCRM with accounts in QuickBooks.
  2. Insert Donations, Deposits and Payments from CivCRM to QuickBooks.
  3. 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.

Comments

can you give us a ballpark estimate of how many hours it will take to get this done. Since i dont know a lot about accounting or QB, lets just estimate for the most basic feature set (and useful). i.e. something that meets 80% of your needs

lobo

There are two use cases that represent ~70% of our needs:

1. "How to collect program fees."
An organization gives us a check. In CiviCRM, we add their contribution and CiviCRM pushes contributor, contribution type, total amount and received date into QuickBooks as an invoice. QuickBooks sends a result code or status message back to CiviCRM and contributions that have been "processed" will be flagged accordingly.

2. "How to collect individual donations/foundation grant/corporate giving."
An individual sends a check and we add their contribution OR someone makes an online donation. CiviCRM pushes contributor, contribution type, total amount and received date into QuickBooks as a donation. QuickBooks sends a result code or status message back to CiviCRM and contributions that have been "processed" will be flagged accordingly.

Based on these two use cases, which are basically the same, we think it will take approximately 25 hours to write the code and unit tests. We've already contributed 50 hours to the project and we're looking for the community to fund $2500 to complete the initial prototype. Our hope is that the initial prototype will demonstrate that this approach works and help kick start a larger QuickBooks/CiviCRM integration effort.

We also posted a more detailed review of our scope of work.

I definitely see alot of potential for an accounting integration module/etc., and would certainly be willing to get involved and help out. Where does this project stand at this time?

http://dharmatech.org/blog/quickbookscivicrm_initial_scope/08/21/09

they are looking to raise 2500 for approx 50 hours worth of work on the package

lobo

(accidentally posted above with reply to older post)

I have some accounting experience myself. I started looking around for other similar solutions that are already implemented in the open source community, and that work well already, so we could have a better grasp of what works well already, and then improve on it if necessary.

I might also be able to contribute man-power to this as well.

I will throw an update here shortly.

How is progress on everything so far guys?

I was looking around, and I'm amazed by the EXTREME lack of accounting integration in ALL open-source programs...

Below are a number of useful resources I've found.

To get us started, here's Quickbooks Import QBI for Zen Cart:
http://www.zen-cart.com/index.php?main_page=product_contrib_info&product...
Support Forum Thread for the above:
http://www.zen-cart.com/forum/showthread.php?t=35220
This creates iif files, which are then imported into QB.

Take a look at this thread:
http://www.sugarcrm.com/forums/showthread.php?t=17411

Somebody mentions a possible integration using Jitterbit, but it's only partially open-source... and licensed under their own license ( jitterbit {dot} com/Product/license.php ). Is there anyone with legal experience in the forums who can take a look at this and see how open source it really is?

Also, take a look at the Compare Editions tab on their website.

Now, this seems to be a fully open source data mashup integration solution:
http://www.apatar.com/
http://www.apatarforge.org/

Check out this thread:
chasesagum {dot} com/zen-cart-sugar-crm-quickboks-heaven

This seems to be an implementation guide for a proprietary SugarCRM-QuickBooks integration module that we can glean some ideas from:

thelongreach {dot} com/Brochure%20Files/info@hand%20Finance%20(QB)%20Implementation%20Guide.pdf

Here's a movie demo of how the integration module works:
infoathand {dot} com/videos/info@hand%20Finance%20for%20QuickBooks.mov

PHP Quickbooks Framework:
https://idnforums.intuit {dot} com/messageview.aspx?FTVAR_FORUMVIEWTMP=Threaded&catid=56&threadid=9164

Please share your thoughts. We should all decide on a platform/course of action, and I don't see why we couldn't have something usable for civiCRM very shortly.

The PHP framework you mention at the end of your post is the conclusion we came to a few months ago after researching different solutions. We've already developed a slew of tests to help validate functionality. We've blogged about it on our site as well as the CiviCRM Blog. The PHP framework is a starting point of proven code, running in production, used and supported by the developer. The tests and bug fixes we've provided helps sets the stage for a prototype module.

Again, we are looking for funding sources from the community or users with similar requirements listed to develop the prototype. If you know of anyone, please send them our way.

Now that you know more about the project, are you still eager to help out?

Sounds great. Quickbooks is the 500lb guerrilla in small org accounting.

A couple quick comments:

  • I don't have any resources to contribute on this, but (on another project) I developed a Java connector for QuickBooks Online Edition. If you're interested in making your work compatible with QBOE, then I can offer some thoughts/experiences.
  • The linked framework is under a 4-clause BSD license (i.e. with advertising clause) which is generally considered incompatible with GPL/AGPL. Any idea if the author is amenable to use with Civi?

Thanks for the response. We have no plans to handle QBOE at the moment, since we don't use it. It seems like there might be more options for hooking CiviCRM data into QBOE... possibly using REST. Keith's framework also has support for QBOE but we haven't written any tests around it so we can't vouch for the stability. Would be great to get your insight and experience if we ever get a chance to build out that aspect.

Seems like a modified BSD license is compatible with GPL. Keith mentions both in his documentation and on the download page that he will work with a group around licensing. It's unlikely that it will be a problem, but definitely something worth investigating. We've had some e-mail exchanges with him and he's been very helpful in the past.

I'm the author of the above mentioned PHP framework (Keith Palmer of ConsoliBYTE, LLC).

Just wanted to note that my PHP code has recently undergone some changes:

1. It's been changed to the EPL license, which removes that advertising clause. Might still not be GPL compatible, but is probably better for many people's uses. This is the standard license for code.intuit.com open-source projects on Intuit's website...

2. The code is now hosted on code.intuit.com, Intuit's open-source developer network. I'm still the guy developing it, but I have a bit of an "in" and a bit more backing from Intuit as well now. Check it out here: https://code.intuit.com/sf/projects/php_devkit

3. There has been some Drupal/CiviCRM discussion on the project forums, so anyone interested might want to get in on that: https://code.intuit.com/sf/discussion/do/listPosts/projects.php_devkit/d...