Mukarram Mukhtar

QuickBooks with .NET

How to integrate Quick Books with .Net application:

If you are a .NET developer and you’ve got an assignment to integrate Quick Books with a .NET C# application then I guess there is something iniquitous you did in the past which goddess Fortuna didn’t like at all and now she is up to your retribution. The situation gets worse since there is not much help on web. So for those folks who consider themselves as “R n’ D champions” and got this assignment; you guys are in big trouble. Experience of integration of C# application with Quick Books was very challenging to me; and now here I am presenting in front of you what I achieved from spending nights after nights, head scratching and wall banging efforts.

Introduction & Architecture:

So let’s start by understanding what are the prerequisites of this project are:

· Quick Books, obviously, make sure it’s installed with multi-user license.

· Quick Books SDK, available here (http://developer.intuit.com/) search for Download the QBSDK 7.0 or latest.

Now let’s quickly go through the design of my small application which will talk to Quick Books. Basically the purpose of this application is to show you how a .NET application can request and retrieve some information e.g. list of vendors from QB. Likewise, if .NET application wants to insert some data e.g. a vendor again; how it can be done. Following is the design architecture of the application we are about to build:

Let me just quickly explain the above architecture and then we can move forward towards coding on this design. Presentation layer consists of a win form designed and developed in C#. Through this form we will perform our CURD (Create, Update, Read and Delete) operations. This form instantiates business objects Vendor, which is present in the Vendor.cs file. Common.cs contains some other helper business objects and classes used in application. Right besides Business Layer, we have Data Access Layer which includes RequestBroker.cs. This class does most of the data transactions with QuickBooks. Finally, quick book’s company file is the data layer. After quickly going through the simple design architecture let’s see how things work here. Foremost, let’s take a quick look at our vendor class which is a business object for Vendor DB/QB entity.

Business Layer:

[Serializable]

public class Vendor

{

private string name;

private string companyName;

private string contactName;

private string phoneNumber;

private string faxNumber;

private bool isActive;

private string type;

public string Name

{

get { return this.name; }

set { this.name = value; }

}

public string Type

{

get { return this.type; }

set { this.type = value; }

}

public string CompanyName

{

get { return this.companyName; }

set { this.companyName = value; }

}

public string ContactName

{

get { return this.contactName; }

set { this.contactName = value; }

}

public string PhoneNumber

{

get { return this.phoneNumber; }

set { this.phoneNumber = value; }

}

public string FaxNumber

{

get { return this.faxNumber; }

set { this.faxNumber = value; }

}

public bool IsActive

{

get { return this.isActive; }

set { this.isActive = value; }

}

public Vendor()

{

this.name = this.companyName = this.contactName =

this.phoneNumber = this.faxNumber = string.Empty;

this.isActive = true;

this.type = “Service”; // Lets set some default vendor type

}

public Vendor(string name) : this()

{

this.name = name;

}

#region Fill Request Methods

public void FillViewRequest(IVendorRet vendorReturn, bool completeInformation)

{

if (vendorReturn.Name != null)

this.name = vendorReturn.Name.GetValue();

if (completeInformation)

{

if (vendorReturn.CompanyName != null)

this.companyName = vendorReturn.CompanyName.GetValue();

if (vendorReturn.Phone != null)

this.phoneNumber = vendorReturn.Phone.GetValue();

if (vendorReturn.Fax != null)

this.faxNumber = vendorReturn.Fax.GetValue();

if (vendorReturn.Contact != null)

this.contactName = vendorReturn.Contact.GetValue();

if (vendorReturn.IsActive != null)

this.isActive = vendorReturn.IsActive.GetValue();

if (vendorReturn.VendorTypeRef != null && vendorReturn.VendorTypeRef.FullName != null)

this.type = vendorReturn.VendorTypeRef.FullName.GetValue();

}

}

public void FillViewRequest(IVendorRet vendorReturn)

{

this.FillViewRequest(vendorReturn, true);

}

public void FillAddTypeRequest(ref IVendorTypeAdd vendorTypeAddRequest)

{

vendorTypeAddRequest.Name.SetValue(this.type.ToString());

vendorTypeAddRequest.IsActive.SetValue(true);

}

public void FillAddRequest(ref IVendorAdd request)

{

if (this.name.Length > 0)

{

request.Name.SetValue(this.name);

request.NameOnCheck.SetValue(this.name);

}

if (this.companyName.Length > 0)

{

request.CompanyName.SetValue(this.companyName);

request.NameOnCheck.SetValue(this.companyName);

}

if (this.phoneNumber.Length > 0)

request.Phone.SetValue(this.phoneNumber);

if (this.faxNumber.Length > 0)

request.Fax.SetValue(this.faxNumber);

if (this.contactName.Length > 0)

request.Contact.SetValue(this.contactName);

request.IsActive.SetValue(this.isActive);

request.VendorTypeRef.FullName.SetValue(this.type);

}

#endregion

}

Vendor class has some basic private data members and their corresponding public properties like name, phone, fax etc, one default constructor and an overloaded constructor with name parameter. For now, don’t worry about the coding done in Fill Request Methods region; I’m going to explain this region in short. Now let’s jump to Common.cs and see what are other common classes that I’ve made and how do they work.

In Common.cs, first we have two enums:

public enum QBOperationResult

{

Failed = 0,

Succeeded,

Warning,

}

QBOperationResult will tell us the result of any operation we’ll do with QB, e.g. if we send a request for getting the list of all the vendors in the QB file, either the request will be granted successfully or granted with some warning or completely denied. To fetch the correct response from QB, this enum will used. Next is:

public enum QBSortDirection

{

Ascending = 0,

Descending = 1,

}

Let’s suppose we get the list of 100 vendors from QB file, now what column we want to sort this list on and in what direction? QBSortDirection enum will be used in sorting the list in ascending or descending order. Next comes:

[Serializable]

public class QBOperationStatus

{

private string inputParamsXML;

private QBOperationResult status;

private string msg;

private string methodName;

private int spErrorID;

private string spName;

private string spErrorText;

private XmlDocument xmlDoc;

public string InputParamsXML

{

get { return inputParamsXML; }

set { inputParamsXML = value; }

}

public QBOperationResult OperationResult

{

get { return status; }

set { status = value; }

}

public string Message

{

get { return msg; }

set { msg = value; }

}

public int SPErrorID

{

get { return spErrorID; }

set { spErrorID = value; }

}

public string MethodName

{

get { return methodName; }

set { methodName = value; }

}

public string SPName

{

get { return spName; }

set { spName = value; }

}

public string SPErrorMessage

{

get { return spErrorText; }

set { spErrorText = value; }

}

public XmlDocument XmlDoc

{

get { return this.xmlDoc; }

}

public QBOperationStatus()

{

this.spErrorText = this.spName =

this.methodName = this.msg = string.Empty;

this.status = QBOperationResult.Failed;

this.xmlDoc = new XmlDocument();

}

public QBOperationStatus(QBOperationResult operationResult) :

this()

{

this.status = operationResult;

}

}

Most of the features, data members and public properties of this class are unused at this point but kept of later version in which I’ll show how to migrate data to and from QB and SQL Server database via stored procedures; so most of the sp*** data members will be used at that time. Fundamental purpose of this class is to compose QBOperationResult enum and get the status of any QB transaction. Next is the turn for:

[Serializable]

public class ComboBoxItem

{

private string _text;

private int _value;

public string Text

{

get { return this._text; }

set { this._text = value; }

}

public int Value

{

get { return this._value; }

set { this._value = value; }

}

public ComboBoxItem(string text, int value)

{

_text = text;

_value = value;

}

public override string ToString()

{

return _text;

}

}

This simple class is used to instantiate combo box items and then to access their Text and Value properties. Last in this file is:

[Serializable]

public class QBList<Entity> : CollectionBase

{

public Entity this[int index]

{

get { return (Entity)List[index]; }

set { List[index] = value; }

}

public int Add(Entity value)

{

return (List.Add(value));

}

public int IndexOf(Entity value)

{

return (List.IndexOf(value));

}

public void Insert(int index, Entity value)

{

List.Insert(index, value);

}

public void Remove(Entity value)

{

List.Remove(value);

}

public bool Contains(Entity value)

{

return (List.Contains(value));

}

public QBList<Entity> Clone()

{

QBList<Entity> list =

(QBList<Entity>)this.MemberwiseClone();

return list;

}

public Entity GetEntity(string keyName, object keyValue)

{

if (keyName.Length == 0)

return default(Entity);

Hashtable htFromList = GetHashTable(keyName);

if (htFromList.Count > 0)

return (Entity)htFromList[keyValue];

return default(Entity);

}

public Hashtable GetHashTable(string keyColumnName)

{

Hashtable htFromList = new Hashtable();

if (keyColumnName.Length != 0)

{

foreach (Entity entity in this.List)

{

PropertyInfo propertyInfo = typeof(Entity).GetProperty(keyColumnName);

if (null != propertyInfo)

{

Object propertyValue = propertyInfo.GetValue(entity, null);

if (null != propertyValue && !htFromList.ContainsKey(propertyValue))

htFromList.Add(propertyValue, entity);

}

}

}

return htFromList;

}

}

Instead of using Arrays or DataTables, I decided to make my own class, similar to Generic List class, derived from CollectionBase to use enriched methods of the parent class, plus my own customized functionality which suits current projects needs. Now before if move to the brain of the application i.e. RequestBroker.cs, I would prefer to explain how UI is working in this application. In that, first comes view vendor list screen:

Presentation Layer:

In this form I simply got a complete list of vendors present in the QB company file. Let’s take a look at the code responsible for that, you’ll be surprised to see the size of the code:

  • The application name you add should be 100% same as the application name you give in your C# program.
  • Select Ok and then close the QuickBooks.
  • Open it again and then go to File menu and select Switch to Multi-user Mode.
  • Now your company file is ready for external application access.
  • Don’t close QB and try to test you application. QuickBooks will display a certificate dialog box when your application will first time attempt to access the company file. Select Allow in this dialog box, this will register your application’s name in QB for future access.

Note: Due to different version of Quickbooks, some programmers can’t see an “Add Application” button in above mentioned dialogue box. If you can’t see such a button, try skipping this step and move forward. Try running your .NET application while QB is still running, if connection is successful, QB will display a certificate for admin to approve. Approve that certificate and this will add your application in this list too.

So that’s pretty much it is. I hope code snippets and their line-by-line explanations and screenshots will help some programmer to find some solution to his/her assignment. If it does then please don’t forget to give me your feedback on this article.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Configuration;

namespace prjQuickBookIntegration

{

public partial class frmViewVendorList : Form

{

public frmViewVendorList()

{

InitializeComponent();

}

// Line numbers are marked for understanding the code and not the part of actual code

private void frmViewVendorList_Load(object sender, EventArgs e)

{

01 if (ConfigurationSettings.AppSettings[“QBFilePath”].Length > 0)

{

02 RequestBroker broker =

new RequestBroker(ConfigurationSettings.AppSettings[“QBFilePath”]);

03 QBOperationStatus opStatus = new QBOperationStatus();

04 this.grdVendors.DataSource = new QBList<Vendor>();

05 QBList<Vendor> qblVendor = broker.GetVendorList(ref opStatus, true);

06 this.grdVendors.DataSource = qblVendor;

07 if (opStatus.OperationResult == QBOperationResult.Succeeded)

08 this.txtResults.Text = qblVendor.Count.ToString() +

” records retrieved successfully.”;

09 else

10 this.txtResults.Text =

“Vendors could not be retrieved successfully.\r\n” +

opStatus.Message;

}

}

}

}

This is one of the advantages of having a multi-tiered logic of your application that most of the complex part of the application is divided and scattered among different tiers and code looks a lot simple. The first line (line 01) of frmViewVendorList_Load method is checking if app.config entry for the company file path is given or not. App.config entry looks something like this:

<add key=QBFilePath value=D:\shared\Wisdom.QBW/>

After config entry is found, I’m instantiating the RequestBroker class by calling the constructor which takes file path as parameter (line 02). Third line (line 03), instantiates our QBOperationStatus class so that it can be used in the QB operation about to be performed next. After that (Line 04), I’m assigning an empty QBList of type Vendor to my grid control to erase all the previous data, if any, present in the grid. In design time I added columns in grdVendors; these columns point to different properties of the vendor class, see screenshot below:

Line 05, the heart of this method; calls the RequestBroker’s GetVendorList method and assigns the result to the QBList type list declared locally in this method. Line 06, sets the data source property of the grid to show the result set on the screen. Line 07 and onward are just the finishing touch of the method, checking the operation status, whether the operation was performed successfully or not. If the operation was, fortuitously, successfully performed then you’ll see the message in the text box below, with the number of vendors returned. In other case, however, you’ll get a message of failed operation along with its reason.

Data Access Layer:

I think now is the right time to see our RequestBroker class party-by-part. Request Broker class composes a struct called QBVersion. This structure is made basically for keeping the name of the country where the Quick book is installed, major and minor versions of the Quick book. The structure looks something like:

public struct QBVersion

{

public string country;

public short majorVersion;

public short minorVersion;

}

At the top of the RequestBroker.cs import some namespaces as follows:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using Interop.QBFC7;

To use Interop.QBFC7 you need to add references of two interop libraries and your references folder should look like this:

That’s how RequestBroker class starts:

public class RequestBroker

{

public static QBVersion QBVersion;

public static string CompanyFilePath;

public static string ApplicationName;

private QBSessionManager sessionManager;

private StringBuilder requestBrokerLog = new StringBuilder();

private string logFilePath;

public string LogFilePath

{

get { return this.logFilePath; }

set { this.logFilePath = value; }

}

I’ve kept QBVersion, CompanyFilePath and ApplicationName as static because an application can access only one QuickBook file at a time thus all the instances of this class can easily share the information about Quick book and the company file. CompanyFilePath is the actual physical path of the quick book file through which data will be sent and received back and forth to the our application. ApplicationName is name of our application. The exact same name will be registered at QuickBook telling that our [application name] application needs to share some data with it and it should grant whenever there is a request to view or insert data from this application. SessionManager is the class which will open and close the sessions between our application and QuickBooks. For each transaction we need to create and then close such sessions. RequestBrokerLog and logFilePath are the variables used to log all the activities and transactions and their results done by our application with QB. Following are three overloaded constructors used:

/// <summary>

/// Default constructor sets the country, version and application name fields of the class

/// </summary>

public RequestBroker()

{

RequestBroker.QBVersion.country = “US”;

RequestBroker.QBVersion.majorVersion = 6;

RequestBroker.QBVersion.minorVersion = 0;

sessionManager = new QBSessionManager();

CompanyFilePath = @”D:\shared\Wisdom.QBW”; // Default path to company file

ApplicationName = “WITQBInterface”; // Default application name

}

public RequestBroker(string filePath)

: this()

{

CompanyFilePath = filePath.Length > 0 ? filePath.Trim() : string.Empty;

}

public RequestBroker(string country, short majorVersion, short minorVersion, string filePath, string applicationName)

{

if (country.Length > 0) RequestBroker.QBVersion.country = country;

if (majorVersion > 0) RequestBroker.QBVersion.majorVersion = majorVersion;

if (minorVersion > 0) RequestBroker.QBVersion.minorVersion = minorVersion;

sessionManager = new QBSessionManager();

if (filePath.Length > 0 && File.Exists(filePath)) CompanyFilePath = filePath;

if (filePath.Length > 0 && File.Exists(filePath)) this.logFilePath = filePath.Substring(0, filePath.LastIndexOf(“\\”) + 1) + “QBInterface.log”;

if (applicationName.Length > 0) ApplicationName = applicationName;

}

As you might have noticed our Vendor form uses only the second constructor which further calls the default constructor; the third constructor has been written for future use. More or less, all the constructors are performing the same task i.e. initializing and instantiating the data members of the class. Now comes the heart of this class; the method that actually gets data from Quick books.

/// <summary>

/// This method gets all the active vendors from QB matching given criteria

/// </summary>

/// <returns></returns>

// Line numbers are marked for understanding the code and not the part of actual code

public QBList<Vendor> GetVendorList(ref QBOperationStatus opStatus, bool completeInformation)

{

01 QBList<Vendor> qblVendor = new QBList<Vendor>();

try

{

02 opStatus = BeginSession();

03 if (opStatus.OperationResult == QBOperationResult.Succeeded)

{

04 IMsgSetRequest messageSet = CreateRequestMsgSet();

05 IVendorQuery vendorQuery = messageSet.AppendVendorQueryRq();

06 vendorQuery.ORVendorListQuery.VendorListFilter.ActiveStatus.SetValue(ENActiveStatus.asActiveOnly);

07 IMsgSetResponse responseSet = this.GetResponse(messageSet);

08 this.sessionManager.CloseConnection();

09 opStatus = GetResponseStatus(responseSet);

10 IResponse response;

11 ENResponseType responseType;

12 if (responseSet == null || responseSet.ResponseList == null)

opStatus.Message += “\r\n” + “responseSet is null.”;

else

{

13 for (int i = 0; i < responseSet.ResponseList.Count; i++)

{

14 response = responseSet.ResponseList.GetAt(i);

if (response == null || response.Detail == null)

continue;

15 if (response.Type == null)

opStatus.Message += “\r\n” + “responseType is null.”;

else

{

16 responseType = (ENResponseType)response.Type.GetValue();

17 if (responseType == ENResponseType.rtVendorQueryRs)

{

if (response.Detail == null)

opStatus.Message += “\r\n” + “response Detail is null.”;

else

{

18 IVendorRetList vendorList = (IVendorRetList)response.Detail;

19 for (int vendorIndex = 0; vendorIndex < vendorList.Count; vendorIndex++)

{

20 IVendorRet vendor = (IVendorRet)vendorList.GetAt(vendorIndex);

if (vendor != null)

{

21 Vendor iVendor = new Vendor();

22 iVendor.FillViewRequest(vendor, completeInformation);

23 qblVendor.Add(iVendor);

opStatus.Message += “\r\n” + “Vendor retrieved successfully.” + iVendor.Name;

}

}

}

}

}

}

}

}

}

catch (Exception ex)

{

opStatus.Message += “\r\n\r\n” + ex.Message;

}

finally

{

24 this.sessionManager.EndSession();

}

25 return qblVendor;

}

Now let’s quickly skim through this method line by line. Line 01 simply creates a QBList of vendors. Line 02 starts a session with QB. Method BeginSession() returns the result of session open attempt; if the session is successfully opened it will return our OperationStatus as successful; line 03 checks the same. Line 04 instantiates a message request object, this class is imported from namespace QBFC7. This object tells QB what kind of operation is about to be performed in this session. After message request object has been successfully instantiated, we’ll use this object to create a vendor query object with line 05. Line 06 sets the filter of the vendor query we just created. Currently I’m setting a very simple filter i.e. all the active vendors will be retrieved. Line 07 calls QB to actually get the list of vendors. responseSet object now contains all the vendor list. Line 08 closes the connection after the response has been received successfully. Line 09 gets the response status. Lines 10 and 11 are basically just references of IResponse and ResponseType and will be explained in short. Line 12 checks whether we received anything from QB in response to our query or not. If nothing was returned then we’ll simply display “responseSet is null.” Otherwise we’ll proceed to else block. In line 13 we’ll loop through each and every item in responseList object. Each item of responseList is a Vendor object, all we need to do is convert QB’s vendor object into our business vendor object. In line 14 we are getting the ith item of the list and seeing if it is null or not; if it’s null then just skip the rest of the part of the loop and iterate to next item. Line 15 is checking if the responseType has been set properly, if yes then in Line 16 I’m getting the response type, which according to my calculations should be VendorType. Line 17 is again checking whether the response type is correctly set or not. Too defensive programming, isn’t it? Trust me, its worth when you are dealing with QB. In line 18 I finally get the list of the vendors in IVendorRetList object. Now I’m ready to loop through this list and see how many vendors I’ve got. That’s what I’m doing on line 19. Interop QBFC7, is enriched with classes that can work for any kind of .NET programmer’s needs. For example IVendorRetList is for keeping the returned list of vendors from QB and to keep one vendor object at a time we have IVendorRet object. In line 20 I’m getting one vendor object from the list and in next line I’m checking if it’s not null then I’m good to get that interop library object into my business object. If I get a solid IVendorRet object in line 20 then in line 21 I instantiate my business object and in line 22 I call business object’s FillViewRequest (will be explained later) method to get all the information from IVendorRet object to my Vendor business object. In line 23, after I have the vendor object fully populated I can add it in my custom list object. After setting “successful message”, I’m closing the session in finally block in line 24 and line 25 returns the successfully created vendor list to form to be displayed in grid.

As I promised that I’ll explain FillViewRequest of vendor object so let’s see line-by-line how this method is working. Vendor class is populated with two overloaded FillViewRequest methods.

public void FillViewRequest(IVendorRet vendorReturn)

{

this.FillViewRequest(vendorReturn, true);

}

This method simply calls its big brother with a hard coded true parameter. And the big brother is as follows:

public void FillViewRequest(IVendorRet vendorReturn, bool completeInformation)

{

01 if (vendorReturn.Name != null)

02 this.name = vendorReturn.Name.GetValue();

03 if (completeInformation)

{

04 if (vendorReturn.CompanyName != null)

05 this.companyName = vendorReturn.CompanyName.GetValue();

if (vendorReturn.Phone != null)

this.phoneNumber = vendorReturn.Phone.GetValue();

if (vendorReturn.Fax != null)

this.faxNumber = vendorReturn.Fax.GetValue();

if (vendorReturn.Contact != null)

this.contactName = vendorReturn.Contact.GetValue();

if (vendorReturn.IsActive != null)

this.isActive = vendorReturn.IsActive.GetValue();

if (vendorReturn.VendorTypeRef != null && vendorReturn.VendorTypeRef.FullName != null)

this.type = vendorReturn.VendorTypeRef.FullName.GetValue();

}

}

The purpose of this method is to take IVendorRet object as a parameter and then convert and return it into our business object. For this purpose at line 01 I’m checking if Name property is not null (defensive programming, as usual), if not then I’m get its value in line 02. Line 03 is checking if complete information was requested then perform the similar procedure as we did in line 01 and 02 to get the values of all other properties. Line 04 and 05 is another example of doing the same.

We are pretty much done with understanding how this application works; the only thing that is left in this is how to add a new vendor in QB through our application and that I plan to explain in very near future. Now is the time I dwell upon the issues that you might face while setting up QB company file for giving rights to an external application to make CURD (Create, Update, Read and Delete) transactions to it. So before you download the code and start testing the application, there are a couple of settings in QB you need to make. For an external application to be successfully able to make CURD transactions these are the steps you need to follow:

  • Open company file in QB.
  • Go to File menu and select Switch to Single-user Mode as follows

  • Next thing you need to do is open Preferences dialog box by selecting View menu and then preferences.
  • In preferences dialog box select Integrated Applications.
  • In this dialog box select Company Preferences tab.
  • Uncheck both the checkboxes and Add an application name as follows

  • The application name you add should be 100% same as the application name you give in your C# program.
  • Select Ok and then close the QuickBooks.
  • Open it again and then go to File menu and select Switch to Multi-user Mode.
  • Now your company file is ready for external application access.
  • Don’t close QB and try to test you application. QuickBooks will display a certificate dialog box when your application will first time attempt to access the company file. Select Allow in this dialog box, this will register your application’s name in QB for future access.

Note: Due to difference between versions of Quickbooks, some programmers don’t see an “Add Application” button in above mentioned dialogue box. If you can’t see such a button, try skipping that step and move forward to next steps. Try running your .NET application while QB is still running, if connection is successful, QB will display a certificate for admin to approve. Approve that certificate and this will add your application in the list of Approved Applications in your Quickbooks.

So that’s pretty much it is. I hope code snippets and their line-by-line explanations and screenshots will help some programmer to find some solution to his/her assignment. If it does then please don’t forget to give me your feedback on this article.

P.S. After reading this article if you are interested in knowing more about QuickBooks integration, and if you are interested in seeing how to add data in QuickBooks through .NET application, click here.

252 Comments »

  1. Its a very good article about .NET and Quick Books integration. Its difficult to find good articles on this topic and this one answers most of the basic questions for novice to professional users.
    Thanks

    Comment by Usman Ahmed — September 9, 2008 @ 9:19 pm

    • Hi, this is a great article. I am trying to accomplish a similar thing in
      my environment. Can you please forward that zip file of this application
      to my email. I would really appreciate for your help on this.

      Thank you,
      Vijay Nandivada

      Comment by Vijay — August 4, 2009 @ 9:45 pm

    • Hi SIr,

      I am also integrate quick books to desktop application. I have a problem , how can i connect to quick books file for retrieve data of quick books. Please provide me complete code of above code on my email id :- amitkumar51287@gmail.com

      Comment by Amit Kumar — March 28, 2012 @ 2:04 pm

      • Amit, can you give me your hotmail or yahoo email address? i tried sending you the code on gmail but for some reason it’s failing.

        Comment by Mukarram Mukhtar — March 30, 2012 @ 1:55 pm

      • Hi,

        Can you please send me source file to my email address prabupep@gmail.com

        Comment by prabupep — July 28, 2012 @ 9:50 am

    • Hi,This is nice article
      please send complete sample application with zipped folder.
      my mail id:mallareddy.amireddy@gmail.com
      thanks,
      Mallareddy

      Comment by MallaReddy — June 11, 2013 @ 6:39 am

  2. That was awesome. In-depth, easy to follow and to the point. Really appreciate that. Many thanks.

    Comment by Shujaat — September 12, 2008 @ 10:45 am

  3. this article was very helpful to me. thank you very much for writing such an easy and comprehensive article. saved a lot of my time.

    Comment by khurram — September 12, 2008 @ 10:47 am

  4. nice article, where is source code? i have QB with single user license; can i still connect my QB file to my windows .NET application?

    Comment by Boris — September 15, 2008 @ 5:40 pm

  5. Thanks for your comments everybody.

    @ Boris: Yes you can connect your .NET application with single user licensed QB. But then the company file can be accessed by either your application or Quickbooks at a time. Consider your .qbw file as a database and by license only one user (Quickbooks or .NET application) at a time can access it. I hope that answers your question.

    Comment by Mukarram Mukhtar — September 21, 2008 @ 10:36 am

  6. Sir can u please give me its project becouse i tried lots of time to run as u metion but its generate error. if u give me project files so its might be
    easy for me to undersatnd and use it.
    thnx

    zeeshan

    Comment by Zeeshan — October 31, 2008 @ 4:36 am

  7. i m using dotnet Framwork 2.0 and visual studio 2005 so have get lots of error when i build the project plz explain me as soon as u can . i want to create a application which get the date from sqlserver 2005 and using .net transfer in quickbooks and fatch data from quickbooks and transfer in seqlserver 2005 using .net . daily this process will be accure if u know any thing realted it plz help me i will be thnnx ful to u
    plz provide me ur using email addres so it is easy for me to comunicate with u tnx

    Zeeshan

    Comment by Zeeshan — October 31, 2008 @ 5:23 am

  8. i tried to open it but it does not run its generate the errror i m using visual studio 2005

    Comment by zeeshan — October 31, 2008 @ 11:57 am

  9. AOa
    Mukarram
    plx tell me how to cmunicate with quick book to .net
    i want to sent vender and item data from .net framwork is 2.0 to Quickbook professional 2008. and also get the infromation from quickbooks and send to .net visual studio 2005 so please tell me which step i wil follow i asw ur inetgration code but it is not runiing it genrate error at session manager.

    sessionManager = {Interop.QBFC7.QBSessionManagerClass}

    QBXMLVersionsForSession = ‘((Interop.QBFC7.QBSessionManagerClass)(broker.sessionManager)).QBXMLVersionsForSession’ threw an exception of type ‘System.Runtime.InteropServices.COMException’

    Error Mesasge is:
    base {System.SystemException} = {”BeginSession method has not been called or it did not succeed.”}

    ErrorCode = -2147220468

    I have confustion at this position plz telll me what i will do

    i m using sqlserver 2005 and visual studio 2005 .netframwork 2.0
    i have install quickbooks 2008 professional .

    i have ad referance files are

    Interop.QBFC7
    Interop.QBXMLRP2

    this dll file was not avalible in 2.0 framwork so it did not add : System.Linq;

    i m waiting ur response tnx

    Comment by zeeshan — November 3, 2008 @ 5:25 am

  10. A very good article.Just browsed it and soon I am going to dissect it.
    I am a so called R n’ D champions!!
    Hoping to use QB Online edition.
    Let me know if you have any inputs.
    Thanks a bunch

    Comment by koms — November 4, 2008 @ 8:01 pm

  11. Thanks Koms & Zeeshan.

    @ Zeeshan
    I have sent you an e-mail with attached zip file, it includes the .NET project which integrates with Quick Books. There are two win forms in this project; one simply displays list of vendors (form shown in the article above) and the other inserts a new vendor in QB. This is a 100% working application. Please read the code and try to understand what is going on in it and how you can modify to get it working for you. As I said in the article, this integration would be very challenging for developers; and there can be one of 100s of reasons that are failing your integration. For me it is not possible to answer questions of every individual on the web. I hope you would understand that.

    @ Koms
    You are most welcome to dissect it :)
    Please let me know if you have any problems during this dissection; I’ll forward you the same zip as well.

    Enjoy good programming, programmers…

    Comment by Mukarram Mukhtar — November 4, 2008 @ 8:24 pm

    • Hi, this is a great article. I am trying to accomplish a similar thing in
      my environment. Can you please forward that zip file of this application
      to my email. I would really appreciate for your help on this.

      Comment by jitin — February 19, 2010 @ 9:17 am

  12. Mukarram,
    Can u pls send me the zip files. (patil_komal@yahoo.com)Thanks
    I was planning to use visual studio 2008(framework 3.5). What version did u use??

    Comment by komal — November 4, 2008 @ 9:22 pm

    • Hi,

      Can u pls send me the project zip files. (johariqbal@gmail.com)

      Thanks

      Comment by Johar — July 22, 2009 @ 10:06 am

  13. Mukarram,

    Can you please send me the zip files as well? (andrew@andrewhamilton.com)

    I tried to build up the project from the code you provided but I must be missing something.

    Thanks,
    Andrew

    Comment by mouserblitz — November 18, 2008 @ 4:59 am

  14. Hi,

    Do you know how to connect to QB with .NET using web connector? I had tried to use QBFC and QBXML, i can get what i wish but i don;t really know how to connect to QB using web connector. Please advice.

    Thank you.

    Regards,
    YB

    Comment by yb — December 1, 2008 @ 6:09 am

  15. @ Komal & Andrew: Project files have been sent to you; please let me know if you have any questions and don’t forget to give your feedback here in the comments section of the article.

    @ YB: No idea about web connector. My project was, connecting QB with .NET over the LAN and after it was done I couldn’t get much chance to further explore it.

    Comment by Mukarram Mukhtar — December 7, 2008 @ 3:00 pm

  16. Please send me the code at the given Email address and Also told me that Can we export data from SQL Sever to Quick Books.Reply as soon as poosible.

    Regards

    Bilal

    Comment by Bilal Jalil — December 15, 2008 @ 8:35 am

  17. hey Mukarram,

    Great Stuff, can you please send me the project files as well?

    Thanks n regards,
    Arshad Jamal

    Comment by Arshad Jamal — December 16, 2008 @ 9:43 am

  18. ey Mukarram plz tell me how we integrate sqlsever with quickBook.i want to transfer sql server database date into quickbooks.plz guide me.
    (Send me Code or link to My Email Address) Javaidnazaim@hotmail.com

    Comment by javaid — December 22, 2008 @ 3:38 pm

  19. @ Bilal & Arshad: I’ve tried to send you the source code a couple of times but every time I send you the e-mail I get e-mail failure notice. Either type in your correct e-mail or give me an hotmail id.

    @ Javaid: Project files have been sent to you; please let me know if you have any questions and don’t forget to give your feedback here in the comments section of the article.

    Comment by Mukarram Mukhtar — December 23, 2008 @ 2:26 am

  20. Hey Mukarram,

    Thanks for trying to send email.

    here is my hotmail id — aj_saifi@hotmail.com

    regards,
    arshad jamal

    Comment by Arshad Jamal — January 12, 2009 @ 10:40 am

  21. Hey I loved this article… in it you mentioned

    “Most of the features, data members and public properties of this class are unused at this point but kept of later version in which I’ll show how to migrate data to and from QB and SQL Server database via stored procedures; so most of the sp*** data members will be used at that time.”

    This is exactly what I am attempting and I was wondering if you have completed this article and/if you happen to have a working code example for it…

    Thanks so much for taking the time for all of this… it has cleared A LOT up!!!

    Sincerely

    Ernie

    Comment by Ernie — January 15, 2009 @ 3:52 am

  22. I just read some of the responses… would you mind also sending me the zip file… I would greatly appreciate it

    Thanks again

    Ernie

    Comment by Ernie — January 15, 2009 @ 6:26 am

  23. Hi Mukarram,

    Can you send me the code files at aaftab@svam.com. Aso please let me know the version of .net required as i read in your comments that .net 2005 is creating problems.

    Thanks,
    Aaftab

    Comment by Aaftab — January 22, 2009 @ 3:09 pm

  24. Hi,

    Great article. I think, nobody has given complete article on this so far. Thanks a lot.
    Could you please send me the project files?

    Thanks in advance.
    Ravikumar
    pvsravikumar@yahoo.com

    Comment by Ravikumar — February 2, 2009 @ 9:43 am

  25. Hi

    Can you send me the code files at cherukumalla@gmail.com

    Comment by Srinivas Ch — February 2, 2009 @ 9:44 am

  26. Why not attach the source files to this page? Thanks for sharing your solution, if possible please add me to the email list.

    Comment by praet — February 12, 2009 @ 5:43 pm

  27. @Praet: Dude I tried a couple of times to find a way of attaching a zip or rar file, containing project files, with this article but to no avail. If you know how to do it, please let me know. In the meantime, enjoy the code I sent you…

    Comment by Mukarram Mukhtar — February 15, 2009 @ 5:47 am

  28. Hello webmaster
    I would like to share with you a link to your site
    write me here preonrelt@mail.ru

    Comment by Alexwebmaster — March 3, 2009 @ 11:55 am

  29. Hi Mukaram,

    I need to query the bills in QB using billQuery. I got the TxnID and EditSequence of the bill. How i should pass the value TxnID and EditSequence in BillQuery to get the bill?

    Comment by RP — March 4, 2009 @ 1:12 pm

  30. This is a great article. I have encountered many issues trying to navigate the same things. Do you have any more articles on this topic? Can I please get a copy of this project? My email is jbeerman7@hotmail.com. Thanks!

    Comment by Jason — March 5, 2009 @ 7:50 pm

  31. I would also appreciate it if you would send me the zip file. From reading the other comments I suppose I should also ask what version of .NET and Visual Studio you are using to create your app. Looking forward to the continuation of your posting. Are you still planning the addition?

    Thanks very much for your efforts!

    Comment by Curt — March 8, 2009 @ 3:34 am

  32. @ RP: I have abso-bloomo-lutely No clue on this dude. Do you think this project’s source files would give you any help? I can send you a zip file (for free, really!) :)

    @ Jason & Curt: I’ve sent you the zip file. Feel free to give me you feedback here (nobody ever does!)

    @ RP, Jason, Curt: Fellas, I couldn’t get much chance to work in this field after I completed that project. And frankly, I didn’t enjoy much working with this integration. QB people ought to give some more programmer friendly APIs. So far I don’t plan to write more on this topic. A nice article on .NET authentication, however, is coming up soon; in case you are interested, stay tuned ;)

    Comment by Mukarram Mukhtar — March 10, 2009 @ 2:44 am

  33. Hi Mukaram,
    awesome article. i’ve to integrate .NET with Quick Book. if you send me this project source then dat will be great help. ma mail address: samirmahmood_666@yahoo.com

    thanx

    Comment by LAMB OF GOD — April 2, 2009 @ 12:15 pm

  34. Hello Mukaram,

    I am actually working on a C# app. to integrate quickbooks with mysql database. I got the connection working between C# and mysql already but cannot figure out how to integrate C# with quickbooks. I have all the pre-requisites and wanted to ask you if you could send me the zip files as well via email. Thank you and awesome work.

    Comment by Luluboy — April 7, 2009 @ 9:25 pm

  35. Hi,

    Great Article. I would like to appreciate your affort in writing this article. Great work. Can you please sent me the project code/files.
    Thanks in Advance..

    Comment by Baburam — April 17, 2009 @ 1:13 pm

  36. Hello sir, I have studying MCA final year and doing project year. So, lots of doubt in my mind. Please clear my doubts and also give some way of working routes. My application contains customer, product and invoice then how to connect with QuickBooks. Please give one by one step and integrate the data’s finally creating an invoice. Please suggest me my questions.

    Comment by Lakshmi — April 30, 2009 @ 9:42 am

  37. Sir, I would appreciate if you send the code to me. Thanks in advance.

    Comment by Dmitriy — May 3, 2009 @ 3:13 am

  38. This is a great Article!
    I have been looking for directions on how to integrate our in house application and this seems to be a great start

    WOuld it be too much trouble to ask you to send me a copy of the test appliction you mentioned so I can work out a number of issues I am having?

    Comment by Bill Gerold — May 7, 2009 @ 2:03 pm

  39. Hi
    can you please provide me the sourcecode for invoking the Quickbooks UI using .net2.0

    Thanks
    Chandra

    Comment by chandrasekhar — May 12, 2009 @ 12:49 pm

  40. For all my dear readers, following is an interesting correspondence with one of my readers. It has been sorted in descending order, last e-mail on top. I hope you’ll enjoy it:

    ________________________________________

    Dude!!! Are you gonna do anything by yourself or you want me to spoon feed you on each step? :D

    ________________________________________

    Dear Mukarram,

    You wanted feedback on your article. It is really helpful and friendly.
    I have one little doubt though.
    04 this.grdVendors.DataSource = new QBList();
    05 QBList qblVendor = broker.GetVendorList(ref opStatus, true);
    06 this.grdVendors.DataSource = qblVendor;

    … After that (Line 04), I’m assigning an empty QBList of type Vendor to my grid control to erase all the previous data, if any, present in the grid…

    Are you sure we need that? It seems that reassigning data source on line 06 clears all previous data. When I commented out the 04 line, and pressed the Get List button several times, the number of records in the grid didn’t change.

    Can you suggest any materials on how to write checks using QuickBooks from my application (if it is possible at all), and how to update QB data file according to a SQL Server database?

    I really appreciate your generous help.

    Sincerely,
    Dmitriy
    ________________________________________

    Yes, that worked! Thank you so much!

    Dmitriy
    ________________________________________

    Can’t you see an “Add Application” button anywhere around this dialog box? As long as I remember there was a button which would let you add an application in this list but it will be hidden if your QB settings are different than as explained in the article. Since I don’t have a QB license any more, I can’t open a QB and look for this button for you. I would suggest, double-check that you’ve followed all the steps as explained in the article. After that, if you still can’t see such a button, try skipping this step and move forward. Try running your .NET application while QB is still running, if connection is successful, QB will display a certificate for admin to approve. Approve that certificate and this will add your application in this list too.

    Hopefully that would help, let me know.

    Regards,
    Mukarram

    ________________________________________

    Thank you very much!
    You wrote:
    “Uncheck both the checkboxes and Add an application name as follows”.

    But the problem is that I don’t know how to add the application name. The empty list of such names seems to be disabled. Could you please tell me anything about that?

    Thanks.

    Dmitriy

    ________________________________________

    Hi Dmitriy,

    I’ve never seen this error before and therefore absolutely no idea about it. My guess would be, it’s related to access permissions in Quickbooks; and since surprisingly error message is also quite explanatory and programmer friendly, did you try giving your .NET application access rights on your QB file? Please see the last part of my article where I explain how to give these access rights. The part which starts from:

    “Now is the time I dwell upon the issues that you might face while setting up QB company file for giving rights to an external application …”

    Unfortunately I don’t have QB license any more; and menu options and dialoge boxes explained in the article might slightly differ from yours depending upon the QB version you are using. So on that part you are on your own :)

    Hope that would help.

    Happy programming!
    Mukarram

    ________________________________________

    Dear Mukarram,

    Maybe you could answer one question.
    After I ran your application, I received the following exception:

    Connection opened successfully.
    This application is unable to log into this QuickBooks company data file automatically. The QuickBooks administrator must grant permission for an automatic login through the Integrated Application preferences. If such permission was already granted, the administrator must revoke permission, save preferences, then grant the permission again.

    Could you tell how I can solve this problem?

    Thank you very much,

    Sincerely,
    Dmitriy
    ________________________________________

    Hello Folks,

    Attached herewith is the zip file that you requested, it includes the .NET project which integrates with Quick Books. There are two win forms in this project; one simply displays list of vendors (form shown in the article) and the other inserts a new vendor in QB. This is a 100% working application. I hope you’ll be able understand what is going on in it and see how you can customize it for yourself. I’ll wait for your feedback.

    Thanks,
    Mukarram

    p.s. Sorry for the late reply baburam

    Comment by Mukarram Mukhtar — May 15, 2009 @ 9:41 pm

  41. Dear Mukarram

    I was glad to see someone creating a clear and sharp knowledge solution.

    I would like you contact me at my email. I would like to get your assistance on Quickbook integration.

    Thanks in advance

    Ran

    Comment by Ran — May 28, 2009 @ 8:29 pm

  42. Ran,

    You can ask your question here; if you need the source code, please let me know.

    Thanks

    Comment by Mukarram Mukhtar — June 1, 2009 @ 7:48 pm

    • Hi can you pls send me the source code.. thank you..
      mayil

      Comment by Mayil — March 1, 2012 @ 6:37 am

      • Mayil, I’m unable to send you the e-mail. I keep on getting MAILER-DAEMON’s failure notice. Are you sure you’re typing in your e-mail address correctly?

        Comment by Mukarram Mukhtar — March 1, 2012 @ 5:17 pm

      • Hi Mukarram Mukhtar,

        Thanks for your reply.
        I received your reply which says about the Failure notice in my mail inbox. Then I dont know the reason why you are not able to send me the source code…

        Again, My mail ID is : mailtomayil@gmail.com

        I am using Interop.QBFC11 assembly. The code: “opStatus = BeginSession();” not accepting. Can u tel me which class uses BeginSession() method. This method from the above assembly is void method.
        BeginSession(string qbFile, ENOpenMode openMode)

        But ur code says it should return some status like: opStatus = BeginSession();

        pls resend me full the source code.

        Thanks

        Mayil

        Comment by Mayil — March 2, 2012 @ 6:41 am

      • Can you give me your yahoo or hotmail e-mail id? Maybe that will work.

        Comment by Mukarram Mukhtar — March 3, 2012 @ 1:47 am

      • My yahoo id mailtomayil@yahoo.co.in

        Comment by mayil — March 3, 2012 @ 5:37 pm

  43. Dear Mukarram,

    Thank you for the informative article. I found it very useful. Can you please let me know when do you plan to publish the code that shows how to migrate data to and from QB and SQL Server database via stored procedures?

    Thank you,
    Charmen

    Comment by Charmen — June 2, 2009 @ 3:03 pm

  44. Charmen,

    The project of data migration to and from QB and SQL Server is on top of my TODO list; however, I can’t give you an exact date at this point. What you can do is, subscriber to RSS feed of my home page; this way you’ll get an update whenever I’ll post that article.

    Thanks

    Comment by Mukarram Mukhtar — June 2, 2009 @ 4:16 pm

  45. Hi Mukaram,
    Great article. I also have to integrate .NET with Quick Books. I would greatly appreciate it if you could send the source as well.
    Regards,
    David

    Comment by David Cohen — June 8, 2009 @ 8:53 pm

  46. Great article. I also have to integrate .NET with Quick Books. I would greatly appreciate it if you could send the source as well.
    mallesh.varri@gmail.com

    Comment by Mallesh — June 24, 2009 @ 7:27 am

  47. Mallesh, the e-mail id you provided is not valid. I tried sending you the source code but got a postmaster failure message.

    Comment by Mukarram Mukhtar — June 24, 2009 @ 1:57 pm

  48. Hi Mukhtar,

    Iam glad you replied,Thanks a lot.Sorry for giving u the trouble.Here are my mailId’s
    mallesh.varri@gmail.com
    mallesh.varri@hotmail.com
    malleshv@convene-tech.com

    Plz try sending to these mail Id’s

    Once again thanks a lot.

    Comment by Mallesh — June 25, 2009 @ 5:19 am

  49. Hi Mukarram. Nice article with deialed information. Can you send me the zip file at bcamca_deepak@yahoo.co.in. I want to build on the project.

    Thanks and Regards
    Deepak

    Comment by Deepak — June 25, 2009 @ 11:29 am

  50. Hi,

    Can u pls send me the project zip files. (johariqbal@gmail.com)

    Thanks

    Comment by Johar — July 22, 2009 @ 10:25 am

  51. Hi,

    Can you please send me the source code.

    thanks in advance
    KHAN

    Comment by Khan — July 22, 2009 @ 11:01 am

  52. Hi Mukarram,

    I need the source code for the my assignment, please share me the code.

    thanking you

    Scott

    Comment by Scott — July 22, 2009 @ 11:56 am

  53. Johar, Khan & Scott,

    I tried sending you the source code but I received a postmaster failure message. My Hotmail account creates problems sometimes while sending e-mails to Gmail Ids; try giving me your Hotmail or Yahoo Ids.

    -Mukarram

    Comment by Mukarram Mukhtar — July 22, 2009 @ 12:15 pm

    • AOA,

      try on this hotmailID

      thanks

      Khan

      Comment by Scott — July 22, 2009 @ 12:26 pm

      • Oh so Johar, Khan and Scott, all 3 of them are actually one person? :-O

        Man, you didn’t have to request for the source code by using different names :) The source code is free for everyone; I would send you the code even if you tell me your name is Laaloo Parshad :D

        Comment by Mukarram Mukhtar — July 22, 2009 @ 1:19 pm

  54. AOA,

    Please send on this email:(johar.khan@hotmail.com)

    thanks

    Comment by Johar — July 22, 2009 @ 12:48 pm

    • Code is on its way Johar; please check your e-mail in a few minutes. If you don’t see my e-mail in next, let’s say 30 minutes, please let me know.

      Comment by Mukarram Mukhtar — July 22, 2009 @ 1:21 pm

  55. Thanks for sending me the code.
    I am getting this error while running your application
    Retrieving the COM class factory for component with CLSID {FC3C4882-C13E-46E7-96F1-CEE3133207B7} failed due to the following error: 80040154.

    Please guide me

    Comment by Johar — July 24, 2009 @ 4:36 am

    • Johar,

      The source code I sent you was for reference and help. Albeit the application I sent you is a 100% working application, but if it is failing on your machine then please put some of your own effort to resolve it. It is really very difficult for me to trouble shoot everyones’ projects across the globe. I hope you would understand this.

      Thanks,
      Mukarram

      Comment by Mukarram Mukhtar — July 24, 2009 @ 2:39 pm

  56. Hi Mukarram,

    I have to integrate my application with quickbook and im in trouble!!
    It would be great help if you send me the source code.

    Thanks
    Samir Mahmood

    Comment by Samir Mahmood — July 28, 2009 @ 8:49 am

  57. Hi Mukarram,

    my add: samirmahmood_666@yahoo.com

    Thanks
    Samir Mahmood

    Comment by Samir Mahmood — July 28, 2009 @ 8:53 am

  58. Hi Mukarram,
    Nice and rare article on QuickBooks integration. The explanation of topic is also in a neat manner.
    I have just started working with QuickBooks. Found this article while googling for tutorials on it, somehow landed on your page and couldn’t leave this page without giving a feedback. Really great job.
    By the way, can you please send the code files to me too?
    My id is pranav(dot)net(at)live(dot)in

    Keep Going…
    All the very best!

    Best Regards,
    Pranav Ainavolu

    Comment by Pranav — July 31, 2009 @ 8:08 am

  59. Thanks Mukarram for the explanation

    Could you please send me the complete code to my email j4v4jive@yahoo.com

    Thanks in advance

    Comment by John — August 3, 2009 @ 8:19 pm

  60. hi,

    this is very good article. I am trying to accomplish the same.
    Can you please forward me that code .zip file to my email address
    which would be a very great help for me.

    Thank you,
    Vijay

    Comment by Vijay — August 4, 2009 @ 10:00 pm

    • Vijay,

      For some bizarre reason I’m unable to send e-mail from my hotmail id to google addresses. Give me your hotmail or yahoo id so that I can send you the zip file.

      Thanks,
      Mukarram

      Comment by Mukarram Mukhtar — August 5, 2009 @ 12:10 am

  61. hello,

    can u mail the source code of the above to the id shanaj.ml@gmail.com . Its not working for me. Please.

    thanks

    Comment by Shan — August 10, 2009 @ 11:22 am

  62. hai,

    can u mail me the source code . My yahoo id is shanaj_ml2000@yahoo.com

    Thanks

    Comment by Shan — August 10, 2009 @ 1:23 pm

  63. Hello Everybody,

    I can’t send e-mails to gmail address so IF YOU NEED THE SOURCE CODE, GIVE ME YOUR HOTMAIL OR YAHOO ID.

    Thanks…

    Comment by Mukarram Mukhtar — August 10, 2009 @ 5:55 pm

  64. i guess you have your .net application and QB on the same machine, so this code works perfectly well for you.
    i need to do it remotely. how do i achieve that. the QBW file that i wish to access is sitting on 1 server and my .net application is on another server.
    Also i understand if you switch the account to multi – user, QB can be used simultaneously by my .net application and the person who is trying to insert some information in QB. Correct ?
    Any help would be appreciated.
    Thanks,
    Soniya.

    Comment by soniya — October 8, 2009 @ 8:12 pm

    • Both of your assumptions are accurate. I’ve connected my .NET application with a QBW file not only when QBW file was on the same machine but also over LAN and VPN. So as long as there are no network access problems or no folder access rights issues, you should be able to connect remotely. Regarding multi-user, yes, .NET application and any other users can access QBW file simultaneously in multi-user mode. First let QBW file allow the application to access it, as explained in the last section of my blog. Once QBW file recognizes .NET application as an authorized application, then the application is just like any other user accessing the QBW file. I hope that answers your question.

      Comment by Mukarram Mukhtar — October 9, 2009 @ 1:57 pm

  65. Have you worked on fetching the sales order query.
    I am unable to find some fields in it.
    Can you please help me understand the IDN OSR !!
    Please email me back at soniyaw@yahoo.com

    Thanks,
    Soniya.

    Comment by soniya — October 14, 2009 @ 9:34 pm

  66. This is wonderful! Can you send the source to this account: jaredh@redmondinc.com

    Comment by Jared — October 15, 2009 @ 2:50 am

  67. @ Jared: Source code sent!

    @ Soniya: Sorry buddy, I’ve absolutely no idea of IDN OSR…

    Comment by Mukarram Mukhtar — October 15, 2009 @ 3:21 pm

  68. Hi Mukarram Sir,
    I think you have done an excellent job.I wonder how much dedication you put for this post.I am sure all developers will take it as a complete reference.Great job!!!!!!
    Please send me the zipped project file as I am getting some error when i attempt to implement the same.
    Can I use QB trial version for a test?.If QB trial is available,please give the link to download it.

    Thanks a lot and best regards,
    Binto Thomas

    Comment by Binto — October 30, 2009 @ 8:04 am

  69. The source code is great!
    It is important to tune QBVersion in the RequestVendor.cs file in order to achieve connectivity. I’m using a later version of Quick Books, for example, so I needed to set my attributes to:
    RequestEmployee.QBVersion.country = “US”;
    RequestEmployee.QBVersion.majorVersion = 8;
    RequestEmployee.QBVersion.minorVersion = 0;
    Sir, do you have examples of using stored procedures to talk to a database? I would like very much to see how something like spName works, for example. Or if anyone knows about an informative website?
    Thank you, again, for your hard work and wonderful examples!

    Comment by Jared — November 3, 2009 @ 6:09 am

  70. @ Binto: It seems your yahoo e-mail id worked. Let me know if you still didn’t get it.

    @ Jared: Right now I don’t know about any web link which does the task you mentioned. I’ll keep on looking and will let you know if I find anything good.

    Comment by Mukarram Mukhtar — November 3, 2009 @ 2:38 pm

    • Mukarram:Thank you very much for your response around at
      such a lightening speed.I expect you will help me,if I require any assistance in building up the project.Once again thanks a lot.

      Comment by Binto — November 4, 2009 @ 4:21 am

  71. Dear Mukarram Mukhtar,

    ur source is so great!
    If possible, I wanna get ur source code.

    thanks,
    SuMay

    Comment by SuMay — November 4, 2009 @ 8:11 am

  72. Dear Mukarram,

    Great Stuff, can you please send me the project files as well?
    My id
    shwe713@gmail.com
    shwetadhake@rediffmail.com

    Comment by shweta — November 4, 2009 @ 11:36 am

  73. Your code is quite good can u mail me the code for the same My id is rameez7585@yahoo.co.in

    Thanks

    Comment by Rameez — December 9, 2009 @ 10:33 am

  74. Your code is quite good can u mail me the code for the same My id is binkoshy2@gmail.com.

    Thanks

    Comment by Binu — December 22, 2009 @ 6:57 am

    • binkoshy2@gmail.com is an invalid e-mail address, I’m getting ‘mail delivery failed’ notice.

      Comment by Mukarram Mukhtar — December 22, 2009 @ 4:46 pm

  75. Dear Mukarram, I also have to integrate QB with C#.net in my web app. So, can u pls send me the source code? It’ll be much help

    Comment by Istiaq Ahmed — January 13, 2010 @ 9:18 am

  76. oh i forgot to mention my email @: prantor_23@yahoo.com

    Comment by Istiaq Ahmed — January 13, 2010 @ 9:20 am

  77. Hi Mukarram,

    I have found your article very helpful, but am having trouble getting a working example.

    Would it be possible to email me the zip files for the solution to my email address above?

    Comment by Joel — January 18, 2010 @ 10:31 pm

  78. this is very good article and your effort is appreciable. I am trying to accomplish the same.
    Can you please forward me that code .zip file to my email address

    Comment by Thanu K — January 27, 2010 @ 3:55 am

  79. sorry i forgot to mention my email thanukk@yahoo.com

    Comment by Thanu K — January 27, 2010 @ 3:57 am

  80. Great article!
    Can you forward source code to my email bavna14@yahoo.com

    Comment by bavna — January 31, 2010 @ 2:49 pm

  81. very Interesting and .. helpful .. thank you for your great work

    Comment by Ganesh — February 1, 2010 @ 6:15 am

  82. Hello Everybody,

    I sincerely thank you all for your appreciation and positive feedbacks. Like always, please do not hesitate asking me for any kind of help related to my articles. Regarding making source code automatically downloadable, as much as myself want to make this possible, unfortunately, I’m unable to find any way in wordpress domain to achieve it. Please continue asking for source code that I can forward to your e-mail addresses.

    Again, thank you all for your comments and all who thanked me for writing these articles, you are always most welcome :)

    Best regards,
    Mukarram

    Comment by Mukarram Mukhtar — February 1, 2010 @ 2:16 pm

  83. Can you please forward source code to my email gknaravi@gmail.com
    thanks in advance :)

    Comment by Ganesh — February 2, 2010 @ 9:33 am

    • Oopss! gknaravi@gmail.com is a wrong e-mail id; every time I try to send you the source code, I get failure notice.

      Comment by Mukarram Mukhtar — February 2, 2010 @ 2:53 pm

  84. Dear Mukarram,

    Nice article..

    Can u email the project files to ‘jazeel123@hotmail.com’ or jazeelkm@yahoo.co.in

    Thanks
    Jaz

    Comment by Jazeel — March 16, 2010 @ 8:47 am

  85. Hello Mukarram,

    Could you please email both quickbooks projects if possable to p_cusickATyahooDOTcom
    Also I only have Quickbook simple Start 10 for testing would that work or will I need to download a demo version?

    Thank

    PQSIK

    Comment by PQSIK — March 16, 2010 @ 8:38 pm

  86. Dear Mukarram,

    Nice Article

    Could you email the project files to ‘srinu.gandla@gmail.com’

    Thanks
    srinivas

    Comment by Srinu — March 17, 2010 @ 7:03 am

    • Srinu, I tried sending you the email but got ‘Email Failure’ notice because SMTP server couldn’t find your id.

      Comment by Mukarram Mukhtar — March 18, 2010 @ 7:11 pm

  87. it has problem with connection and also beginsession() function does not work..its defination does,nt given

    Comment by sadia — April 9, 2010 @ 9:37 am

  88. kindly send me source code at this id.ssarwar16@yahoo.com

    Comment by sadia — April 9, 2010 @ 10:35 am

  89. kindly send me the souce code at chuchabrown@yahoo.com.

    Thanks,

    Comment by chucha — April 11, 2010 @ 3:47 pm

  90. it’s great posting, this is all I need.
    kindly send me the source code at this email id transcore_e@hotmail.com.
    thanks in advance.

    Comment by Transcore — May 3, 2010 @ 4:30 am

  91. Hi Mukarram,

    Would you please send me your code?
    My email: trendepru@yahoo.com

    Thanks,
    Dung Nguyen

    Comment by Dung Nguyen — July 5, 2010 @ 8:03 am

  92. Hi Can you please send me the code, I am in much needed ra@mtccrm.com or rakesh.raipur@gmail.com

    I liked the way you have explained the things.

    Its relly cool yar

    Comment by rakesh agarwal — July 24, 2010 @ 10:51 am

  93. HI Can you send me code on the following mail id

    khajamohiddins@hotmail.com

    Regards
    Khaja

    Comment by Khaja — July 26, 2010 @ 11:35 am

  94. Hi,

    Can you Please send me the Project.

    Thanks in Advance

    Comment by Talwinder — July 28, 2010 @ 9:31 am

  95. talwindersinghbajw@gmail.com

    Comment by Talwinder — July 28, 2010 @ 9:37 am

    • The e-mail id you gave is wrong, Talwinder. I’m getting mail sending failure message.

      Comment by Mukarram Mukhtar — July 28, 2010 @ 2:09 pm

  96. I would also like a copy of the project. Thanks

    Comment by Bob Mercier — July 31, 2010 @ 8:35 pm

  97. Hi,

    Could you please send me the code base for this?

    Thanks,
    Santosh.

    Comment by santosh — August 16, 2010 @ 4:13 pm

  98. Hi ,

    Could you send me code at santosh_rec@yahoo.com

    Comment by santosh — August 16, 2010 @ 4:14 pm

  99. Hi there, could you forward me the code as well to erikhome@hotmail.com ? Thanks for posting this!! :)

    Comment by erik — August 26, 2010 @ 1:18 am

  100. I like your article, it’s great…

    could you email me the code? My email is edgardoalexiscorrea@hotmail.com

    thanks for everything :D

    Comment by Edgardo — August 26, 2010 @ 8:37 pm

  101. Great Article for QuickBook Integration. Can you send me the source code for this article?
    My e-mail ID is pinky_1863@yahoo.co.in

    Comment by Pinky Patel — August 27, 2010 @ 2:35 pm

  102. Can you please send me the source code.

    Comment by Ajit Sanghera — September 17, 2010 @ 7:59 am

  103. Can you please send me then source code @ g.k.venkata@hotmail.com

    Thanks a lot.

    Comment by venkata — September 28, 2010 @ 6:08 pm

  104. Ajit & Venkata,

    I tried to send e-mails to both of you but I got an “e-mail failure” message that the e-mail addresses you gave are invalid. Too bad you guys can’t even type your e-mails correct.

    Thanks,
    Mukarram

    Comment by Mukarram Mukhtar — September 29, 2010 @ 1:48 pm

    • I’ve been recently tasked to pull data from quickbooks and provide projections via excelspreads.

      any chance you can forward the code?

      it would be a big help!

      Comment by Joe — October 8, 2010 @ 5:16 pm

  105. Great article. It’s the first one I see with quickbooks and .net application.

    Can you send me this example please. It would be very appreciate.

    sstgelais@pcp-canada.com

    Comment by Tommy — October 8, 2010 @ 3:57 pm

    • thank you very much for the source code of this project. It will be very usefull.

      Comment by Tommy — October 12, 2010 @ 2:51 pm

      • you are very welcome, happy programming! :)

        Comment by Mukarram Mukhtar — October 12, 2010 @ 6:17 pm

  106. I like your artical.I have also integrate .Net application with quickBooks.Can you provide me source code on anant.radadia@gmail.com.It would be very appreciate.

    Comment by anant — October 21, 2010 @ 8:03 pm

  107. very Nice article

    Can you provide me source code on debajyoti2005in@gmail.com.It would be very appreciate.

    Comment by Debajyoti — November 8, 2010 @ 11:28 am

  108. hello Mukarram,
    this really a nice article but i have some problem regarding to this .i’ am very new to the quickbook .my problem is that i want to integrate quick book with .net from my system.the quickbook resides on server.so how can i do this? pls guide me if you can.

    thanks.

    Comment by Neha — December 15, 2010 @ 4:46 am

  109. will you please mail your code me on neoneha.mathur@gmail.com
    i want to see that if it help me out in understanding this quickbook integration with .net.

    Comment by Neha — December 15, 2010 @ 8:17 am

  110. Please send me the source code for this example on vasanvas@mail.ru.
    I write a program to work with data collection terminals with one hand and a QuickBooks files on the other hand.
    I’m using Framework 3.5, VB.Net and VisualStudio 2008.
    Thanks for advance…

    Comment by Andrey — January 8, 2011 @ 11:50 am

  111. that’s great Mr.

    if u can send me the source code for this application as i need to integrate my web application with multi quick book’s clients to insert invoices in their quick book

    Comment by Mahmoud — February 15, 2011 @ 3:57 pm

  112. Mukarram,
    would greatly appreciate if you could send me the source code of your sample application.

    Thanks in Advance
    Ali

    Comment by Ali — February 17, 2011 @ 7:41 am

  113. would greatly appreciate if you could send me the source code of your sample application.

    Comment by Mitesh — May 17, 2011 @ 6:00 am

  114. Could you please send the source? I’m still having problems. Thanks!

    Comment by Luis — May 30, 2011 @ 7:29 pm

  115. hi please send me the source code..

    Comment by sundar — June 8, 2011 @ 10:22 am

  116. 33.I have been following both your tutorials on connecting to quickbooks. Please can you send me the source code. Here is my email address thindo@yahoo.com

    Comment by thindo — June 13, 2011 @ 4:11 am

  117. hello
    can u send me the source code
    my email id is ashu.sajwan@gmail.com
    and yahoo id is ashu_cool490@yahoo.co.in
    Ashish sajwan

    Comment by ashish sajwan — June 21, 2011 @ 6:53 am

    • already sent it to you, do you want me to send it again?

      Comment by Mukarram Mukhtar — June 21, 2011 @ 2:05 pm

  118. Hi Great articles please can u send me the Source Code

    Comment by Faraz — July 4, 2011 @ 11:48 am

  119. Can I also get the source code zip file. Appreciate your time and effort.
    Thanks!
    Muthu Annamalai

    Comment by Muthu Annamalai — July 5, 2011 @ 1:37 am

  120. can you please send code for article. very nice. my email is edsmith.21@gmail.com

    Comment by ed — July 7, 2011 @ 8:07 pm

  121. Nice Article

    I just want to know that is it web application or window application which you integrated with quickbook?

    thanks and regards,

    Dipti Chalke

    Comment by Dipti Chalke — July 16, 2011 @ 12:59 pm

    • windows application.

      Comment by Mukarram Mukhtar — July 18, 2011 @ 4:36 pm

  122. Hi, nice article, is it possible to obtain a zipped copy of your source code?

    my email: romea80@gmail.com

    many thanks!

    Comment by akyatbahay — August 8, 2011 @ 3:29 pm

  123. Hi,
    Can u please send the code to smk.mercy@gmail.com

    Comment by Mercy — August 10, 2011 @ 8:11 am

  124. hi

    Comment by kunni — August 10, 2011 @ 8:29 am

  125. Hi,
    Can u send the source code to smk.mercy@gmail.com

    Thanks,
    Mercy

    Comment by kunni — August 10, 2011 @ 8:39 am

  126. Could you send source code to : sarith_mic@yahoo.com,
    Thank u very much

    Comment by sarith — August 13, 2011 @ 8:48 am

  127. I’m using Framework 3.5, VB.Net and VisualStudio 2008. Could you send source code to toh.sarith@gmail.com

    Comment by Sarith — August 13, 2011 @ 8:50 am

  128. Great article! Would you please send the source code to leslievp74@yahoo.com? Thanks.

    Comment by Leslie Van Parys — August 20, 2011 @ 9:39 pm

  129. can you please send me the source code to raghavendraprasadb@hotmail.com

    Thanks in advance,
    Raghu

    Comment by raghu — August 22, 2011 @ 9:10 am

  130. I have created the connection with QB and able to access the invoice in the QB. When i try to debug in .net i got erro like

    “This application is not allowed to log into this QuickBooks company data file automatically. The QuickBooks administrator can grant permission for an automatic login through the Integrated Application preferences.”

    But i can access the invoice withour running debug. Can you please help me

    Comment by Anandakumar — August 22, 2011 @ 9:57 am

  131. Hi Guys,

    I have integrated the quickbook with C# application. Any one need help please contact me at anandakumar.hc@payoda.com

    Comment by Anandakumar — August 23, 2011 @ 4:22 am

  132. Dear Mukarram,
    Nice article.
    Can you please forward source code to my email reda_mechtri@msn.com
    thanks in advance

    Comment by Reda — August 25, 2011 @ 6:23 pm

  133. Can you mail me source code. Because in vendor class IVendorRet show assembly reference not found

    Comment by manish — September 8, 2011 @ 3:19 pm

    • Manish, no please, no thank you, no praise of the article? Why don’t you ask one more time, and I’ll be more than happy to forward you the code, if it meets my nicely-asked criteria ;)

      Comment by Mukarram Mukhtar — September 8, 2011 @ 3:30 pm

  134. sir i am a beginner..
    my boss is given me a task to integrated quickbook app withi C# .net application.
    I don’t know how to prepare quickbook but i had good knowledge of C#..
    Can you give me a demo with screenshot that how to run the simple application…
    Pls. sir help me its

    Thanks…

    Comment by Rohit Kesharwani — September 9, 2011 @ 11:47 am

    • So you think the screenshots and the demo in the above article are not good enough?

      Comment by Mukarram Mukhtar — September 9, 2011 @ 2:03 pm

  135. I have sdk Quickbook10.0 but i do not have a quick book software…. give me a link from where i can download and use it successfully.
    thanks.

    Comment by Rohit Kesharwani — September 9, 2011 @ 11:50 am

  136. This blog is wonderful. There is generally all the correct information and facts at the guidelines of my fingers. Thank you and maintain up the excellent work!

    Comment by Danyell Lautz — September 11, 2011 @ 11:40 pm

    • Thanks for your appreciation Danyell :)

      Comment by Mukarram Mukhtar — September 12, 2011 @ 1:44 pm

      • Hi Mukarram,

        Can you, please, sind me .zip file with your demo application? Thank you. I appreciate your help

        Comment by Vlad — September 12, 2011 @ 5:06 pm

  137. I also, think this is great article…I am using VS 2010 and would be very appreciative if you would provide me with demo app that you are describing here….
    -Vlad

    Comment by Vlad — September 12, 2011 @ 5:18 pm

  138. Hi,

    Great work and great article. I would like to appreciate your effort in writing this article. Can you please sent me the project code/files.
    Thanks in Advance..

    Comment by Baburam — September 21, 2011 @ 11:59 am

  139. Great work….!!!

    Please send me source on my mail id –
    ankur.kalavadia at billcall.net
    adkalavadia at gmail.com

    Thanks in advance…..Keep it up.

    Comment by Ankur Kalavadia — October 8, 2011 @ 5:45 am

  140. great article. this will give clear idea about the quickbook integration.

    Please send me the source on my mail id.

    mohankmr86@yahoo.com.

    thanks in advance.

    Comment by Mohan — October 15, 2011 @ 5:03 am

  141. Hi, I have similar requirement as above mentioned. Can you please send the source code to me.

    My email ID is rajendra84prasad@gmail.com

    Thanks

    Comment by Rajendra — October 27, 2011 @ 9:36 am

  142. Hi, I have similar requirement as above mentioned. Can you please send the source code to me.

    My email ID is jdp221@comcast.net

    I have been killing my self trying to find info on the web. This is a great article. Great job!

    Thank you in advance for sending.

    Comment by Jay Patel — November 3, 2011 @ 11:29 pm

  143. I would also like the code file if possible, nguyenjg AT gmail.com

    Thanks.. great article

    Comment by jgnguyen — November 22, 2011 @ 11:48 am

  144. Can you please send the source code to me.

    My email ID is nishaverma.acs@gmail.com

    Comment by nisha — December 22, 2011 @ 6:15 am

  145. Nisha and Jgnguyen, I tried to send you the source file but I got Failure Notice on your e-mail addresses. Type your e-mail ids carefully, can you?

    Comment by Mukarram Mukhtar — December 22, 2011 @ 8:08 pm

    • that is the correct email nguyenjg is the email address with (gmail.com) domain

      thanks again.

      Comment by jgnguyen — December 22, 2011 @ 8:23 pm

  146. how to get to know invoices is paid or not programmatic using c#

    Can u please provide code for this. and sample program.

    Comment by ummer — December 24, 2011 @ 12:14 am

  147. Very good article Mukarram Mukhtar. From the last three days i am trying to connect to QB. This article is very heplfull to me. Sharing your knowlwdge is very good Mukarram Mukhtar. you done a very good job and helping the people like me. can u please send me the source code so that i can able to implement this task very easily. My email id: bhanuprakash1207@gmail.com

    Thanks in advance Mukarram Mukhtar.

    Comment by bhanu prakash — December 24, 2011 @ 7:16 am

  148. Very good work. Can you please send me the source code. My email ID: bprakash1207@gmail.com
    Thanks in advance.

    Comment by prakash — December 25, 2011 @ 8:10 am

  149. Very good article. Can you please send me the source code. Email: trustfully11@gmail.com
    Thanks…

    Comment by David R — January 8, 2012 @ 3:26 pm

  150. Can you please share the source code. My email id rajendra84prasad@gmail.com

    Thaks,
    Rajendra.

    Comment by Rajendra — January 10, 2012 @ 9:24 am

  151. Good article with layered structure.can u please send me the source code to my mailid:srikanthreddy.gandluri@gmail.com

    Comment by Srikanth — January 11, 2012 @ 9:00 am

  152. David and Srikanth, I’m getting E-mail Sending Failure notice when I try to send you guys the source code.

    Comment by Mukarram Mukhtar — January 11, 2012 @ 6:29 pm

  153. Good article, This is what I was looking for. Can you please send me the source code. My mail id is kpsamad@gmail.com.
    Thanks in advance.

    Comment by Abdul Samad — January 24, 2012 @ 1:43 pm

  154. Very helpful article. Can I have a copy of your source code? My email add is marithe.2386@gmail.com
    Thank you so much! :)

    Comment by Marie — February 17, 2012 @ 3:05 pm

  155. Hi, I am trying to integrate QuickBooks to .NET application(Windows). Your article is much helpful. Can u send whole source code to my mail id.

    Comment by Mayil — February 28, 2012 @ 11:59 am

  156. Awesome man! You have done a great job yar! Your efforts of sharing knowledge should be definitely appreciated :)

    Please share me the source code to my mail ID jay (at) proteam (dot) in

    Comment by Jayasankar.N — February 28, 2012 @ 5:14 pm

    • Jay, I’m unable to send you the e-mail. I keep on getting MAILER-DAEMON’s failure notice. Are you sure you’re typing in your e-mail address correctly?

      Comment by Mukarram Mukhtar — March 1, 2012 @ 5:17 pm

  157. Hello,

    I am a beginner and I need your source file. Can you please provide me at pranav.rajyaguru@gmail.com.

    Thanks in advanced…
    Pranav

    Comment by Pranav Rajyaguru — April 2, 2012 @ 3:38 pm

  158. Just the perfect thing which I was looking for. Great work ! .
    Please share the source code with me at disha07@live.com.

    Thanks in advance ! :)

    Comment by Disha — April 23, 2012 @ 4:53 pm

  159. Good article with layered structure.can u please send me the source code to my mailid: srikanthfanz@gmail.com

    Comment by Srikanth — April 30, 2012 @ 9:39 am

  160. I am getting error for CreateRequestMsgSet , GetResponse , GetResponseStatus in RequestBroker.cs class. Error says that “doesn’t contain definition” I have included all references and assembly files as said in above tutorial but these three errors are stopping to move on. if anyone know about the solution please send me at alihassan@greypole.com . Thanks in Advance.

    Comment by Ali Hassan — May 7, 2012 @ 7:33 am

  161. Good article with layered structure.can u please send me the source code to my mailid: pet_a_007@yahoo.com

    Comment by Crux Cracker — May 9, 2012 @ 9:59 am

  162. Hi Mukarram, This is very nice article, i am new to quickbooks and don’t having idea about it. I want to integrate quickbooks and interact with asp.net application. Can you please provide me any sample app code..

    Comment by Priyanka — May 11, 2012 @ 10:45 am

  163. Hi…Thanks for posting such a nice article. Can you please send me the code file as well at vivekpro26@gmail.com…Thanks in advance…

    Comment by Vivek — June 25, 2012 @ 7:15 am

  164. Hi Mukarram, nice detailed article can you provide me with your source code. I look forward to integrating it with QB. Thanks in advance @ rt.trevino@gmail.com

    Comment by Ricardo — July 3, 2012 @ 4:10 am

  165. Very nice article. Can you please forward that zip file of this application
    to my email. I would really appreciate.

    temp@dmhone.com

    Thanks

    Comment by Mike — July 3, 2012 @ 8:24 pm

  166. Hi, This looks perfect can you provide me with the source code at rt.trevino@gmail.com.. Thanks

    Comment by RT — July 5, 2012 @ 12:45 am

  167. Hi Mukarram, nice detailed article can you provide me with your source code. I look forward to integrating it with QB. Thanks in advance @ v_alex91@yahoo.com

    Comment by Alex — July 30, 2012 @ 12:33 pm

  168. Hi Mukarram, Great article you have here. I have been researching on how to integrate QB to our .NET apps and this seems to answer it. Can you send me the project file. Your response is greatly appreciated.

    Comment by Roger Kelly — August 1, 2012 @ 9:59 pm

  169. Hi Mukarram, I appreciate your great work on this. Please send me a copy of your source code at rogerny10@yahoo.com. Thanks in advance.

    Comment by Roger — August 3, 2012 @ 5:44 pm

  170. Hi Mukarram, Great article you have here, just what I am looking for. Kindly send me the source code to my email at rogerny10@yahoo.com, please.

    Comment by Roger kelly — August 6, 2012 @ 2:45 pm

  171. Hi Mukarram, Please send me a copy of your source code at cool_dude7289@yahoo.com
    . Thanks in advance.

    Comment by mark — August 11, 2012 @ 6:37 am

  172. Hi Mukarram, this is a very informative article.Can you send me a copy the source code to
    stevekaiy@gmail.com
    steve@kaiynetconsulting.com

    thanx.

    Comment by Steve Kagiri — August 15, 2012 @ 10:04 am

  173. I haveto integrate my c# asp.net application with quickbooks.can we pull data from web application data and display in quickbooks?

    Comment by RA — August 31, 2012 @ 2:50 am

  174. Hi, This is a great article. Can you please send me a copy of the source code to craju11@gmail.com

    Comment by chandra — September 18, 2012 @ 10:30 pm

  175. Assalamoalikum, Can you send me that code at mather2002@hotmail.com

    Comment by Ather Abbas — September 21, 2012 @ 6:34 pm

  176. Cannot Create QBXMlRP2 COM component.

    How to resolve this error?

    Comment by dev — November 1, 2012 @ 10:59 am

  177. Hi Mukkaram,
    Thank you for that information. Would you please send source code to: suemcneel@comcas.net

    Comment by Susette — November 2, 2012 @ 4:49 am

  178. Sorry I misspelled my email on the previous post.

    Comment by Susette — November 2, 2012 @ 4:50 am

  179. Excellent Article!!! Can you please send me article to my email address

    Comment by Gurbetteyim — November 25, 2012 @ 5:16 am

  180. Sorry I meant source code please/

    Comment by Gurbetteyim — November 25, 2012 @ 5:16 am

  181. Very nicely written article… Please can you send the source code to hoseki210@gmail.com

    Comment by Sunder — December 3, 2012 @ 5:19 pm

  182. Hi..thank u for this excellent article. i’ve been banging my head to the computer for it.
    Can u please send the zip file for this project to ramna.kumar@gmail.com
    Thanks in Advance!

    Comment by Ramana — December 4, 2012 @ 6:46 am

  183. very nice post …I want to integrate quick books in windows application using c sharp …please can you send the source code to suresh@ Wesgrow.com
    thanks in advance

    Comment by Suresh Kutty — December 4, 2012 @ 5:26 pm

  184. Excellent. Very nicely written. Very nicely structured. Not only the 3 tier architecture is great but the way you have structured the classes is wonderful. You have paid great attention to every detail. I have learned so much by reading it today. i am very very thankful. An article like this helps us earn our daily bread. I glanced through the article. I am writing in detail after spending few hours reading the article today. I will be be grateful if you can send us the code – This and part 2. Thanks for everything. My mail id is hoseki210@gmail.com

    Comment by Sunder — December 4, 2012 @ 7:18 pm

  185. Excellent coding.. we learnt a lot here .. please give us the source code.my mail id sureshemanip@gmail.com

    Comment by suresh — December 5, 2012 @ 4:09 pm

  186. I am a beginner and I need your source file. Can you please provide me at rajibmitra0009@gmail.com.

    Thanks in advanced…
    Rajib

    Comment by Rajib Mitra — December 28, 2012 @ 11:26 am

  187. After several days of research, this is the best example that I have found. I am trying to connect with Quickbook using VS2008 and SQLServer. I am using a web page application that extracts data from SQLServer and wish to update Quickbooks. I am using VB. Could you provide your source code via email? Thanks in advance

    Roger

    Comment by Roger — February 23, 2013 @ 6:11 pm

  188. nice article.
    Can you please send the zip file for this project at shehzadzafarch@gmail.com

    Comment by Muhammad Shehzad — February 27, 2013 @ 4:11 pm

  189. Hi, nice article, can you please send your code details at girish85@hotmail.com

    Comment by girish — March 2, 2013 @ 7:48 pm

  190. great work man!!! Thanks…. can you please send the project in zip file @ saimshaukat@yahoo.com
    Regards
    Saim Shaukat

    Comment by Saim Shaukat — March 5, 2013 @ 10:59 am

    • Can you please send it to mohsinraza4539@gmail.com too. Thanks in advance.

      Mohsin

      Thanks, Mohsin Raza

      On Tue, Mar 12, 2013 at 12:03 AM, Mukarram Mukhtar wrote:

      > ** > Saim Shaukat commented: “great work man!!! Thanks…. can you please > send the project in zip file @ saimshaukat@yahoo.com Regards Saim Shaukat” >

      Comment by Mohsin Raza — March 12, 2013 @ 6:54 am

  191. Can you please send it to mohsinraza4539@gmail.com too. Thanks in advance.

    Mohsin

    Comment by Mohsin Raza — March 12, 2013 @ 6:55 am

  192. Hi,
    Can you please send me the source code to my email,divyanmenon@hotmail.com

    Comment by Divya — March 15, 2013 @ 9:53 am

  193. can you email the project? to alberto.estrada1@gmail.com

    Comment by alby — March 16, 2013 @ 6:24 am

  194. Hi, Can I have the project? I’m starting a new project and will need to add record and retrieve. I have to complete in 1 month and am new.

    Comment by aestrada101 — March 17, 2013 @ 5:43 am

  195. Hello – I really appreciate the QuickBooks/.Net tutorial. It’s actually much more readable than Intuit’s documentation. May I please have a copy of the project? My email address is terryj@turnkeynet.com
    Thanks, Terry

    Comment by Terry — March 19, 2013 @ 10:13 pm

  196. Great tutorial. Could you email me a zip of the solution file too. my email is papa43boys@yahoo.com

    Comment by Ben — March 23, 2013 @ 9:35 pm

  197. I’m obviously late to this party, but I really appreciate your article and information and would very much like to receive a copy of the code. My email address is crosjn!yahoo.com.

    Comment by Jeff — April 15, 2013 @ 4:38 pm

  198. Nice Article. Can you send me a copy of the zip file of this application my email is markoliva19@gmail.com .

    Thanks man..

    Comment by Mark — April 24, 2013 @ 8:48 am

  199. Nice one and appreciate you. can you send a copy of zip file to me, my email is bollamadhusudhanreddy@gmail.com.

    Thank you very much Terry…

    Comment by madhu — May 10, 2013 @ 6:02 am

  200. Hi,
    Can you please send me the source code to my email, karvendhan@gmail.com

    Comment by Karvendhan — May 17, 2013 @ 8:03 am

  201. How can I remove the Company preferences Integrated Application programatically using C# / QMXML / QBFC?

    Comment by Meena — May 20, 2013 @ 2:53 pm

    • Can anyone help me? Its very urgent.
      I want to remove the Integrated Application from Company preferences programatically with SDK / C# / QBXML / QBFC

      Comment by Meena — July 31, 2013 @ 2:24 pm

      • how can I remove integrated application from company preferences through c# sdk

        Comment by Meena — September 16, 2014 @ 1:17 pm

  202. tanx man. really helped from jumping off a cliff. thout i was alone with this C# quickbooks integration thing. tanx a million. pls drop off any more stuff about C# and quickbooks integration at my mail box: chini7000@gmail.com

    Comment by novichini — May 31, 2013 @ 4:32 pm

  203. Hi can you please send me the copy of zip file of the application to my emailid: priyanka.rao@pchase.co.uk You did a great job..

    Comment by Priyanka — June 18, 2013 @ 11:28 am

    • Hi This articles is very helpful.. But am getting pblms..
      Can you send me a copy of the source code..
      email: azameckburally@gmail.com
      Nice Job.

      Comment by Azam — July 10, 2013 @ 6:41 am

  204. Hi , thanks for you article.
    I am in this big trouble :) can you please send me your code for this?!
    Is that possible to make connection to quickbooks database remotely?
    Thanks,
    poupak

    Comment by poupak — June 18, 2013 @ 9:39 pm

  205. Can anybody know that how can I connect multiple QBW file one by one. Like Open one file send some data from integrated application then close this connection and connect to another QBW file. Please help me. Its urgent.

    Comment by Meena Trivedi — October 14, 2013 @ 1:27 pm


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

The WordPress Classic Theme. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 35 other followers

%d bloggers like this: