How should I import data into QuickBooks from my Rails application? - ruby-on-rails

I'm working on a Rails project that needs to be able to import/export (mostly import) invoice data to/from QuickBooks. In Googling, the QuickBooks SDK and Web Connector come up often. However, both seem to only be for the Windows desktop versions. This QuickBooks instance is on a Mac.
The import can either be via an API or, if possible, a file could be generated from within the web app that could later be imported manually.
Currently, QuickBooks 2009 is what's being used. However, assume we can use nearly any version of QuickBooks. Online or desktop (Mac).
What would the best route be to get invoice data to/from the Rails application to QuickBooks?

Unfortunately, QuickBooks for Mac does not support any real method of integration. It's definitely the "black sheep" of the Intuit family.
The closest you can get is IIF file imports/exports.
There is detailed information on this (deprecated, and very limited) file format over here:
http://support.quickbooks.intuit.com/support/articles/HOW12778
You would be so, so, sooo much better off moving off of QuickBooks for Mac through, as the APIs for both QuickBooks for Windows (Web Connector/SDK/COM) and QuickBooks Online (REST v3 APIs) are much, much better than IIF imports/exports.

Related

Use QBFC from a desktop application to interface to Quickbooks online

We have a windows desktop based application that interfaces to Quickbooks Pro desktop using QBFC.
It creates a QBSessionManager, adds message sets to it, performs the requests, and parses the responses.
Is it possible to use this existing QBFC based interface from the desktop application to update Quickbooks online instead? Obviously there would be some changes since we're not loading a local company file, but can we leverage this code to also talk to Quickbooks online?
Perhaps by installing a shim that transports the XML to the online version?
Or utilizing the XML generated by QBFC to update QB online?
Is it possible to use this existing QBFC based interface from the desktop application to update Quickbooks online instead?
No.
The issue here is that the XML that you're generating for QBD(desktop) is very different from the XML (or JSON) that QBO(nline) requires.
The concepts are the same (there are still customers, and invoices, and payments, etc.) but the actual XML messages are significantly different.
Additionally, the authentication mechanisms (a DCOM handshake vs. OAuth) and transports (COM vs. HTTP/TLS) are significantly different so that you can't really use the QBFC components with QBO.
You will likely get to re-use a lot of your code because the concepts are the same, but the parts you re-use won't be any QBFC or XML bits.

Need clarification on QuickBooks Desktop integration with Sync Manager vs Web Connector

From what I understand, Intuit is no longer allowing proprietary integrations with QuickBooks Desktop editions through the Sync Manager and only allowing apps that are put into the marketplace. Is this really the case? If so, is there a timeline for when they will start allowing this? Also, it seems that the supported objects for desktop editions is way behind those supported for the online edition. Will these be available any time soon (I.e. reports such as balance sheet, profit/loss, budget, etc.)?
I ask because we have been using the web connector for a couple of years now and it is not built for the type of use we need. To be specific, we are a franchising company that has a hosted QB solution for each of our franchises. We then pull data and pass jobs to and from our proprietary POS application through the web connector. We run into all sorts of problems with multiple web connectors being open on the same system trying to connect to different files and a host of other issues. Because of this, we are hoping that a more reliable integration can be developed through the Sync Manager.
From what I understand, Intuit is no longer allowing proprietary integrations with QuickBooks Desktop editions through the Sync Manager and only allowing apps that are put into the marketplace. Is this really the case?
Correct. QBD integration with SM and V3/V2 REST endpoints are not supported.
Apps.com is the mainly the SaaS marketplace ( mainly focused on QBO).
No new integration using QBD V3 can be created.
Also, it seems that the supported objects for desktop editions is way behind those supported for the online edition. Will these be available any time soon (i.e. reports such as balance sheet, profit/loss, budget, etc.)?
V3 QBD APIs are already marked as deprecated. There will not be any development on this.
Ref - https://developer.intuit.com/docs/0025_quickbooksapi/0058_faq#Does_QuickBooks_API_support_QuickBooks_Desktop_and_QuickBooks_Online.3F
Please refer the following thread on similar topic.
Integrating with QB Desktop products
Thanks

QuickBooks with Joomla integration

I need to integrate our website in Joomla and quickbooks by importing the customer, invoice data from joomla site to Quickbooks. I am using Quickbooks pro 2014 on windows machine. I see there is QuickBooks PHP DevKit available by ConsoliBYTE. By searching on stackoverflow, I see people have used this toolkit to perform the data import(customer creation) into QuickBooks. I need to know what all Quickbooks functionality can be achieved using this php toolkit. That is what it can and cannot do. Is it build on QB SDK?
For example I have scenario where I need to import customers and need to add them as customer jobs. So does phpdevkit supports job creation? If yes then how do I find the xml for that in phpdevkit quickbooks library? So probably there will be more such similar requirements coming from end user in future and I need to consider these facts while designing the solution using php toolkit. I do not want a solution which is limited to only few or specific functionality. I have read the QB SDK and it is mentioned that SDK can be used with .NET, java. both solution goes with webconnector. SDK can perform almost all the functions as supported in quickbooks UI. So I am confused which one I should pick PHP toolkit by ConsoliByte or .Net/Java based. Language is not a concern for me. My aim is to look for solution flexible and capable to cover maximum QB functionality which includes customer creation, invoice creation, adding customer job and updating the customer/invoice on every synchup as well as limitation which the solution poses must be known before implementation.
So along with what QuickBooks PHP DevKit can or cannot do, I need to know its difference from Java/.Net based QB SDK (Not language PHP or VB.NET/Java but core framework)?
I tried searching it over stackoverflow and google but could not found this information. I appreciate any inputs shared.
Thanks,
Amit
I need to know what all Quickbooks functionality can be achieved using this php toolkit.
The full list is much too long to post here. As a basic overview:
Automatically send orders placed on your website to QuickBooks Online or QuickBooks for Windows
Charge credit cards using the QuickBooks Merchant Service
Connect to Intuit Anywhere / the Intuit Partner Platform and the v3 APIs
Get access to QuickBooks reports
Pull information out of QuickBooks and display it online
Connect to all Microsoft Windows versions of QuickBooks
Connect to QuickBooks Online Edition
etc. etc. etc.
More details available here:
https://github.com/consolibyte/quickbooks-php
For QuickBooks FOR WINDOWS, you can see the full list of operations supported by clicking the "Select Message" drop-down in the OSR:
https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html
For QuickBooks ONLINE, you can see the full list of operations supported here:
https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services
Is it build on QB SDK?
Yes.
So does phpdevkit supports job creation?
Yes. Anything the QuickBooks SDK supports you can do.
If yes then how do I find the xml for that in phpdevkit quickbooks library?
Use the QuickBooks OSR I linked to above. Search for CustomerAdd (Jobs in QuickBooks are just Customers with a ParentRef defined).
We also have examples on our wiki:
http://www.consolibyte.com/docs/index.php/Example_qbXML_Requests
And provide support via our forums:
http://consolibyte.com/forum/
I do not want a solution which is limited to only few or specific functionality.
Again, anything the QuickBooks SDK can do, can be done via the PHP DevKit.
So I am confused which one I should pick PHP toolkit by ConsoliByte or .Net/Java based.
Joomla is written in PHP, so why the heck would you choose something written in another language...? It would be silly to try to tie .NET or Java in with your Joomla app/database...
which includes customer creation, invoice creation, adding customer job and updating the customer/invoice on every synchup
All of that is certainly do-able.
So along with what QuickBooks PHP DevKit can or cannot do, I need to know its difference from Java/.Net based QB SDK (Not language PHP or VB.NET/Java but core framework)?
The difference is the language. .NET is not PHP. PHP is not Java. Everything is just a wrapper around the QuickBooks SDK/COM API. The only practical difference in the language the stuff is written in.

How to connect to Quickbooks premier desktop edition through qbxmlrp using java?

I have installed a quickbooks premier 2014 desktop edition in my system and wants to integrate it using QBXML Request processor API(QBXMLRP2) through java application.
I have gone through the QBXML SDK Documentation but didn't find a proper way on integration with java.
I found this from the documentation :
1.Open a connection to QuickBooks.
2.Start a session for working on a specific QuickBooks company file.
3.Send whatever requests you want to do something in QuickBooks.
4.When you’re done or before your application exits, end the session.
5.Then close the connection.
It will be greatly appreciated if some one could provide me some sample code to integrate with Quickbooks.
And also how to configure QBXMLRP2Lib files in my java application?.
Thanks in advance.
There is a product called QuickBooks Web Connector that allows your app to use QBXML through a web service. Intuit has created a sample java application that communicates with web connector that may provide what you need.
Also, if you're starting a new app from scratch you may want to consider using the newer "V3 QBD" API instead of QBXML.

Quickbook Desktop Development Basics

I've been asked to develop some software for a friend who has a business that he manages using Quickbooks Desktop. I don't have Quickbooks Desktop, and I'm not quite sure how to get started. I've read the docs for about a week now and can't seem to figure out the first step.
From what I've read, it seems like maybe the Quickbooks application starts a web server and mine application will be issuing HTTP requests against that web server ? It would be nice if I didn't have to have the Quickbooks application to do this development; is there a way to read the data file itself ? Does it cost money to develop software that uses this API ?
It looks like I would probably like to use the V2 XML protocol for what I'm trying to do which is: retrieve checks and deposits, make a monthly summary, format that summary according to his specifications, and create a PDF of the statement.
From what I've read, it seems like maybe the Quickbooks application
starts a web server and mine application will be issuing HTTP requests
against that web server ?
That's one possible way to implement things.
If you give more detail about specifically what you're trying to do (what programming language? what version of QuickBooks?) you'll probably get better recommendations than that route.
It would be nice if I didn't have to have the Quickbooks application
to do this development; is there a way to read the data file itself ?
You will have to have QuickBooks, there's no way to read the raw datafile.
It's cheap on Amazon - buy it there.
Does it cost money to develop software that uses this API ?
There are no charges while developing, and for one-off/custom/in-house integrations like you're talking about, there are no charges at all.
It looks like I would probably like to use the V2 XML protocol for what I'm trying to do which is:
Be aware that v2 and v3 is technically only for SaaS applications (e.g. you have to be reselling this as an app, and allowing many people to connect their QuickBooks to your app).
According to Intuit, you should be using the SDK.

Resources