| Home | Templates | Classes | Guides |
This guide provides practical guidance to help you build robust integrations with the QuickBooks Desktop API using this wrapper. It covers usage strategies, API quirks, and references for deeper reading.
iterator="Start" and then iterator="Continue" with MaxReturned=50 for large result sets.iteratorRemainingCount to decide whether another request is needed.NOTE: The demo app and the QBAI Primer both have examples of using iterators.
QuickBooks requires tags in the exact order defined by its DTDs. Incorrect order can fail silently or be rejected.
Find the correct order in the SDK reference:
https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbxml
Follow the structure shown for your request type, for example CustomerAddRq.
When initializing the parser, pass the correct root name for the response you are parsing. Using the wrong name causes ValidateResponse() to fail.
! Expecting <CustomerQueryRs> in the response
QBParser.Init('CustomerQuery', QBSessionMgr)
Without a valid license key, the DLL runs in demo mode:
-1002Use demo mode to learn and to test request construction. For full functionality, obtain a licensed wrapper and a QuickBooks developer copy.
Tag names must match the spec exactly.
ListIDlistid, Listid, LISTIDFilter values can be case sensitive as well. Searching for robert will not match Robert.
Best practice: copy tag names directly from the QBXML reference to avoid subtle bugs.
Reference:
https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop
Use YYYY-MM-DD or YYYY-MM-DDThh:mm:ss-05:00 formats.
Prefer the helpers on QBXMLTools, such as:
Tools.BuildXMLDateTimeFromClarion(Date, Time)
Before sending CustomerMod, ListDel, or any mutation:
ListIDEditSequence for modify operationsDo not hardcode these values. Requery to avoid edit conflicts.
Use IncludeRetElement to request only the fields you need. Smaller responses are faster to parse and easier to validate.
Add each element with its own RequestAddTag().
For nested structures, use RequestOpenTag() and RequestCloseTag() to group child elements clearly.
The colon character is reserved for XML namespaces. QuickBooks does not support namespaced XML.
Customer:Name.CustomerName or Name instead.QuickBooks SDK reference:
https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop
Intuit developer account and tools:
https://developer.intuit.com
Free developer copy of QuickBooks (NFR) via the Intuit Developer Advantage Program (IDAP):
https://developer.intuit.com/app/developer/qbdesktop/docs/get-started#quickbooks-desktop-developer-license
| Home | Templates | Classes | Guides |