QuickBooks SDK Error Codes
The QuickBooks server processed the request successfully.
The filters used in the query request did not return any matching objects from QuickBooks.
You'll get this error message if you issue a query of any type, but the result set is empty. Instead of just returning an empty list of objects, QuickBooks returns this error message. This is similar to error code 500, so see that error code for more details.
One or more objects cannot be found
The query request has not been fully completed. There was a required element("fieldValue") that could not be found in QuickBooks.
* This generally means that you've send a request to QuickBooks which refers to an object that doesn't exist. So, for instance, you might have sent the following qbXML request:
<?xml version="1.0" encoding="utf-8"?> <?qbxml version="4.0"?> <QBXML> <QBXMLMsgsRq onerror="stoponerror"> <InvoiceAddRq> <InvoiceAdd> <CustomerRef> <FullName>Keith Palmer</FullName> </CustomerRef> ... </InvoiceAdd> </InvoiceAddRq> </QBXMLMsgsRq> </QBXML>
If a customer named "Keith Palmer" does not already exist within QuickBooks, you'll get a 500 error indicating that the customer named "Keith Palmer" does not exist. Create the customer first, then you can send this request.
Object not in this qbXML specification
Unable to represent objectName "fieldValue" in this version of the qbXML spec.
Object cannot be returned
Unable to return object.
The field "fieldName" is not supported by this implementation.
Unsupported enum value
The enum value "fieldValue" in the field "fieldName" is not supported by this implementation.
Cannot save notes
The objectName object was saved successfully, but its corresponding Notes record could not be saved.
Deprecated field used
This field will not always be supported.
Cannot link to transaction
Unable to link to transaction "fieldValue" because it has already been closed.
No cleared state to return (For error recovery; no message is returned.)
There has been an internal error when processing the request.
System not available
System not available
This request is not supported by this implementation.
Invalid request ID
The request ID "fieldValue" is invalid, possibly too long, max 50 chars.
Invalid object ID
The given object ID "fieldValue" in the field "fieldName" is invalid.
This error code may also be triggered if you try a ReceivePaymentAdd, and the payment can't be found (it might be in the wrong A/R account or not exist at all). Look for these strings and re-queue with IsAutoApply set to true.
... cannot be found ...
... The given object ID ...
There was an error when converting the boolean value "fieldValue" in the field "fieldName"
You should send booleans as string values "true" or "false"
There was an error when converting the date value "fieldValue" in the field "fieldName"
Invalid date range
Invalid date range: From date is greater than To date.
Invalid string range
The "From" or "To" values in the provided fieldName are invalid.
Invalid time interval
There was an error when converting the time interval "fieldValue" in the field "fieldName"
There was an error when converting the amount "fieldValue" in the field "fieldName"
There was an error when converting the price "fieldValue" in the field "fieldName"
There was an error when converting the percent "fieldValue" in the field "fieldName"
There was an error when converting the quantity "fieldValue" in the field "fieldName"
There was an error when converting the GUID value "fieldValue" in the field "fieldName"
String too long
The string "fieldValue" in the field "fieldName" is too long.
All of the fields within QuickBooks have maximum lengths. The maximum lengths are listed in the OSR. If you exceed the maximum length for a string, you'll get this error. Truncate or abbreviate the string, and you'll be all set.
The string "fieldValue" is invalid.
There was an error when converting the number "fieldValue" in the field "fieldName"
Invalid object name
There was an error when storing "fieldValue" in the "fieldName" field.
Name is not unique
The name "fieldValue" of the list element is already in use.
Name and FullName tags in QuickBooks are unique keys. If you add a customer with a Name of "Keith Palmer", then you can't add a second customer with a name of "Keith Palmer" without deleting the first.Sometimes, it helps to push over customers together with a unique identifier appended to their name, to avoid conflicts. For instance, if you have customers in your web application database, each customer probably has a unique primary key (maybe a MySQL auto-increment value or something). Consider sending over customer #245, "Keith Palmer" as:
... <Name>Keith Palmer (245)</Name> ...in your qbXML request.
Resulting amount too large
Multiplying the rate and the quantity results in an amount that exceeds the maximum allowable amount.
Invalid enum value
The enumerated value "fieldValue" in the field "fieldName" is unknown.
Object not found
Object "fieldValue" specified in the request cannot be found.
This can also happen if you try to do a ReceivePaymentAdd, but the invoice can't be found for some reason (deleted or in the wrong A/R account). Look for one of these strings and send again with IsAutoApply = true.
... cannot be found ...
... The given object ID ...
OwnerID not found
Data Extension Definitions specified by OwnerID fieldValue not found for this object type.
Parent reference not found
There is an invalid reference to a parent "fieldValue" in the objectName list.
Reference not found
There is an invalid reference to QuickBooks fieldName "fieldValue" in the objectName.
Missing required element
There is a missing element "fieldName."
Invalid element for request
Cannot use the element "fieldName" in this request.
Element conflict in request
This error is returned whenever there is a conflict in the elements in the request. Each element has valid value, but their combination becomes invalid.
Object cannot be deleted
Cannot delete the object specified by the id = "fieldValue."
Cannot delete before closing date
An attempt was made to delete a fieldValue with a date that is on or before the closing date of the company. If you are sure you really want to do this, please ask a user with Admin privileges to remove the password for editing transactions on or before to closing date (this setting is in the Accounting Company Preferences), then try again.
Not allowed in multi-user mode
This operation is not allowed in multi-user mode.
Object cannot be modified
There was an error when modifying a fieldValue.
You can get this error message as the result of a lot of different actions. You'll really have to read the error description to figure out exactly what's going wrong.
One common one is: "Cannot merge list elements." which occurs when:
That error can occur when you are specifying the ListID of one object, and the Name of another object.
Both ListID and Name are unique keys in QuickBooks, so, for instance, say you have this scenario:
Customer 1 ListID: 1234-ABCD Name: Keith
Customer 2 ListID: 5678-EFGH Name: Shannon
And you issue a CustomerMod with the ListID from one, and the Name from another:
<CustomerMod> <ListID>1234-ABCD</ListID> <Name>Shannon</Name> ...
You'll get the "Cannot merge list elements" error message back from QuickBooks.
Also see the notes for error 3180, which shares the same error messages
Cannot modify before closing date
An attempt was made to modify a fieldValue with a date that is on or before the closing date of the company. If you are sure you really want to do this, please ask a user with Admin privileges to remove the password for editing transactions on or before to closing date (this setting is in the Accounting Company Preferences), then try again.
Cannot modify prior to last condense
An attempt was made to modify a fieldValue with a date that is on or before the last inventory condensed date.
Related object deleted or modified
The related fieldName transaction object fieldValue was deleted or modified.
Object is in use
There was an error adding, modifying or deleting fieldValue because it is already in use.
See the notes for error 3180, which shares the same error messages
Related object is in use
The related fieldName transaction object fieldValue is already in use.
See the notes for error 3180, which shares the same error messages
Duplicate AppliedToTxn IDs
The transaction object "fieldValue" may only be provided once in this request.
Object cannot be added
There was an error when saving a fieldValue.
This error occurs often when you try edit a list object, and for some reason QuickBooks thinks that the list of objects has been modified by another user. As far as I can tell this is some sort of internal locking issue or locking bug with QuickBooks or with the SDK. I have only seen this occur using Enterprise Edition, but it's possible it exists in other versions as well.
You'll get an error message like the one below, and the error can usually be resolved by just re-issuing the request. Error message:
There was an error when saving a Customers list, element "Palmer, Keith". QuickBooks error message: This list has been modified by another user.
It can also occur if you try to issue a DataExtAdd for a DataExt that already exists:
There was an error when saving a data extension named "my custom field name". QuickBooks error message: Attribute with specified name already exists.
This error also exists in several other forms/seems to masquerade as several other error codes. Usual solution is to sleep(15) and try again.
3170 3175 3176 3180
... list has been modified by another user ... ... internals could not be locked ... ... failed to acquire the lock ... ... list element is in use ... ... transaction could not be locked ... ... list is in use by another user ...
Object cannot be voided
Cannot void the object specified by the id = "fieldValue"
Cannot clear required element
Cannot clear the element in the fieldName field.
Outdated edit sequence
The provided edit sequence "fieldValue" is out-of-date.
Every time that QuickBooks updates an object, either via the GUI or via the API, the EditSequence of the object is updated. This helps to ensure that you are not updating a record which has **already** been updated via another user or process. Whenever you issue an update of any type, you need to ensure you're using the very latest EditSequence value. You'll get this error if you use an out-of-date EditSequence value to try to update an object.
Because this value is updated via the GUI or API, whenever you do a "Mod" request (e.g. CustomerMod, InvoiceMod, etc.) you MUST first query the record to get the very latest EditSequence value.
There was an error when composing an address in "fieldValue"
This often shows up with an error message that looks like this:
There is not enough address lines to compose the address. Please rearrange the individual fields, so that they can fit in the 5-lines block.
When storing addresses within QuickBooks, you can only use 5 lines *maximum*, *including* the address lines, city/state/zip line, and country line. So, for instance, these are valid and can be stored in because they fit on 5 lines when printed:
// Both of the examples below represent the following 5 address lines: // 1. 56 Cowles Road // 2. ATTN: Keith Palmer Jr. // 3. Suite D // 4. Willington, CT 06279 // 5. United States // Examples: Addr1: 56 Cowles Road Addr2: Attention- Keith Palmer Jr. Addr3: Suite D City: Willington State: Connecticut Postal: Code06279 Country: United States Addr1: 56 Cowles Road Addr2: Attention- Keith Palmer Jr. Addr3: Suite D Addr4: Willington, CT 06279 Addr5: United States
This is *not* valid, because it takes up more than 5 address lines when printed:
// The example below takes up 6 address lines (and thus is invalid): // 1. 56 Cowles Road // 2. ATTN: Keith Palmer Jr. // 3. Suite D // 4. Phone: (860) 634-1602 // 5. Willington, CT 06279 // 6. United States // Example: Addr1: 156 Cowles Road Addr2: ATTN: Keith Palmer Jr. Addr3: Suite D Addr4: Phone: (860) 634-1602 City: Willington State: Connecticut PostalCode: 06279 Country: United States
Other validation error
The "fieldName" field has an invalid value "fieldValue
This can also happen if you try to apply a payment to an invoice, and the invoice has an open balance of less than the payment applied amount.
3210: The "AppliedToTxnAdd payment amount" field has an invalid value "129.43". QuickBooks error message: You cannot pay more than the amount due.
Not authorized operation
There is no permission to perform this request, or the feature has been turned off in QuickBooks.
The request has been rolled-back.
The request has not been processed.
Time creation mismatch
Object "fieldValue" specified in the request cannot be found.
Feature not enabled
This feature is not enabled or not available in this version of QuickBooks.
Insufficient permission level to perform this action.
Example for querying for accounts without permissions:
<AccountQueryRs requestID="3330" statusCode="3260" statusSeverity="Error" statusMessage="Insufficient permission level to perform this action.">
Application has no sensitive data permission
The integrated application has no permission to access sensitive data.
When you first set up the integration application, you get to choose whether or not to grant access to sensitive information such as credit card numbers, social security numbers, etc. to the application.
If you get this message, it means the application wasn't granted access and you're trying to access it anyway.
Requires payroll subscription
In order to complete this request, the company data file has to be subscribed to the Intuit Payroll Service.
Not authorized for write access
This request cannot be completed because the integrated application had requested read-only access. Have the integrated application request read/write access, and have the QuickBooks administrator grant this access.
Missing posting account Missing posting account.
This can occur when you're trying to do something unsupported with the SDK. For instance, if you try to add a Sales Order to QuickBooks Pro, you'll get back this error message, as you can only create Sales Orders in QuickBooks Premier and Enterprise Solutions editions.
In QuickBooks Pro, you may be able to work with existing sales orders but you can't create new ones.
Item type mismatch
The item "fieldValue" cannot be used in this line item [[http://www.beautyschoolsofamerica.biz/|Beauty Schools of America Complaints]]. It does not have a correct type.
This error also occurs if you try to add an invoice with a ItemLineAdd, when the item is a Group type item. Example:
3280 The item "Test Group" cannot be used in this line item. It does not have a correct type.
Item line out of order
The line items in the request are [[http://www.mycaal.com/|loan modification]] in a different order than the line items in the transaction.
Cannot open requested window
Could not open the requested objectName form or window.
Not allowed in unattended mode Cannot perform this request unless an interactive QuickBooks user is logged in.
Unknown employee time status Failed to save the Time Tracking transaction. The employee "fieldValue" provided in the TimeTrackingAdd request has the checkbox "Use time data to create paychecks" set to the Unknown state. Have your application ask the user whether or not to set time tracking for this employee. Then issue an EmployeeMod request to set this option to either True or False. If True, activities will be transferred to paychecks.
Could not create report The required report could not be generated.
Invalid GUID for request Cannot use the value "fieldValue" in the "fieldName" field in this request.
Not allowed in data event callback This request cannot be processed from within a data event callback procedure.
Custom field list is full Unable to define a new public data extension; the list of public extension definitions is full.
Invalid type for custom field The value or values provided for AssignToObject or RemoveFromObject may not be used for public data extension requests.
Not allowed to reuse custom field The data extension named "fieldValue" was previously defined with a different, incompatible AssignToObject. Unable to use the AssignToObject type in this request.
Callback app cannot be verified The callback application cannot be found from the CLSID or ProgID provided in the subscription request.
Invalid checksum (For error recovery; no message is returned.)
No stored response found (For error recovery; no message is returned.)
Reinitialization problem (For error recovery; no message is returned.)
Invalid message ID (For error recovery; no message is returned.)
An error recovery record could not be saved An attempt was made to save an error recovery record for a message set. The save operation failed and the record wasn't saved.
Macro name not unique The macro name "fieldValue" is already in use; it may only be defined once.
Macro name too long The macro name "fieldValue" is too long.
Macro name invalid The macro name "fieldValue" contains invalid characters.
Macro substitution failure The request was unable to use a macro value, probably due to an earlier error encountered when defining the macro.
Attempted to retrieve a value before it has been set.
Internal error interpreting the response.
The given enum value is invalid.
The given numeric value is out of range.
The given string is longer than the maximum length allowed. (Note that for many strings, the maximum length is different for desktop versions of QuickBooks than for QuickBooks Online Edition.)
The given value has an invalid format.
Attempted to retrieve a value that has been set to empty.
This message will indicate why the verification of the request set failed.
Could not communicate with the QuickBooks SDK.
The QuickBooks SDK is a pre-release version.
The given version of qbXML is not supported.
This feature is not supported in the specified version of qbXML.
This message set must be used with the QBSessionManager, not QBOESessionManager. -or- This message set must be used with the QBOESessionManager, not QBSessionManager.
HTTP-specific error text.
(Specific error-recovery messages will be sent with this HRESULT.)
This function is supported by a newer version of Request Processor.
error recovery is enabled. Process or clear the saved Response status before issuing another request.
The ConnectionTicket must be filled in.
The Country value is invalid.
QuickBooks found an error when parsing the provided XML text stream.
Could not access QuickBooks.
Unexpected error. Check the qbsdklog.txt file for possible, additional information.
Could not open the specified QuickBooks company data file.
The version of QuickBooks currently running does not support qbXML.
qbXML components have not been installed.
I have no idea why this would ever occur, but we've seen it happen before on perfectly fine QuickBooks installs. Killing the session/closing the connection and then re-trying it seems to resolve the problem.
Could not determine the version of the QuickBooks company data file, or the data file has been modified and requires a newer version of QuickBooks.
The installation of QuickBooks appears to be incomplete. Please reinstall QuickBooks.
Could not start QuickBooks.
The current version of QuickBooks cannot work with the specified company data file.
QuickBooks company data file is already open and it is different from the one requested.
Could not get the name of the current QuickBooks company data file.
BeginSession method has not been called or it did not succeed.
The ticket parameter is invalid.
This occurs if the SDK loses it's internal COM connection to QuickBooks or QuickBooks for some reason kills the connection.
Stop your application and have it disconnect from QuickBooks (if you're using the Web Connector, return -1 to indicate an error and close the connection) and try everything again.
There is not enough memory to complete the request.
The OpenConnection method has not been called.
The QuickBooks company data file is currently open in a mode other than the one specified by your application.
Before calling the BeginSession method, you must call the EndSession method to terminate the current session.
You cannot make multiple successive calls to the OpenConnection method. Call CloseConnection before calling OpenConnection again.
QuickBooks does not support the rollbackonerror value of the onerror attribute.
A modal dialog box is showing in the QuickBooks user interface. Your application cannot access QuickBooks until the user dismisses the dialog box.
A call to the OpenConnection method must include the name of your application.
If QuickBooks is not running, a call to the BeginSession method must include the name of the QuickBooks company data file.
If the QuickBooks company data file is not open, a call to the BeginSession method must include the name of the data file.
This application has not accessed this QuickBooks company data file before. Only the QuickBooks administrator can grant an application permission to access a QuickBooks company data file for the first time.
This applications certificate is invalid. An application must have a valid certificate to access QuickBooks company data files.
This application does not have permission to access this QuickBooks company data file. The QuickBooks administrator can grant access permission through the Integrated Application preferences.
Unable to lock the necessary information to allow this application to access this company data file. Try again later.
An internal QuickBooks error occurred while trying to access the QuickBooks company data file.
This application is not allowed to log into this QuickBooks company data file automatically. The QuickBooks administrator can grant permission for automatic login through the Integrated Application preferences.
This applications certificate is expired. If you want to allow the application to log into QuickBooks automatically, log into QuickBooks and try again. Then click Allow Always when you are notified that the certificate has expired.
QuickBooks Basic cannot accept XML requests. Another product in the QuickBooks line, such as QuickBooks Pro or Premier, 2002 or later, is required.
The QuickBooks user has denied access.
The returned text is passed via the qbXML COM Request Processor directly from QuickBooks to your application and is not issued by the qbXML COM Request Processor itself. You may find it useful to copy the text verbatim to your message window.
This application requires Single User file access mode and there is already another application sharing data with this QuickBooks company data file.
The version of qbXML that was requested is not supported or is unknown.
When you send your qbXML request, part of it looks like this:
<?xml version="1.0" encoding="utf-8"?> <?qbxml version="7.0"?> <QBXML> <QBXMLMsgsRq onError="stopOnError"> ... </QBXMLMsgsRq> </QBXML>If you get this error message, it means that you sent a
<?qbxml version="x.x"?>that your version of QuickBooks doesn't support. Try sending a lower version. You should also see the list of qbXML versions that each version of QuickBooks supports.
QuickBooks did not finish its initialization. Please try again later.
Scripts are not allowed to call QBXMLRP.
The current request processor does not support the request.
The current messageset is not supported.
Remote access is not allowed.
Certificate has been revoked.
Something is wrong with the SSL certificate issued to your domain name, and thus the Web Connector can't connect. Fix the SSL issue.