4D QuickBooks Integrator – FAQ

Frequently Asked Questions

  • Q: Can the QuickBooks Integrator communicate with QuickBooks remotely?

    Yes, through the use of the 4D Connector. The 4D Connector is a distributable utility that acts as a specialized web server, listening for requests from the components, and issuing those same requests to the request processor in QuickBooks, just as the 4D QuickBooks Integrator does. The application needs only one additional line of code to instruct the object to communicate with the 4D Connector (The setting of the QBConnectionString property).

    Q: Does QuickBooks have to be running in order for the components to work?

    QuickBooks does not need to be running when the request arrives, but the request processor will launch QuickBooks as a background process if it is not already running. You will need only to configure the QuickBooks Integrator with the location of the company file (via the QBConnectionString property) to read if you would like to communicate with QuickBooks when it is not running.

    Q: What versions of QuickBooks does QuickBooks Integrator support?

    We support QuickBooks Desktop Editions 2002 or higher, the Pro Edition or higher (this includes specialized editions such as the Accountant Edition, Contractor Edition, Nonprofit Edition, etc.), U.S. or Canadian version. The request processor is not available in earlier editions of QuickBooks or in QuickBooks Basic Edition. We also support QuickBooks Enterprise Solutions.

    Q: How does the QuickBooks Integrator work?

    We communicate with QuickBooks over a communication layer Intuit has exposed in certain versions of QuickBooks called QBXML. A request processor in QuickBooks listens for communications over QBXML and responds to requests from the QuickBooks Integrator. The outgoing and incoming XML data is mapped to an object so that key information (i.e. a customer’s name, an invoice reference number, etc.) can be easily set or retrieved.

    Q: Does the QuickBooks Integrator support QuickBooks Online?

    The QuickBooks Integrator only supports the Desktop edition of QuickBooks. QuickBooks Online has a separate API that is not currently supported.

    Q: How can I maintain a persistent connection to QuickBooks via the Connector for QuickBooks application?

    A persistent connection to QuickBooks can be opened using the OpenQBConnection method. This will do one of two things:

    1. If a URL is not specified in the QBConnectionString, the component will open a persistent connection to QuickBooks. The connection can only be used by that instance of the object.
    2. If a URL is specified in the QBConnectionString, the component instructs the 4D Connector to open a persistent connection to QuickBooks. Multiple instances of the components can pass through the 4D Connector using the 4D Connector’s persistent connection. The 4D Connector’s connection is maintained until a call to CloseQBConnection is made by any of the components using the 4D Connector, or the 4D Connector application is terminated.
    Q: How do I perform automatic login?

    I keep getting Error 661: “Automatic login access denied”.
    You have to enable Automatic Login from within QuickBooks itself. From Edit|Preferences, select the Integrated Applications tab. Under Company Preferences, you will see the list of applications that have tried to access QuickBooks before. You can allow or deny access to these applications, and under the Properties button, you can enable automatic login for an application.

    Q: Do you support QuickBooks Enterprise Solutions Edition?

    Yes. The QBXML layer is the same as that of QuickBooks Premier Edition, and is supported by QuickBooks Integrator.

    Q: Do you support QuickBooks POS Edition?

    Unfortunately, no. QuickBooks Point of Sale implements a separate SDK that is not currently supported by the QuickBooks Integrator.

    Q: Do you support QuickBooks Simple Start?

    QuickBooks Simple Start requires different connection settings than the other desktop editions of QuickBooks, and only supports a limited subset of the QuickBooks SDK. Because of this, Intuit does not allow COM connections to Simple Start unless certain connection flags are set. These connection flags are available using the “AuthFlags” configuration setting of the components. Setting this to “1” will enable connecting to Simple Start.

    Q: Do you support specialized editions of QuickBooks like the Accountant, Non-Profit, Professional Services, Contractor, Manufacturing and Wholesale, and Retail?

    Yes. These are variants of the Premier Edition of QuickBooks, and are supported by QuickBooks Integrator.

    Q: Do you support the UK Edition of QuickBooks, or other international QuickBooks Editions besides the US and Canadian Editions?

    Unfortunately, we do not officially support the non-U.S., non-Canadian versions of QuickBooks as Intuit does not officially support qbXML for these editions. As Intuit does not publish the qbXML documentation for these editions, we have no way of knowing what is required by requests issued to these editions.
    That said, as long as the localization does not significantly alter the qbXML layer, you should be able to perform most functionality with the components, as long as you set the QBXMLVersion to match the edition of QuickBooks that you wish to support (i.e. “UK2.0” for the UK edition, “OZ2.0” for the Australian edition).

    Q: When I try to Update, I get error 20202 or 201: 'Required field unspecified.'

    QuickBooks requires that you set an ID and an EditSequence for all modification requests. These fields are kept by QuickBooks internally, but you can query QuickBooks for them. The easiest way to do this for all entity objects (Customer, Vendor, Employee, Item, etc) is to use the GetByName method. After it returns, the object will be populated with the Id and EditSequence fields that are needed for modifications, and you’ll only need to set those properties that need to be modified before performing the update. For transactions (like Bills and Invoices), you do not have a GetByName method, and you should use ObjSearch to issue the request and pass the resulting aggregate to an instance of the corresponding object.

    Q: I get 606 Could not start QuickBooks in Vista

    QuickBooks has particular requirements for connecting in Vista
    First, open QuickBooks directly. From the Edit->Preferences menu select Integrated Applications. From there, remove the existing applications listed. Then, with QuickBooks still open try running your code. QuickBooks should pop up to confirm with you that you’re granting access to the connecting application. After you grant access, close QuickBooks and try to run your code again.
    Note that currently, the only release of QuickBooks supported on Windows Vista is QuickBooks 2007 or 2008. However, in order for integrated applications to work with QuickBooks, the latest service updates must be applied to QuickBooks 2007 (at least the R5 patch). In addition, UAC must be turned on and neither QuickBooks nor the connecting application must be run under elevated permissions as “Administrator”.

    Q: Can I add non-wage payroll items (like additions, deductions, or company contributions) into QuickBooks?

    Unfortunately, you cannot add non-wage payroll items into QuickBooks or add existing non-wage payroll items for an employee. You can add wage payroll items (i.e. Salary, Hourly Rate, etc.) with our QBObject component, but the best you can do for non-wage items is to query what they are. Unfortunately, we are limited in this case by what Intuit has exposed for payroll.

  • Still Need Help?

    Send us an email at: support@4dpayments.com.