Release Notes
Release Notes
Release Notes
0 (10/17/07)
IMPORTANT
This software is designed for use with US editions of
QuickBooks 2008 and QuickBooks Merchant Service. In
addition, selected features of this software can be used with
US editions of QuickBooks 2002, 2003, 2004, 2005,
2006,2007, QuickBooks Online Edition, and certain Canadian
and UK editions of QuickBooks (2003 and later). However,
you cannot currently install and use QuickBooks for different
countries on the same machine.
Table of Contents
• “A Note About Credit Card Numbers in QB 2008 and Later”
• “What’s New in SDK 7.0?”
• “Request/Field-Level Detail Of New and Changed Features”
• “Changes Impacting QBFC Integrations”
• “Bugs Fixed in This Release”
• “Known Bugs and Workarounds”
• “New or Modified Files of Interest”
• “What’s New in QBWC Web Connector 2.0”
• “Installation Instructions”
• “Registering an Application for QuickBooks Online Edition”
• “Importing the Correct Library”
• “About Redistributing QBXMLRP2”
• “Creating Applications that Can Run on 64-Bit Operating Systems”
• “Documentation”
• “Tools”
• “Samples”
Overview
• Our new Visual Studio Application Template (for C#) significantly decreases coding
time and learning curve through:
> Code generation resulting from responses to a wizard
> Built-in session management for each supported QuickBooks connection type
> A self-contained COM event handler requiring that the developer only implement
application logic within your project templateís generated event handler stub.
• QuickBooks Web Connector 2.0 has been updated to include an asynchronous
pluggable protocol handler which allows web-based applications to directly interact
with the web connector from Javascript. (With Version 2.0 the protocol handler works
only with Internet explorer.) Other additions and enhancements have also been made:
for more information see “What’s New in QBWC Web Connector 2.0.”
2
(c) 2007 Intuit Inc. All rights reserved.
• After a brief hiatus, the Remote Data Sharing feature has been updated and re-included
with the SDK. The new RDS is completely rewritten in .NET and is expected to be
much more robust than the previous version.
• More QuickBooks features are available through the SDK:
> Accounts now support tax lines
> BuildAssemblyAdd now allows you to create pending builds
> CheckAdd now supports linking to certain transactions, which makes it much
easier to issue direct refunds. (In the 7.0 qbXML spec, but to be implemented in the
R3 patch to QB2008.) Likewise, CheckQuery has the IncludeLinkedTxns boolean
added to support this new functionality but that won’t be available til R3 either.
> Credit card transaction (requires QBMS) enhancements
-CompanyQuery returns subscribed-to services (QBMS, payroll, etc)
-Multiple credit card transactions supported in one SalesReceipt
-Multiple credit card transactions supported in one CreditMemo
-PaymentMethodAdd allows setting of payment type, using supplied enum
-ReceivePayment supports Auths and subsequent Captures
> CustomerQuery up to 5 times faster
> DepositMod
> Estimates add Ship-to and price level fields
> ListMerge, for merging accounts, customers, vendors
> Item enhancements:
-manufacturers part number
-modify income and expense accounts referenced by the item
> List objects (customers, vendors, items, etc) get their TimeModified updated
whenever their balance, on-hand quantity, linked transaction changes
> Queries provide better support for TimeModified filters
> Unattended mode performance improved through faster QB Start-up
> Unit of measure support, consisting of UnitOfMeasureSetAdd/Query and also unit
of measure support in Items and transaction lines)
> VendorQuery up to twice as fast
> Workers compensation codes (Add, Mod, Query)
One of the key improvements in the new OSR is automatic filtering, which can save you
from making mistakes. In the new OSR, you select the version(s) of QuickBooks that you
are interested in, the qbXML spec level, and the OSR automatically displays only the
requests and request fields that apply to what you have specified.
Another key benefit is the inclusion of OSRs for all SDKs available for IDN in the left
navigation pane. Those are listed even if not installed and you can click on the links to
download those SDKs when you are ready for them.
Each qbXML request now has sample qbXML script showing how it is built. The QBFC
version of these requests now have C# as well as VB.Net samples.
Along with Programmers’ Guide links, some of the requests have links to other articles,
such as AlphaGeek articles.
Error-Code Lookup
A handy improvement in the new OSR is the error lookup control on the main page. Just
supply the QB error code, either in decimal or hex, depending on what you have, and the
explanation is displayed for you.
We also implemented error trapping and logging for you in the template project, to aid in
debugging your customerís problems. Three levels of logging are available: none, critical
errors only, all errors, and verbose.
Finally, we added an entire COM event handler for you, if it is required. The wizard asks
you a series of questions about what types of events you want to use in your application.
Logic is employed in the process that adheres to SDK or license restrictions (such as only
being able to specify one menu structure per application). We even included a GUID
generator for your subscription ID.
4
(c) 2007 Intuit Inc. All rights reserved.
Deprecated Features or Features No Longer Supported
NA
The following table lists the changed behavior and/or fields for each SDK request:
Object Operation Changes
Account Add TaxLineID added
Mod
AccountTaxLineInfo Query new request added
ARRefundCreditCard Add CreditCardTxnType added to CreditCardTxnInputInfo
Query aggregate
Bill Add UnitOfMeasure added to ItemLineAdd and
ItemGroupLineAdd
6
(c) 2007 Intuit Inc. All rights reserved.
Object Operation Changes
Estimate Add ShipAddress added
UnitOfMeasure and PriceLevelRef added to
EstimateLineAdd
UnitOfMeasure is added to EstimateGroupLineAdd
8
(c) 2007 Intuit Inc. All rights reserved.
Object Operation Changes
ItemServiceAdd/Query Add UnitOfMeasureSetRef added
AmericanExpress
Cash
Check
DebitCard
Discover
ECheck
GiftCard
MasterCard
Other
OtherCreditCard
Visa
PurchaseOrder Add UnitOfMeasure and ManufacturerPartNumber added
to PurchaseOrderLineAdd
UnitOfMeasure added to PurchaseOrderLineGroupAdd
10
(c) 2007 Intuit Inc. All rights reserved.
> SalesOrder
> SalesReceipt
> CreditMemo
> Estimates (for changes in the Ret)
12
(c) 2007 Intuit Inc. All rights reserved.
Issue Workaound
A CustomerQuery may contain different results
(sort order) when run against QB 2008 and
greater than the same query running against QB
2007 and earlier. This difference in sort order may
be observed if you use MaxReturned set to a
numeric value or if the query response contains
the ampersand character & or apostrophe ‘ in the
<name> field.
In the Microsoft Vista OS, the path c:\documents
and settings\all users\ used in Windows XP is
translated to the path c:\users\public\. If a
company file in QuickBooks is opened on Vista
with the path "c:\documents and settings\all
users..." and that filename is also specified with
the same path in an SDK integrated application,
the SDK response says that QuickBooks is already
open with a different file. As per the following: "-
2147220470 A QuickBooks company data file is
already open and it is different from the one
requested."
Developers may be accustomed to using the Here is how to handle this:
common file open dialog to allow the user to 1. In the application’s first connection do a
browse to a file (for example, the select a BeginSession and invoke GetCurrentFilename and
company file dialog in SDKTestPlus3.exe) save it away for future use, or display to the user, or
Unfortunately, Microsoft changed the behavior of whatever.
this dialog in Vista so it actually attempts to OPEN 2. In all subsequent connections invoke BeginSession
the file before returning control to the app that using that stored company file name.
called it. If the application gets an error that it cannot open
The result is that if QB has the file open (or, more the file, invoke BeginSession again, invoke
accurately, the QB database server has the file GetCurrentFilename, compare against the stored file
open) you get an error from the dialog that the file name and ask user about it if they don’t match.
is locked and you cannot use it.
During installation of QB SDK on a system without To solve this, install .NET from the Microsoft web site
QuickBooks installed you may encounter this error and retry the installation.
during the execution of dotnetfxSp1.exe:
“The upgrade patch cannot be installed by the
Windows Installer service because the program to
be upgraded may be missing, or the upgrade patch
may update a different version of the program.
Verify that the program to be upgraded exists on
your computer and that you have the correct
upgrade patch.”
During SDK installation, you may see a message You can safely ignore and dismiss this message as it
informing you that the UI and eBay sample could has no effect and the installation will proceed
not be installed. successfully.
In a VehicleMileageQuery, if you specify time The reason for this is that Vehicle Mileage supports
values (for example, 2002-06-05T10:21:10) in only Date values, not DateTime values, despite what
any of the date range filters, you get a status code the OSR says. The workaround is to use only date
error 3020 statusSeverity="Error" values, as follows: 2002-06-05.
statusMessage="There was an error when
converting the date value...”
14
(c) 2007 Intuit Inc. All rights reserved.
• Support for interactive mode:
> Protocol Handler for Internet Explorer that allows web-based applications to
interact directly with the web connector.
> Three new optional web methods to facilitate Interactive mode:
-InteractiveURL
-InteractiveRejected
-isInteractiveDone
• Masterkeys are now handled and maintained automatically by .NET managed password
storage mechanism.
• Update locking mechanism to help manage company file during simultaneous updates
from multiple web connector clients.
• Included VERBOSE mode for logging level. With this, we now have three log levels:
NONE = No logging, DEBUG (default setting) = Logging + first 50 characters of
request/response xml, VERBOSE = Logging + complete request/response xml
• Added a response value of an O: (stands for Okay)
O:<QBWC_Version_Supported_By_Server> for clientVersion(). It provides an update
path for user if server’s QBWCVersion is greater than user’s QBWCVersion
• NoOp for sendRequestXML(). When sendRequestXML() call receives an empty string,
QBWC calls getLastError(). If a NOOP is sent back from web-service for the
getLastError(), QBWC will pause update for 5 seconds. This allows a web-service to
tell QBWC to wait five seconds before calling sendRequestXML() again.
• New webmethod getServerVersion() provides a way for web-service to notify QBWC
of itís version. This version string shows up in the More Information pop-up dialog in
QBWC.
• Notification (system tray pop up) is now turned off by default.
• A new optional QWC parameter <CertURL> to provide means to provide certificate
server for ssl certificates other than web server.
• A new optional QWC parameter <Notify> introduced. Value of true will enable
notification (pop up at systray) at app level. Anything else will disable notification.
• - A new optional QWC parameter <AppDisplayName> is introduced. If available,
QBWC will use this to display name in the QBWC UI. Otherwise, use <AppName> as
usual. This is just for UI purpose. Update process still uses the <AppName> (or,
AppUniqueName if provided)
• A new optional parameter <AppUniqueName> is introduced. If this element is
available in QWC file, QBWC will not go into itís typical clone/replace mode for
AppName and directly use the replace routine.
• There are new optional QWC file parameters for three rp.AuthPreferences parameters
IsReadOnly (true/false), UnattendedModePref (umpRequired/umpOptional), and
PersonalDataPref(pdpNotNeeded/pdpOptional/pdpRequired).
• Improved performance due to code refactoring.
• Improved error messages with suggestions on actions where applicable.
All samples require the QBXMLRP2 Request Processor, QuickBooks, and the QuickBooks
sample product-based company file. Samples new in this release may require the latest
QuickBooks version (currently QuickBooks 2008). The QBXMLRP2 Request Processor is
installed automatically by QuickBooks 2008. The SDK also installs the request processor.
Installation Instructions
IMPORTANT
During SDK installation, if the eBay SDK has previously been
installed on your system, the SDK installer may report a
failure registering ebay.SDK.tlb. This error can safely be
ignored and the installation will proceed normally.
To install the SDK using the installer, execute QBSDK70.exe. The installer also adds a
menu (Start>Programs>QuickBooks SDK 7.0>) that provides convenient access to SDK
tools, samples, and documentation (including the Onscreen Reference). You can also access
the qbXML Validator and qbXML Test applications through the "Send To" context menu
for files.
“The upgrade patch cannot be installed by the Windows Installer service because the
program to be upgraded may be missing, or the upgrade patch may update a different
version of the program. Verify that the program to be upgraded exists on your computer and
that you have the correct upgrade patch.”
16
(c) 2007 Intuit Inc. All rights reserved.
To solve this, install .NET from the Microsoft web site and retry the installation.
If either of these apply to your case, you can redistribute QBXMLRP2 by manually
including the merge module QBXMLRP2.msm or QBXMLRP2PIA.msm (for .Net
applications)
This has caused some developers problems, because the default setting if you simply create
a new project is “Any CPU”, which is a setting that has prevented some developer
applications from running on 64-bit OS.
Documentation
A new and improved unified OSR is available: you’ll want to check this out.
The QBMS documentation has been removed because it is now installed in the separate
QBMS SDK.
Tools
A new and improved unified OSR is available: you’ll want to check this out.
The qbXML Validator tool contains new functionality that allows you to verify qbXML
requests that correspond to these combinations:
• qbXML 7., 6.0, 5.0, 4.1, 4.0, 3.0, 2.1, 2.0, 1.1, 1.0 for U.S. editions of QuickBooks
• qbXML 7.0, 6.0, 5.0, 4.1, 4.0, 3.0, 2.1, and 2.0 for QuickBooks Online Edition
• qbmsXML 1.0 for QuickBooks Merchant Service
• qbXML CA3.0 and CA2.0 for Canadian editions of QuickBooks
• - qbXML UK3.0 and UK2.0 for UK editions of QuickBooks
Samples
The Samples directory contains a readme.html (which can be accessed from Start >
Programs > QuickBooks SDK X.0 > Samples). This file lists each sample and provides
links to open the project directory, the project itself, and the executable form of the
application.
The SDK installer verifies that the MSXML4.0SP2 or greater API from Microsoft is
installed on your system. If MSXML is not present, the SDK installer will install it for you.
This API is used by the SDK’s Validator tool and several samples.
Some samples require .NET 2.0. This can be downloaded from the Microsoft website.
18
(c) 2007 Intuit Inc. All rights reserved.
Downloading MSXML 6.0
If you want to run the sample applications on a system that does not have MSXML
installed (for example, if you want to use Remote Data Sharing from a system that does not
have the SDK installed), you will need to install MSXML. In addition, if your application is
dependent on MSXML Core Services, you will need to redistribute that software in your
installer. The MSXML Core Services software is available from Microsoft
The #import “qbxmlrp2.dll” statement in the C++ samples allows these applications to use
the COM interface supported by the QuickBooks SDK. This statement will cause an error
when you are building the samples in Microsoft Visual Studio if the Include path is not set
to include the location of this DLL. The DLL is installed with QuickBooks and resides in
the QuickBooks common directory, currently defined as
C:\Program Files\Common Files\Intuit\QuickBooks. Add this directory to the Include path
by choosing the Tools menu, Options command, and the Directories tab in Visual Studio.
UIandEventTest Samples
In order to build the EventHandler C++ sample, you will need to specify the QuickBooks
executable path for the sample project. The method for doing this is different for Visual
Studio 6.0 and Visual Studio .NET.
For Visual Studio 6.0, select "Options" from the "Tools" menu. Select the "Directories" tab
and then select "Executable Files". Add the QuickBooks executable path to the list of
directories here.
For Visual Studio .NET, select "Properties" from the "Project" menu. Under the "C/C++"
options, select "General" and add the QuickBooks executable path to the "Additional
Include Directories". Under the "MIDL" options, also select "General" and add the QB path
to "Additional Include Directories".
All of these C++ samples also use QBXMLRP2.DLL in the QuickBooks "common"
directory. The project files currently specify this path as C:\Program Files\Common
Files\Intuit\QuickBooks. If this path is different on your machine, you will need to change it
in the project files.
The Visual Basic sample applications allow you to view a response from QuickBooks. If
you try to view a response that is greater than 32K, you will receive an “Out of memory”
error. This happens because the VB sample applications use a TextBox control, which has
a 32K limit, rather than a RichTextBox control. In a Windows 98 or Windows Me
environment, this can corrupt memory, and the application might not terminate properly.
Samples 19
(c) 2007 Intuit Inc. All rights reserved.
There is a known issue (not related to qbXML) with the AddReceivePayment sample
application. The MS Visual Studio application must be installed before you can run
AddReceivePayment, or you will receive the following error message when you run the
application: “Class not registered. You need the following file to be installed on your
machine. MSSTDFMT.DLL.”
To test this feature, you can use one of Intuit’s sample company files (even though it will
not be signed up for a subscription to a payroll service). Please be aware that QuickBooks
will record an artificial creation date to any test data that you add to a sample company file.
Deprecation Policy
You may notice that some items in the OSR are marked as deprecated. Deprecated items
supported for the release in which they are deprecated, in the next major release they will
be removed from the spec and their functionality will not be available.
System Requirements
The system requirements for the QuickBooks SDK are the same as those for the version of
QuickBooks that is running. QuickBooks 2008 and 2007 will run on Microsoft Windows
2000, Windows XP, and Windows Vista.
QuickBooks 2005 and 2004 will run on Microsoft Windows 98, 2000, Me, or XP operating
systems.
QuickBooks 2002 and 2003 will run on Windows NT, 98, 2000, Me, or XP operating
systems.(The SDK does not run in unattended mode—that is, with automatic login—on
Windows 98, First Edition; it does run in unattended mode on Windows 98 Second Edition
on QuickBooks 2005 and earlier.)
20
(c) 2007 Intuit Inc. All rights reserved.
The following table lists the different versions of QuickBooks and the corresponding
versions of the qbXML specifications that support them. Note: QuickBooks Mac,
QuickBooks Basic, UK Simple Start edition, UK regular editions, and the Canadian
QuickBooks Easy Start Edition do not support the SDK. (For UK, use QuickBooks Pro and
QuickBooks Accountant.)
qbXML Specification
Version of QuickBooks Version
QuickBooks 2008 and Enterprise 8.0 (Using 7.0, 6.0, 5.0, 4.1 4.0, 3.0,
QBXMLRP2) 2.1, 2.0, 1.1, 1.0
QuickBooks 2007 and Enterprise 7.0 (Using 6.0, 5.0, 4.1 4.0, 3.0, 2.1,
QBXMLRP2) 2.0, 1.1, 1.0
QuickBooks 2006 and Enterprise 6.0 (Using 5.0, 4.1 4.0, 3.0, 2.1, 2.0,
QBXMLRP2) 1.1, 1.0
QuickBooks 2005 and Enterprise 5.0 (R5 and later) 4.1, 4.0, 3.0, 2.1, 2.0, 1.1,
(using QBXMLRP2) 1.0
QuickBooks 2005 (and Enterprise 5.0) 4.0, 3.0, 2.1, 2.0, 1.1, 1.0
(using QBXMLRP2)
QuickBooks 2004 (and Enterprise 4.0) 3.0, 2.1, 2.0, 1.1, 1.0
(using QBXMLRP2)
QuickBooks 2003, Enterprise 3.0* (R7 and above) 2.1, 2.0, 1.1, 1.0
and all later versions of QuickBooks using QBXMLRP
QuickBooks 2003 2.0, 1.1, 1.0
(and Enterprise 2.0)*
QuickBooks 2002 (R2 and above) 1.1, 1.0
(and Enterprise)*
QuickBooks 2002 (R1)* 1.0
The following table lists the different versions of the QuickBooks Foundation Class
(QBFC) Library and the versions of the qbXML specification that support them.
22
(c) 2007 Intuit Inc. All rights reserved.