| Home | Templates | Classes | Guides |
The QuickBooks Desktop API is powerful but not always predictable. These notes can save hours of trial and error.
Tag order matters.
Build elements in the order the API examples show. Some requests fail or return partial data when tags are out of order.
Use MaxReturned, but verify.
Treat it as a hint, not a guarantee. Confirm counts in the response summary and your parsed records.
Mind case sensitivity.
Stick to the exact tag names shown in the docs and examples.
Trim where needed.
Some fields contain padding. Normalize text before compares or storage.
Missing required fields can yield no response.
If ProcessRequest returns success but you see no parsed block, recheck required fields and tag order.
StatusCode = 0 is the only true success.
Warnings still require review. Check status severity and message.
Same Windows session is required.
Requests must target the QuickBooks instance in the same user session. See Running Elevated vs Standard User.
Server side filters can be loose.
A filter like NameFilter BeginsWith R may include non matching rows. Always apply final filtering in Clarion after parsing.
Localized editions differ.
Non English editions may return alternate values or localized strings. Avoid logic that relies on hard coded English literals.
Expect encoded entities.
Characters like the euro symbol (EUR) and smart quotes appear as XML entities. Always decode before display or comparison.
Use the Tools class for encoding and decoding.
Avoid hand written string replaces. Rely on the provided helpers on QBXMLTools.
Tip: The XML Viewer pretty prints both request and validated response, and the summary panel shows status and counts at a glance. See Using the XML Viewer.
Use the Tools class for date and time.
QuickBooks date and time strings are strict and UTC based. Use QBXMLTools date and time helpers rather than manual parsing.
Preserve numeric precision.
Do not round currency or quantity fields when storing or comparing.
Track page counts explicitly.
When testing iterator flows, watch Record count and Record total in the Code Checker Console or calculate your own running total after each pass.
RET count is your quick sanity check.
Compare RET count against the number of parsed items you captured.
Log everything during development.
Enable QBDebugLogger flags to trace setup, connection, request, and parsing. See Using DebugView.
Save or copy XML when investigating.
Use the viewer and console buttons to open in browser for collapsible trees or copy to clipboard for sharing with support.
| Home | Templates | Classes | Guides |