QuickBooks SDK Error Codes

From ConsoliBYTE Wiki
Jump to: navigation, search

Contents

0

The QuickBooks server processed the request successfully.

Status OK.


1

No match.

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.

500

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.

501

Object not in this qbXML specification

Unable to represent objectName "fieldValue" in this version of the qbXML spec.

510

Object cannot be returned 
Unable to return object.

530

Unsupported field

The field "fieldName" is not supported by this implementation.

531

Unsupported enum value

The enum value "fieldValue" in the field "fieldName" is not supported by this implementation.

550

Cannot save notes

The objectName object was saved successfully, but its corresponding Notes record could not be saved.

560

Deprecated field used

This field will not always be supported.

570

Cannot link to transaction

Unable to link to transaction "fieldValue" because it has already been closed.

600

No cleared state to return (For error recovery; no message is returned.)

1000

Internal error

There has been an internal error when processing the request.

1010

System not available

System not available

1030

Unsupported message

This request is not supported by this implementation.

1060

Invalid request ID

The request ID "fieldValue" is invalid, possibly too long, max 50 chars.

3000

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 ...

3010

Invalid Boolean

There was an error when converting the boolean value "fieldValue" in the field "fieldName"
You should send booleans as string values "true" or "false"

3020

Invalid date

There was an error when converting the date value "fieldValue" in the field "fieldName"

3030

Invalid date range

Invalid date range: From date is greater than To date.

3031

Invalid string range

The "From" or "To" values in the provided fieldName are invalid.

3035

Invalid time interval

There was an error when converting the time interval "fieldValue" in the field "fieldName"

3040

Invalid amount

There was an error when converting the amount "fieldValue" in the field "fieldName"

3045

Invalid price

There was an error when converting the price "fieldValue" in the field "fieldName"

3050

Invalid percentage

There was an error when converting the percent "fieldValue" in the field "fieldName"

3060

Invalid quantity

There was an error when converting the quantity "fieldValue" in the field "fieldName"

3065

Invalid GUID

There was an error when converting the GUID value "fieldValue" in the field "fieldName"

3070

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.

3080

Invalid string

The string "fieldValue" is invalid.

3085

Invalid number

There was an error when converting the number "fieldValue" in the field "fieldName"

3090

Invalid object name

There was an error when storing "fieldValue" in the "fieldName" field.

3100

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.


3101

Resulting amount too large

Multiplying the rate and the quantity results in an amount that exceeds the maximum allowable amount.

3110

Invalid enum value

The enumerated value "fieldValue" in the field "fieldName" is unknown.

3120

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 ...

3121

OwnerID not found

Data Extension Definitions specified by OwnerID fieldValue not found for this object type.

3130

Parent reference not found

There is an invalid reference to a parent "fieldValue" in the objectName list.

3140

Reference not found

There is an invalid reference to QuickBooks fieldName "fieldValue" in the objectName.

3150

Missing required element

There is a missing element "fieldName."

3151

Invalid element for request

Cannot use the element "fieldName" in this request.

3153

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.

3160

Object cannot be deleted

Cannot delete the object specified by the id = "fieldValue."

3161

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.

3162

Not allowed in multi-user mode

This operation is not allowed in multi-user mode.

3170

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

3171

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.

3172

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.

3173

Related object deleted or modified

The related fieldName transaction object fieldValue was deleted or modified.

3175

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

3176

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

3177

Duplicate AppliedToTxn IDs

The transaction object "fieldValue" may only be provided once in this request.

3180

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 &quot;Palmer, Keith&quot;.  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 &quot;my custom field name&quot;.  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 ...

3185

Object cannot be voided

Cannot void the object specified by the id = "fieldValue"

3190

Cannot clear required element

Cannot clear the element in the fieldName field.

3200

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.

3205

Invalid address

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
 

3210

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.

For example:

3210: The "AppliedToTxnAdd payment amount" field has an invalid value "129.43".  QuickBooks error message: You cannot pay more than the amount due.

3220

Not authorized operation

There is no permission to perform this request, or the feature has been turned off in QuickBooks.

3230

Status rollback

The request has been rolled-back.

3231

Status unprocessed

The request has not been processed.

3240

Time creation mismatch

Object "fieldValue" specified in the request cannot be found.

3250

Feature not enabled

This feature is not enabled or not available in this version of QuickBooks.

3260

Insufficient permissions

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.">

3261

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.

3262

Requires payroll subscription

In order to complete this request, the company data file has to be subscribed to the Intuit Payroll Service.

3263

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.

3270

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.

3280

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.

3290

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.

3300

Cannot open requested window

Could not open the requested objectName form or window.


3301

Not allowed in unattended mode Cannot perform this request unless an interactive QuickBooks user is logged in.

3310

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.

3320

Could not create report The required report could not be generated.

3330

Invalid GUID for request Cannot use the value "fieldValue" in the "fieldName" field in this request.

3340

Not allowed in data event callback This request cannot be processed from within a data event callback procedure.

3350

Custom field list is full Unable to define a new public data extension; the list of public extension definitions is full.

3351

Invalid type for custom field The value or values provided for AssignToObject or RemoveFromObject may not be used for public data extension requests.

3352

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.

3360

Callback app cannot be verified The callback application cannot be found from the CLSID or ProgID provided in the subscription request.

9001

Invalid checksum (For error recovery; no message is returned.)

9002

No stored response found (For error recovery; no message is returned.)

9003

Reinitialization problem (For error recovery; no message is returned.)

9004

Invalid message ID (For error recovery; no message is returned.)

9005

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.

9100

Macro name not unique The macro name "fieldValue" is already in use; it may only be defined once.

9101

Macro name too long The macro name "fieldValue" is too long.

9102

Macro name invalid The macro name "fieldValue" contains invalid characters.

9103

Macro substitution failure The request was unable to use a macro value, probably due to an earlier error encountered when defining the macro.

0x80040300

Attempted to retrieve a value before it has been set.

0x80040301

Internal error interpreting the response.

0x80040302

The given enum value is invalid.

0x80040303

The given numeric value is out of range.

0x80040304

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.)

0x80040305

The given value has an invalid format.

0x80040306

Attempted to retrieve a value that has been set to empty.

0x80040307

This message will indicate why the verification of the request set failed.

0x80040308

Could not communicate with the QuickBooks SDK.

0x80040309

The QuickBooks SDK is a pre-release version.

0x8004030A

The given version of qbXML is not supported.

0x8004030B

This feature is not supported in the specified version of qbXML.

0x8004030C

This message set must be used with the QBSessionManager, not QBOESessionManager. -or- This message set must be used with the QBOESessionManager, not QBSessionManager.

0x8004030D

HTTP-specific error text.

0x8004030E

(Specific error-recovery messages will be sent with this HRESULT.)

0x8004030F

This function is supported by a newer version of Request Processor.

0x80040310

error recovery is enabled. Process or clear the saved Response status before issuing another request.

0x80040311

The ConnectionTicket must be filled in.

0x80040312

The Country value is invalid.

0x80040400

QuickBooks found an error when parsing the provided XML text stream.

0x80040401

Could not access QuickBooks.

0x80040402

Unexpected error. Check the qbsdklog.txt file for possible, additional information.

0x80040403

Could not open the specified QuickBooks company data file.

0x80040404

The version of QuickBooks currently running does not support qbXML.

0x80040405

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.

0x80040406

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.

0x80040407

The installation of QuickBooks appears to be incomplete. Please reinstall QuickBooks.

0x80040408

Could not start QuickBooks.

0x80040409

The current version of QuickBooks cannot work with the specified company data file.

0x8004040A

QuickBooks company data file is already open and it is different from the one requested.

0x8004040B

Could not get the name of the current QuickBooks company data file.

0x8004040C

BeginSession method has not been called or it did not succeed.

0x8004040D

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.

0x8004040E

There is not enough memory to complete the request.

0x8004040F

The OpenConnection method has not been called.

0x80040410

The QuickBooks company data file is currently open in a mode other than the one specified by your application.

0x80040411

Before calling the BeginSession method, you must call the EndSession method to terminate the current session.

0x80040412

You cannot make multiple successive calls to the OpenConnection method. Call CloseConnection before calling OpenConnection again.

0x80040413

QuickBooks does not support the rollbackonerror value of the onerror attribute.

0x80040414

A modal dialog box is showing in the QuickBooks user interface. Your application cannot access QuickBooks until the user dismisses the dialog box.

0x80040415

A call to the OpenConnection method must include the name of your application.

0x80040416

If QuickBooks is not running, a call to the BeginSession method must include the name of the QuickBooks company data file.

0x80040417

If the QuickBooks company data file is not open, a call to the BeginSession method must include the name of the data file.

0x80040418

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.

0x80040419

This applicationÂ’s certificate is invalid. An application must have a valid certificate to access QuickBooks company data files.

0x8004041A

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.

0x8004041B

Unable to lock the necessary information to allow this application to access this company data file. Try again later.

0x8004041C

An internal QuickBooks error occurred while trying to access the QuickBooks company data file.

0x8004041D

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.

0x8004041E

This applicationÂ’s 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.

0x8004041F

QuickBooks Basic cannot accept XML requests. Another product in the QuickBooks line, such as QuickBooks Pro or Premier, 2002 or later, is required.

0x80040420

The QuickBooks user has denied access.

0x80040421

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.

0x80040422

This application requires Single User file access mode and there is already another application sharing data with this QuickBooks company data file.

0x80040423

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.

0x80040424

QuickBooks did not finish its initialization. Please try again later.

0x80040425

Invalid parameter.

0x80040426

Scripts are not allowed to call QBXMLRP.

0x80040427

Unregistered QuickBooks.

0x80040428

The current request processor does not support the request.

0x80040429

The current messageset is not supported.

0x8004042A

Remote access is not allowed.

0x8004042B

Unsupported interface.

0x8004042C

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.