Skip to Content

QuickBooks Connection Details

Introduction

Connector Version

This documentation is based on version 23.0.8895 of the connector.

Get Started

QuickBooks Version Support

The connector supports QuickBooks Premier, Professional, Enterprise, and Simple Start. All QuickBooks editions are supported starting from 2002 to the most recent QuickBooks version. In addition, the Canada, New Zealand, Australia, and UK editions are supported starting from 2003. The QuickBooks Point of Sale and QuickBooks for Mac editions are not supported.

Establish a Connection

Connect to QuickBooks

The connector makes requests to QuickBooks through the QuickBooks Gateway. The QuickBooks Gateway runs on the same machine as QuickBooks and accepts connections through a lightweight, embedded Web server. The server supports SSL/TLS, enabling users to connect securely from remote machines. The first time you connect, you will need to authorize the connector with QuickBooks. For more information, refer to our Using the QuickBooks Gateway guide.

Connect to a Local Company File

Follow the steps below to authorize with QuickBooks and connect to a company file when both QuickBooks and the connector are running on your local machine.

  1. Open QuickBooks as an administrator and open the company file you want to connect to.

  2. Connect to QuickBooks. A dialog will appear in QuickBooks prompting you to authorize the connector. After granting access to the connector, you can now execute commands to QuickBooks.

  3. If you want to connect to the company file when QuickBooks is closed, set the CompanyFile connection option when you execute commands. QuickBooks will open automatically in the background with the file specified.

    Note that if QuickBooks is open through the application UI, only that CompanyFile can be used.

Use the CData QuickBooks Desktop Gateway

The QuickBooks Desktop Gateway can be used to read and write to QuickBooks in situations where direct COM access to QuickBooks is not available (e.g., ASP.NET, Java, or QuickBooks on a remote machine). Follow the procedure below to connect to QuickBooks for the first time through the Desktop Gateway:

  1. If you have not already done so, download the QuickBooks Desktop Gateway from here and install it.

  2. Open the company file you want to connect to in QuickBooks using an administrator account in single-user mode.

  3. Open the QuickBooks Desktop Gateway from the system tray and add a user on the Users tab. Enter a User and Password and select the level of access in the Data Access menu.

    Note: The QuickBooks Desktop Gateway does not use the User and Password properties to access QuickBooks; the User and Password properties authenticate the user. Authentication to QuickBooks is handled by the ApplicationName property.

  4. When you first connect, a dialog appears in QuickBooks prompting you to authorize the application. After authorizing, you can execute commands to QuickBooks.

    Specify the URL of the Desktop Gateway and the User and Password. By default, the Gateway connects to the currently open company file.

  5. If you want to access QuickBooks when QuickBooks is not running, save the company file information for the user. The Desktop Gateway automatically opens QuickBooks in the background with the company file for that user.

Note

Note that if the QuickBooks UI is open, you can only connect to that company file. Additionally, the user permissions you specify for the Desktop Gateway must match the user permissions you used for QuickBooks. The Desktop Gateway installs as a service in the current user account.

How do I Connect to QuickBooks over SSL/TLS?

You can enable SSL/TLS on the Advanced tab.

You will also need to send your public key certificate to the connector. You can do so by setting the SSLServerCert property.

Troubleshooting/Advanced

The following sections show how to resolve common connection errors and detail functionality that may be needed in more advanced integrations. Contact the support team for help tracing the source of an error or circumventing a performance issue.

Troubleshooting

Automatic Login Access Denied or Access Denied

Try the following to resolve this error:

  • If this error occurs the first time that you connect to a company file, ensure that QuickBooks is open as an administrator in single-user mode. Be sure to open the company file that you want to allow access to.
  • The application may have permission to access the company file but not to log in automatically. To allow automatic login, open the company file preferences in QuickBooks by clicking Edit -> Preferences -> Integrated Applications -> Company Preferences and then select the QuickBooks Gateway application. Then, try connecting again.
  • In the company file preferences, ensure that the following option is NOT checked: "Don't allow any applications to access this company file".
  • Set DelayAfterClose.
Could Not Start QuickBooks

This is the most common error and the solution depends on your specific QuickBooks installation. Follow the steps below to identify several typical causes for this error.

  1. Check the log for the QuickBooks request processor, QBSDKLOG.txt. The file is not necessarily in the same directory as QuickBooks. The location of the file depends on the version of QuickBooks and the operating system you are using. The qbsdklog.txt may be in the following locations:

    C:\Program Files\Common Files\Intuit\QuickBooks
    C:\ProgramData\Intuit\QuickBooks
    C:\Documents and Settings\All Users\Intuit\QuickBooks

    Modify the QBSDK.INI file by appending the following value to the end:

    [LOG]
    LEVEL=verbose
    UnlimitedSize=Y
    

    This ensures that the log is not cleared and that the error message in the QBSDKLOG.txt file is actually captured.

  2. Check if the error message in this file matches one of those below:

    Fine Tuning Data Access

    You can use the following properties to gain more granular control over how the connector surfaces functionality in the QuickBooks API:

    • CustomFieldMode: By default, custom fields are displayed and modified as XML values. However, you can also use JSON to work with custom fields.
    • IncludeLineItems: By default, line items are returned only when you query a line item table such as InvoiceLineItems. This saves performance when querying base transaction tables such as Invoices. Set this property to true to retrieve line item data when you query the base transaction table.
    • IncludeLinkedTxns: By default, the connector does not retrieve linked transactions when you query a base table, similar to IncludeLineItems.

    Important Notes

    Configuration Files and Their Paths

    • All references to adding configuration files and their paths refer to files and locations on the Harmony Agent where the connector is installed. These paths are to be adjusted as appropriate depending on the agent and the operating system. If multiple agents are used in an agent group, identical files will be required on each agent.

    QuickBooks Gateway

    The QuickBooks Desktop Gateway is a simple application that facilitates connections to company files from your application. The Desktop Gateway accepts connections via a lightweight embedded Web server that runs on the machine where QuickBooks is installed. The server supports SSL/TLS, enabling users to connect securely from remote machines.

    The first time you connect to QuickBooks, you must authorize your application. Complementing the per-application authentication of QuickBooks, the Desktop Gateway has per-user authentication. Before connecting to QuickBooks for the first time, configure at least one Desktop Gateway user.

    You can configure users through the UI on the Users tab. You can then follow the procedure in Getting Started to connect an application to QuickBooks. After connecting, you can monitor QuickBooks connections on the Status tab.

    It is recommended to configure the Desktop Gateway in the UI, but you can also run the Desktop Gateway from the command line. See the Advanced page to configure the Desktop Gateway when you are not using the UI.

    The Desktop Gateway automatically manages the connection to QuickBooks, but you can configure almost every aspect of how users connect to QuickBooks through the Desktop Gateway. The following pages outline the capabilities of the Desktop Gateway and how to get started.

    Users

    The Users tab provides an interface to add, edit, and delete users. At least one user must be added before communicating with QuickBooks.

    This tab displays a list of existing users along with information about the user's configuration.

    When adding or editing a user, the following options are available:

    • User: Sets the username. This is required.
    • Password: Sets the password for the user. This is required when using Basic authentication (default).
    • Authentication: Specifies the type of authentication to perform when the user connects. The Desktop Gateway supports the following authentication methods:

    Is your company file on a mapped drive? If so, the QBSDKLOG will contain entries similar to the ones below:
    20140623.102658  E  5136  RequestProcessor  Unknown QBInstanceFinder error.
        File Name: "S:\Quickbooks\MyCompanyFile.qbw"  hr = 80070057
    20140623.102658  E  5136  RequestProcessor
        Could not find or create an instance of QuickBooks using InstanceFinder  hr = 80040403
    The solution is to use the network path instead of a mapped drive.
    Does the QBSDKLOG contain many error messages like the one below?
    20140612.145409  I  272  RequestProcessor  Previous instance of QB is going down..! Wait and retry to get a new instance.
    This error can occur if a request is received to start a new QuickBooks instance while the previous QuickBooks instance is closing. Repeated connections to QuickBooks in short succession can cause abnormal behavior. You can set DelayAfterClose to wait before a new connection is opened. You can also reuse the same connection for multiple requests by enabling persistent connections on the Advanced tab in the QuickBooks Gateway and then setting the QBXMLVersion property in the connection string.
    In addition to enabling persistent connections, you can use the following QuickBooks Gateway settings to have more control over starting and stopping the QuickBooks process. When enabled, the QuickBooks Gateway will take steps to resolve connection issues if the conditions below are met. In some scenarios, the QuickBooks Gateway may forcibly end the QuickBooks process. USE THESE SETTINGS WITH CAUTION:
    CloseAndRetryConnect: Boolean with a default of 'false'. If set to true, the QuickBooks Gateway will attempt to close the QuickBooks process if an error is encountered when the QuickBooks Gateway attempts to launch a new instance of QuickBooks. All other settings are only applicable when this setting is set to true.
    CloseAndRetryCount: Integer with a default of 3. The number of times to try to close and relaunch QuickBooks. Our developers found that 3 worked in all cases we encountered.
    CloseAndRetryTimeout: Integer with a default of 30. The number of seconds to wait for the current QuickBooks process to close before trying to connect again.
    CloseAndRetryErrorList: Comma-separated list of error codes with a default of '0x80040408, 0x80040402'. Specifies a list of error codes that will cause the QuickBooks Gateway to try and forcibly end the QuickBooks process. A value of '*' means all errors. It is not recommended that you change this property unless you have a very specific reason to do so. You can set each of these properties as registry keys in HKEY_LOCAL_MACHINE\SOFTWARE\RemoteConnector. In most situations, only CloseAndRetryConnect needs to be set the True. Restart the QuickBooks Gateway for the changes to take effect.
    Basic Authentication (default): Authenticates the user with a username and password.
    Windows Authentication: Authenticates the user as a Windows user. In this case, the Password field is not applicable. When the Desktop Gateway receives a connection request, it authenticates the user to Windows using the credentials supplied in the request.
  3. Software: The QuickBooks product you are connecting to.

  4. Company File: Specifies the company file with which the application will communicate. By default this is the company file that is currently open in QuickBooks. This can also be set to the absolute path to a company file (.qbw file). A company file must be specified in order to access the company file when QuickBooks is closed.
  5. Application Name: Optionally sets the name of the application as seen by QuickBooks. Authentication to QuickBooks is handled based on the provided application name.
  6. Data Access: Specifies the allowed access for the user.

    Full: Allows read and write access for the user.
    Read-only: Restricts the user to read-only operations, so that QuickBooks data cannot be modified.
  7. The Test Connection button provides a quick way to verify that the application can connect with QuickBooks.

    When a user is added, the Desktop Gateway prompts you to authorize the application with QuickBooks, if necessary.

    Import Users

    The Import button prompts you to select an .ini file containing one or more user profiles.

    Imported .ini files must conform to the following syntax:

    [MyUserName]
    Config1 = Value1
    Config2 = Value2
    ...
    

    The following configurations are available:

    • Password: Corresponds to the "Password" option in the "Add User" form. Required when using basic authentication.
    • AuthMode: Corresponds to the "Authentication" option in the "Add User" form. Options include:
      • 0 (corresponds to "Basic Authentication")
      • 1 (corresponds to "Windows Authentication")
    • Software: Corresponds to the "Software" option in the "Add User" form. Options include:
      • QB Desktop
      • QB Point of Sale 10
      • QB Point of Sale 11
      • QB Point of Sale 12
      • QB Point of Sale 18
    • CompanyFile: Corresponds to the "Company File" option in the "Add User" form.
    • AppName: Corresponds to the "Application Name" option in the "Add User" form.
    • ReadOnly: Corresponds to the "Data Access" option in the "Add User" form. Options include:
      • 0 (corresponds to "Full")
      • 1 (corresponds to "Read-only")

    Here is an example configuration:

    [TestUser]
    Password = SamplePassword
    AuthMode = 0
    Software = QB Desktop
    CompanyFile = C:\Users\test\Documents\samplefile.qbw
    AppName = Remote Connector
    ReadOnly = 0
    

    Status

    The Status tab provides a log of the activity happening with the Desktop Gateway. Logs can be cleared or copied by right-clicking in the Recent Activity window.

    You can adjust the detail of the logs to include information useful when troubleshooting: Select the granularity in the Log Mode menu on the Advanced tab. On the Advanced tab, you can also configure the Desktop Gateway to write logs to a file and select the log rotation interval.

    Advanced

    The Advanced tab enables granular control over the Desktop Gateway's server.

    The Desktop Gateway contains an embedded Web server that runs as a Windows service and listens for HTTP requests. Each request contains the XML data to be communicated to QuickBooks, as well as configuration settings specifying how the connection is opened. The Desktop Gateway then communicates with QuickBooks via COM, and returns the QuickBooks response (or an error message) in the HTTP reply.

    This chapter details how to control each of these aspects of connecting to QuickBooks through the UI, command-line interface, and the registry. The following sections detail the options available on the Advanced tab.

    Log Options

    • Write Logs to a Folder: Enables or disables writing log files to the specified folder in addition to writing logs to the Status tab.
    • Folder: Specifies the folder where log files are written.
    • Log Rotation: Determines how logs are organized on disk. Creates one file for each day, week, or month, depending on the following values:

      Daily (default): Uses a new log file every day. Files are written with the format "yyyy_MM_dd.txt". For example, "2013_09_23.txt".
      Weekly: Uses a new log file every week. Files are written with the format "yyyy_ww.txt". For example, "2013_34.txt", where 34 means this is the 34th week of 2013.
      Monthly: Uses a new log file every month. Files are written with the format "yyyy_mm.txt". For example, "2013_09.txt".
    • Log Mode: Sets the verbosity of the log output. In most situations, Info (the default) is sufficient. The Verbose option is helpful for debugging purposes.

    IP Options

    • Port: The port on which the server listens.
    • Allowed Clients: A comma-separated list of host names or IP addresses that can access the server. The wildcard character '*' is supported. If unspecified (default) any client can connect.

    Enable Persistent Connections

    All communications to QuickBooks company files must first go through QuickBooks. If QuickBooks is closed, this means that for each attempt to connect to the company file, QuickBooks needs to be launched and then closed again. By default the Desktop Gateway queues requests for data and performs the necessary authentication for each request. The following options can be used to override this behavior and keep the connection to the company file alive after the query finishes executing, so further requests will respond more quickly.

    Warning: If a user attempts to manually open QuickBooks while a persistent connection is opened, QuickBooks will return an error stating that the company file is already in use.

    • Enable Persistent Connection: This is disabled by default: Normally your code controls when the connection to QuickBooks is opened and closed by calling the Open and Close methods; however, when this setting is enabled, the Desktop Gateway establishes a persistent connection to QuickBooks even when Open and Close are not used. This allows multiple applications to share the connection and simultaneously access the Desktop Gateway.
    • Idle Timeout: Sets the idle timeout for the persistent connection in seconds. This is only applicable to the persistent connection. If there is no activity within this time window the Desktop Gateway closes the connection.

    Enable TLS/SSL

    Enable TLS (1.x) to encrypt communication between your application and the Desktop Gateway. TLS/SSL uses digital certificates to protect the confidentiality, integrity, and authenticity of your data: You can generate these certificates on the Advanced tab. Once you have enabled TLS, you will need to send your public key certificate to any connecting applications.

    The following options are used to configure TLS/SSL:

    • Enable TLS: Enables or disables TLS (1.x) communication.
    • Select Certificate: Loads an existing certificate.
    • Generate Certificate: Creates a new certificate.

    Loading a certificate displays information about the certificate; the properties of the certificate cannot be set directly. Note: Enabling TLS disables plaintext connections.

    Command-Line Interface

    In addition to the UI, the Desktop Gateway has a command-line interface that makes it easy to deploy on machines such as Web servers. To facilitate deployment to these environments, the Desktop Gateway contains two executables:

    Property Description
    RemoteConnector.exe Provides the user interface and allows configuration of the application.
    RemoteConnectorService.exe Processes requests and performs all interaction with QuickBooks.

    The syntax for managing the Desktop Gateway Windows service from the command line is as follows:

    RemoteConnectorService.exe /Service <Command>
    

    The following commands are available:

    Property Description
    Install Installs the Windows service.
    Delete Deletes the Windows service.
    Start Starts the Windows service.
    Stop Stops the Windows service.
    State Reports the current state of the Windows service (started or stopped).
    Auto Changes the Windows service startup type to Automatic.
    Manual Changes the Windows service startup type to Manual.
    Disabled Changes the Windows service startup type to Disabled.

    Registry Keys

    All configuration data is read from the registry at "HKEY_LOCAL_MACHINE\SOFTWARE\RemoteConnector". Each user will have a separate subkey with user-specific settings. For instance "HKEY_LOCAL_MACHINE\SOFTWARE\RemoteConnector\User1".

    Application-Level Settings
    Name Type Description
    LocalAuth String A randomly generated administrator password that is used for authorization between the user interface and the Windows service. This is only used when authorizing a user configured for Windows authentication to QuickBooks from the user interface. This may be removed or changed if desired.
    AllowedClients String A comma-separated list of host names or IP addresses that can access the server. The wildcard character '*' is supported (default). If unspecified any client can connect.
    AuthFlags DWORD Specifies the versions of QuickBooks to which the application can connect. The value is a binary OR of the values below, represented in hex. The default value is "0xF" (all editions are supported).
    CloseAndRetryConnect DWORD Specifies whether connection retry logic is enabled. When set to 1 (True), if an error is encountered while opening a connection to QuickBooks the application will attempt to stop the QuickBooks process and reconnect. The CloseAndRetryTimeout, CloseAndRetryCount, and CloseAndRetryErrorList settings are applicable when this setting is 1 (True).
    CloseAndRetryTimeout DWORD Sets the time in seconds that the application will wait for the connection to QuickBooks to be established. The default value is 30 (seconds). If the timeout is reached, the QuickBooks process will be closed and the connection will be retried. Note that this setting should be adjusted with caution. If the timeout is set too low the QuickBooks process may not have time to open normally before reaching the timeout. This setting is only applicable when CloseAndRetryConnect is True.
    CloseAndRetryCount DWORD Sets the number of times to retry the connection. If an error is encountered while opening a connection to QuickBooks, the application will stop the QuickBooks process and retry until this limit is reached. The default value is 3. This setting is only applicable when CloseAndRetryConnect is True.
    CloseAndRetryErrorList String Specifies a comma-separated list of QuickBooks error codes on which to retry a connection. If QuickBooks returns an error code listed in this property, the QuickBooks process will be stopped and the connection will be retried. If the error is not in this list the application will return the error as normal. The default value is "0x80040402,0x80040408". Specify the value "*" to indicate all errors. This setting is only applicable when CloseAndRetryConnect is True.
    QBInstanceFile String Specifies the full path to the QBINSTANCEFINDER file in the QuickBooks installation. For instance: "C:\ProgramData\Intuit\QuickBooks\QBINSTANCEFINDER17.INI". This setting is only applicable when CloseAndRetryConnect is set to True. If the connection retry logic stops the QuickBooks process the specified QBINSTANCEFINDER file will be cleared of any previous entries. QuickBooks uses the QBINSTANCEFINDER file to keep track of open instances, however, in some situations it may not be properly reset after stopping the process. When specified this setting allows the application to properly reset the file after stopping the process.
    LocalHost String Sets the host name or user-assigned IP interface through which connections are initiated or accepted. In most cases this does not need to be set, as the application will use the default interface on the machine. If you have multiple interfaces, you can specify the interface to use here. For instance, "192.168.1.102".
    LogEnabled DWORD Enables or disables logging to a file. Logs are always written to the console. The default is 0 (False).
    LogDir String Sets the path to a folder on disk where log files will be written. This is only applicable if LogEnabled is set to True.
    LogFormat DWORD Sets how often new log files are created. Possible values are the following:
    LogLevel DWORD Sets the logging level. Possible values are the following:
    LogPort DWORD Sets a separate port for logging. Log messages are sent over UDP from RemoteConnectorService.exe to the UI. By default this is the same value as the port defined in the Port option. Set this option to avoid using the same port as another UDP service running on the same machine.
    Port DWORD Sets the port where the server listens for incoming connections. The default value is 8166.
    PersistentEnabled DWORD Enables or disables persistent connections to QuickBooks. The default is 0 (False), meaning that your code controls when the connection to QuickBooks is opened and closed by calling the Open and Close methods. However, when this setting is enabled, a persistent connection to QuickBooks is established by the Desktop Gateway even when Open and Close are not used. This is helpful in situations when multiple applications may be simultaneously accessing the Desktop Gateway, because it allows them to share the connection.
    PersistentIdleTimeout DWORD Sets the idle timeout for the persistent connection in seconds. If there is no activity within this time window, the connection to QuickBooks will be closed. This is only applicable when PersistentEnabled is True.
    PromptForRegPermissions DWORD Specifies whether to prompt to modify registry permissions when access is not allowed. This is only applicable when saving settings from the UI.
    RunAsService DWORD Run the application as a service or with the standard run-time permissions. The default value is 1 (True).
    SSLCertPassword String Sets the password of the SSL certificate.
    SSLCertStore String Sets the location of the SSL certificate. This may be a path to a file or the name of a Windows certificate store: "MY", "ROOT", "CA", or "SPC".
    SSLCertSubject String Sets the subject of the SSL certificate.
    SSLCertType String Sets the type of SSL certificate to use. A certificate must be specified when SSL is enabled. The PFX option signifies a .pfx file on disk. The User option signifies the user's Windows certificate store. The Machine option signifies the Windows certificate store of the machine.
    SSLEnabled DWORD Sets whether TLS/SSL connections are allowed. The default value is 0 (False). Enabling TLS/SSL disables plaintext connections.
    Timeout DWORD Sets the operational timeout for connected clients. The default value is 60.
    UseInteractiveLogon DWORD Sets whether interactive or network logon will authorize users when AuthMode is set to 1 (Windows). In most cases this does not need to be set. This should be set to 1 (True) if your domain controller is Samba. The default value is 0 (False).
    User-Level Settings
    AppName String Sets the name of the application that will be used to provide authentication to QuickBooks when a connection is made. If this value is not set, the Desktop Gateway uses the value provided by the client.
    CompanyFile String Sets the path to a QuickBooks company file (.qbw). If this is not set, the currently open company file is used. When QuickBooks is not running, this option must be set.
    Password String Sets the password of the user. This is required when AuthMode is set to 0 (Basic Authentication). The Desktop Gateway application will always store the SHA-256 hash of the password for security. However, this may also be manually set to a plaintext password to allow backward compatibility.
    AuthMode DWORD Sets the type of authentication to perform when the user connects. From the client side the process of connecting is exactly the same no matter which option you choose. Possible values are the following:
    Authorized DWORD Specifies whether the AppName has been authorized for the CompanyFile. If 1 (True) the AppName has been authorized with the CompanyFile. This is an indicator used by the application when changing settings in the UI.
    ConnectionMode String Sets the connection mode for the user. The default is DontCare. In most cases you do not need to set this value. If this is not set, the application will connect in whatever mode QuickBooks is already open in. Possible values are the following:
    ReadOnly DWORD Specifies whether the user has read-only (1) or full access (0).

    Advanced Features

    This section details a selection of advanced features of the QuickBooks connector.

    User Defined Views

    The connector allows you to define virtual tables, called user defined views, whose contents are decided by a pre-configured query. These views are useful when you cannot directly control queries being issued to the drivers. See User Defined Views for an overview of creating and configuring custom views.

    SSL Configuration

    Use SSL Configuration to adjust how connector handles TLS/SSL certificate negotiations. You can choose from various certificate formats; see the SSLServerCert property under "Connection String Options" for more information.

    Proxy

    To configure the connector using private agent proxy settings, select the Use Proxy Settings checkbox on the connection configuration screen.

    Query Processing

    The connector offloads as much of the SELECT statement processing as possible to QuickBooks and then processes the rest of the query in memory (client-side).

    See Query Processing for more information.

    User Defined Views

    The QuickBooks connector allows you to define a virtual table whose contents are decided by a pre-configured query. These are called User Defined Views, which are useful in situations where you cannot directly control the query being issued to the driver, e.g. when using the driver from Jitterbit. The User Defined Views can be used to define predicates that are always applied. If you specify additional predicates in the query to the view, they are combined with the query already defined as part of the view.

    There are two ways to create user defined views:

    • Create a JSON-formatted configuration file defining the views you want.
    • DDL statements.

    Define Views Using a Configuration File

    User Defined Views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The connector automatically detects the views specified in this file.

    You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the connector.

    This User Defined View configuration file is formatted as follows:

    • Each root element defines the name of a view.
    • Each root element contains a child element, called query, which contains the custom SQL query for the view.

    For example:

    {
        "MyView": {
            "query": "SELECT * FROM Customers WHERE MyColumn = 'value'"
        },
        "MyView2": {
            "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
        }
    }
    

    Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:

    "UserDefinedViews", "C:\Users\yourusername\Desktop\tmp\UserDefinedViews.json"
    

    Define Views Using DDL Statements

    The connector is also capable of creating and altering the schema via DDL Statements such as CREATE LOCAL VIEW, ALTER LOCAL VIEW, and DROP LOCAL VIEW.

    Create a View

    To create a new view using DDL statements, provide the view name and query as follows:

    CREATE LOCAL VIEW [MyViewName] AS SELECT * FROM Customers LIMIT 20;
    

    If no JSON file exists, the above code creates one. The view is then created in the JSON configuration file and is now discoverable. The JSON file location is specified by the UserDefinedViews connection property.

    Alter a View

    To alter an existing view, provide the name of an existing view alongside the new query you would like to use instead:

    ALTER LOCAL VIEW [MyViewName] AS SELECT * FROM Customers WHERE TimeModified > '3/1/2020';
    

    The view is then updated in the JSON configuration file.

    Drop a View

    To drop an existing view, provide the name of an existing schema alongside the new query you would like to use instead.

    DROP LOCAL VIEW [MyViewName]
    

    This removes the view from the JSON configuration file. It can no longer be queried.

    Schema for User Defined Views

    User Defined Views are exposed in the UserViews schema by default. This is done to avoid the view's name clashing with an actual entity in the data model. You can change the name of the schema used for UserViews by setting the UserViewsSchemaName property.

    Work with User Defined Views

    For example, a SQL statement with a User Defined View called UserViews.RCustomers only lists customers in Raleigh:

    SELECT * FROM Customers WHERE City = 'Raleigh';
    

    An example of a query to the driver:

    SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';
    

    Resulting in the effective query to the source:

    SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';
    

    That is a very simple example of a query to a User Defined View that is effectively a combination of the view query and the view definition. It is possible to compose these queries in much more complex patterns. All SQL operations are allowed in both queries and are combined when appropriate.

    Insert Parent and Child Records

    Use Case

    When inserting records, often there is a need to fill in details about child records that have a dependency on a parent.

    For instance, when dealing with a CRM system, Invoices often cannot be entered without at least one line item. Since invoice line items can have several fields, this presents a unique challenge when offering the data as relational tables.

    When reading the data, it is easy enough to model an Invoice and an InvoiceLineItem table with a foreign key connecting the two. However, during inserts, the CRM system requires both the Invoice and the InvoiceLineItems to be created in a single submission.

    To solve this sort of problem, our tools offer child collection columns on the parent. These columns can be used to submit insert statements that include details of both the parent and the child records.

    For example, let's say that the Invoice table contains a single column called InvoiceLineItems. During the insert, we can pass the details of the records that must be inserted to the InvoiceLineItems table into Invoice record's InvoiceLineItems column.

    The following subsection describes how this might be done.

    Methods for Inserting Parent/Child Records

    The connector facilitates two methods for inserting parent/child records: temporary table insertion and XML aggregate insertion.

    Temporary (#TEMP) tables

    The simplest way to enter data would be to use a #TEMP table, or temporary table, which the connector will store in memory.

    Reference the #TEMP table with the following syntax:

    TableName#TEMP

    #TEMP tables are stored in memory for the duration of a connection.

    Therefore, in order to use them, you cannot close the connection between submitting inserts to them, and they cannot be used in environments where a different connection may be used for each query.

    Within that single connection, the table remains in memory until the bulk insert is successful, at which point the temporary table will be wiped from memory.

    For example:

    INSERT INTO InvoiceLineItems#TEMP (ReferenceNumber, Item, Quantity, Amount) VALUES ('INV001', 'Basketball', 10, 9.99)
    INSERT INTO InvoiceLineItems#TEMP (ReferenceNumber, Item, Quantity, Amount) VALUES ('INV001', 'Football', 5, 12.99)
    

    Once the InvoiceLineItems table is populated, the #TEMP table may be referenced during an insert into the Invoice table:

    INSERT INTO Invoices (ReferenceNumber, Customer, InvoiceLines) VALUES ('INV001', 'John Doe', 'InvoiceLineItems#TEMP')
    

    Under the hood, the connector will read in values from the #TEMP table.

    Notice that the ReferenceNumber was used to identify what Invoice the lines are tied to. This is because the #TEMP table may be populated and used with a bulk insert, where there are separate lines for each invoice. This enables the #TEMP tables to be used with a bulk insert. For example:

    INSERT INTO Invoices#TEMP (ReferenceNumber, Customer, InvoiceLines) VALUES ('INV001', 'John Doe', 'InvoiceLineItems#TEMP')
    INSERT INTO Invoices#TEMP (ReferenceNumber, Customer, InvoiceLines) VALUES ('INV002', 'Jane Doe', 'InvoiceLineItems#TEMP')
    INSERT INTO Invoices SELECT ReferenceNumber, Customer, InvoiceLines FROM Invoices#TEMP
    

    In this case, we are inserting two different Invoices. The ReferenceNumber is how we determine which Lines go with which Invoice.

    Note

    The tables and columns presented here are an example of how the connector works in general. The specific table and column names may be different in the connector.

    Direct XML Insertion

    Direct XML can be used as an alternative to #TEMP tables. Since #TEMP tables are not used to construct them, it does not matter if you use the same connection or close the connection after insert.

    For example:

    [
      {
        "Item", "Basketball",
        "Quantity": 10
        "Amount": 9.99
      },
      {
        "Item", "Football",
        "Quantity": 5
        "Amount": 12.99
      }
    ]
    

    OR

    <Row>
      <Item>Basketball</Item>
      <Quantity>10</Quantity>
      <Amount>9.99</Amount>
    </Row>
    <Row>
      <Item>Football</Item>
      <Quantity>5</Quantity>
      <Amount>12.99</Amount>
    </Row>
    

    Note that the ReferenceNumber is not present in these examples because the XML, by its nature, is passed against the parent record in full per insert. Since the complete XML must be constructed and submitted for each row, there is no need to provide something to tie the child back to the parent.

    Now insert the values:

    INSERT INTO Invoices (ReferenceNumber, Customer, InvoiceLines) VALUES ('INV001', 'John Doe', '{...}')
    

    OR

    INSERT INTO Invoices (ReferenceNumber, Customer, InvoiceLines) VALUES ('INV001', 'John Doe', '<Row>...</Row>')
    

    Note

    The connector also supports the use of XML/JSON aggregates.

    Example for QuickBooks

    For a working example of how temp tables can be used for bulk insert in QuickBooks, please see the following:

    // Insert into Invoices table
    INSERT INTO InvoiceLineItems#TEMP (ItemName, ItemQuantity) VALUES ('Repairs','1')
    INSERT INTO InvoiceLineItems#TEMP (ItemName, ItemQuantity) VALUES ('Removal','2')
    
    INSERT INTO Invoices (CustomerName, Memo, ItemAggregate) VALUES ('Abercrombie, Kristy', 'NUnit Memo', 'InvoiceLineItems#TEMP')
    
    
    // Insert into InvoiceLineItems table
    INSERT INTO InvoiceLineItems#TEMP (CustomerName, Date, ShipMethod, ShipDate, Memo, Message, DueDate, Other, ItemName, ItemQuantity, ItemRate) VALUES ('Abercrombie, Kristy', '2011-01-01', 'UPS', '2011-01-02', 'NUnit Memo', 'We appreciate your prompt payment.', '2011-01-03', 'Some other data', 'Repairs', '1', '3.50')
    INSERT INTO InvoiceLineItems#TEMP (CustomerName, Date, ShipMethod, ShipDate, Memo, Message, DueDate, Other, ItemName, ItemQuantity, ItemRate) VALUES ('Abercrombie, Kristy', '2011-01-01', 'UPS', '2011-01-02', 'NUnit Memo', 'We appreciate your prompt payment.', '2011-01-03', 'Some other data', 'Removal', '2', '3.50')
    
    INSERT INTO InvoiceLineItems (CustomerName, Date, ShipMethod, ShipDate, Memo, Message, DueDate, Other, ItemName, ItemQuantity, ItemRate) SELECT CustomerName, Date, ShipMethod, ShipDate, Memo, Message, DueDate, Other, ItemName, ItemQuantity, ItemRate InvoiceLineItems#TEMP
    
    
    //Insert into JournalEntry
    INSERT Into JournalEntries#TEMP (ReferenceNumber, LineAggregate) VALUES   ('Setup 13', '<JournalEntryLines> <Row><LineType>Credit</LineType><LineAccount>Retained Earnings</LineAccount><LineAmount>100</LineAmount></Row> <Row><LineType>Credit</LineType><LineAccount>Note Payable - Bank of Anycity</LineAccount><LineAmount>20</LineAmount></Row> <Row><LineType>Debit</LineType><LineAccount>Checking</LineAccount><LineAmount>120</LineAmount></Row> </JournalEntryLines>');
    INSERT Into JournalEntries#TEMP (ReferenceNumber, LineAggregate) VALUES   ('Setup 14','<JournalEntryLines> <Row><LineType>Credit</LineType><LineAccount>Retained Earnings</LineAccount><LineAmount>100</LineAmount></Row> <Row><LineType>Credit</LineType><LineAccount>Note Payable - Bank of Anycity</LineAccount><LineAmount>20</LineAmount></Row> <Row><LineType>Debit</LineType><LineAccount>Checking</LineAccount><LineAmount>120</LineAmount></Row> </JournalEntryLines>' );
    INSERT INTO JournalEntries (ReferenceNumber,LineAggregate) SELECT ReferenceNumber,LineAggregate from JournalEntries#TEMP;
    
    
    
    //Insert into TimeTracking table
    INSERT INTO timetracking#TEMP (BillableStatus, Duration, Date, EmployeeId,CustomerId,CustomerName, ServiceItemName, ServiceItemId) Values ('Billable','4:10','2002-09-09',  '370000-933272659', '800013DE-1702639725', 'Testing02','Blueprint changess','340000-1071522351');
    INSERT INTO timetracking#TEMP (BillableStatus, Duration, Date, EmployeeId,CustomerId,CustomerName, ServiceItemName, ServiceItemId) Values ('Empty','1:10','2002-09-02',  '370000-933272659', '800013DE-1702639725', 'Testing02','Blueprint changess','340000-1071522351');
    INSERT INTO timetracking (BillableStatus, Duration, Date, EmployeeId,CustomerId,CustomerName, ServiceItemName, ServiceItemId) SELECT BillableStatus, Duration, Date, EmployeeId,CustomerId,CustomerName, ServiceItemName, ServiceItemId from timetracking#TEMP;
    
    //Insert into SalesReceipts
    INSERT INTO SalesReceiptLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Theodor', 'Repairs', 1);
    INSERT INTO SalesReceipts#TEMP (CustomerName, ItemAggregate) VALUES ('name1', SalesReceiptLineItems#TEMP);
    INSERT INTO SalesReceipts#TEMP (CustomerName, ItemAggregate) VALUES ('name2',SalesReceiptLineItems#TEMP);
    INSERT INTO SalesReceipts (CustomerName, ItemAggregate) SELECT CustomerName, ItemAggregate from SalesReceipts#TEMP;
    
    //Insert into Bills
    INSERT INTO BillLineItems#TEMP (ReferenceNumber, ItemName, ItemQuantity) VALUES (1, 'Repairs','1');
    INSERT INTO BillLineItems#TEMP (ReferenceNumber, ItemName, ItemQuantity) VALUES (2, 'Removal','2');
    INSERT INTO Bills#TEMP (ReferenceNumber, VendorName, Date, ItemAggregate) VALUES (1, 'Cal Telephone', '1/1/2021', 'BillLineItems#TEMP');
    INSERT INTO Bills#TEMP (ReferenceNumber, VendorName, Date, ItemAggregate) VALUES (2, 'Cal Telephone', '1/2/2021', 'BillLineItems#TEMP');
    INSERT INTO Bills (ReferenceNumber, VendorName, Date, ItemAggregate) select ReferenceNumber, VendorName, Date, ItemAggregate from Bills#TEMP");
    

    SSL Configuration

    Customize the SSL Configuration

    By default, the connector attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store.

    To specify another certificate, see the SSLServerCert property for the available formats to do so.

    Data Model

    The QuickBooks connector models entities in the QuickBooks API as tables, views, and stored procedures. There are three parts to the Data Model: Tables, Views, and Stored Procedures. These are defined in schema files, which are simple, text-based configuration files.

    API limitations and requirements are documented in this section; you can use the SupportEnhancedSQL feature, set by default, to circumvent most of these limitations.

    Tables

    The QuickBooks connector models the data in Tables so that it can be easily queried and updated.

    Note

    In case of Bulk insert operation, the connector supports multiple values only for the aggregate columns whereas for the other columns only single value is supported.

    Views

    Views are tables that cannot be modified. Typically, read-only data are shown as views.

    Stored Procedures

    Stored Procedures are function-like interfaces to the data source. They can be used to search, update, and modify information in the data source.

    Tables

    The connector models the data in QuickBooks as a list of tables in a relational database that can be queried using standard SQL statements.

    QuickBooks Connector Tables

    Name Description
    Accounts Create, update, delete, and query QuickBooks Accounts. To update Accounts, set the QBXMLVersion to 6.0 or higher.
    BillExpenseItems Create, update, delete, and query QuickBooks Bill Expense Line Items.
    BillLineItems Create, update, delete, and query QuickBooks Bill Line Items.
    BillPaymentChecks Create, update, delete, and query QuickBooks Bill Payment Checks. QBXMLVersion must be set to 6.0 or higher to update a BillPaymentCheck.
    BillPaymentChecksAppliedTo Create, update, delete, and query QuickBooks Bill Payment AppliedTo aggregates. In a Bill Payment, each AppliedTo aggregate represents the Bill transaction to which this part of the payment is being applied.
    BillPaymentCreditCards Create, update, delete, and query QuickBooks Bill Payments.
    BillPaymentCreditCardsAppliedTo Create, update, delete, and query QuickBooks Bill Payment AppliedTo aggregates. In a Bill Payment, each AppliedTo aggregate represents the Bill transaction to which this part of the payment is being applied.
    Bills Create, update, delete, and query QuickBooks Bills.
    BuildAssemblies Insert, Update, delete, and query QuickBooks Build Assembly transactions.
    BuildAssemblyLineItems Create and query QuickBooks Build Assembly transactions.
    CheckExpenseItems Create, update, delete, and query QuickBooks Check Expense Line Items.
    CheckLineItems Create, update, delete, and query QuickBooks Check Line Items.
    Checks Create, update, delete, and query QuickBooks Checks.
    Class Create, update, delete, and query QuickBooks Classes. QuickBooks requires QBXML version 8.0 or higher for updates to a Class.
    CreditCardChargeExpenseItems Create, update, delete, and query QuickBooks Credit Card Charge Expense Line Items.
    CreditCardChargeLineItems Create, update, delete, and query QuickBooks Credit Card Charge Line Items.
    CreditCardCharges Create, update, delete, and query QuickBooks Credit Card Charges.
    CreditCardCreditExpenseItems Create, update, delete, and query QuickBooks Credit Card Credit Expense Line Items.
    CreditCardCreditLineItems Create, update, delete, and query QuickBooks Credit Card Credit Line Items.
    CreditCardCredits Create, update, delete, and query QuickBooks Credit Card Credits.
    CreditCardRefunds Query and Insert QuickBooks AR Credit Card Refund transactions.
    CreditMemoLineItems Create, update, delete, and query QuickBooks Credit Memo Line Items.
    CreditMemos Create, update, delete, and query QuickBooks Credit Memos.
    Currency Create, update, delete, and query QuickBooks Currencies. This table requires QBXML version 8.0 or higher, and you will need to enable multiple Currencies in your QuickBooks company file to use it.
    CustomerContacts Create, update, delete, and query QuickBooks Customer Contacts. This table requires QBXML version 12.0 or higher, and is only available in QuickBooks editions 2016 and above.
    CustomerMessages Create, delete, and query Customer Messages.
    CustomerNotes Create, update, and query QuickBooks Customer Notes. This table requires QBXML version 12.0 or higher.
    Customers Create, update, delete, and query QuickBooks Customers.
    CustomerShippingAddresses Create, update, delete, and query QuickBooks Customer Shipping Addresses. Multiple Customer Shipping Addresses are supported in only QuickBooks 2013 and higher. Additionally, this table requires QBXML version 12.0 or higher.
    CustomerTypes Create, update, delete, and query QuickBooks Customer Types.
    DateDrivenTerms Create, delete, and query QuickBooks Date Driven Terms.
    DepositLineItems Create, update, delete, and query QuickBooks Deposit Line Items. QBXMLVersion must be set to 7.0 or higher to update a deposit.
    Deposits Create, update, delete, and query QuickBooks Deposits. QBXMLVersion must be set to 7.0 or higher to update a deposit.
    EmployeeEarnings Create, update, delete, and query QuickBooks Employee Earnings.
    Employees Create, update, delete, and query QuickBooks Employees.
    EstimateLineItems Create, update, delete, and query QuickBooks Estimate Line Items.
    Estimates Create, update, delete, and query QuickBooks Estimates.
    InventoryAdjustmentLineItems Create and query QuickBooks Inventory Adjustment Line Items.
    InventoryAdjustments Create, query, and delete QuickBooks Inventory Adjustments.
    InventorySites Create, update, delete, and query QuickBooks Inventory Sites. Inventory Sites are only available in QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on.
    InvoiceLineItems Create, update, delete, and query QuickBooks Invoice Line Items.
    Invoices Create, update, delete, and query QuickBooks Invoices.
    ItemLineItems Create, update, delete, and query QuickBooks Item Line Items.
    ItemReceiptExpenseItems Create, update, delete, and query QuickBooks Item Receipt Expense Line Items.
    ItemReceiptLineItems Create, update, delete, and query QuickBooks Item Receipt Line Items.
    ItemReceipts Create, update, delete, and query QuickBooks Item Receipts.
    Items Create, update, delete, and query QuickBooks Items.
    JobTypes Create and query QuickBooks JobTypes.
    JournalEntries Create, update, delete, and query QuickBooks Journal Entries. Note that while Journal Entry Lines can be created with a new Journal Entry, they cannot be added or removed from an existing Journal Entry.
    JournalEntryLines Create, update, delete, and query QuickBooks Journal Entries. Note that while Journal Entry Lines can be created with a new Journal Entry, they cannot be added or removed from an existing Journal Entry.
    OtherNames Create, update, delete, and query QuickBooks Other Name entities.
    PaymentMethods Create, update, delete, and query QuickBooks Payment Methods.
    PayrollNonWageItems Query QuickBooks Non-Wage Payroll Items.
    PayrollWageItems Create and query QuickBooks Wage Payroll Items.
    PriceLevelPerItem Create and query QuickBooks Price Levels Per Item. Only QuickBooks Premier and Enterprise support Per-Item Price Levels. Note that while Price Levels can be added from this table, you may only add Per-Item Price Levels from this table. Price Levels may be deleted from the PriceLevels table. This table requires QBXML version 4.0 or later.
    PriceLevels Create, delete, and query QuickBooks Price Levels. Note that while Price Levels can be added and deleted from this table, you may add only fixed-percentage Price Levels from this table. Per-Item Price Levels may be added via the PriceLevelPerItem table. This table requires QBXML version 4.0 or higher.
    PurchaseOrderLineItems Create, update, delete, and query QuickBooks Purchase Order Line Items.
    PurchaseOrders Create, update, delete, and query QuickBooks Purchase Orders.
    ReceivePayments Create, update, delete, and query QuickBooks Receive Payment transactions. QBXMLVersion must be set to 6.0 or higher to update a ReceivePayment.
    ReceivePaymentsAppliedTo Create, update, and query QuickBooks Receive Payment AppliedTo aggregates. In a Receive Payment, each AppliedTo aggregate represents the transaction to which this part of the payment is being applied. QBXMLVersion must be set to 6.0 or higher to update a ReceivePayment.
    SalesOrderLineItems Create, update, delete, and query QuickBooks Sales Order Line Items.
    SalesOrders Create, update, delete, and query QuickBooks Sales Orders.
    SalesReceiptLineItems Create, update, delete, and query QuickBooks Sales Receipt Line Items.
    SalesReceipts Create, update, delete, and query QuickBooks Sales Receipts.
    SalesReps Create, update, delete, and query QuickBooks Sales Rep entities.
    SalesTaxCodes Create, update, delete, and query QuickBooks Sales Tax Codes.
    SalesTaxItems Create, update, delete, and query QuickBooks Sales Tax Items.
    ShippingMethods Create, update, delete, and query QuickBooks Shipping Methods.
    StandardTerms Create, update, delete, and query QuickBooks Standard Terms.
    StatementCharges Create, update, delete, and query QuickBooks Statement Charges.
    TimeTracking Create, update, delete, and query QuickBooks Time Tracking events.
    ToDo Create, update, delete, and query QuickBooks To Do entries.
    TransferInventory Query and delete QuickBooks Transfer Inventory transactions. Transfer Inventory is available in only QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on.
    TransferInventoryLineItems Create and query QuickBooks Transfer Inventory Line Items. Transfer Inventory is available in only QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on.
    Transfers Create, update, and query QuickBooks transfers. Requires QBXML version 12.0 or higher.
    UnitOfMeasure Create, update, delete, and query QuickBooks units of measure. QuickBooks requires QBXML version 7.0 or higher to use this table.
    UnitOfMeasureDefaultUnits Create and query QuickBooks unit-of-measure default units. QuickBooks requires QBXML version 7.0 or higher to use this table.
    UnitOfMeasureRelatedUnits Create and query QuickBooks unit-of-measure related units. QuickBooks requires QBXML version 7.0 or higher to use this table.
    VehicleMileage Create, update, delete, and query QuickBooks Vehicle Mileage entities. QuickBooks requires QBXML version 6.0 or higher to use this table.
    VendorCreditExpenseItems Create, update, delete, and query QuickBooks Vendor Credit Expense Line Items.
    VendorCreditLineItems Create, update, delete, and query QuickBooks Vendor Credit Line Items.
    VendorCredits Create, update, delete, and query QuickBooks Vendor Credits.
    Vendors Create, update, delete, and query QuickBooks Vendors.
    VendorTypes Create, update, delete, and query QuickBooks Vendor Types.
    WorkersCompCodeLines Query QuickBooks Workers Comp Code entries by line. Requires QBXML Version 7.0 or higher.
    WorkersCompCodes Query QuickBooks Workers Comp Code entries. Requires QBXML Version 7.0 or higher.

    Accounts

    Create, update, delete, and query QuickBooks Accounts. To update Accounts, set the QBXMLVersion to 6.0 or higher.

    Table Specific Information
    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Accounts are Id, Name, Type, IsActive, and TimeModified. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Accounts WHERE Name LIKE '%Bank%' AND TimeModified > '1/1/2011' AND TimeModified < '2/1/2011'
    
    Insert

    To add an Account, specify the Name and Type fields.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the account.
    Name String False 31 The name of the account. This is required to have a value when inserting.
    FullName String True 1000 The full name of the account, including any ancestors (parents) in the format Parent:AccountName.
    Type String False 100 The type of account. The allowed values are ACCOUNTSPAYABLE, ACCOUNTSRECEIVABLE, BANK, COSTOFGOODSSOLD, CREDITCARD, EQUITY, EXPENSE, FIXEDASSET, INCOME, LONGTERMLIABILITY, OTHERASSET, OTHERCURRENTASSET, OTHERCURRENTLIABILITY, OTHEREXPENSE, OTHERINCOME, NONPOSTING.
    SpecialType String True 100 The special account type in QuickBooks if applicable. The allowed values are AccountsPayable, AccountsReceivable, CondenseItemAdjustmentExpenses, CostOfGoodsSold, DirectDepositLiabilities, Estimates, ExchangeGainLoss, InventoryAssets, ItemReceiptAccount, OpeningBalanceEquity, PayrollExpenses, PayrollLiabilities, PettyCash, PurchaseOrders, ReconciliationDifferences, RetainedEarnings, SalesOrders, SalesTaxPayable, UncategorizedExpenses, UncategorizedIncome, UndepositedFunds.
    Number String False The bank number of the account.
    Balance Double True The total balance of the account, including subaccounts.
    AccountBalance Double True The balance of this account only. This balance does not include subaccounts.
    BankAccount String False The bank account number for the account (or an identifying note).
    Description String False 200 A textual description of the account.
    IsActive Boolean False This property indicates whether the object is currently enabled for use by QuickBooks.
    ParentName String False This is a reference to a parent account. If set to a nonempty string, then this account is a subaccount of its parent.
    ParentId String False Accounts.ID 255 This is a reference to a parent account. If set to a nonempty string, then this account is a subaccount or job of its parent.
    Sublevel Integer True The number of ancestors the account has.
    CurrencyName String False 64 The name of the currency for the account. A minimum QBXML version of 8.0 is required for this feature.
    CurrencyId String False Currency.ID 255 The unique ID of the currency for the account. A minimum QBXML version of 8.0 is required for this feature.
    CashFlowClassification String True Indicates how the account is classified for cash flow reporting.' value='None, Operating, Investing, Financing, NotApplicable.
    TaxLineName String True 256 The name of the line on the tax form this account is associated with, if any. Check the CompanyInfo to see which tax form is associated with the company file.
    TaxLineId String False 255 The ID of the line on the tax form this account is associated with, if any. Check the CompanyInfo to see which tax form is associated with the company file. Requires QBXML Version 7.0 to modify.
    TimeModified Datetime True When the account was last modified.
    TimeCreated Datetime True When the account was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    OpeningBalance String The opening balance of the account (by default 0). Note that this property is only used when adding new accounts to QuickBooks.
    OpeningDate String The opening balance date of the account. Note that this property is only used when adding new accounts to QuickBooks.

    BillExpenseItems

    Create, update, delete, and query QuickBooks Bill Expense Line Items.

    Table Specific Information

    Bills may be inserted, queried, or updated via the Bills, BillExpenseItems, or BillLineItems tables. Bills may be deleted by using the Bills table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Bills are Id, Date, ReferenceNumber, VendorName, VendorId, AccountsPayable, AccountsPayableId, IsPaid, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Bills WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    You can also use Bills and BillExpenseItems to insert a Bill.

    To add a Bill, specify a Vendor, Date, and at least one Expense or Line Item. All Expense Line Item columns can be used for inserting multiple expense Line Items for a new Bill transaction. For example, the following will insert a new Bill with two Expense Line Items:

    INSERT INTO BillExpenseItems#TEMP (VendorName, Date, ExpenseAccount, ExpenseAmount) VALUES ('Cal Telephone', '1/1/2011', 'Utilities:Telephone', 52.25)
    INSERT INTO BillExpenseItems#TEMP (VendorName, Date, ExpenseAccount, ExpenseAmount) VALUES ('Cal Telephone', '1/1/2011', 'Professional Fees:Accounting', 235.87)
    INSERT INTO BillExpenseItems (VendorName, Date, ExpenseAccount, ExpenseAmount) SELECT VendorName, Date, ExpenseAccount, ExpenseAmount FROM BillExpenseItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format BillId|ExpenseLineId.
    BillId String False Bills.ID 255 The bill identifier.
    VendorName String False 1000 Vendor for this transaction. Either VenderName or VendorId must have a value when inserting.
    VendorId String False Vendors.ID 255 Vendor ID for this transaction. Either VenderName or VendorId must have a value when inserting.
    ReferenceNumber String False 21 Reference number for the transaction.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    DueDate Date False Date when payment is due.
    Terms String False 100 Reference to terms of payment.
    TermsId String False 255 Reference ID for the terms of payment.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False Accounts.ID 255 Reference ID for the accounts-payable account.
    Amount Decimal True Amount of the transaction. This is calculated by QuickBooks based on the line items or expense line items.
    Memo String False 5000 Memo for the transaction.
    IsPaid Boolean True Indicates whether this bill has been paid.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ExpenseLineId String True 255 The expense line item identifier.
    ExpenseLineNumber String True 255 The expense line number.
    ExpenseAccount String False 1000 The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAccountId String False Accounts.ID 255 The account ID for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAmount Decimal False The total amount of this expense line.
    ExpenseBillableStatus String False 13 The billing status of this expense line. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.
    ExpenseCustomer String False 1000 The customer associated with this expense line.
    ExpenseCustomerId String False Customers.ID 255 The customer associated with this expense line.
    ExpenseClass String False 1000 The class name of this expense.
    ExpenseClassId String False Class.ID 255 The class ID of this expense.
    ExpenseMemo String False 5000 A memo for this expense line.
    ExpenseTaxCode String False 3 Sales tax information for this item (taxable or non-taxable).
    ExpenseTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item (taxable or non-taxable).
    ExpenseCustomFields String True The custom fields for this expense item.
    ExchangeRate Double False Exchange Rate is the market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the 'home' currency.
    TimeModified Datetime True When the Bill was last modified.
    TimeCreated Datetime True When the Bill was created.
    OpenAmount Decimal True The current balance for the Vendor
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    LinkToTxnId String A transaction to link the bill to. This transaction must be a purchase order. You will get a run-time error if the transaction specified is already closed or fully received. This is only available on insert and requires a minimum QBXML Version 4.0.

    BillLineItems

    Create, update, delete, and query QuickBooks Bill Line Items.

    Table Specific Information

    Bills may be inserted, queried, or updated via the Bills, BillExpenseItems, or BillLineItems tables. Bills may be deleted by using the Bills table.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Bills are Id, Date, ReferenceNumber, VendorName, VendorId, AccountsPayable, AccountsPayableId, IsPaid, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Bills WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    You can also use Bills and BillExpenseItems to insert a Bill.

    To add a Bill, specify a Vendor, Date, and at least one Expense or Line Item. All Line Item columns can be used for inserting multiple Line Items for a new Bill transaction. For example, the following will insert a new Bill with two Line Items:

    INSERT INTO BillLineItems#TEMP (VendorName, Date, ItemName, ItemQuantity) VALUES ('Cal Telephone', '1/1/2011', 'Repairs', 1)
    INSERT INTO BillLineItems#TEMP (VendorName, Date, ItemName, ItemQuantity) VALUES ('Cal Telephone', '1/1/2011', 'Removal', 2)
    INSERT INTO BillLineItems (VendorName, Date, ItemName, ItemQuantity) SELECT VendorName, Date, ItemName, ItemQuantity FROM BillLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format BillId|ItemLineId.
    BillId String False Bills.ID 255 The bill identifier.
    VendorName String False 1000 Vendor for this transaction. Either VenderName or VendorId must have a value when inserting.
    VendorId String False Vendors.ID 255 Vendor ID for this transaction. Either VenderName or VendorId must have a value when inserting.
    ReferenceNumber String False 21 Reference number for the transaction.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    DueDate Date False Date when payment is due.
    Terms String False 100 Reference to terms of payment.
    TermsId String False 255 Reference ID for the terms of payment.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False Accounts.ID 255 Reference ID for the accounts-payable account.
    Amount Decimal True Amount of the transaction. This is calculated by QuickBooks based on the line items or expense line items.
    Memo String False 5000 Memo for the transaction.
    IsPaid Boolean True Indicates whether this bill has been paid.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item name.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group name. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemCost Double False The unit cost for the item.
    ItemAmount Decimal False Total amount for the item.
    ItemBillableStatus String False 13 Billing status of the item. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.
    ItemCustomer String False 1000 The name of the customer who ordered the item.
    ItemCustomerId String False Customers.ID 255 The ID of the customer who ordered the item.
    ItemInventorySiteId String False InventorySites.ID 31 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteName String False 255 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationId String False 31 The inventory site location ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationName String False 255 The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemSerialNumber String False 5000 The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemLotNumber String False 40 The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemClass String False 1000 The name for the class of the item.
    ItemClassId String False Class.ID 255 The ID for the class of the item.
    ItemTaxCode String False 3 Sales tax information for this item (taxable or non-taxable).
    ItemTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item (taxable or non-taxable).
    ItemCustomFields String False The custom fields for this lineitem.
    ItemExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. This requires QBXML version at least 16.0.
    CurrencyName String False 64 Name of the currency code used for this bill.
    CurrencyId String False Currency.ID 1000 Id of the currency code used for this bill.
    ExchangeRate Decimal False Exchange Rate is the market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the 'home' currency.
    TimeModified Datetime True When the Bill was last modified.
    TimeCreated Datetime True When the Bill was created.
    OpenAmount Decimal True The current balance for the Vendor
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    LinkToTxnId String A transaction to link the bill to. This transaction must be a purchase order. You will get a run-time error if the transaction specified is already closed or fully received. This is only available on insert and requires a minimum QBXML Version 4.0.
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    BillPaymentChecks

    Create, update, delete, and query QuickBooks Bill Payment Checks. QBXMLVersion must be set to 6.0 or higher to update a BillPaymentCheck.

    Table Specific Information

    BillPaymentChecks may be inserted, queried, or updated via the BillPaymentChecks or BillPaymentChecksAppliedTo tables. BillPaymentChecks may be deleted by using the BillPaymentChecks table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for BillPaymentChecks are Id, Date, ReferenceNumber, PayeeName, PayeeId, AccountsPayable, AccountsPayableId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM BillPaymentChecks WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a BillPaymentCheck, specify a Payee and BankAccount. The Payee must match the Vendor associated with the Bill you are adding a payment for. The AppliedToAggregate column may be used to specify an XML aggregate of AppliedTo data. The columns that may be used in these aggregates are defined in the BillPaymentChecksAppliedTo table and it starts with AppliedTo. For example, the following will insert a new BillPaymentCheck with two AppliedTo entries:

    INSERT INTO BillPaymentChecks (PayeeName, BankAccountName, AppliedToAggregate)
    VALUES ('Vu Contracting', 'Checking',
    '<BillPaymentChecksAppliedTo>
    <Row><AppliedToRefId>178C1-1450221347</AppliedToRefId><AppliedToAmount>20.00</AppliedToAmount></Row>
    <Row><AppliedToRefId>178C1-1450221347</AppliedToRefId><AppliedToAmount>51.25</AppliedToAmount></Row>
    </BillPaymentChecksAppliedTo>')
    

    AppliedToRefId is a reference to a BillId and can be found in Bills, BillLineItems, or BillExpenseItems.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier for the transaction.
    PayeeName String False 1000 A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required.
    PayeeId String False Vendors.ID 255 A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Int True The transaction number.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    Amount Decimal True Amount of the transaction. This is calculated by QuickBooks based on the line items or expense line items.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False Accounts.ID 255 Reference to the accounts-payable account Id.
    BankAccountName String False 1000 Refers to the Account funds are being drawn from for this bill payment. This property is only applicable to the check payment method.
    BankAccountId String False Accounts.ID 255 Refers to the Account funds are being drawn from for this bill payment. This property is only applicable to the check payment ethod.
    IsToBePrinted Boolean False Indicates whether or not the transaction is to be printed. If set to true, the 'To Be Printed' box in the QuickBooks user interface will be checked. The default value is false.
    Memo String False 5000 A memo to appear on internal reports.
    AppliedToAggregate String False 5000 An aggregate of the applied-to data which can be used for adding a bill payment check and its applied-to data.
    ExchangeRate Double False Currency exchange rate for this Bill Payment.
    AmountInHomeCurrency Double True Amount in units of the home currency.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the bill payment was last modified.
    TimeCreated Datetime True When the bill payment was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    AppliedTo\* String All applied-to-specific columns may be used in insertions.

    BillPaymentChecksAppliedTo

    Create, update, delete, and query QuickBooks Bill Payment AppliedTo aggregates. In a Bill Payment, each AppliedTo aggregate represents the Bill transaction to which this part of the payment is being applied.

    Table Specific Information

    BillPaymentChecks may be inserted, queried, or updated via the BillPaymentChecks or BillPaymentChecksAppliedTo tables. BillPaymentChecks may be deleted by using the BillPaymentChecks table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for BillPaymentChecks are Id, Date, ReferenceNumber, PayeeName, PayeeId, AccountsPayable, AccountsPayableId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM BillPaymentChecksAppliedTo WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a BillPaymentCheck entry, specify the Payee and BankAccount fields. The Payee must match the Vendor associated with the Bill you are adding a payment for. All AppliedTo columns can be used to explicitly identify the Bills being paid. For example, the following will insert a new BillPaymentCheck with two AppliedTo entries:

    INSERT INTO BillPaymentChecksAppliedTo#TEMP (PayeeName, BankAccountName, AppliedToRefId, AppliedToAmount) VALUES ('Vu Contracting', 'Checking', '178C1-1450221347', 20.00)
    INSERT INTO BillPaymentChecksAppliedTo#TEMP (PayeeName, BankAccountName, AppliedToRefId, AppliedToAmount) VALUES ('Vu Contracting', 'Checking', '881-933371709', 51.25)
    INSERT INTO BillPaymentChecksAppliedTo (PayeeName, BankAccountName, AppliedToRefId, AppliedToAmount) SELECT PayeeName, BankAccountName, AppliedToRefId, AppliedToAmount FROM BillPaymentChecksAppliedTo#TEMP
    

    AppliedToRefId is a reference to a BillId and can be found in Bills, BillLineItems, or BillExpenseItems.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format BillPaymentId|AppliedToId.
    BillPaymentId String False BillPaymentChecks.ID 255 The ID of the bill payment transaction.
    PayeeName String False 1000 A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required. This must match the Vendor associated with the Bill being paid when inserting.
    PayeeId String False Vendors.ID 255 A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required. This must match the Vendor associated with the Bill being paid when inserting.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Int True The transaction number.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False 255 Reference to the accounts-payable account Id.
    BankAccountId String False 255 Refers to the account funds are being drawn from for this bill payment. This property is only applicable to the check payment method.
    BankAccountName String False 1000 Refers to the account funds are being drawn from for this bill payment. This property is only applicable to the check payment method.
    IsToBePrinted Boolean False Indicates whether or not the transaction is to be printed. If set to true, the 'To Be Printed' box in the QuickBooks user interface will be checked. The default value is false.
    Memo String False 5000 A memo to appear on internal reports.
    ExchangeRate Double False Currency exchange rate for this Bill Payment.
    AmountInHomeCurrency Double True Amount in units of the home currency.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    AppliedToRefId String False 255 The applied-to reference identifier. This is a reference to a bill Id, which can be found in the Bills table.
    AppliedToAmount Decimal False The amount to be applied.
    AppliedToBalanceRemaining Decimal True The balance remaining to be applied.
    AppliedToCreditAmount Decimal False The amount of the credit to be applied.
    AppliedToCreditMemoId String False 255 The ID of the credit memo to be applied.
    AppliedToDiscountAccountId String False 255 The discount account ID to be applied.
    AppliedToDiscountAccountName String False 1000 The discount account name to be applied.
    AppliedToDiscountAmount Decimal False The discount amount to be applied.
    AppliedToPaymentAmount Decimal False The payment amount to be applied.
    AppliedToReferenceNumber String True 21 The ref number to be applied.
    AppliedToTxnDate Date True The transaction date to be applied.
    AppliedToTxnType String True 100 The transaction type that was applied.
    TimeModified Datetime True When the bill payment was last modified.
    TimeCreated Datetime True When the bill payment was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    AppliedToCreditAppliedAmount String The credit applied amount to be applied.

    BillPaymentCreditCards

    Create, update, delete, and query QuickBooks Bill Payments.

    Table Specific Information

    BillPaymentCreditCards may be inserted, queried, or updated via the BillPaymentCreditCards or BillPaymentCreditCardsAppliedTo tables. BillPaymentCreditCards may be deleted by using the BillPaymentCreditCards table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for BillPaymentCreditCards are Id, Date, ReferenceNumber, PayeeName, PayeeId, AccountsPayable, AccountsPayableId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM BillPaymentCreditCards WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a BillPaymentCreditCard, specify a Payee and CreditCard. The Payee must match the Vendor associated with the Bill you are adding a payment for. The AppliedToAggregate column may be used to specify an XML aggregate of AppliedTo data. The columns that may be used in these aggregates are defined in the BillPaymentCreditCardsAppliedTo table and it starts with AppliedTo. For example, the following will insert a new BillPaymentCreditCard with two AppliedTo entries:

    INSERT INTO BillPaymentCreditCard (PayeeName, CreditCardName, AppliedToAggregate)
    VALUES ('Vu Contracting', 'CalOil Credit Card',
    '<BillPaymentCreditCardsAppliedTo>
    <Row><AppliedToRefId>178C1-1450221347</AppliedToRefId><AppliedToAmount>20.00</AppliedToAmount></Row>
    <Row><AppliedToRefId>881-933371709</AppliedToRefId><AppliedToAmount>51.25</AppliedToAmount></Row>
    </BillPaymentCreditCardsAppliedTo>')
    

    AppliedToRefId is a reference to a BillId and can be found in Bills, BillLineItems, or BillExpenseItems.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier for the transaction.
    PayeeName String False 1000 A reference to the the entity merchandise was purchased from. Either PayeeId or PayeeName is required.
    PayeeId String False Vendors.ID 255 A reference to the the entity merchandise was purchased from. Either PayeeId or PayeeName is required.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Int True The transaction number.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    Amount Decimal True Amount of the transaction. This is calculated by QuickBooks based on the line items or expense line items.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False Accounts.ID 255 Reference to the accounts-payable account Id.
    CreditCardName String False 1000 Refers to the credit card account this payment is being charged to. This property is only applicable to the credit card payment Method.
    CreditCardId String False 255 Refers to the credit card account this payment is being charged to. This property is only applicable to the credit card payment Method.
    Memo String False 5000 A memo to appear on internal reports.
    AppliedToAggregate String False 5000 An aggregate of the applied-to data which can be used for adding a bill payment credit card and its applied-to data.
    ExchangeRate Double False Currency exchange rate for this Bill Payment.
    AmountInHomeCurrency Double True Amount in units of the home currency.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the bill payment was last modified.
    TimeCreated Datetime True When the bill payment was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    AppliedTo\* String All applied-to-specific columns may be used in insertions.

    BillPaymentCreditCardsAppliedTo

    Create, update, delete, and query QuickBooks Bill Payment AppliedTo aggregates. In a Bill Payment, each AppliedTo aggregate represents the Bill transaction to which this part of the payment is being applied.

    Table Specific Information

    BillPaymentCreditCards may be inserted, queried, or updated via the BillPaymentCreditCards or BillPaymentCreditCardsAppliedTo tables. BillPaymentCreditCards may be deleted by using the BillPaymentCreditCards table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for BillPaymentCreditCards are Id, Date, ReferenceNumber, PayeeName, PayeeId, AccountsPayable, AccountsPayableId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM BillPaymentCreditCardsAppliedTo WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    You can also use BillPaymentCreditCards to insert a BillPaymentCreditCard.

    To add a BillPaymentCreditCard, specify a Payee and CreditCard. The Payee must match the Vendor associated with the Bill you are adding a payment for. All AppliedTo columns can be used to explicitly identify the Bills being paid. For example, the following will insert a new BillPaymentCreditCard with two AppliedTo entries:

    INSERT INTO BillPaymentCreditCardsAppliedTo#TEMP (PayeeName, CreditCardName, AppliedToRefId, AppliedToAmount) VALUES ('Vu Contracting', 'CalOil Credit Card', '178C1-1450221347', 20.00)
    INSERT INTO BillPaymentCreditCardsAppliedTo#TEMP (PayeeName, CreditCardName, AppliedToRefId, AppliedToAmount) VALUES ('Vu Contracting', 'CalOil Credit Card', '881-933371709', 51.25)
    INSERT INTO BillPaymentCreditCardsAppliedTo (PayeeName, CreditCardName, AppliedToRefId, AppliedToAmount) SELECT PayeeName, CreditCardName, AppliedToRefId, AppliedToAmount FROM BillPaymentCreditCardsAppliedTo#TEMP
    

    AppliedToRefId is a reference to a BillId and can be found in Bills, BillLineItems, or BillExpenseItems.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format BillPaymentId|AppliedToId.
    BillPaymentId String False BillPaymentCreditCards.ID 255 The ID of the bill payment transaction.
    PayeeName String False 1000 A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required. This must match the vendor associated with the bill being paid when inserting.
    PayeeId String False Vendors.ID 255 A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required. This must match the vendor associated with the bill being paid when inserting.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Int True The transaction number.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False Accounts.ID 255 Reference to the accounts-payable account Id.
    CreditCardName String False 1000 Refers to the credit card account this payment is being charged to. This property is only applicable to the credit card payment method.
    CreditCardId String False 255 Refers to the credit card account this payment is being charged to. This property is only applicable to the credit card payment method.
    IsToBePrinted Boolean False Indicates whether or not the transaction is to be printed. If set to true, the 'To Be Printed' box in the QuickBooks user interface will be checked. The default value is false.
    Memo String False 5000 A memo to appear on internal reports.
    ExchangeRate Double False Currency exchange rate for this Bill Payment.
    AmountInHomeCurrency Double True Amount in units of the home currency.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    AppliedToRefId String True 255 The applied-to reference identifier. This is a reference to a bill Id, which can be found in the bills table.
    AppliedToAmount Decimal True The amount to be applied.
    AppliedToBalanceRemaining Double True The balance remaining to be applied.
    AppliedToCreditMemoId String False CreditMemos.ID 255 The ID of the credit memo to be applied.
    AppliedToDiscountAccountName String False 1000 The discount account name to be applied.
    AppliedToDiscountAccountId String False Accounts.ID 255 The discount account ID to be applied.
    AppliedToDiscountAmount Decimal False The discount amount to be applied.
    AppliedToPaymentAmount Decimal False The payment amount to be applied.
    AppliedToReferenceNumber String True 21 The ref number to be applied.
    AppliedToTxnDate Date True The transaction date to be applied.
    AppliedToTxnType String True 100 The transaction type that was applied.
    TimeModified Datetime True When the bill payment was last modified.
    TimeCreated Datetime True When the bill payment was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    AppliedToCreditAppliedAmount String The credit applied amount to be applied.

    Bills

    Create, update, delete, and query QuickBooks Bills.

    Table Specific Information

    Bills may be inserted, queried, or updated via the Bills, BillExpenseItems, or BillLineItems tables. Bills may be deleted by using the Bills table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Bills are Id, Date, ReferenceNumber, VendorName, VendorId, AccountsPayable, AccountsPayableId, IsPaid, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Bills WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    You can also use BillLineItems and BillExpenseItems to insert a bill.

    To add a Bill, specify a Vendor, Date, and at least one Expense or Line Item. The ItemAggregate and ExpenseAggregate columns may be used to specify an XML aggregate of Line or Expense Item data. The columns that may be used in these aggregates are defined in the BillLineItems and BillExpenseItems tables and it starts with Item and Expense. For example, the following will insert a new Bill with two Line Items:

    INSERT INTO Bills (VendorName, Date, ItemAggregate)
    VALUES ('Cal Telephone', '1/1/2011',
    '<BillLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </BillLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier for the bill.
    VendorName String False 1000 Vendor for this transaction. Either VenderName or VendorId must have a value when inserting.
    VendorId String False Vendors.ID 255 Vendor ID for this transaction. Either VenderName or VendorId must have a value when inserting.
    ReferenceNumber String False 21 Reference number for the transaction.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    Amount Decimal True Amount of the transaction. This is calculated by QuickBooks based on the Line Items or Expense Line Items.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    DueDate Date False Date when payment is due.
    Terms String False 100 Reference to terms of payment.
    TermsId String False 255 Reference ID for the terms of payment.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False Accounts.ID 255 Reference ID for the accounts-payable account.
    Memo String False 5000 Memo for the transaction.
    IsPaid Boolean True Indicates whether this Bill has been paid.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ItemCount Integer True The count of line items.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a bill and its line item data.
    ExpenseItemCount Integer True The count of expense line items.
    ExpenseItemAggregate String False 5000 An aggregate of the expense item data which can be used for adding a bill and its expense item data.
    TransactionCount Integer True The count of related transactions to the bill.
    TransactionAggregate String True 5000 An aggregate of the linked transaction data.
    CurrencyName String False 64 Name of the currency code used for this bill.
    CurrencyId String False Currency.ID 1000 Id of the currency code used for this bill.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the bill was last modified.
    TimeCreated Datetime True When the bill was created.
    OpenAmount Decimal True The current balance for the Vendor
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.
    Expense\* String All expense-item-specific columns may be used in insertions.
    LinkToTxnId String A transaction to link the bill to. This transaction must be a purchase order. You will get a run-time error if the transaction specified is already closed or fully received. This is only available on insert and requires a minimum QBXML Version 4.0.

    BuildAssemblies

    Insert, Update, delete, and query QuickBooks Build Assembly transactions.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    TxnNumber Integer True An identifying number for this transaction.
    ItemInventoryAssemblyRef_ListID String False Items.ID 255 A reference to the ID of an inventory assembly. Either ItemInventoryAssemblyRef_ListID or ItemInventoryAssemblyRef_FullName is required when inserting a BuildAssembly.
    ItemInventoryAssemblyRef_FullName String False 1000 A reference to the name of an inventory assembly. Either ItemInventoryAssemblyRef_ListID or ItemInventoryAssemblyRef_FullName is required when inserting a BuildAssembly.
    InventorySiteRef_ListID String False InventorySites.ID 255 A reference to the ID of an inventory site.
    InventorySiteRef_FullName String False 31 A reference to the name of an inventory site.
    SerialNumber String False 5000 The serial number of the asset. This cannot be used with LotNumber.
    LotNumber String False 40 The lot number of the asset. This cannot be used with SerialNumber.
    TxnDate Date False The date of the transaction.
    RefNumber String False 21 A reference number identifying the transaction. This does not have to be unique.
    Memo String False 5000 A memo about the transaction.
    IsPending Boolean True If IsPending is set to true, the transaction in question has not been completed.
    QuantityToBuild Double False Specifies the number of assemblies to be built. The transaction will fail if the number specified here exceeds the number of on-hand items.
    QuantityCanBuild Double True Indicates the number of this assembly that can be built from the parts on hand.
    QuantityOnHand Double True The number of these items in the inventory. To change the QuantityOnHand, you would need to add an inventory adjustment.
    QuantityOnSalesOrder Double True The number of these items that have been sold (as recorded in sales orders) but not delivered to customers.
    MarkPendingIfRequired Boolean False Allows the build assembly to be marked pending if there are insufficient quantities to complete the build assembly. This field requires QBXML Version 7.0 and is not returned in the response from QuickBooks.
    ExternalGUID String True A user-defined GUID value. Requires QBXML Version 9.0.
    BuildAssemblyLineAggregate String True 5000 An aggregate of the line item data which can be used for adding a transfer inventory and its line item data.
    TimeCreated Datetime True The datetime the transaction was made.
    TimeModified Datetime True The last datetime the transaction was modified.
    EditSequence String True An identifier used for versioning for this copy of the object.
    ExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. This requires QBXML version at least 16.0.

    BuildAssemblyLineItems

    Create and query QuickBooks Build Assembly transactions.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    BuildAssemblyId String False BuildAssemblies.ID 255 The unique ID of the build assembly.
    TxnNumber Integer True An identifying number for this transaction.
    ItemInventoryAssemblyRef_ListID String False Items.ID 255 A reference to the ID of an inventory assembly. Either ItemInventoryAssemblyRef_ListID or ItemInventoryAssemblyRef_FullName is required when inserting a BuildAssembly.
    ItemInventoryAssemblyRef_FullName String False 1000 A reference to the name of an inventory assembly. Either ItemInventoryAssemblyRef_ListID or ItemInventoryAssemblyRef_FullName is required when inserting a BuildAssembly.
    InventorySiteRef_ListID String False InventorySites.ID 255 A reference to the ID of an inventory site. Requires QBXML Version 10.0.
    InventorySiteRef_FullName String False 31 A reference to the name of an inventory site. Requires QBXML Version 10.0.
    SerialNumber String False 5000 The serial number of the asset. This cannot be used with LotNumber.
    LotNumber String False 40 The lot number of the asset. This cannot be used with SerialNumber.
    TxnDate Date False The date of the transaction.
    RefNumber String False 21 A reference number identifying the transaction. This does not have to be unique.
    Memo String False 5000 A memo about the transaction.
    IsPending Boolean True If IsPending is set to true, the transaction in question has not been completed.
    QuantityToBuild Double False Specifies the number of assemblies to be built. The transaction will fail if the number specified here exceeds the number of on-hand items.
    QuantityCanBuild Double True Indicates the number of this assembly that can be built from the parts on hand.
    QuantityOnHand Double True The number of these items in the inventory. To change the QuantityOnHand, you would need to add an inventory adjustment.
    QuantityOnSalesOrder Double True The number of these items that have been sold (as recorded in sales orders) but not delivered to customers.
    MarkPendingIfRequired Boolean False Allows the build assembly to be marked pending if there are insufficient quantities to complete the build assembly. This field requires QBXML Version 7.0 and is not returned in the response from QuickBooks.
    ExternalGUID String True A user-defined GUID value. Requires QBXML Version 9.0.
    ComponentItemLineRet_ItemRef_ListID String True Items.ID 255 Reference to the ID of an item.
    ComponentItemLineRet_ItemRef_FullName String True 255 Reference to the full name of an item.
    ComponentItemLineRet_InventorySiteRef_ListID String True InventorySites.ID 255 Reference to the ID of an inventory site. Requires QBXML Version 10.0.
    ComponentItemLineRet_InventorySiteRef_FullName String True 31 Reference to the full name of an inventory site. Requires QBXML Version 10.0.
    ComponentItemLineRet_Desc String True 5000 Description for the line item.
    ComponentItemLineRet_QuantityOnHand Double True The number of these items in the inventory.
    ComponentItemLineRet_QuantityNeeded Double True The number of these items used in the assembly.
    TimeCreated Datetime True The datetime the transaction was made.
    TimeModified Datetime True The last datetime the transaction was modified.
    EditSequence String True An identifier used for versioning for this copy of the object.
    ExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. This requires QBXML version at least 16.0.

    CheckExpenseItems

    Create, update, delete, and query QuickBooks Check Expense Line Items.

    Table Specific Information

    Checks may be inserted, queried, or updated via the Checks, CheckExpenseItems, or CheckLineItems tables. Checks may be deleted by using the Checks table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Checks are Id, Date, ReferenceNumber, Payee, PayeeId, Account, AccountId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CheckExpenseItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    SELECT * FROM CheckExpenseItems WHERE Date >= '2020-01-07' AND Date < '2020-01-10'
    
    SELECT * FROM CheckExpenseItems WHERE [Date] = '2020-01-07' 
    
    Insert

    To add a Check, specify an Account, a Date, and at least one Expense or Line Item. All Expense Line Item columns can be used for inserting multiple Expense Line Items for a new Check transaction. For example, the following will insert a new Check with two Expense Line Items:

    INSERT INTO CheckExpenseItems#TEMP (Account, Date, ExpenseAccount, ExpenseAmount) VALUES ('Checking', '1/1/2011', 'Utilities:Telephone', 52.25,)
    INSERT INTO CheckExpenseItems#TEMP (Account, Date, ExpenseAccount, ExpenseAmount) VALUES ('Checking', '1/1/2011', 'Professional Fees:Accounting', 235.87)
    INSERT INTO CheckExpenseItems (Account, Date, ExpenseAccount, ExpenseAmount) SELECT Account, Date, ExpenseAccount, ExpenseAmount FROM CheckExpenseItems#TEMP 
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format CheckId|ExpenseLineId.
    CheckId String False Checks.ID 255 The item identifier for the check. This is obtained from the Checks table.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Account String False 1000 The name of the account funds are being drawn from.
    AccountId String False Accounts.ID 255 The ID of the account funds are being drawn from.
    Payee String False 1000 The name of the payee for the check.
    PayeeId String False Vendors.ID 255 The ID of the payee for the check.
    Date Date False Date of transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    Amount Decimal True Amount of the transaction.
    Memo String False 5000 A memo regarding this transaction.
    Address String True Full address returned by QuickBooks.
    Line1 String False 500 First line of the address.
    Line2 String False 500 Second line of the address.
    Line3 String False 500 Third line of the address.
    Line4 String False 500 Fourth line of the address.
    Line5 String False 41 Fifth line of the address.
    City String False 255 City name for the address of the check.
    State String False 255 State name for the address of the check.
    PostalCode String False 30 Postal code for the address of the check.
    Country String False 255 Country for the address of the check.
    Note String False 41 Note for the address of the check.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    ExpenseLineId String True 255 The line item identifier.
    ExpenseLineNumber String True 255 The expense line number.
    ExpenseAccount String False 1000 The account name for this expense line.
    ExpenseAccountId String False Accounts.ID 255 The account ID for this expense line.
    ExpenseAmount Decimal False The total amount of this expense line.
    ExpenseBillableStatus String False 13 The billing status of this expense line. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED. The default value is EMPTY.
    ExpenseCustomer String False 1000 The customer associated with this expense line.
    ExpenseCustomerId String False Customers.ID 255 The customer associated with this expense line.
    ExpenseClass String False 1000 The class name of this expense.
    ExpenseClassId String False Class.ID 255 The class ID of this expense.
    ExpenseTaxCode String False 3 Sales tax information for this item. Available in only international editions of QuickBooks.
    ExpenseTaxCodeId String False SalesTaxCodes.ID 255 Sales tax ID information for this item. Available in only international editions of QuickBooks.
    ExpenseMemo String False 5000 A memo for this expense line.
    ExpenseCustomFields String True The custom fields for this expense item.
    IsToBePrinted Boolean False Whether this transaction is to be printed. The default value is false.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    CurrencyName String False 64 The name of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    CurrencyId String False Currency.ID 255 The unique ID of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    TimeModified Datetime True When the check was last modified.
    TimeCreated Datetime True When the check was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ApplyCheckToTxnId String Identifies the transaction to be paid by this check. This can be used in updates and inserts.
    ApplyCheckToTxnAmount String The amount of the transaction to be paid by this check. This can be used in updates and inserts.

    CheckLineItems

    Create, update, delete, and query QuickBooks Check Line Items.

    Table Specific Information

    Checks may be inserted, queried, or updated via the Checks, CheckExpenseItems, or CheckLineItems tables. Checks may be deleted by using the Checks table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Checks are Id, Date, ReferenceNumber, Payee, PayeeId, Account, AccountId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CheckLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    SELECT * FROM CheckLineItems WHERE Date >= '2020-01-07' AND Date < '2020-01-10'
    
    SELECT * FROM CheckLineItems WHERE [Date] = '2020-01-07' 
    
    Insert

    To add a Check, specify an Account, a Date, and at least one Expense or Line Item. All Line Item columns can be used for inserting multiple Line Items for a new Check transaction. For example, the following will insert a new Check with two Line Items:

    INSERT INTO CheckLineItems#TEMP (Account, Date, ItemName, ItemQuantity) VALUES ('Checking', '1/1/2011', 'Repairs', 1)
    INSERT INTO CheckLineItems#TEMP (Account, Date, ItemName, ItemQuantity) VALUES ('Checking', '1/1/2011', 'Removal', 2)
    INSERT INTO CheckLineItems (Account, Date, ItemName, ItemQuantity) VALUES Account, Date, ItemName, ItemQuantity FROM CheckLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format CheckId|ItemLineId.
    CheckId String False Checks.ID 255 The item identifier for the check. This is obtained from the checks table.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Account String False 1000 The name of the account funds are being drawn from.
    AccountId String False Accounts.ID 255 The ID of the account funds are being drawn from.
    Payee String False 1000 The name of the payee for the check.
    PayeeId String False Vendors.ID 255 The ID of the payee for the check.
    Date Date False Date of transaction.
    Amount Decimal True Amount of the transaction.
    Memo String False 5000 A memo regarding this transaction.
    Address String True Full address returned by QuickBooks.
    Line1 String False 500 First line of the address.
    Line2 String False 500 Second line of the address.
    Line3 String False 500 Third line of the address.
    Line4 String False 500 Fourth line of the address.
    Line5 String False 41 Fifth line of the address.
    City String False 255 City name for the address of the check.
    State String False 255 State name for the address of the check.
    PostalCode String False 30 Postal code for the address of the check.
    Country String False 255 Country for the address of the check.
    Note String False 41 Note for the address of the check.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID The item Id.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group Id. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled for only a single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemCost Double False The unit cost for the item.
    ItemAmount Decimal False Total amount for the item.
    ItemBillableStatus String False 13 Billing status of the item. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED. The default value is EMPTY.
    ItemCustomer String False 1000 The name of the customer who ordered the item.
    ItemCustomerId String False Customers.ID 255 The ID of the customer who ordered the item.
    ItemClass String False 1000 The name for the class of the item.
    ItemClassId String False Class.ID 255 The ID for the class of the item.
    ItemInventorySiteId String False InventorySites.ID 31 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteName String False 255 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationId String False 31 The inventory site location ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationName String False 255 The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. This requires QBXML version at least 16.0.
    ItemTaxCode String False 3 Sales tax information for this item. Available in only international editions of QuickBooks.
    ItemTaxCodeId String False SalesTaxCodes.ID 255 Sales tax ID information for this item. Available in only international editions of QuickBooks.
    ItemCustomFields String False The custom fields for this lineitem.
    IsToBePrinted Boolean False Whether this transaction is to be printed. The default value is false.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    CurrencyName String False 64 The name of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    CurrencyId String False Currency.ID 255 The unique ID of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    TimeModified Datetime True When the check was last modified.
    TimeCreated Datetime True When the check was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ApplyCheckToTxnId String Identifies the transaction to be paid by this check. This can be used in updates and inserts.
    ApplyCheckToTxnAmount String The amount of the transaction to be paid by this check. This can be used in updates and inserts.

    Checks

    Create, update, delete, and query QuickBooks Checks.

    Table Specific Information

    Checks may be inserted, queried, or updated via the Checks, CheckExpenseItems, or CheckLineItems tables. Checks may be deleted by using the Checks table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Checks are Id, Date, ReferenceNumber, Payee, PayeeId, Account, AccountId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Checks WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    SELECT * FROM Checks WHERE Date >= '2020-01-07' AND Date < '2020-01-10'
    
    SELECT * FROM Checks WHERE [Date] = '2020-01-07' 
    
    Insert

    To add a Check, specify an Account, a Date, and at least one Expense or Line Item. The ItemAggregate and ExpenseAggregate columns may be used to specify an XML aggregate of Line or Expense Item data. The columns that may be used in these aggregates are defined in the CheckLineItems and CheckExpenseItems tables and it starts with Item and Expense. For example, the following will insert a new Check with two Line Items:

    INSERT INTO Checks (Account, Date, ItemAggregate) VALUES ('Checking', '1/1/2011',
    '<CheckLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </CheckLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Account String False 1000 The name of the account funds are being drawn from.
    AccountId String False Accounts.ID 255 The ID of the account funds are being drawn from.
    Payee String False 1000 The name of the payee for the Check.
    PayeeId String False Vendors.ID 255 The ID of the payee for the Check.
    Date Date False Date of transaction.
    Amount Decimal True Amount of the transaction.
    Memo String False 5000 A memo regarding this transaction.
    Address String True Full address returned by QuickBooks.
    Line1 String False 500 First line of the address.
    Line2 String False 500 Second line of the address.
    Line3 String False 500 Third line of the address.
    Line4 String False 500 Fourth line of the address.
    Line5 String False 41 Fifth line of the address.
    City String False 255 City name for the address of the check.
    State String False 255 State name for the address of the check.
    PostalCode String False 30 Postal code for the address of the check.
    Country String False 255 Country for the address of the check.
    Note String False 41 Note for the address of the check.
    ItemCount Integer True The count of line items.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a check and its line item data.
    ExpenseItemCount Integer True The count of expense line items.
    ExpenseItemAggregate String False 5000 An aggregate of the expense item data which can be used for adding a check and its expense item data.
    IsToBePrinted Boolean False Whether this transaction is to be printed. The default value is false.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    CurrencyName String False 64 The name of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    CurrencyId String False Currency.ID 255 The unique ID of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the check was last modified.
    TimeCreated Datetime True When the check was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.
    Expense\* String All expense-item-specific columns may be used in insertions.
    ApplyCheckToTxnId String Identifies the transaction to be paid by this check. This can be used in updates and inserts.
    ApplyCheckToTxnAmount String The amount of the transaction to be paid by this check. This can be used in updates and inserts.

    Class

    Create, update, delete, and query QuickBooks Classes. QuickBooks requires QBXML version 8.0 or higher for updates to a Class.

    Table Specific Information
    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for the Class table are Id, Name, and IsActive. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax.

    Insert

    To insert a Class, specify the Name field.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the class.
    Name String False 100 The name of the class.
    FullName String True 1000 The full name of the class in the form ParentName|ClassName.
    IsActive Boolean False Boolean determining if the class is active.
    ParentRef_FullName String False Full name of the parent for the class. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT/UPDATE statements and not both.
    ParentRef_ListId String False Class.ID 255 Id for the parent of the class. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT/UPDATE statements and not both.
    Sublevel Integer True How many parents the class has.
    EditSequence String True 16 A string indicating the revision of the class.
    TimeCreated Datetime True The time the class was created.
    TimeModified Datetime True The last time the class was modified.

    CreditCardChargeExpenseItems

    Create, update, delete, and query QuickBooks Credit Card Charge Expense Line Items.

    Table Specific Information

    CreditCardCharges may be inserted, queried, or updated via the CreditCardCharges, CreditCardChargeExpenseItems, or CreditCardChargeLineItems tables. CreditCardCharges may be deleted by using the CreditCardCharges table.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for CreditCardCharges are Id, ReferenceNumber, Date, TimeModified, AccountName, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CreditCardChargeExpenseItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a CreditCardCharge, specify an Account and at least one Expense or Line Item. All Expense Line Item columns can be used for inserting multiple Expense Line Items for a new CreditCardCharge transaction. For example, the following will insert a new CreditCardCharge with two Expense Line Items:

    INSERT INTO CreditCardChargeExpenseItems#TEMP (AccountName, ExpenseAccount ExpenseAmount) VALUES ('CalOil Credit Card', 'Job Expenses:Job Materials', 52.25)
    INSERT INTO CreditCardChargeExpenseItems#TEMP (AccountName, ExpenseAccount ExpenseAmount) VALUES ('CalOil Credit Card', 'Automobile:Fuel', 235.87)
    INSERT INTO CreditCardChargeExpenseItems (AccountName, ExpenseAccount, ExpenseAmount) SELECT AccountName, ExpenseAccount, ExpenseAmount FROM CreditCardChargeExpenseItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format CCChargeId|ItemLineId.
    CCChargeId String False CreditCardCharges.ID 255 The item identifier.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ReferenceNumber String False 21 Reference number for the transaction.
    AccountName String False 1000 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    AccountId String False Accounts.ID 255 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    Memo String False 5000 Memo to appear on internal reports only.
    PayeeName String False 1000 Name of the payee for the transaction.
    PayeeId String False Vendors.ID 255 Id of the payee for the transaction.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ExpenseLineId String True 255 The expense line item identifier.
    ExpenseLineNumber String True 255 The expense line number.
    ExpenseAccount String False 1000 The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAccountId String False Accounts.ID 255 The account ID for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAmount Decimal False The total amount of this expense line.
    ExpenseBillableStatus String False 13 The billing status of this expense line. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.
    ExpenseCustomer String False 1000 The customer associated with this expense line.
    ExpenseCustomerId String False Customers.ID 255 The customer associated with this expense line.
    ExpenseClass String False 1000 The class name of this expense.
    ExpenseClassId String False Class.ID 255 The class ID of this expense.
    ExpenseMemo String False 5000 A memo for this expense line.
    ExpenseTaxCode String False 3 Sales tax information for this item (taxable or nontaxable).
    ExpenseTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item (taxable or nontaxable).
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    TimeModified Datetime True When the credit card charge was last modified.
    TimeCreated Datetime True When the credit card charge was created.

    CreditCardChargeLineItems

    Create, update, delete, and query QuickBooks Credit Card Charge Line Items.

    Table Specific Information

    CreditCardCharges may be inserted, queried, or updated via the CreditCardCharges, CreditCardChargeExpenseItems, or CreditCardChargeLineItems tables. CreditCardCharges may be deleted by using the CreditCardCharges table.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for CreditCardCharges are Id, ReferenceNumber, Date, TimeModified, AccountName, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CreditCardChargeLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a CreditCardCharge, specify an Account and at least one Expense or Line Item. All Line Item columns can be used for inserting multiple Line Items for a new CreditCardCharge transaction. For example, the following will insert a new CreditCardCharge with two Line Items:

    INSERT INTO CreditCardChargeLineItems#TEMP (AccountName, ItemName, ItemQuantity) VALUES ('CalOil Credit Card', '1/1/2011', 'Repairs', 1)
    INSERT INTO CreditCardChargeLineItems#TEMP (AccountName, ItemName, ItemQuantity) VALUES ('CalOil Credit Card', '1/1/2011', 'Removal', 2)
    INSERT INTO CreditCardChargeLineItems (AccountName, ItemName, ItemQuantity) SELECT AccountName, ItemName, ItemQuantity FROM CreditCardChargeLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format CCChargeId|ItemLineId.
    CCChargeId String False CreditCardCharges.ID 255 The item identifier.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ReferenceNumber String False 21 Reference number for the transaction.
    AccountName String False 1000 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    AccountId String False Accounts.ID 255 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    Memo String False 5000 Memo to appear on internal reports only.
    PayeeName String False 1000 Name of the payee for the transaction.
    PayeeId String False Vendors.ID 255 Id of the payee for the transaction.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item identifier.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group name. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemUnitOfMeasure String False 100 In a transaction line item, the name of the unit of measure is selected from within the available units for the item. If the company file is enabled for only a single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemCost Double False The unit cost for an item.
    ItemAmount Decimal False Total amount for this item.
    ItemBillableStatus String False 13 Billing status of the item. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.
    ItemCustomer String False 1000 The name of the customer who ordered the item.
    ItemCustomerId String False Customers.ID 255 The ID of the customer who ordered the item.
    ItemClass String False 1000 The name for the class of the item.
    ItemClassId String False Class.ID 255 The ID for the class of the item.
    ItemTaxCode String False 3 Sales tax information for this item (taxable or nontaxable).
    ItemTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item (taxable or nontaxable).
    ItemInventorySiteId String False InventorySites.ID 31 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteName String False 255 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationId String False 31 The inventory site location ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationName String False 255 The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. This requires QBXML version at least 16.0.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    TimeModified Datetime True When the transaction was last modified.
    TimeCreated Datetime True When the transaction was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    CreditCardCharges

    Create, update, delete, and query QuickBooks Credit Card Charges.

    Table Specific Information

    CreditCardCharges may be inserted, queried, or updated via the CreditCardCharges, CreditCardChargeExpenseItems, or CreditCardChargeLineItems tables. CreditCardCharges may be deleted by using the CreditCardCharges table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for CreditCardCharges are Id, ReferenceNumber, Date, TimeModified, AccountName, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CreditCardCharges WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a CreditCardCharge, specify an Account and at least one Expense or Line Item. The ItemAggregate and ExpenseAggregate columns may be used to specify an XML aggregate of Line or Expense Item data. The columns that may be used in these aggregates are defined in the CreditCardChargeLineItems and CreditCardChargeExpenseItems tables and it starts with Item and Expense. For example, the following will insert a new CreditCardCharge with two Line Items:

    INSERT INTO CreditCardCharges (AccountName, ItemAggregate)
    VALUES ('CalOil Credit Card',
    '<CreditCardChargeLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </CreditCardChargeLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the transaction.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ReferenceNumber String False 11 Reference number for the transaction.
    AccountName String False 1000 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    AccountId String False Accounts.ID 255 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    Memo String False 5000 Memo to appear on internal reports only.
    PayeeName String False 1000 Name of the payee for the transaction.
    PayeeId String False Vendors.ID 255 Id of the payee for the transaction.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ItemCount Integer True The count of line items.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a bill and its line item data.
    ExpenseItemCount Integer True The count of expense line items.
    ExpenseItemAggregate String False 5000 An aggregate of the expense item data which can be used for adding a bill and its expense item data.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the credit card charge was last modified.
    TimeCreated Datetime True When the credit card charge was created.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.
    Expense\* String All expense-item-specific columns may be used in insertions.

    CreditCardCreditExpenseItems

    Create, update, delete, and query QuickBooks Credit Card Credit Expense Line Items.

    Table Specific Information

    CreditCardCredits may be inserted, queried, or updated via the CreditCardCredits, CreditCardCreditExpenseItems, or CreditCardCreditLineItems tables. CreditCardCredits may be deleted by using the CreditCardCredits table.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for CreditCardCredits are Id, ReferenceNumber, Date, TimeModified, AccountName, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CreditCardCreditExpenseItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a CreditCardCredit, specify an Account and at least one Expense or Line Item. All Expense Line Item columns can be used for inserting multiple Expense Line Items for a new CreditCardCredit transaction. For example, the following will insert a new CreditCardCredit with two Expense Line Items:

    INSERT INTO CreditCardCreditExpenseItems#TEMP (AccountName, ExpenseAccount, ExpenseAmount) VALUES ('CalOil Credit Card', 'Job Expenses:Job Materials', 52.25)
    INSERT INTO CreditCardCreditExpenseItems#TEMP (AccountName, ExpenseAccount, ExpenseAmount) VALUES ('CalOil Credit Card', 'Automobile:Fuel', 235.87)
    INSERT INTO CreditCardCreditExpenseItems (AccountName, ExpenseAccount, ExpenseAmount) SELECT AccountName, ExpenseAccount, ExpenseAmount FROM CreditCardCreditExpenseItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format CCCreditId|ItemLineId.
    CCCreditId String False CreditCardCredits.ID 255 The item identifier.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ReferenceNumber String False 21 Reference number for the transaction.
    AccountName String False 1000 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    AccountId String False Accounts.ID 255 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    Memo String False 5000 Memo to appear on internal reports only.
    PayeeName String False 1000 Name of the payee for the transaction.
    PayeeId String False Vendors.ID 255 Id of the payee for the transaction.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ExpenseLineId String True 255 The expense line item identifier.
    ExpenseLineNumber String True 255 The expense line number.
    ExpenseAccount String False 1000 The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAccountId String False Accounts.ID 255 The account ID for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAmount Decimal False The total amount of this expense line.
    ExpenseBillableStatus String False 13 The billing status of this expense line. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.
    ExpenseCustomer String False 1000 The customer associated with this expense line.
    ExpenseCustomerId String False Customers.ID 255 The customer associated with this expense line.
    ExpenseClass String False 1000 The class name of this expense.
    ExpenseClassId String False Class.ID 255 The class ID of this expense.
    ExpenseMemo String False 5000 A memo for this expense line.
    ExpenseTaxCode String False 3 Sales tax information for this item (taxable or nontaxable).
    ExpenseTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item (taxable or nontaxable).
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    TimeModified Datetime True When the credit card credit was last modified.
    TimeCreated Datetime True When the credit card credit was created.

    CreditCardCreditLineItems

    Create, update, delete, and query QuickBooks Credit Card Credit Line Items.

    Table Specific Information

    CreditCardCredits may be inserted, queried, or updated via the CreditCardCredits, CreditCardCreditExpenseItems, or CreditCardCreditLineItems tables. CreditCardCredits may be deleted by using the CreditCardCredits table.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for CreditCardCredits are Id, ReferenceNumber, Date, TimeModified, AccountName, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CreditCardCreditLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a CreditCardCredit, specify an Account and at least one Expense or Line Item. All Line Item columns can be used for inserting multiple Line Items for a new CreditCardCredit transaction. For example, the following will insert a new CreditCardCredit with two Line Items:

    INSERT INTO CreditCardCreditLineItems#TEMP (AccountName, ItemName, ItemQuantity) VALUES ('CalOil Credit Card', '1/1/2011', 'Repairs', 1)
    INSERT INTO CreditCardCreditLineItems#TEMP (AccountName, ItemName, ItemQuantity) VALUES ('CalOil Credit Card', '1/1/2011', 'Removal', 2)
    INSERT INTO CreditCardCreditLineItems (AccountName, ItemName, ItemQuantity) SELECT AccountName, ItemName ItemQuantity FROM CreditCardCreditLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format CCCreditId|ItemLineId.
    CCCreditId String False CreditCardCredits.ID 255 The item identifier.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ReferenceNumber String False 21 Reference number for the transaction.
    AccountName String False 1000 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    AccountId String False Accounts.ID 255 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    Memo String False 5000 Memo to appear on internal reports only.
    PayeeName String False 1000 Name of the payee for the transaction.
    PayeeId String False Vendors.ID 255 Id of the payee for the transaction.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item identifier.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group name. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the available units for the item. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemCost Double False The unit cost for an item.
    ItemAmount Decimal False Total amount for this item.
    ItemBillableStatus String False 13 Billing status of the item. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.
    ItemCustomer String False 1000 The name of the customer who ordered the item.
    ItemCustomerId String False Customers.ID 255 The ID of the customer who ordered the item.
    ItemClass String False 1000 The name for the class of the item.
    ItemClassId String False Class.ID 1000 The ID for the class of the item.
    ItemTaxCode String False 3 Sales tax information for this item (taxable or nontaxable).
    ItemTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item (taxable or nontaxable).
    ItemInventorySiteId String False InventorySites.ID 31 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteName String False 255 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationId String False 31 The inventory site location ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationName String False 255 The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    TimeModified Datetime True When the bill was last modified.
    TimeCreated Datetime True When the bill was created.
    ItemExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. This requires QBXML version at least 16.0.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    CreditCardCredits

    Create, update, delete, and query QuickBooks Credit Card Credits.

    Table Specific Information

    CreditCardCredits may be inserted, queried, or updated via the CreditCardCredits, CreditCardCreditExpenseItems, or CreditCardCreditLineItems tables. CreditCardCredits may be deleted by using the CreditCardCredits table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for CreditCardCredits are Id, ReferenceNumber, Date, TimeModified, AccountName, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CreditCardCredits WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a CreditCardCredit, specify an Account and at least one Expense or Line Item. The ItemAggregate and ExpenseAggregate columns may be used to specify an XML aggregate of Line or Expense Item data. The columns that may be used in these aggregates are defined in the CreditCardCreditLineItems and CreditCardCreditExpenseItems tables and it starts with Item and Expense. For example, the following will insert a new CreditCardCredit with two Line Items:

    INSERT INTO CreditCardCredits (AccountName, ItemAggregate)
    VALUES ('CalOil Credit Card',
    '<CreditCardCreditLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </CreditCardCreditLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ReferenceNumber String False 21 Reference number for the transaction.
    AccountName String False 1000 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    AccountId String False Accounts.ID 255 A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.
    Memo String False 5000 Memo to appear on internal reports only.
    PayeeName String False 1000 Name of the payee for the transaction.
    PayeeId String False Vendors.ID 255 Id of the payee for the transaction.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ItemCount Integer True The count of line items.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a credit card credit and its line item data.
    ExpenseItemCount Integer True The count of expense line items.
    ExpenseItemAggregate String False 5000 An aggregate of the expense item data which can be used for adding a credit card credit and its expense item data.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the credit card credit was last modified.
    TimeCreated Datetime True When the credit card credit was created.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.
    Expense\* String All expense-item-specific columns may be used in insertions.

    CreditCardRefunds

    Query and Insert QuickBooks AR Credit Card Refund transactions.

    Table Specific Information

    CreditCardRefunds may be inserted or queried via the CreditCardRefunds table. CreditCardRefunds may be deleted by using the CreditCardRefunds table. QuickBooks does not currently support updating CreditCardRefunds.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for ARCreditCardRefunds are Id, Date, ReferenceNumber, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CreditCardRefunds WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a CreditCardRefund, specify a Customer, Date, and at least one reference to a Credit Memo. For example, the following will insert a new CreditCardRefunds:

    INSERT INTO CreditCardRefunds#TEMP (CustomerRef_ListID, PaymentMethodRef_ListID, RefundAppliedToTxnAdd_TxnId, RefundAppliedToTxnAdd_RefundAmount) VALUES ('150000-933272658', '1D575-1544895769', '30000-933272660', 200.00)
    INSERT INTO CreditCardRefunds (CustomerRef_ListID, PaymentMethodRef_ListID, RefundAppliedToTxnAdd_TxnId, RefundAppliedToTxnAdd_RefundAmount) SELECT CustomerRef_ListID, PaymentMethodRef_ListID, RefundAppliedToTxnAdd_TxnId, RefundAppliedToTxnAdd_RefundAmount FROM CreditCardRefunds#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    TxnDate Date False The date of the transaction.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id
    RefNumber String False 21 The transaction reference number.
    CustomerRef_ListID String False Customers.ID 255 The ID of the customer on the refund. Either CustomerRef_ListID or CustomerRef_ListName must have a value when inserting.
    CustomerRef_FullName String False 209 The name of the customer on the refund. Either CustomerRef_ListID or CustomerRef_ListName must have a value when inserting.
    RefundFromAccountRef_ListID String False Accounts.ID 255 The ID of the account which is the source of funds for the credit card refund.
    RefundFromAccountRef_FullName String False 159 The Name of the account which is the source of funds for the credit card refund.
    ARAccountRef_ListID String False Accounts.ID 255 A reference to the accounts-receivable account where the money received from this transaction will be deposited.
    ARAccountRef_FullName String False 159 A reference to the accounts-receivable account where the money received from this transaction will be deposited.
    TotalAmount Decimal True Total amount of the refund.
    TotalAmountInHomeCurrency Decimal True Total amount of the refund in home currency.
    Address_Addr1 String False 41 First line of the address.
    Address_Addr2 String False 41 Second line of the address.
    Address_Addr3 String False 41 Third line of the address.
    Address_Addr4 String False 41 Fourth line of the address.
    Address_Addr5 String False 41 Fifth line of the address.
    Address_City String False 31 City name for the address of the check.
    Address_State String False 21 State name for the address of the check.
    Address_PostalCode String False 13 Postal code for the address of the check.
    Address_Country String False 31 Country for the address of the check.
    Address_Note String False 41 Note for the address of the check.
    PaymentMethodRef_ListID String False PaymentMethods.ID 255 The ID of the Customer's payment method.
    PaymentMethodRef_FullName String False 31 The Name of the Customer's payment method.
    Memo String False 4095 Additional information about the refund.
    RefundAppliedToTxnAggregate String False 5000 An aggregate of the transactions this refund is applied to.
    CreditCardTxnInfo_CreditCardTxnInputInfo_CreditCardNumber String False 25 The Credit Card Number for the Customer.
    CreditCardTxnInfo_CreditCardTxnInputInfo_ExpirationMonth Integer False The month when the credit card expires.
    CreditCardTxnInfo_CreditCardTxnInputInfo_ExpirationYear Integer False The year when the credit card expires.
    CreditCardTxnInfo_CreditCardTxnInputInfo_NameOnCard String False 41 The name on the Customer's credit card.
    CreditCardTxnInfo_CreditCardTxnInputInfo_CreditCardAddress String False 41 The address associated with this credit card.
    CreditCardTxnInfo_CreditCardTxnInputInfo_CreditCardPostalCode String False 18 The postal code associated with the address for this credit card.
    CreditCardTxnInfo_CreditCardTxnInputInfo_CommercialCardCode String False 24 This optional field is used only for Visa and Master Card commercial cards.
    CreditCardTxnInfo_CreditCardTxnInputInfo_TransactionMode String False 50 Indicates whether this transaction came from a card swipe (CardPresent ) or not (CardNotPresent). Defaults to CardNotPresent
    CreditCardTxnInfo_CreditCardTxnInputInfo_CreditCardTxnType String False 50 Indicates from where the current transaction data originated. Values:Authorization, Capture, Charge, Refund, VoiceAuthorization
    CreditCardTxnInfo_CreditCardTxnResultInfo_ResultCode Integer False Contains the status code returned in the original ransaction response.
    CreditCardTxnInfo_CreditCardTxnResultInfo_ResultMessage String False 60 Contains the status message returned in the original transaction response.
    CreditCardTxnInfo_CreditCardTxnResultInfo_CreditCardTransID String False 24 The transaction ID is returned from the credit card processor.
    CreditCardTxnInfo_CreditCardTxnResultInfo_MerchantAccountNumber String False 32 The account number of the merchant who is running the transaction using the customer's credit card.
    CreditCardTxnInfo_CreditCardTxnResultInfo_AuthorizationCode String False 12 The authorization code is returned from the credit card processor.
    CreditCardTxnInfo_CreditCardTxnResultInfo_AVSStreet String False 50 Pass if the street address supplied in the transaction request matches the customer's address. Fail if does not match.
    CreditCardTxnInfo_CreditCardTxnResultInfo_AVSZip String False 50 Pass if the zip supplied in the transaction request matches the customer's zip. Fail if does not match.
    CreditCardTxnInfo_CreditCardTxnResultInfo_CardSecurityCodeMatch String False 50 Pass if the security colde supplied in the transaction request matches the Credit Card's security Code. Fail if does not match.
    CreditCardTxnInfo_CreditCardTxnResultInfo_TxnAuthorizationTime Datetime False Timestamp indicating the time in which the card processor authorized the transaction.
    CustomFields String False 5000 Custom fields returned from QuickBooks and formatted into XML.
    CurrencyRef_ListID String True Currency.ListID 255 Name of the currency code used for this refund.
    CurrencyRef_Name String True 64 Id of the currency code used for this refund.
    ExchangeRate Decimal False Currency exchange rate for this invoice.
    TimeCreated Datetime True The datetime the transaction was made.
    TimeModified Datetime True The last datetime the transaction was modified.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    RefundAppliedToTxnAdd_TxnID String The ID of the transaction to apply the refund to. Required on Inserts.
    RefundAppliedToTxnAdd_RefundAmount Decimal The Amount of the refund to apply to the transaction. Required on Inserts.

    CreditMemoLineItems

    Create, update, delete, and query QuickBooks Credit Memo Line Items.

    Table Specific Information

    CreditMemos may be inserted, queried, or updated via the CreditMemoLineItems table. CreditMemos may be deleted by using the CreditMemos table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for CreditMemos are Id, ReferenceNumber, Date, TimeModified, CustomerName, CustomerId, AccountsReceivable, and AccountsReceivableId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CreditMemoLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a CreditMemo, specify a Customer and at least one Line Item. All Line Item columns can be used for inserting multiple Line Items for a new CreditMemo transaction. For example, the following will insert a new CreditMemo with two Line Items:

    INSERT INTO CreditMemoLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Repairs', 1)
    INSERT INTO CreditMemoLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Removal', 2)
    INSERT INTO CreditMemoLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM CreditMemoLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format CreditMemoId|ItemLineId.
    CreditMemoId String False CreditMemos.ID 255 The item identifier.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    CustomerName String False 1000 The name of the customer on the credit memo. CustomerName or CustomerId are required to have a value when inserting.
    CustomerId String False Customers.ID 255 The ID of the customer on the credit memo. CustomerName or CustomerId are required to have a value when inserting.
    AccountsReceivable String False 1000 A reference to the name of the accounts-receivable account where the money received from this transaction will be deposited.
    AccountsReceivableId String False Accounts.ID 255 A reference to the ID of the accounts-receivable account where the money received from this transaction will be deposited.
    ShipMethod String False 1000 The shipping method.
    ShipMethodId String False ShippingMethods.ID 255 The shipping method id.
    ShipDate Date False The shipping date.
    Memo String False 5000 A memo regarding this transaction.
    Amount Decimal False Total amount for this transaction.
    Message String False 101 A message to the customer.
    MessageId String False CustomerMessages.ID 255 Id of the message to the customer.
    SalesRep String False 5 Reference to (the initials of) the sales rep.
    SalesRepId String False SalesReps.ID 255 Reference ID to the sales rep.
    FOB String False 13 Freight on board: The place to ship from.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address of the credit memo.
    BillingState String False 255 State name for the billing address of the credit memo.
    BillingPostalCode String False 30 Postal code for the billing address of the credit memo.
    BillingCountry String False 255 Country for the billing address of the credit memo.
    BillingNote String False 41 Note for the billing address of the credit memo.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address of the credit memo.
    ShippingState String False 255 State name for the shipping address of the credit memo.
    ShippingPostalCode String False 30 Postal code for the shipping address of the credit memo.
    ShippingCountry String False 255 Country for the shipping address of the credit memo.
    ShippingNote String False 41 Note for the shipping address of the credit memo.
    Subtotal Decimal True The gross subtotal. This does not include tax or the amount already paid.
    Tax Double False Total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True Percentage charged for sales tax.
    IsPending Boolean False Transaction status (whether this transaction has been completed or it is still pending).
    IsToBeEmailed Boolean False Whether this credit memo is to be emailed.
    IsToBePrinted Boolean False Whether this transaction is to be printed.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    PONumber String False 25 The purchase order number.
    Terms String False 100 The payment terms.
    TermsId String False 255 The payment terms.
    CreditRemaining Double True Remaining credit.
    DueDate Date False Date when the credit is due.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    CustomerSalesTax String False 3 Reference to sales tax information for the customer.
    CustomerSalesTaxId String False SalesTaxCodes.ID 255 Reference to sales tax information for the customer.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    ExchangeRate Double False Indicates the exchange rate for the transaction.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item identifier.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group Id. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the available units for the item. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemRate Double False The unit rate charged for this item.
    ItemRatePercent Double False The rate percent charged for this item.
    ItemTaxCode String False 3 Sales tax information for this item (taxable or nontaxable).
    ItemTaxCodeId String False SalesTaxItems.ID 255 Sales tax information for this item (taxable or nontaxable).
    ItemAmount Decimal False Total amount for this item.
    ItemClass String False 1000 The class name of the item.
    ItemClassId String False Class.ID 255 The class name of the item.
    ItemInventorySiteName String False 31 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory Add-on.
    ItemInventorySiteId String False InventorySites.ID 255 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory Add-on.
    ItemInventorySiteLocationName String False 31 The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory Add-on.
    ItemInventorySiteLocationId String False 255 The inventory site location ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory Add-on.
    ItemSerialNumber String False 5000 The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory Add-on.
    ItemLotNumber String False 40 The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory Add-on.
    ItemExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. This requires QBXML version at least 16.0.
    ItemOther1 String False 29 The Other1 field of this line item. QBXMLVersion must be set to 6.0 or higher.
    ItemOther2 String False 29 The Other2 field of this line item. QBXMLVersion must be set to 6.0 or higher.
    ItemCustomFields String False The custom fields for this lineitem.
    ItemUOMSetFullName String False 1000 Indicates the price of something as a percent.
    ItemUOMSetListID String False UnitOfMeasure.ID 1000 Indicates the price of something as a percent.
    ItemIsGetPrintItemsInGroup String False 1000 If true, a list of this group's individual items their amounts will appear on printed forms.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the credit memo was last modified.
    TimeCreated Datetime True When the credit memo was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String Item price level name. QuickBooks will not return the price level.
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    CreditMemos

    Create, update, delete, and query QuickBooks Credit Memos.

    Table Specific Information

    CreditMemos may be inserted, queried, or updated via the CreditMemoLineItems table. CreditMemos may be deleted by using the CreditMemos table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for CreditMemos are Id, ReferenceNumber, Date, TimeModified, CustomerName, CustomerId, AccountsReceivable, and AccountsReceivableId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM CreditMemos WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a CreditMemo, specify a Customer and at least one Line Item. The ItemAggregate column may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the CreditMemoLineItems tableand it starts with Item. For example, the following will insert a new CreditMemo with two Line Items:

    INSERT INTO CreditMemos (CustomerName, ItemAggregate)
    VALUES ('Abercrombie, Kristy',
    '<CreditMemoLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </CreditMemoLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    CustomerName String False 1000 The name of the customer on the credit memo. CustomerName or CustomerId are required to have a value when inserting.
    CustomerId String False Customers.ID 255 The ID of the customer on the credit memo. CustomerName or CustomerId are required to have a value when inserting.
    AccountsReceivable String False 1000 A reference to the name of the accounts-receivable account where the money received from this transaction will be deposited.
    AccountsReceivableId String False Accounts.ID 255 A reference to the ID of the accounts-receivable account where the money received from this transaction will be deposited.
    ShipMethod String False 1000 The shipping method.
    ShipMethodId String False ShippingMethods.ID 255 The shipping method Id.
    ShipDate Date False The shipping date.
    Memo String False 5000 A memo regarding this transaction.
    Amount Decimal False Total amount for this transaction.
    Message String False 101 A message to the customer.
    MessageId String False CustomerMessages.ID 255 Id of the message to the customer.
    SalesRep String False 5 Reference to (initials of) the sales rep.
    SalesRepId String False SalesReps.ID 255 Reference ID to the sales rep.
    FOB String False 13 Freight on board: The place to ship from.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address of the credit memo.
    BillingState String False 255 State name for the billing address of the credit memo.
    BillingPostalCode String False 30 Postal code for the billing address of the credit memo.
    BillingCountry String False 255 Country for the billing address of the credit memo.
    BillingNote String False 41 Note for the billing address of the credit memo.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address of the credit memo.
    ShippingState String False 255 State name for the shipping address of the credit memo.
    ShippingPostalCode String False 30 Postal code for the shipping address of the credit memo.
    ShippingCountry String False 255 Country for the shipping address of the credit memo.
    ShippingNote String False 41 Note for the shipping address of the credit memo.
    Subtotal Decimal True The gross subtotal. This does not include tax or the amount already paid.
    Tax Double False Total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True Percentage charged for sales tax.
    IsPending Boolean False Transaction status (whether this transaction has been completed or is still pending).
    IsToBeEmailed Boolean False Whether this credit memo is to be emailed.
    IsToBePrinted Boolean False Whether this transaction is to be printed.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    PONumber String False 25 The purchase order number.
    Terms String False 100 The payment terms.
    TermsId String False 255 The payment terms.
    CreditRemaining Double True Remaining credit.
    DueDate Date False Date when the credit is due.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    CustomerSalesTax String False 3 Reference to sales tax information for the customer.
    CustomerSalesTaxId String False SalesTaxCodes.ID 255 Reference to sales tax information for the customer.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    ExchangeRate Double False Indicates the exchange rate for the transaction.
    ItemCount Integer True The count of line items.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a credit memo and its line item data.
    TransactionCount Integer True The count of related transactions to the credi tmemo.
    TransactionAggregate String True 5000 An aggregate of the linked transaction data.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the credit memo was last modified.
    TimeCreated Datetime True When the credit memo was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.

    Currency

    Create, update, delete, and query QuickBooks Currencies. This table requires QBXML version 8.0 or higher, and you will need to enable multiple Currencies in your QuickBooks company file to use it.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The ID of the currency.
    Name String False 64 The name of the currency.
    IsActive Boolean False Boolean indicating if the currency is active.
    CurrencyCode String False 3 A maximum of 3 characters describing the code for the currency. For example: USD.
    CurrencyFormat_ThousandSeparator String False 10 The separating character for thousands. For example, in 1,000,000 the comma is the separator. The allowed values are Comma, Period, Space, Apostrophe. The default value is Comma.
    CurrencyFormat_ThousandSeparatorGrouping String False 50 Controls how the display of the currency value is grouped. For example, 10,000,000 is XX_XXX_XXX, but could be replaced by X_XX_XX_XXX.
    CurrencyFormat_DecimalPlaces String False 50 Controls the display of the decimal value. For example, in 1.00 the value would be 2. You can change to 0 if you do not want decimals to be displayed. The default value is 2.
    CurrencyFormat_DecimalSeparator String False 6 Controls the character used to separate decimal values from whole numbers. For example, in 1.00 the value is Period. The allowed values are Comma, Period. The default value is Period.
    IsUserDefinedCurrency Boolean True Indicates whether the currency is a built-in currency or a currency created by a QuickBooks user.
    ExchangeRate Double True The market price for which the currency can be exchanged for the currency used by the QuickBooks company file as the home currency. The exchange rate should be considered a snapshot of the rates in effect at the AsOfDate.
    AsOfDate Date True The date when the exchange rate was last changed.
    EditSequence String True 16 A string indicating the revision of the currency.
    TimeCreated Datetime True The time the currency was created.
    TimeModified Datetime True The time the currency was last modified.

    CustomerContacts

    Create, update, delete, and query QuickBooks Customer Contacts. This table requires QBXML version 12.0 or higher, and is only available in QuickBooks editions 2016 and above.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the shipping address in the format CustomerId|ContactId.
    CustomerId String False Customers.ID 255 The ID of the customer the shipping address is associated with.
    Name String False 100 The name of the customer. This is required to have a value when inserting.
    FullName String True 1000 The full name of the customer, including parents in the format parent:customer.
    ContactId String False 500 The ID of the contact.
    ContactEditSequence String False 500 An identifer used for versioning for this copy of the object.
    ContactFirstName String False 500 The first name of the contact.
    ContactMiddleName String False 500 The middle name of the contact.
    ContactLastName String False 500 The last name of the contact.
    ContactJobTitle String False 41 The job title of the contact.
    ContactSalutation String False 255 The salutation of the contact.
    ContactMethods String False 1000 A list of contact methods for the contact.
    EditSequence String False 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime False When the customer was last modified.
    TimeCreated Datetime False When the customer was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    IncludeJobs Boolean Whether or not to include job information in the results. The default value is TRUE.

    CustomerMessages

    Create, delete, and query Customer Messages.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the customer message.
    Name String False 101 The name of the customer message.
    IsActive Boolean False Boolean determining if the customer message is active.
    EditSequence String True 16 A string indicating the revision of the customer message.
    TimeCreated Datetime True The time the customer message was created.
    TimeModified Datetime True The last time the customer message was modified.

    CustomerNotes

    Create, update, and query QuickBooks Customer Notes. This table requires QBXML version 12.0 or higher.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the note in the format CustomerId|NoteId.
    CustomerID String False Customers.ID 255 The ID of the customer the note is associated with.
    Name String False 100 The name of the customer. This is required to have a value when inserting.
    FullName String True 1000 The full name of the customer, including parents in the format parent:customer.
    NoteId String False 255 Id of the note.
    Date String False 5000 Date for this note
    Note String False 5000 Note for this customer
    EditSequence String False 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime False When the customer was last modified.
    TimeCreated Datetime False When the customer was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    IncludeJobs Boolean Whether or not to include job information in the results. The default value is TRUE.

    Customers

    Create, update, delete, and query QuickBooks Customers.

    Table Specific Information

    To add a Customer, you must specify the Name field.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Customers are Id, Name, Balance, IsActive, and TimeModified. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Balance may be used with the >=, <=, or = conditions but cannot be used to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Customers WHERE Name LIKE '%George%' AND TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Balance > 100.00 AND Balance < 200.00
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the customer.
    Name String False 41 The name of the customer. This is required to have a value when inserting.
    FullName String True 159 The full name of the customer, including parents in the format parent:customer.
    Salutation String False 15 A salutation, such as Mr., Mrs., etc.
    FirstName String False 25 The first name of the customer as stated in the address info.
    MiddleInitial String False 5 A middle name or middle initial of the customer.
    LastName String False 25 The last name of the customer as stated in the address info.
    AccountNumber String False 99 The account number for the customer.
    Company String False 41 The name of the company of the customer.
    Balance Double True The balance owned by this customer including subcustomers.
    CustomerBalance Double True The balance owned by only this customer not including subcustomers.
    Contact String False 41 The name of the main contact person for the customer.
    Type String False 1000 A predefined customer type within QuickBooks. Typical customer types, if defined, might be Commercial, Residential, etc.
    TypeId String False CustomerTypes.ID 255 A predefined customer type within QuickBooks.
    Phone String False 21 The main telephone number for the customer.
    Fax String False 21 The fax number number for the customer.
    AlternateContact String False 41 The name of an alternate contact person for the customer.
    AlternatePhone String False 21 The alternate telephone number for the customer.
    Email String False 1023 The email address for communicating with the customer.
    Cc String False 1023 A CC email address associated with the customer. Requires QBXML Version 12.0 or higher.
    AdditionalContactInfo String False Additional contact information for the customer.
    ContactsAggregate String False 5000 An xml aggregate of the additional contacts associated with the customer. Aggregate must include the contact FirstName. Requires QBXML Version 12.0.
    ClassName String False A reference to the class of a customer. Requires QBXML Version 12.0 or higher.
    ClassId String False A reference to the class of a customer. Requires QBXML Version 12.0 or higher.
    Notes String False 5000 The first note for a customer. To retrieve all notes for a customer, use the NotesAggregate column or the CustomerNotes table.
    NotesAggregate String False 5000 An xml aggregate of the additional notes associated with the customer. Aggregate must include NoteId and Note elements. Requires QBXML Version 12.0.
    ParentName String False The parent name of the job.
    ParentId String False Customers.ID 255 The parent ID of the job.
    Sublevel Integer False The number of ancestors this customer has.
    JobStatus String False 10 The current status of the job. The allowed values are Awarded, Closed, InProgress, None, NotAwarded, Pending.
    JobStartDate Date False The start date of the job.
    JobProjectedEndDate Date False The expected end date for the job.
    JobEndDate Date False The actual end date for the job.
    JobDescription String False 99 A description of the job.
    JobType String False 1000 The full name of the job type.
    JobTypeId String False JobTypes.ID 255 A job type reference Id.
    CreditCardAddress String False 41 The address associated with the credit card.
    CreditCardExpMonth Integer False The expiration month associated with the credit card.
    CreditCardExpYear Integer False The expiration year associated with the credit card.
    CreditCardNameOnCard String False 41 The name as it appears on the credit card of the customer.
    CreditCardNumber String False 25 The credit card number on file for this customer.
    CreditCardPostalCode String False 41 The postal code associated with the address and number on file for this customer.
    CreditLimit Double False The credit limit for this customer. If it is equal to 0, there is no credit limit.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 41 First line of the billing address.
    BillingLine2 String False 41 Second line of the billing address.
    BillingLine3 String False 41 Third line of the billing address.
    BillingLine4 String False 41 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 31 City name for the billing address of the customer.
    BillingState String False 21 State name for the billing address of the customer.
    BillingPostalCode String False 13 Postal code for the billing address of the customer.
    BillingCountry String False 31 Country for the billing address of the customer.
    BillingNote String False 41 Note for the billing address of the customer.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 41 First line of the shipping address.
    ShippingLine2 String False 41 Second line of the shipping address.
    ShippingLine3 String False 41 Third line of the shipping address.
    ShippingLine4 String False 41 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 31 City name for the shipping address of the customer.
    ShippingState String False 21 State name for the shipping address of the customer.
    ShippingPostalCode String False 13 Postal code for the shipping address of the customer.
    ShippingCountry String False 31 Country for the shipping address of the customer.
    ShippingNote String False 41 Note for the shipping address of the customer.
    ShippingAggregate String False 5000 An XML aggregate of the shipping addresses associated with the customer. Requires QBXML Version 12.0
    ResaleNumber String False 16 The resale number of the customer, if he/she has one. This field can be set in inserts but not in updates.
    SalesRep String False SalesReps.ID 5 A reference to a sales rep for the customer.
    SalesRepId String False 255 A reference to a sales rep for the customer.
    Terms String False 100 A reference to terms of payment for this customer. A typical example might be '2% 10 Net 60'. This field can be set in inserts but not in updates.
    TermsId String False 255 A reference to terms of payment for this customer.
    CurrencyName String False 64 The name of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    CurrencyId String False Currency.ID 255 The unique ID of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    TaxCode String False 3 This is a reference to a sales tax code predefined within QuickBooks. This field can be set in inserts but not in updates.
    TaxCodeId String False SalesTaxCodes.ID 255 This is a reference to a sales tax code predefined within QuickBooks. This field can be set in inserts but not in updates.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    SalesTaxCountry String False 100 Identifies the country collecting applicable sales taxes. Only available in international editons of QuickBooks.
    PriceLevel String False 100 Reference to a price level for the customer.
    PriceLevelId String False PriceLevels.ID 255 Reference to a price level for the customer.
    PreferredDeliveryMethod String False 20 The preferred delivery method for the customer. Enter either: fax, email, or none. This column requires QBXML Version 12.0.
    PreferredPaymentMethodName String False 100 The preferred method of payment.
    PreferredPaymentMethodId String False PaymentMethods.ID 255 The preferred method of payment.
    IsActive Boolean False Whether or not the customer is active.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the customer was last modified.
    TimeCreated Datetime True When the customer was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    IncludeJobs Boolean Whether or not to include job information in the results. The default value is TRUE.

    CustomerShippingAddresses

    Create, update, delete, and query QuickBooks Customer Shipping Addresses. Multiple Customer Shipping Addresses are supported in only QuickBooks 2013 and higher. Additionally, this table requires QBXML version 12.0 or higher.

    Table Specific Information
    Insert

    To insert a new Shipping Address, specify the CustomerId and the ShipToName of the new Address. Fields designated with a Shipping may be used as to insert multiple Addresses in one statement. For example:

    INSERT INTO CustomerShippingAddresses#TEMP (CustomerId, ShipToName, ShipToCity) VALUES ('123456789-9999', 'Shipto Addr 1', 'London')
    INSERT INTO CustomerShippingAddresses#TEMP (CustomerId, ShipToName, ShipToCity) VALUES ('123456789-9999', 'Shipto Addr 2', 'Paris')
    INSERT INTO CustomerShippingAddresses (CustomerId, ShipToName, ShipToCity) SELECT CustomerId, ShipToName, ShipToCity  FROM CustomerShippingAddresses#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the shipping address in the format CustomerId|ShipToName.
    CustomerId String False Customers.ID 255 The ID of the customer the shipping address is associated with.
    Name String False 100 The name of the customer. This is required to have a value when inserting.
    FullName String True 1000 The full name of the customer, including parents in the format parent:customer.
    ShipToName String False 500 Name of the shipping address in QuickBooks. This input is required when inserting additional shipping addresses for a customer.
    ShipToAddr1 String False 500 First line of the shipping address.
    ShipToAddr2 String False 500 Second line of the shipping address.
    ShipToAddr3 String False 500 Third line of the shipping address.
    ShipToAddr4 String False 500 Fourth line of the shipping address.
    ShipToAddr5 String False 41 Fifth line of the shipping address.
    ShipToCity String False 255 City name for the shipping address of the customer.
    ShipToState String False 255 State name for the shipping address of the customer.
    ShipToPostalCode String False 30 Postal code for the shipping address of the customer.
    ShipToCountry String False 255 Country for the shipping address of the customer.
    ShipToNote String False 41 Note for the shipping address of the customer.
    ShipToDefaultShipTo Boolean False Boolean indicating if this shipping address is the default shipping address for the customer.
    EditSequence String False 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime False When the customer was last modified.
    TimeCreated Datetime False When the customer was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    IncludeJobs Boolean Whether or not to include job information in the results. The default value is TRUE.

    CustomerTypes

    Create, update, delete, and query QuickBooks Customer Types.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    Name String False 31 The name of the customer type.
    FullName String True 159 The full name of the customer, including parents in the format Parent:Customer.
    ParentName String False The parent name of the job.
    ParentId String False CustomerTypes.ID 255 The parent ID of the job.
    IsActive Boolean False Whether or not the customer type is active.
    TimeCreated Datetime True The datetime the customer type was made.
    TimeModified Datetime True The last datetime the customer type was modified.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.

    DateDrivenTerms

    Create, delete, and query QuickBooks Date Driven Terms.

    Table Specific Information
    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for DateDrivenTerms are Name, TimeModified, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax.

    Insert

    To insert DateDrivenTerms, specify the Name and DayOfMonthDue.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The ID of the date driven term.
    Name String False 31 The name of the date driven term.
    IsActive Boolean False Boolean indicating if the date driven term is active.
    DayOfMonthDue Integer False Day of the month when full payment is due with no discount.
    DueNextMonthDays Integer False If the invoice or bill is issued within this many days of the due date, payment is not due until the following month.
    DiscountDayOfMonth Integer False If the payment is made by this day of the month, then DiscountPct applies.
    DiscountPct Double False If the payment is received by DiscountDayOfMonth, then this discount will apply to the payment. DiscountPct must be between 0 and 100.
    EditSequence String True 16 A string indicating the revision of the date driven term.
    TimeCreated Datetime True The time the date driven term was created.
    TimeModified Datetime True The time the date driven term was last modified.

    DepositLineItems

    Create, update, delete, and query QuickBooks Deposit Line Items. QBXMLVersion must be set to 7.0 or higher to update a deposit.

    Table Specific Information

    Deposits may be inserted, queried, or updated via the Deposits or DepositLineItems tables. Deposits may be deleted by using the Deposits table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Deposits are Id, Date, TimeModified, DepositToAccount, and DepositToAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. For example:

    SELECT * FROM DepositLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011'
    
    Insert

    To add a Deposit, specify the DepositToAccount field and at least one Line Item. All Line Items must have an ItemAccount specified.

    All Line Item columns can be used for inserting multiple Line Items for a new Deposit transaction. For example, the following will insert a new Deposit with two Line Items:

    INSERT INTO DepositLineItems#TEMP (DepositToAccount, ItemAccount, ItemAmount) VALUES ('Checking', 'Undeposited Funds', 12.25)
    INSERT INTO DepositLineItems#TEMP (DepositToAccount, ItemAccount, ItemAmount) VALUES ('Checking', 'Savings', 155.35)
    INSERT INTO DepositLineItems (DepositToAccount, ItemAccount, ItemAmount) SELECT DepositToAccount, ItemAccount, ItemAmount FROM DepositLineItems#TEMP
    

    Following is an example to Insert with Transaction Id(ItemPaymentId)

    INSERT INTO DepositLineItems (DepositToAccount, Date, ItemPaymentId) VALUES ('Petty Cash', '2022-06-21', '28D31-1702630754')
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format DepositId|ItemLineId.
    DepositId String False Deposits.ID 255 The deposit identifier. Set this value when inserting values to an existing deposit, or leave it blank to add a new deposit.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    CashBackAccount String False 1000 Account reference to the bank or credit card company.
    CashBackAccountId String False Accounts.ID 255 Account reference to the bank or credit card company.
    CashBackAmount Decimal False Cash-back amount.
    CashBackId String True 255 Id of the cash back transaction.
    CashBackMemo String False 5000 Additional info for the cash back transaction.
    DepositToAccount String False 1000 Account to deposit funds to.
    DepositToAccountId String False Accounts.ID 255 Account to deposit funds to.
    Memo String False 5000 Memo to appear on internal reports only.
    TotalDeposit Double True The total of the deposit.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    ItemLineId String True 255 The line item identifier.
    ItemAccount String False 1000 A reference to the account funds are being deposited to.
    ItemAccountId String False Accounts.ID 255 A reference to the account funds are being deposited to.
    ItemAmount Decimal False The total amount of this deposit line item. This should be a positive number.
    ItemCheckNumber String False 11 The check number for this deposit line item.
    ItemClass String False 1000 Specifies the class of the deposit line item.
    ItemClassId String False Class.ID 255 Specifies the class of the deposit line item.
    ItemEntityName String False 209 An entity name for this deposit line item.
    ItemEntityId String False 255 An entity ID for this deposit line item.
    ItemMemo String False 5000 Memo for this deposit line item.
    ItemPaymentMethod String False 31 The payment method (funding source) for this deposit line item. For example: cash, check, or Master Card.
    ItemPaymentMethodId String False PaymentMethods.ID 255 The payment method ID for this deposit line item
    ItemPaymentId String False 255 The payment transaction ID for this deposit line item. A TxnID returned from a request can be used to refer to the transaction in subsequent requests. For example ReceivePayments.Id.
    ItemPaymentLineId String False 255 The payment transaction line ID for this deposit line item.
    ItemRefId String True 255 Identification number of the transaction associated with this deposit line.
    ItemTxnType String True 100 Type of the transaction associated with this deposit line.
    CurrencyName String False 64 The name of the currency for this deposit. A minimum QBXML Version of 8.0 is required for this feature.
    CurrencyId String False Currency.ID 255 The unique ID of the currency for this deposit. A minimum QBXML Version of 8.0 is required for this feature.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    TimeModified Datetime True When the deposit was last modified.
    TimeCreated Datetime True When the deposit was created.
    Payee String False 1000 The name of the payee for the Check.
    PayeeId String False Vendors.ID 255 The ID of the payee for the Check.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String Item price level name. QuickBooks will not return the price level.

    Deposits

    Create, update, delete, and query QuickBooks Deposits. QBXMLVersion must be set to 7.0 or higher to update a deposit.

    Table Specific Information

    Deposits may be inserted, queried, or updated via the Deposits or DepositLineItems tables. Deposits may be deleted by using the Deposits table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Deposits are Id, DepositToAccount, and DepositToAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. For example:

    SELECT * FROM Deposits WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011'
    
    Insert

    To add a Deposit, specify the DepositToAccount field and at least one Line Item. The ItemAggregate column may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the DepositLineItems table and it starts with Item. For example, the following will insert a new Deposit with two Line Items:

    INSERT INTO Deposits (DepositToAccount, ItemAggregate)
    VALUES ('Checking', '<DepositLineItems>
    <Row><ItemAccount>Undeposited Funds</ItemAccount><ItemAmount>12.25</ItemAmount></Row>
    <Row><ItemAccount>Savings</ItemAccount><ItemAmount>155.35</ItemAmount></Row>
    </DepositLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    CashBackAccount String False 1000 Account reference to the bank or credit card company.
    CashBackAccountId String False Accounts.ID 255 Account reference to the bank or credit card company.
    CashBackAmount Decimal False Cash back amount.
    CashBackId String True 255 Id of the cash back transaction.
    CashBackMemo String False 5000 Additional info for the cash back transaction.
    DepositToAccount String False 1000 Account to deposit funds to.
    DepositToAccountId String False Accounts.ID 255 Account to deposit funds to.
    Memo String False 5000 Memo to appear on internal reports only.
    TotalDeposit Double True The total of the deposit.
    ItemCount Integer True The count of line items.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a deposit and its line item data.
    CurrencyName String False 64 The name of the currency for this deposit. A minimum QBXML Version of 8.0 is required for this feature.
    CurrencyId String False Currency.ID 255 The unique ID of the currency for this deposit. A minimum QBXML Version of 8.0 is required for this feature.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the deposit was last modified.
    TimeCreated Datetime True When the deposit was created.
    Payee String False 1000 The name of the payee for the Check.
    PayeeId String False Vendors.ID 255 The ID of the payee for the Check.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.

    EmployeeEarnings

    Create, update, delete, and query QuickBooks Employee Earnings.

    Table Specific Information

    The Ids for the EmployeeEarnings table operate a bit differently than Line Items. Unlike Line Items, QuickBooks does not return a unique ID for EmployeeEarnings. Instead, each EmployeeEarnings entry is returned in a specific order, and Employee Earnings entries can be updated in that order back to QuickBooks. To give the Employee Earnings unique Ids, we have appended the index number of each EmployeeEarnings entry to the Id. It will be up to the programmer to ensure that any modifications to Employee entries through the QuickBooks UI (or another application between a SELECT and an UPDATE call) are handled.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Employees are Id, Name, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM EmployeeEarnings WHERE Name LIKE '%George%' AND TimeModified > '1/1/2011' AND TimeModified < '2/1/2011'
    
    Insert

    To add an EmployeeEarnings entry, specify the EmployeeId field in the INSERT statement. If you instead specify the Employee Name, the connector will attempt to add a new Employee. For example:

    INSERT INTO EmployeeEarnings (Name, EarningsWageName, EarningsRate) VALUES ('370000-933272659', 'Regular Pay', 21.32)
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format EmployeeId|EmployeeEarningsId.
    Name String True 255 The name of the employee.
    PayPeriod String False 255 Indicates how often employees are paid The allowed values are Daily, Weekly, Biweekly, Semimonthly, Monthly, Quarterly, Yearly.
    EmployeeId String False Employees.ID 255 The ID of the employee. This is required to have a value when inserting.
    EarningsId String True 255 The ID of the employee earnings entry.
    EarningsWageName String False 31 The wage name. This is required to have a value when inserting.
    EarningsWageId String False 255 A reference ID to the wage. Used for payroll.
    EarningsRate Double False Employee earnings rate. Used for payroll.
    EarningsRatePercent String False Employee earnings ratepercent. Used for payroll.
    TimeModified Datetime True When the item was last modified.
    TimeCreated Datetime True When the item was created.

    Employees

    Create, update, delete, and query QuickBooks Employees.

    Table Specific Information

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Employees are Id, Name, TimeModified, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Employees WHERE Name LIKE '%George%' AND TimeModified > '1/1/2011' AND TimeModified < '2/1/2011'
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the employee.
    Name String False 100 The name of the employee. This is required to have a value when inserting.
    Salutation String False 15 A salutation, such as Mr., Mrs., etc.
    FirstName String False 25 The first name of the employee.
    MiddleInitial String False 25 A middle name or middle initial of the employee.
    LastName String False 25 The last name of the employee.
    JobTitle String False 41 Job title of the employee. Requires QBXML Version 12.0 or higher.
    AccountNumber String False 99 The account number for this employee.
    SSN String False 11 The social security number of the employee.
    EmployeeType String False 13 The type of employee. The allowed values are Regular, Unspecified, Officer, Statutory, Owner.
    Gender String False 12 The gender of the employee. Note that after inserting, this value cannot be updated. The allowed values are Unspecified, Male, Female.
    Address String True Full address returned by QuickBooks.
    Line1 String False 500 First line of the address.
    Line2 String False 500 Second line of the address.
    City String False 255 City name for the address.
    State String False 255 State name for the address.
    PostalCode String False 30 Postal code for the address.
    AlternatePhone String False 21 An alternate phone number for the employee.
    Email String False 1023 The email address of the employee.
    PrintAs String False 110 How the employee name should be printed.
    MobilePhone String False 21 The mobile phone number of this employee.
    Pager String False 21 The pager number of this employee.
    PagerPIN String False 10 The personal identification number for the pager of this employee.
    Fax String False 21 The fax number of this employee.
    BirthDate Date False The date of birth of this employee.
    USCitizen String False 10 Indicates whether the Employee is a US Citizen. The allowed values are Unspecified, Yes, No.
    Ethnicity String False 20 The Ethnicity of the Employee. The allowed values are Unspecified, AmericanIndian, Asian, Black, Hawaiian, Hispanic, White, TwoOrMoreRaces.
    Disabled String False 10 Indicates whether the Employee is disabled The allowed values are Unspecified, Yes, No.
    DisabilityDescription String False 25 A description of the disability.
    FormOnFile String False 10 Indicates whether the I-9 Form is on file. The allowed values are Unspecified, Yes, No.
    USVeteran String False 10 Indicates whether the Employee is a US Veteran. The allowed values are Unspecified, Yes, No.
    MilitaryStatus String False 10 The current military status of the Employee. The allowed values are Unspecified, Active, Reserve.
    HiredDate Date False The date the employee was hired.
    IsActive Boolean False This property indicates whether this object is currently enabled for use by QuickBooks.
    Notes String False 5000 This property may contain any notes you wish to make concerning the transaction.
    PayPeriod String False 13 Indicates how often employees are paid. The allowed values are NotSet, Daily, Weekly, Biweekly, Semimonthly, Monthly, Quarterly, Yearly.
    PayrollClassName String False 159 A reference to the class into which this employee payroll falls. Id/Name Reference Properties.
    PayrollClassId String False Class.ID 1000 A reference to the class into which this employee payroll falls. Id/Name Reference Properties.
    Phone String False 21 The phone number of the employee.
    ReleasedDate Date False The date the employee was released (if he/she was released).
    TimeDataForPaychecks String False 18 Indicates whether time data is used to create paychecks for this employee. The allowed values are NotSet, UseTimeData, DoNotUseTimeData.
    SickTimeAccrualPeriod String False 19 Sick-time hours accrual period. The allowed values are BeginningOfYear, EveryHourOnPaycheck, EveryPaycheck.
    SickTimeAccrualStartDate Date False Sick-time accrual start date. The minimum QBXMLVersion is 5.0. The standard formatting for dates is YYYY-MM-DD; e.g., September 2, 2002 is formatted as 2002-09-02.
    SickTimeAccrued String False 30 Sick-time hours accrued. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported. The integrated application has no permission to access personal data. The QuickBooks administrator can grant permission to access personal data through the Integrated Application preferences.
    SickTimeAvailable String False 30 Sick-time hours available. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported. The integrated application has no permission to access personal data. The QuickBooks administrator can grant permission to access personal data through the Integrated Application preferences.
    SickTimeMaximum String False 30 Sick-time maximum hours. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported
    SickTimeYearlyReset Boolean False Sick-time hours resets each year. Default false.
    SickTimeUsed String False 30 Sick-time hours used. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported. Minimum QBXMLVersion '5.0'.
    VacationTimeAccrualPeriod String False 19 Vacation-time hours accrual period. The allowed values are BeginningOfYear, EveryHourOnPaycheck, EveryPaycheck.
    VacationTimeAccrualStartDate Date False Vacation-time accrual start date. Minimum QBXMLVersion '5.0'. The standard formatting for dates is YYYY-MM-DD; i.e., September 2, 2002 is formatted as 2002-09-02.
    VacationTimeAccrued String False 30 Vacation-time hours accrued. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported.
    VacationTimeAvailable String False 30 Vacation-time hours available. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported.
    VacationTimeMaximum String False 30 Vacation-time maximum hours. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported.
    VacationTimeYearlyReset Boolean False Vacation-time hours resets each year. Default false.
    VacationTimeUsed String False 30 Vacation-time hours used. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported. Minimum QBXMLVersion '5.0'.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 A string indicating the revision of the employee record.
    TimeModified Datetime True When the employee record was last modified.
    TimeCreated Datetime True When the employee record was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    OpeningBalance String The opening balance of the account (by default 0). Note that this property is used only when adding new accounts to QuickBooks.
    OpeningDate String The opening balance date of the account. Note that this property is used only when adding new accounts to QuickBooks.

    EstimateLineItems

    Create, update, delete, and query QuickBooks Estimate Line Items.

    Table Specific Information

    Estimates may be inserted, queried, or updated via the Estimates or EstimateLineItems tables. Estimates may be deleted by using the Estimates table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for Estimates are Id, ReferenceNumber, Date, TimeModified, CustomerName, and CustomerId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM EstimateLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add an Estimate, specify a Customer and at least one Line Item. All Line Item columns can be used for inserting multiple Line Items for a new Estimate transaction. For example, the following will insert a new Estimate with two Line Items:

    INSERT INTO EstimateLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Repairs', 1)
    INSERT INTO EstimateLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Removal', 2)
    INSERT INTO EstimateLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM EstimateLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format EstimateId|ItemLineId.
    EstimateId String False Estimates.ID 255 The unique identifier of the estimate.
    ReferenceNumber String False 21 Transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String False 1000 Customer name this transaction is recorded under. This is required to have a value when inserting.
    CustomerId String False Customers.ID 255 Customer ID this transaction is recorded under. This is required to have a value when inserting.
    Date Date False Transaction date.
    Memo String False 5000 Memo regarding this transaction.
    TotalAmount Double True Total amount for this transaction.
    ItemLineID String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item identifier.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group Id. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemRate Double False The unit rate charged for this item.
    ItemRatePercent Double False The rate percent charged for this item.
    ItemTaxCode String False 3 Sales tax information for this item (taxable or nontaxable).
    ItemTaxCodeId String False SalesTaxCodes.ID 255 Sales tax ID for this tax item.
    ItemAmount Decimal False Total amount for this item.
    ItemClass String False 1000 The class name of the item.
    ItemClassId String False Class.ID 255 The class name of the item.
    ItemInventorySiteId String False 255 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteName String False InventorySites.ID 31 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemMarkupRate Double False Item markup rate, to be applied over the base purchase cost.
    ItemMarkupRatePercent Double False Item markup rate percent, to be applied over the base purchase cost.
    ItemOther1 String False 29 The Other1 field of this line item. QBXMLVersion must be set to 6.0 or higher.
    ItemOther2 String False 29 The Other2 field of this line item. QBXMLVersion must be set to 6.0 or higher.
    ItemCustomFields String False The custom fields for this line item.
    ItemUOMSetFullName String False 1000 Indicates the price of something as a percent.
    ItemUOMSetListID String False UnitOfMeasure.ID 1000 Indicates the price of something as a percent.
    ItemIsGetPrintItemsInGroup String False 1000 If true, a list of this group's individual items their amounts will appear on printed forms.
    Message String False 101 Message to the customer.
    MessageId String False CustomerMessages.ID 1000 Message to the customer.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    SalesRep String False 5 Reference to (initials of) the sales rep.
    SalesRepId String False SalesReps.ID 255 Reference to (initials of) the sales rep.
    FOB String False 13 Freight on board: The place to ship from.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address.
    BillingState String False 255 State name for the billing address.
    BillingPostalCode String False 30 Postal code for the billing address.
    BillingCountry String False 255 Country for the billing address.
    BillingNote String False 41 Note for the billing address.
    ShippingAddress String True Full shipping address returned by QuickBooks. Requires QBBXML Version 7.0 or higher.
    ShippingLine1 String False 500 First line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingLine2 String False 500 Second line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingLine3 String False 500 Third line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingLine4 String False 500 Fourth line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingLine5 String False 41 Fifth line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingCity String False 255 City name for the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingState String False 255 State name for the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingPostalCode String False 30 Postal code for the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingCountry String False 255 Country for the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingNote String False 41 Note for the shipping address. Requires QBBXML Version 7.0 or higher.
    Subtotal Double True Gross subtotal. This does not include tax/amount already paid.
    Tax Double True Total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True Percentage charged for sales tax.
    IsActive Boolean False Whether or not the estimate is active.
    IsToBeEmailed Boolean False Whether or not this email is to be emailed.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    PONumber String False 25 The purchase order number.
    Terms String False 100 A reference to terms of payment, predefined within QuickBooks.
    TermsId String False 255 A reference to terms of payment, predefined within QuickBooks.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    CustomerSalesTaxName String False 3 Reference to sales tax information for the customer.
    CustomerSalesTaxId String False SalesTaxCodes.ID 255 Reference to sales tax information for the customer.
    ExchangeRate Double False Indicates the exchange rate for the transaction.
    DueDate Date True Date when credit is due.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the credit memo was last modified.
    TimeCreated Datetime True When the credit memo was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String Item price level name. QuickBooks will not return the price level.
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    Estimates

    Create, update, delete, and query QuickBooks Estimates.

    Table Specific Information

    Estimates may be inserted, queried, or updated via the Estimates or EstimateLineItems tables. Estimates may be deleted by using the Estimates table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Estimates are Id, Date, TimeModified, ReferenceNumber, CustomerName, and CustomerId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Estimates WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add an Estimate, specify a Customer and at least one Line Item. The ItemAggregate column may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the EstimateLineItems table and it starts with Item. For example, the following will insert a new Estimate with two Line Items:

    INSERT INTO Estimates (CustomerName, ItemAggregate)
    VALUES ('Abercrombie, Kristy',
    '<EstimateLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </EstimateLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    ReferenceNumber String False 21 Transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String False 1000 Customer name this transaction is recorded under. This is required to have a value when inserting.
    CustomerId String False Customers.ID 255 Customer ID this transaction is recorded under. This is required to have a value when inserting.
    Date Date False Transaction date.
    Memo String False 5000 Memo regarding this transaction.
    TotalAmount Decimal True Total amount for this transaction.
    Message String False 101 Message to the customer.
    MessageId String False CustomerMessages.ID 255 Message to the customer.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    SalesRep String False 5 Reference to (initials of) the sales rep.
    SalesRepId String False SalesReps.ID 255 Reference to (ID of) the sales rep.
    FOB String False 13 Freight on board: The place to ship from.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address.
    BillingState String False 255 State name for the billing address.
    BillingPostalCode String False 30 Postal code for the billing address.
    BillingCountry String False 255 Country for the billing address.
    BillingNote String False 41 Note for the billing address.
    ShippingAddress String True Full shipping address returned by QuickBooks. Requires QBBXML Version 7.0 or higher.
    ShippingLine1 String False 500 First line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingLine2 String False 500 Second line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingLine3 String False 500 Third line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingLine4 String False 500 Fourth line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingLine5 String False 41 Fifth line of the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingCity String False 255 City name for the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingState String False 255 State name for the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingPostalCode String False 30 Postal code for the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingCountry String False 255 Country for the shipping address. Requires QBBXML Version 7.0 or higher.
    ShippingNote String False 41 Note for the shipping address. Requires QBBXML Version 7.0 or higher.
    Subtotal Decimal True Gross subtotal. This does not include tax/amount already paid.
    Tax Double True Total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True Percentage charged for sales tax.
    IsActive Boolean False Whether or not the estimate is active.
    IsToBeEmailed Boolean False Whether or not this email is to be emailed.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    PONumber String False 25 The purchase order number.
    Terms String False 100 A reference to the terms of payment, predefined within QuickBooks.
    TermsId String False 255 A reference to the terms of payment, predefined within QuickBooks.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    CustomerSalesTaxName String False 3 Reference to sales tax information for the customer.
    CustomerSalesTaxId String False SalesTaxCodes.ID 255 Reference to sales tax information for the customer.
    ExchangeRate Double False Indicates the exchange rate for the transaction.
    DueDate Date True Date when credit is due.
    Other String False 29 Other data associated with the estimate.
    ItemCount Integer True A count of the line items.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a estimates and its line item data.
    TransactionCount Integer True The count of related transactions to the estimates.
    TransactionAggregate String True 5000 An aggregate of the linked transaction data.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the estimate was last modified.
    TimeCreated Datetime True When the estimate was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.

    InventoryAdjustmentLineItems

    Create and query QuickBooks Inventory Adjustment Line Items.

    Table Specific Information

    InventoryAdjustments may be inserted, queried, or deleted via the InventoryAdjustments or InventoryAdjustmentLineItems tables. InventoryAdjustments may be deleted by using the InventoryAdjustments table.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for InventoryAdjustments are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, Account, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM InventoryAdjustmentLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add an InventoryAdjustment, specify an Account and at least one Line Item. To add a Line Item, either the ItemName or ItemId is required, as well as either ItemNewQuantity, ItemNewValue, or ItemQuantityDiff. All Line Item columns can be used for inserting multiple Line Items for a new InventoryAdjustment transaction. For example, the following will insert a new InventoryAdjustment with two Line Items:

    INSERT INTO InventoryAdjustmentLineItems#TEMP (Account, ItemName, ItemNewQuantity) VALUES ('Cost of Good Sold', 'Wood Door:Exterior', 100)
    INSERT INTO InventoryAdjustmentLineItems#TEMP (Account, ItemName, ItemNewQuantity) VALUES ('Cost of Good Sold', 'Wood Door:Interior', 200)
    INSERT INTO InventoryAdjustmentLineItems (Account, ItemName, ItemNewQuantity) SELECT Account, ItemName, ItemNewQuantity FROM InventoryAdjustmentLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format InventoryAdjustmentId|ItemLineId.
    InventoryAdjustmentID String True InventoryAdjustments.ID 255 The unique identifier for the Inventory Adjustment.
    ReferenceNumber String False 21 The transaction reference number.
    Account String False 1000 The account the inventory adjustment is associated with. Either Account or AccountId is required on insert.
    AccountId String False Accounts.ID 255 The account the inventory adjustment is associated with. Either Account or AccountId is required on insert.
    Class String False 1000 A reference to the class for the inventory adjustment.
    ClassId String False Class.ID 255 A reference to the class for the inventory adjustment.
    CustomerName String False 1000 The name of the customer on the inventory adjustment.
    CustomerId String False Customers.ID 255 The ID of the customer on the inventory adjustment.
    Memo String False 5000 A memo regarding this transaction.
    InventorySite String False 31 The name of the inventory site for the transaction.
    InventorySiteId String False InventorySites.ID 255 The ID of the inventory site for the transaction.
    Date Date False The date of the transaction.
    ItemLineId String False 255 The line ID of the item.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name. Either ItemName or ItemId is required on an insert.
    ItemId String False Items.ID 255 The item identifier. Either ItemName or ItemId is required on an insert.
    ItemNewQuantity Double False The new quantity for this adjustment. Used on only insert. There is no response value.
    ItemNewValue Double False New value of this adjustment. Used on only insert. There is no response value.
    ItemQuantityDiff Double False The change in quantity for this adjustment.
    ItemValueDiff Double False The change in total value for this adjustment.
    ItemLotNumber String False 40 The lot number for this adjustment. This field requires QBXML Version 11.0.
    ItemExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. This requires QBXML version at least 16.0.
    ItemSerialNumber String False 4095 The serial number for this adjustment. This field requires QBXML Version 11.0
    ItemSerialNumberAddedOrRemoved String False Whether the serial number for this adjustment was added or removed. This field requires QBXML Version 11.0 The allowed values are Added, Removed.
    ItemInventorySiteLocationId String False 255 The site location for this adjustment. This field requires QBXML Version 12.0.
    ItemInventorySiteLocationName String False The site location for this adjustment. This field requires QBXML Version 12.0.
    EditSequence String True An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the inventory adjustment was last modified.
    TimeCreated Datetime True When the inventory adjustment was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    LinkToTxnId String Link this transaction to another transaction. This is available during only inserts and requires a minimum QBXML Version 6.0

    InventoryAdjustments

    Create, query, and delete QuickBooks Inventory Adjustments.

    Table Specific Information

    InventoryAdjustments may be inserted, queried, or deleted via the InventoryAdjustments or InventoryAdjustmentLineItems tables. InventoryAdjustments may be deleted by using the InventoryAdjustments table.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for InventoryAdjustments are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, Account, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM InventoryAdjustments WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add an InventoryAdjustment, specify an Account and at least one Line Item. To add a Line Item, either the ItemName or the ItemId is required, as well as either ItemNewQuantity, ItemNewValue, ItemQuantityDiff, or ItemValueDiff. The ItemAggregate columns may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the InventoryAdjustmentLineItems tables and it starts with Item. For example, the following will insert a new InventoryAdjustment with two Line Items:

    INSERT INTO InventoryAdjustments (Account, ItemAggregate)
    VALUES ('Cost of Good Sold', '<InventoryAdjustmentLineItems>
    <Row><ItemName>Wood Door:Exterior</ItemName><ItemNewQuantity>100</ItemNewQuantity></Row>
    <Row><ItemName>Wood Door:Interior</ItemName><ItemNewQuantity>200</ItemNewQuantity></Row>
    </InventoryAdjustmentLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    ReferenceNumber String False 21 The transaction reference number.
    Account String False 1000 The account the inventory adjustment is associated with. Either Account or AccountId is required on insert.
    AccountId String False Accounts.ID 255 The account the inventory adjustment is associated with. Either Account or AccountId is required on insert.
    Class String False 1000 A reference to the class for the inventory adjustment.
    ClassId String False Class.ID 255 A reference to the class for the inventory adjustment.
    CustomerName String False 1000 The name of the customer on the inventory adjustment.
    CustomerId String False Customers.ID 255 The ID of the customer on the inventory adjustment.
    Memo String False 5000 A memo regarding this transaction.
    InventorySite String False 31 The name of the inventory site for the transaction.
    InventorySiteId String False InventorySites.ID 255 The ID of the inventory site for the transaction.
    Date Date False The date of the transaction.
    ItemCount Integer True The number of line items for the inventory adjustment.
    ItemAggregate String False 5000 An aggregate of the Line Item data which can be used for adding an inventory adjustment and its line item data.
    EditSequence String True An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the inventory adjustment was last modified.
    TimeCreated Datetime True When the inventory adjustment was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions or updates.

    InventorySites

    Create, update, delete, and query QuickBooks Inventory Sites. Inventory Sites are only available in QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The ID of the inventory site.
    Name String False 31 Name of the inventory site.
    IsActive Boolean False Whether or not the inventory site is active.
    SiteDesc String False 100 A description of the inventory site.
    Contact String False 41 Contact for the inventory site.
    Phone String False 21 Phone number for the inventory site.
    Fax String False 21 Fax number for the inventory site.
    Email String False 1023 Email address for the inventory site.
    SiteAddress_Addr1 String False 500 First line of the address.
    SiteAddress_Addr2 String False 500 Second line of the address.
    SiteAddress_Addr3 String False 500 Third line of the address.
    SiteAddress_Addr4 String False 500 Fourth line of the address.
    SiteAddress_Addr5 String False 41 Fifth line of the address.
    SiteAddress_City String False 255 City portion of the address.
    SiteAddress_State String False 255 State portion of the address.
    SiteAddress_PostalCode String False 30 Postal Code portion of the address.
    SiteAddress_Country String False 255 Country portion of the address.
    EditSequence String True 16 A string indicating the revision of the inventory site.
    TimeCreated Datetime True The time the inventory site was created.
    TimeModified Datetime True The time the inventory site was modified.
    IsDefaultSite Boolean True Boolean indicating if the inventory site is the default site for the company.

    InvoiceLineItems

    Create, update, delete, and query QuickBooks Invoice Line Items.

    Table Specific Information

    Invoices may be inserted, queried, or updated via the Invoices or InvoiceLineItems tables. Invoices may be deleted by using the Invoices table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Invoices are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, IsPaid, Account, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM InvoiceLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add an Invoice, specify a Customer and at least one Line Item. All Line Item columns can be used for inserting multiple Line Items for a new Invoice transaction. For example, the following will insert a new Invoice with two Line Items:

    INSERT INTO InvoiceLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Repairs', 1)
    INSERT INTO InvoiceLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Removal', 2)
    INSERT INTO InvoiceLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM InvoiceLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format InvoiceId|ItemLineId.
    InvoiceId String False Invoices.ID The unique identifier of the Invoice.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String False 1000 The name of the customer on the invoice. Either CustomerName or CustomerId must have a value when inserting.
    CustomerId String False Customers.ID 255 The ID of the customer on the invoice. Alternatively give this field a value when inserting instead of CustomerName.
    Account String False 1000 A reference to the accounts-receivable account where the money received from this transaction will be deposited.
    AccountId String False Accounts.ID 255 A reference to the accounts-receivable account where the money received from this transaction will be deposited.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ShipMethod String False 1000 The shipping method associated with the invoice.
    ShipMethodId String False ShippingMethods.ID 255 The shipping method associated with the invoice.
    ShipDate Date False The shipping date associated with the invoice.
    Memo String False 5000 A memo regarding this transaction.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    Amount Decimal True The total amount for this invoice.
    Message String False 101 A message to the vendor or customer to appear in the invoice.
    MessageId String False CustomerMessages.ID 255 A message to vendor or customer to appear in the invoice.
    SalesRep String False 5 A reference to the (initials of) sales rep.
    SalesRepId String False SalesReps.ID 255 A reference to the sales rep.
    FOB String False 13 Freight on board: The place to ship from.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address.
    BillingState String False 255 State name for the billing address.
    BillingPostalCode String False 30 Postal code for the billing address.
    BillingCountry String False 255 Country for the billing address.
    BillingNote String False 41 A note for the billing address.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address.
    ShippingState String False 255 State name for the shipping address.
    ShippingPostalCode String False 30 Postal code for the shipping address.
    ShippingCountry String False 255 Country for the shipping address.
    ShippingNote String False 41 A note for the shipping address.
    Subtotal Decimal True The gross subtotal of the invoice. This does not include tax or amount already paid.
    Tax Double True The total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True The percentage charged for sales tax.
    PONumber String False 25 The purchase order number.
    DueDate Date False The date when payment is due.
    Terms String False 100 The payment terms.
    TermsId String False 255 The payment terms.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    ItemLineId String True The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False 1000 The item name.
    ItemId String False Items.ID 255 The item identifier.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group Id. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemRate Double False The unit rate charged for this item.
    ItemRatePercent Double False The rate precent charged for this item.
    ItemTaxCode String False 3 Sales tax information for this item (taxable or nontaxable).
    ItemTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item.
    ItemAmount Decimal False Total amount for this item.
    ItemClass String False 1000 The class name of the item.
    ItemClassId String False Class.ID 255 The class name of the item.
    ItemServiceDate Date False The service date for the item if the item is a type of service.
    ItemInventorySiteId String False InventorySites.ID 31 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteName String False 255 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationId String False 31 The inventory site location ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationName String False 255 The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemSerialNumber String False 5000 The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemLotNumber String False 40 The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. It is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0.
    ItemOther1 String False 29 The Other1 field of this line item. QBXMLVersion must be set to 6.0 or higher.
    ItemOther2 String False 29 The Other2 field of this line item. QBXMLVersion must be set to 6.0 or higher.
    ItemCustomFields String False The custom fields for this line item.
    ItemUOMSetFullName String False 1000 Indicates the price of something as a percent.
    ItemUOMSetListID String False UnitOfMeasure.ID 1000 Indicates the price of something as a percent.
    ItemIsGetPrintItemsInGroup String False 1000 If true, a list of this group's individual items their amounts will appear on printed forms.
    AppliedAmount Decimal True The total amount of applied credits and payments.
    Balance Decimal False The unpaid amount for this sale.
    CustomerTaxCode String False 3 The tax code specific to this customer.
    CustomerTaxCodeId String False SalesTaxCodes.ID 255 The tax code specific to this customer.
    IsToBePrinted Boolean False Whether this invoice is to be printed.
    IsToBeEmailed Boolean False Whether this invoice is to be emailed.
    IsPaid Boolean True Whether this invoice has been paid in full.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount.
    IsPending Boolean False The transaction status (whether this transaction has been completed or it is still pending).
    IsFinanceCharge String False 16 Whether this invoice includes a finance charge. The allowed values are NotSet, IsFinanceCharge, NotFinanceCharge. The default value is NotSet.
    Template String False 100 A reference to a template specifying how to print the transaction.
    TemplateId String False Templates.ID 255 A reference to a template specifying how to print the transaction.
    SuggestedDiscountAmount Decimal False A suggested discount amount for the invoice.
    SuggestedDiscountDate Date False A suggested discount date for the invoice.
    ExchangeRate Double False Currency exchange rate for this invoice.
    BalanceInHomeCurrency Double False Balance remaining in units of the home currency.
    CurrencyName String False 64 Name of the currency code used for this invoice.
    CurrencyId String False Currency.ID 1000 Id of the currency code used for this invoice.
    Other String False 29 Other data associated with the invoice. The QBXMLVersion connection property must be set to 6.0 for this field to be available.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the invoice was last modified.
    TimeCreated Datetime True When the invoice was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    LinkToTxnId String Link this transaction to another transaction. This is only available during inserts and requires a minimum QBXML Version 6.0.
    SetCreditAggregate String Apply multiple credit Memos to this transaction. This is only available during inserts and updates requires a minimum QBXML Version 10.0
    ItemLinkToTxnId String Link this individual line item to another transaction. This is only available during inserts and requires a minimum QBXML Version 6.0
    ItemLinkToTxnLineId String Link this individual line item to another transaction line item. This is only available during inserts and requires a minimum QBXML Version 6.0.
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    Invoices

    Create, update, delete, and query QuickBooks Invoices.

    Table Specific Information

    Invoices may be inserted, queried, or updated via the Invoices or InvoiceLineItems tables. Invoices may be deleted by using the Invoices table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Invoices are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, IsPaid, Account, and AccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Invoices WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add an Invoice, specify a Customer and at least one Line Item. The ItemAggregate columns may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the InvoiceLineItems tables and it starts with Item. For example, the following will insert a new Invoice with two Line Items:

    INSERT INTO Invoices (CustomerName, ItemAggregate)
    VALUES ('Abercrombie, Kristy', '<InvoiceLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </InvoiceLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String False 1000 The name of the customer on the invoice. Either CustomerName or CustomerId must have a value when inserting.
    CustomerId String False Customers.ID 255 The ID of the customer on the invoice. Alternatively give this field a value when inserting instead of CustomerName.
    Account String False 1000 A reference to the accounts-receivable account where the money received from this transaction will be deposited.
    AccountId String False Accounts.ID 255 A reference to the accounts-receivable account where the money received from this transaction will be deposited.
    Date Date False The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ShipMethod String False 1000 The shipping method associated with the invoice.
    ShipMethodId String False ShippingMethods.ID 255 The shipping method associated with the invoice.
    ShipDate Date False The shipping date associated with the invoice.
    Memo String False 5000 A memo regarding this transaction.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    Amount Decimal True The total amount for this invoice.
    Message String False 101 A message to vendor or customer to appear in the invoice.
    MessageId String False CustomerMessages.ID 255 A message to vendor or customer to appear in the invoice.
    SalesRep String False 5 A reference to the (initials of) sales rep.
    SalesRepId String False SalesReps.ID 255 A reference to the sales rep.
    FOB String False 13 Freight on board: The place to ship from.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address.
    BillingState String False 255 State name for the billing address.
    BillingPostalCode String False 30 Postal code for the billing address.
    BillingCountry String False 255 Country for the billing address.
    BillingNote String False 41 A note for the billing address.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address.
    ShippingState String False 255 State name for the shipping address.
    ShippingPostalCode String False 30 Postal code for the shipping address.
    ShippingCountry String False 255 Country for the shipping address.
    ShippingNote String False 41 A note for the shipping address.
    Subtotal Decimal True The gross subtotal of the invoice. This does not include tax or the amount already paid.
    Tax Double True The total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True The percentage charged for sales tax.
    POnumber String False 25 The purchase order number.
    DueDate Date False The date when payment is due.
    Terms String False 100 The payment terms.
    TermsId String False 255 The payment terms.
    ItemCount Integer True The count of item entries for this transaction.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a invoices and its line item data.
    TransactionCount Integer True The count of related transactions to the invoice.
    TransactionAggregate String True 5000 An aggregate of the linked transaction data.
    AppliedAmount Decimal True The total amount of applied credits and payments.
    Balance Decimal False The unpaid amount for this sale.
    CustomerTaxCode String False 3 The tax code specific to this customer.
    CustomerTaxCodeId String False SalesTaxCodes.ID 255 The tax code specific to this customer.
    IsToBePrinted Boolean False Whether this invoice is to be printed.
    IsToBeEmailed Boolean False Whether this invoice is to be emailed.
    IsPaid Boolean True Whether this invoice has been paid in full.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount.
    IsPending Boolean False The transaction status (whether this transaction has been completed or it is still pending).
    IsFinanceCharge String False 16 Whether this invoice includes a finance charge. The allowed values are NotSet, IsFinanceCharge, NotFinanceCharge. The default value is NotSet.
    Template String False 100 A reference to a template specifying how to print the transaction.
    TemplateId String False Templates.ID 255 A reference to a template specifying how to print the transaction.
    SuggestedDiscountAmount Decimal False A suggested discount amount for the invoice.
    SuggestedDiscountDate Date False A suggested discount date for the invoice.
    ExchangeRate Double False Currency exchange rate for this invoice.
    BalanceInHomeCurrency Double False Balance remaining in units of the home currency.
    CurrencyName String False 64 Name of the currency code used for this invoice.
    CurrencyId String False Currency.ID 1000 Id of the currency code used for this invoice.
    Other String False 29 Other data associated with the invoice. The QBXMLVersion connection property must be set to 6.0 for this field to be available.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the invoice was last modified.
    TimeCreated Datetime True When the invoice was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions or updates.
    LinkToTxnId String Link this transaction to another transaction. This is only available during inserts and requires a minimum QBXML Version 6.0
    SetCreditAggregate String Apply multiple credit Memos to this transaction. This is only available during inserts and updates requires a minimum QBXML Version 10.0

    ItemLineItems

    Create, update, delete, and query QuickBooks Item Line Items.

    Table Specific Information

    Item Line Items may be inserted, deleted, and updated via the ItemLineItems table. Item Line Items refer to the Line Items associated with item groups, inventory assemblies, or sales tax groups.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Items are Id, TimeModified, Name, Type, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM ItemLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Name LIKE '%12345%'
    
    Insert

    To add a Line Item, specify the ItemId or Assembly ID columns of the Item Group or Assembly you want to add the Line Item to when making the insertion. For example:

    INSERT INTO ItemLineItems (ItemId, LineItemName, LineItemQuantity) VALUES ('430001-1071511103|130000-933272656', 'Hardware:Doorknobs Std', 1)
    

    To insert a new Inventory Assembly, Item Group, or Sales Tax Group with Line Items, provide the Name and Type columns and at least one Line Item. For example:

    INSERT INTO ItemLineItems#TEMP (Name, Type, LineItemName, LineItemQuantity) VALUES ('MyItemGroup', 'ItemGroup', 'Hardware:Doorknobs Std', 1)
    INSERT INTO ItemLineItems#TEMP (Name, Type, LineItemName, LineItemQuantity) VALUES ('MyItemGroup', 'ItemGroup', 'Cabinets', 2)
    INSERT INTO ItemLineItems (Name, Type, LineItemName, LineItemQuantity) SELECT Name, Type, LineItemName, LineItemQuantity FROM ItemLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format ItemId|ItemLineNumber.
    ItemId String False Items.ID 255 The unique identifier for the inventory assembly or group item.
    Name String False 100 The name of the inventory assembly or group.
    FullName String True 1000 Full item name in the format parentname:name if the item is a subitem).
    Type String False 100 The type of item. This is required to have a value when inserting. The default value is ALL.
    Barcode String False Barcode for the item.
    Account String False 1000 Account name the inventory assembly or group is associated with.
    AccountId String False Accounts.ID 255 Account ID the inventory assembly or group is associated with.
    COGSAccount String False 1000 Cost of Goods Sold account for the inventory assembly or group.
    COGSAccountId String False Accounts.ID 255 Cost of Goods Sold account for the inventory assembly or group.
    AssetAccount String False 1000 Inventory asset account for the inventory assembly or group if it is an inventory item.
    AssetAccountId String False Accounts.ID 255 Inventory asset account for the inventory assembly or group if it is an inventory item.
    LineItemNumber Integer False The line item number.
    LineItemId String False Items.ID 255 The line item identifier. Either LineItemId or LineItemName need to have a value when inserting.
    LineItemName String False The line item name. Either LineItemId or LineItemName need to have a value when inserting.
    LineItemQuantity Double False The line item quantity.
    LineItemUnitOfMeasure String False The line item UnitOfMeasure.
    ParentName String False The parent name of the inventory assembly or group if the inventory assembly or group is a subitem.
    ParentId String False Items.ID 255 The parent ID of the inventory assembly or group if the inventory assembly or group is a subitem.
    Description String False 5000 A description of the inventory assembly or group.
    Price Double False The price for the inventory assembly or group.
    AverageCost Double True The average cost of the inventory assembly or group.
    IsActive Boolean False Whether the inventory assembly or group is active or not.
    PurchaseCost Double False Purchase cost for the inventory assembly or group.
    PurchaseDescription String False 5000 Purchase description for the inventory assembly or group.
    PreferredVendor String False 1000 Preferred vendor for the inventory assembly or group.
    PreferredVendorId String False Vendors.ID 255 Preferred vendor for the inventory assembly or group.
    TaxCode String False 3 This is a reference to a sales tax code predefined within QuickBooks.
    TaxCodeId String False SalesTaxCodes.ID 255 This is a reference to a sales tax code predefined within QuickBooks.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the inventory assembly or group was last modified.
    TimeCreated Datetime True When the inventory assembly or group was created.

    ItemReceiptExpenseItems

    Create, update, delete, and query QuickBooks Item Receipt Expense Line Items.

    Table Specific Information

    ItemReceipts may be inserted, queried, or updated via the ItemReceipts, ItemReceiptExpenseItems, or ItemReceiptLineItems tables. ItemReceipts may be deleted by using the ItemReceipts table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for ItemReceipts are Id, Date, ReferenceNumber, Payee, PayeeId, VendorName, VendorId, Account, AccountId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. VendorName and ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM ItemReceipts WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND VendorName LIKE '%Patton Hardware Supplies%' AND ReferenceNumber LIKE '12345%'
    
    Insert

    To add an ItemReceipt, specify the Vendor, Date, and at least one Expense or Line Item. All Expense Line Item columns can be used for inserting multiple Expense Line Items for a new ItemReceipt transaction. For example, the following will insert a new ItemReceipt with two Expense Line Items:

    INSERT INTO ItemReceiptExpenseItems#TEMP (VendorName, Date, ExpenseAccount, ExpenseAmount) VALUES ('Patton Hardware Supplies', '1/1/2011', 'Utilities:Telephone', 52.25)
    INSERT INTO ItemReceiptExpenseItems#TEMP (VendorName, Date, ExpenseAccount, ExpenseAmount) VALUES ('Patton Hardware Supplies', '1/1/2011', 'Professional Fees:Accounting', 235.87)
    INSERT INTO ItemReceiptExpenseItems (VendorName, Date, ExpenseAccount, ExpenseAmount) SELECT VendorName, Date, ExpenseAccount, ExpenseAmount FROM ItemReceiptExpenseItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format ItemReceiptId|ExpenseLineId.
    ItemReceiptId String False ItemReceipts.ID 255 The item identifier for the item receipt. This is obtained from the ItemReceipts table.
    VendorName String False 1000 The name of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
    VendorId String False Vendors.ID 255 The unique ID of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
    Date Date False The transaction date.
    ReferenceNumber String False 21 The transaction reference number.
    AccountsPayable String False 1000 A reference to the name of the account the item receipt is payable to.
    AccountsPayableId String False Accounts.ID 255 A reference to the unique ID of the account the item receipt is payable to.
    Memo String False 5000 A memo regarding the item receipt.
    Amount Decimal True Total amount of the item receipt.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency. Requires QBXML Version 8.0 or higher.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ExpenseLineId String True 255 The line item identifier.
    ExpenseLineNumber String True 255 The expense line number.
    ExpenseAccount String False 1000 The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAccountId String False Accounts.ID 255 The account ID for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAmount Decimal False The total amount of this expense line.
    ExpenseBillableStatus String False 13 The billing status of this expense line. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED. The default value is EMPTY.
    ExpenseCustomer String False 1000 The customer associated with this expense line.
    ExpenseCustomerId String False Customers.ID 255 The customer associated with this expense line.
    ExpenseClass String False 1000 The class name of this expense.
    ExpenseClassId String False Class.ID 255 The class ID of this expense.
    ExpenseTaxCode String False 3 A reference to the name of the sales tax code associated with this expense item. Only available in QuickBooks UK and CA editions.
    ExpenseTaxCodeId String False SalesTaxCodes.ID 255 A reference to the ID of the sales tax code associated with this expense item. Only available in QuickBooks UK and CA editions.
    ExpenseCustomFields String True The custom fields for this expense item.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the item receipt was last modified.
    TimeCreated Datetime True When the item receipt was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    LinkToTxnId String The ID of a transaction to link the new item receipt to. This should be a purchase order Id. Only available on an insert.

    ItemReceiptLineItems

    Create, update, delete, and query QuickBooks Item Receipt Line Items.

    Table Specific Information

    ItemReceipts may be inserted, queried, or updated via the ItemReceipts, ItemReceiptExpenseItems, or ItemReceiptLineItems tables. ItemReceipts may be deleted by using the ItemReceipts table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. Typically, These columns can typically be used with only the equals or = comparison. The available columns for ItemReceipts are Id, Date, ReferenceNumber, VendorName, VendorId, Payee, PayeeId, Account, AccountId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. VendorName and ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM ItemReceipts WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND VendorName LIKE '%Patton Hardware Supplies%' AND ReferenceNumber LIKE '12345%'
    
    Insert

    To add an ItemReceipt, specify the Vendor, Date, and at least one Expense or Line Item. To create LineItems, you must insert data in a temporary table called 'LineItems#TEMP'. For example, the following will insert a new ItemReceipt with two Line Items:

    INSERT INTO ItemReceiptLineItems#TEMP (VendorName, Date, ItemName, ItemQuantity) VALUES ('Patton Hardware Supplies', '1/1/2011', 'Repairs', 1)
    INSERT INTO ItemReceiptLineItems#TEMP (VendorName, Date, ItemName, ItemQuantity) VALUES ('Patton Hardware Supplies', '1/1/2011', 'Removal', 2)
    INSERT INTO ItemReceiptLineItems (VendorName, Date, ItemName, ItemQuantity) SELECT FROM VendorName, Date, ItemName, ItemQuantity ItemReceiptLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format ItemReceiptId|ItemLineId.
    ItemReceiptId String False ItemReceipts.ID 255 The item identifier for the item receipt. This is obtained from the ItemReceipt table.
    VendorName String False 1000 The name of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
    VendorId String False Vendors.ID 255 The unique ID of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
    Date Date False The transaction date.
    ReferenceNumber String False 21 The transaction reference number.
    AccountsPayable String False 1000 A reference to the name of the account the item receipt is payable to.
    AccountsPayableId String False Accounts.ID 255 A reference to the unique ID of the account the item receipt is payable to.
    Memo String False 5000 A memo regarding the item receipt.
    Amount Decimal True Total amount of the item receipt.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency. Requires QBXML Version 8.0 or higher.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item Id.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group Id. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemTaxCode String False 3 The name of the sales tax code for the line item. Only available in UK and CA editions of QuickBooks.
    ItemTaxCodeId String False SalesTaxCodes.ID 255 The ID of the sales tax code for the line item. Only available in UK and CA editions of QuickBooks.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemInventorySiteId String False 255 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteName String False InventorySites.ID 31 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationId String False 255 The site location for this item. This field requires QBXML Version 12.0.
    ItemInventorySiteLocationName String False The site location for this item. This field requires QBXML Version 12.0.
    ItemSerialNumber String False 255 The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemLotNumber String False 40 The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. It is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0.
    ItemCost Double False The unit cost for an item.
    ItemAmount Decimal False Total amount for this item.
    ItemBillableStatus String False 13 Billing status of the item. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED. The default value is EMPTY.
    ItemCustomer String False 1000 The name of the customer who ordered the item.
    ItemCustomerId String False Customers.ID 255 The ID of the customer who ordered the item.
    ItemClass String False 1000 The name for the class of the item.
    ItemClassId String False Class.ID 255 The ID for the class of the item.
    ItemCustomFields String False The custom fields for this lineitem.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the item receipt was last modified.
    TimeCreated Datetime True When the item receipt was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    LinkToTxnId String The ID of a transaction to link the new item receipt to. This should be a purchase order Id. Only available on an insert.
    ItemLinkToTxnId String Link this individual line item to another transaction. This is only available during inserts and requires a minimum QBXML Version 6.0
    ItemLinkToTxnLineId String Link this individual line item to another transaction line item. This is only available during inserts and requires a minimum QBXML Version 6.0
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    ItemReceipts

    Create, update, delete, and query QuickBooks Item Receipts.

    Table Specific Information

    ItemReceipts may be inserted, queried, or updated via the ItemReceipts, ItemReceiptExpenseItems or ItemReceiptLineItems tables. ItemReceipts may be deleted by using the ItemReceipts table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically only be used with the equals or = comparison. The available columns for ItemReceipts are Id, Date, ReferenceNumber, VendorName, VendorId, Payee, PayeeId, Account, AccountId, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. VendorName and ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM ItemReceipts WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND VendorName LIKE '%Patton Hardware Supplies%' AND ReferenceNumber LIKE '12345%'
    
    Insert

    To add an ItemReceipt, specify the Vendor, Date, and at least one Expense or Line Item. The ItemAggregate and ExpenseAggregate columns may be used to specify an XML aggregate of Line Item or Expense Item data. The columns that may be used in these aggregates are defined in the ItemReceiptLineItems and ItemReceiptExpenseItems tables and it starts with Item. For example, the following will insert a new ItemReceipt with two Line Items:

    INSERT INTO ItemReceipts (VendorName, Date, ItemAggregate) VALUES ('Patton Hardware Supplies', '1/1/2011',
    '<ItemReceiptLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </ItemReceiptLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    VendorName String False 1000 The name of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
    VendorId String False Vendors.ID 255 The unique ID of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
    Date Date False The transaction date.
    ReferenceNumber String False 21 The transaction reference number.
    AccountsPayable String False Accounts.ID 1000 A reference to the name of the account the item receipt is payable to.
    AccountsPayableId String False 255 A reference to the unique ID of the account the item receipt is payable to.
    Memo String False 5000 A memo regarding the item receipt.
    Amount Decimal True Total amount of the item receipt.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency. Requires QBXML Version 8.0 or higher.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    ItemCount Integer True The count of line items.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a item receipt and its line item data.
    ExpenseItemCount Integer True The count of expense line items.
    ExpenseItemAggregate String False 5000 An aggregate of the expense item data which can be used for adding a item receipt and its expense item data.
    TransactionCount Integer True The count of related transactions to the estimates.
    TransactionAggregate String True 5000 An aggregate of the linked transaction data.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the item receipt was last modified.
    TimeCreated Datetime True When the item receipt was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.
    Expense\* String All expense-item-specific columns may be used in insertions.
    LinkToTxnId String The ID of a transaction to link the new item receipt to. This should be a purchase order Id. Only available on an insert.

    Items

    Create, update, delete, and query QuickBooks Items.

    Table Specific Information

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for Items are Id, TimeModified, FullName, Type, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. FullName may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Items WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND FullName LIKE '%12345%'
    
    Insert

    When inserting the Item, specify the Type and Name fields. Depending on the Type, other columns may also be required in the insertion. See the list below to see which columns are required for special cases:

    • FixedAsset: Requires Name, Type, AcquiredAs, PurchaseDesc, and PurchaseDate.
    • SalesTaxGroup: Requires Name, Type, and at least one SalesTax Line Item. SalesTaxGroups must be inserted via the ItemLineItems table.
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    Name String False 31 The name of the item.
    FullName String True 159 Full item name in the format parentname:name if the item is a subitem.
    Type String False 100 The type of item. This is required to have a value when inserting. The allowed values are Unknown, Service, Inventory, NonInventory, Payment, Discount, SalesTax, SubTotal, OtherCharge, InventoryAssembly, Group, SalesTaxGroup, FixedAsset. The default value is ALL.
    Account String False 1000 Account name the item is associated with.
    AccountId String False Accounts.ID 255 Account ID the item is associated with.
    COGSAccount String False 1000 Cost of Goods Sold account for the item.
    COGSAccountId String False Accounts.ID 255 Cost of Goods Sold account for the item.
    AssetAccount String False 1000 Inventory asset account for the item if it is an inventory item.
    AssetAccountId String False Accounts.ID 255 Inventory asset account for the item if it is an inventory item.
    Class String False 1000 A reference to the class of the item.
    ClassId String False Class.ID 255 A reference to the class of the item.
    DateSold Datetime False Indicates the date an asset was sold. This is required for fixed asset items. It is not used for any other types of items.
    PurchaseDate Date False Indicates date asset was purchased. This field is required for the fixed-asset item type. It is not used by any other item type.
    ItemCount Integer False The number of line items associated with the inventory assembly.
    ParentName String False The parent name of the item if the item is a subitem.
    ParentId String False Items.ID 255 The parent ID of the item if the item is a subitem.
    Description String False 5000 A description of the item.
    Price Double False The price for the item.
    PricePercent Double False A price percent for this item (you might use a price percent if, for example, you are a service shop that calculates labor costs as a percentage of parts costs). If you set PricePercent, Price will be set to zero. Not used for payment, sales tax, or subtotal items.
    AverageCost Double True The average cost of the item.
    IsActive Boolean False Whether the item is active or not.
    PurchaseCost Double False Purchase cost for the item.
    PurchaseDescription String False 5000 Purchase description for the item.
    ExpenseAccount String False 1000 Expense account for the item.
    ExpenseAccountId String False Accounts.ID 255 Expense account for the item.
    PreferredVendor String False 1000 Preferred vendor for the item.
    PreferredVendorId String False Vendors.ID 255 Preferred vendor for the item.
    QuantityOnHand Double True Quantity in stock for this inventory item.
    QuantityOnOrder Double True The number of these items that have been ordered from vendors, but not received.
    QuantityOnSalesOrder Double True The number of these items that have been ordered by customers, but not delivered.
    InventoryDate Date False The date when the item was converted into an inventory item.
    ReorderPoint Double False Quantity at which the user will be reminded to reorder this inventory item.
    Barcode String False 50 Barcode for the item.
    TaxCode String False 3 Reference to a sales tax code predefined within QuickBooks.
    TaxCodeId String False SalesTaxCodes.ID 255 Reference to a sales tax code predefined within QuickBooks.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.
    PurchaseTaxCode String False 3 Reference to a purchase tax code predefined within QuickBooks. Only available in international versions of QuickBooks.
    PurchaseTaxCodeId String False SalesTaxCodes.ID 255 This is a reference to a purchase tax code predefined within QuickBooks. Available in only international versions of QuickBooks.
    PartNumber String False 31 The manufacturer's part number for the item. This property requires QBXML Version 7.0 or higher and is only applicable to inventory and noninventory item types.
    PaymentMethodName String False 100 The method of payment: check, credit card, etc.
    PaymentMethodId String False PaymentMethods.ID 255 The method of payment: check, credit card, etc.
    TaxRate Double False The percentage rate of tax.
    TaxVendorName String False 1000 The VENDOR or tax agency to whom taxes are due.
    TaxVendorId String False SalesTaxItems.ID 255 The VENDOR or tax agency to whom taxes are due.
    SpecialItemType String False 50 The type of the item when the value of item type is Unknown. Calling Add on such an item will result in an error, however Get or GetByName can get any item without causing an error. The allowed values are FinanceCharge, ReimbursableExpenseGroup, ReimbursableExpenseSubtotal.
    VendorOrPayeeName String False 50 Name of the vendor from whom this asset was purchased.
    IsPrintItemsInGroup Boolean False If true, a list of this group's individual items their amounts will appear on printed forms.
    SalesExpense String False Any expenses that were incurred during the sale of a fixed asset. This is applicable only if the asset has been sold.
    AssetAcquiredAs String False 3 Indicates whether this item was new or used when the business acquired it. If AssetAcquiredAs is left blank, it will not be sent in the request. The allowed values are New, Old.
    AssetDescription String False 5000 Description of the asset.
    AssetLocation String False 50 Where the asset is located or has been placed into service.
    AssetPONumber String False 30 The purchase order number associated with this asset.
    AssetSerialNumber String False 5000 The serial number of the asset.
    AssetWarrantyExpires Date False The date when the warranty for this asset expires.
    AssetNotes String False 5000 Additional information about the asset.
    AssetNumber String False 10 The number used by the QuickBooks Fixed Asset Manager to identify this asset.
    AssetCostBasis Decimal False The total cost of the fixed asset. This can include the cost of improvements or repairs. This amount is used to figure depreciation.
    AssetDepreciation Double False The amount the fixed asset has lost in value since it was purchased, as of the end of the year.
    AssetBookValue Double False A reasonable estimate of the sales value of the fixed asset, as of the end of the year.
    UnitOfMeasure String False 31 Name of the units that the item is measured in. Requires QBXML Version 7.0 or higher.
    UnitOfMeasureId String False UnitOfMeasure.ID 255 Id of the units that the item is measured in. Requires QBXML Version 7.0 or higher.
    Sublevel Integer True The number of ancestors this item has.
    LineAggregate String True 5000 An aggregate of the line item data.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier for this copy of the object.
    TimeModified Datetime True When the item was last modified.
    TimeCreated Datetime True When the item was created.

    JobTypes

    Create and query QuickBooks JobTypes.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the jobtype.
    Name String False 100 The name of the jobtype.
    FullName String True 1000 The full name of the jobtype in the form ParentName|JobTypesName.
    IsActive Boolean False Boolean determining if the jobtype is active.
    ParentRef_FullName String False Full name of the parent for the jobtype. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT statements and not both.
    ParentRef_ListId String False JobTypes.ID 255 Id for the parent of the jobtype. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT statements and not both.
    Sublevel Integer True How many parents the jobtype has.
    EditSequence String True 16 A string indicating the revision of the jobtype.
    TimeCreated Datetime True The time the jobtype was created.
    TimeModified Datetime True The last time the jobtype was modified.

    JournalEntries

    Create, update, delete, and query QuickBooks Journal Entries. Note that while Journal Entry Lines can be created with a new Journal Entry, they cannot be added or removed from an existing Journal Entry.

    Table Specific Information

    JournalEntries are unique in that the Credit Line Items and Debit Line Items must add up to the same total in one transaction. It is not possible to change a Journal Line Item one at a time and thus end up with an unbalanced transaction.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for JournalEntries are Id, Date, TimeCreated, ReferenceNumber, LineEntityName, LineEntityId, LineAccount, and LineAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM JournalEntries WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a JournalEntry, specify at least one Credit and one Debit Line. The LineAggregate column may be used to specify an XML aggregate of JournalEntry Line data. The columns that may be used in these aggregates are defined in the JournalEntryLines table and it starts with Line. For example, the following will insert a new JournalEntry with two Credit Lines and one Debit Line:

    INSERT INTO JournalEntries
             (ReferenceNumber, LineAggregate)
    VALUES ('12345',
    '<JournalEntryLines>
    <Row><LineType>Credit</LineType><LineAccount>Retained Earnings</LineAccount><LineAmount>100</LineAmount></Row>
    <Row><LineType>Credit</LineType><LineAccount>Note Payable - Bank of Anycity</LineAccount><LineAmount>20</LineAmount></Row>
    <Row><LineType>Debit</LineType><LineAccount>Checking</LineAccount><LineAmount>120</LineAmount></Row>
    </JournalEntryLines>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    To delete a JournalEntry, simply perform a DELETE statement and set the ID equal to the JournalEntryId you wish to delete. For example:

    DELETE FROM JournalEntries WHERE ID = '16336-1450191232'
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier for the journal entry.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False The transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    CreditLineCount Integer False Number of credit lines.
    DebitLineCount Integer False Number of debit lines.
    FirstCreditAccount String False The first credit account associated with the JournalEntry.
    FirstCreditAmount Decimal False The first credit amount associated with the JournalEntry.
    FirstCreditMemo String False The first credit memo associated with the JournalEntry.
    FirstCreditEntityName String False The first credit entity name associated with the JournalEntry.
    FirstCreditEntityId String False The first credit entity ID associated with the JournalEntry.
    FirstDebitAccount String False The first debit account associated with the JournalEntry.
    FirstDebitAmount Decimal False The first debit amount associated with the JournalEntry.
    FirstDebitMemo String False The first debit memo associated with the JournalEntry.
    FirstDebitEntityName String False The first debit entity name associated with the JournalEntry.
    FirstDebitEntityId String False The first debit entity ID associated with the JournalEntry.
    LineAggregate String False 5000 An aggregate of the credit lines and debit ines data which can be used for adding a journal entry and its line item data.
    CurrencyName String False 64 The name of the currency for this customer. A minimum QBXML version of 8.0 is required for this feature.
    CurrencyId String False Currency.ID 255 The unique ID of the currency for this customer. A minimum QBXML version of 8.0 is required for this feature.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    IsHomeCurrencyAdjustment Boolean False Indicates whether the transaction is using a home currency or foreign currency. Setting this field will override the Currency and ExchangeRate fields to use the home currency.
    EditSequence String False 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime False When the journal entry was last modified.
    TimeCreated Datetime False When the journal entry was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Line\* String All line-item-specific columns may be used in insertions.
    LineEntityName String LineEntityName may be used when filtering the data.
    LineEntityId String LineEntityId may be used when filtering the data.
    LineAccount String LineAccount may be used when filtering the data.
    LineAccountId String LineAccountId may be used when filtering the data.

    JournalEntryLines

    Create, update, delete, and query QuickBooks Journal Entries. Note that while Journal Entry Lines can be created with a new Journal Entry, they cannot be added or removed from an existing Journal Entry.

    Table Specific Information

    JournalEntries are unique in that the Credit Line Items and Debit Line Items must add up to the same total in one transaction. It is not possible to change a Journal Line Item one at a time and thus end up with an unbalanced transaction. Note that while Journal Entry Lines can be created with a new Journal Entry, they cannot be added or removed from an existing Journal Entry.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for JournalEntries are Id, Date, TimeModified, ReferenceNumber, LineEntityName, LineEntityId, LineAccount, and LineAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM JournalEntryLines WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a JournalEntry, at least one Credit and one Debit Line must be added. Both types of lines are denoted by the Line columns. Debit Lines have a LineType of Debit while Credit Lines have a LineType of Credit. For example, to insert a JournalEntry:

    INSERT INTO JournalEntryLines#TEMP (ReferenceNumber, LineType, LineAccount, LineAmount) VALUES ('12345', 'Credit', 'Retained Earnings', '100')
    INSERT INTO JournalEntryLines#TEMP (ReferenceNumber, LineType, LineAccount, LineAmount) VALUES ('12345', 'Credit', 'Note Payable - Bank of Anycity', '20')
    INSERT INTO JournalEntryLines#TEMP (ReferenceNumber, LineType, LineAccount, LineAmount) VALUES ('12345', 'Debit', 'Checking', '120')
    INSERT INTO JournalEntryLines (ReferenceNumber, LineType, LineAccount, LineAmount) SELECT ReferenceNumber, LineType, LineAccount, LineAmount FROM JournalEntryLines#TEMP
    

    To delete a JournalEntry, simply perform a DELETE statement and set the ID equal to the JournalEntryId you wish to delete. For example:

    DELETE FROM JournalEntries WHERE ID = '16336-1450191232'
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format JournalEntryId|ItemLineId.
    JournalEntryID String False JournalEntries.ID 255 The journal entry Id.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False The transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    CreditLineCount Integer False Number of credit lines.
    DebitLineCount Integer False Number of debit lines.
    LineId String True 255 The line item identifier.
    LineType String False 100 Type of line: credit or debit.
    LineAccount String False 1000 Account name of a credit or debit line.
    LineAccountId String False Accounts.ID 255 Account ID of a credit or debit line.
    LineAmount Decimal False Amount of a credit or debit line.
    LineEntityName String False 1000 Entity name of a credit or debit line.
    LineEntityId String False 255 Entity ID of a credit or debit line.
    LineMemo String False 5000 Memo for a credit or debit line.
    LineClass String False 1000 Class name of a credit or debit line.
    LineClassId String False Class.ID 255 Class ID of a credit or debit line.
    LineStatus String False 13 Billing status of a credit or debit line. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.
    LineTaxItem String False 100 The sales-tax item used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. Available in only CA, UK, and AU versions.
    LineTaxItemId String False SalesTaxItems.ID 255 Id of the sales-tax item used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. Only available in CA, UK, and AU versions.
    CurrencyName String False 64 The name of the currency for this customer. A minimum QBXML version of 8.0 is required for this feature.
    CurrencyId String False Currency.ID 255 The unique ID of the currency for this customer. A minimum QBXML version of 8.0 is required for this feature.
    ExchangeRate Double False The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    IsHomeCurrencyAdjustment Boolean False Indicates whether the transaction is using a home currency or foreign currency. Setting this field will override the Currency and ExchangeRate fields to use the home currency.
    EditSequence String False 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime False When the journal entry was last modified.
    TimeCreated Datetime False When the journal entry was created.

    OtherNames

    Create, update, delete, and query QuickBooks Other Name entities.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    Name String False 41 The name of the other name. This is required to have a value when inserting.
    IsActive Boolean False Whether or not the other name is active.
    CompanyName String False 41 The name of the customer, vendor, employee, or person on the other-names list.
    Salutation String False 15 A salutation, such as Mr., Mrs., etc.
    FirstName String False 25 The first name of a customer, vendor, employee, or person on the other-names list
    MiddleName String False 25 The middle name of a customer, vendor, employee, or person on the other-names list.
    LastName String False 25 The last name of a customer, vendor, employee, or person on the other-names list.
    OtherNameAddress_Addr1 String False 500 First line of the other-name address.
    OtherNameAddress_Addr2 String False 500 Second line of the other-name address.
    OtherNameAddress_Addr3 String False 500 Third line of the other-name address.
    OtherNameAddress_Addr4 String False 500 Fourth line of the other-name address.
    OtherNameAddress_Addr5 String False 41 Fifth line of the other-name address.
    OtherNameAddress_City String False 255 City name for the other-name address of the customer, vendor, employee, or person on the other-names list.
    OtherNameAddress_State String False 255 State name for the other-name address of the customer, vendor, employee, or person on the other-names list.
    OtherNameAddress_PostalCode String False 30 Postal code for the other name address of the customer, vendor, employee, or person on the other-names list.
    OtherNameAddress_Country String False 255 Country for the other-name address of the customer, vendor, employee, or person on the other-names list.
    OtherNameAddress_Note String False 41 Note for the other-name address of the customer, vendor, employee, or person on the other-names list.
    Phone String False 21 The main telephone number for the customer, vendor, employee, or person on the other-names list.
    AltPhone String False 41 The alternate telephone number for the customer, vendor, employee, or person on the other-names list.
    Fax String False 21 The fax number number for the customer, vendor, employee, or person on the other-names list.
    Email String False 1023 The email address for communicating with the customer, vendor, employee, or person on the other-names list.
    Contact String False 41 The name of a contact person for the customer, vendor, employee, or person on the other-names list.
    AltContact String False 41 The name of an alternate contact person for the customer, vendor, employee, or person on the other-names list.
    AccountNumber String False 99 The account number for the other-name.
    Notes String False 5000 Notes on this customer, vendor, employee, or person on the other-names list.
    ExternalGUID String False Allows for the attachment of a user-defined GUID value. Can be used in only inserts and the value must be enclosed in curly brackets. Requires QBXML 8.0 or higher.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeCreated Datetime True The datetime the other name was made.
    TimeModified Datetime True The last datetime the other name was modified.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.

    PaymentMethods

    Create, update, delete, and query QuickBooks Payment Methods.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the payment method.
    Name String False 31 The name of the payment method.
    IsActive Boolean False Boolean determining if the payment method is active.
    PaymentMethodType String False 100 The payment method. Requires QBXML 7.0 or higher. The allowed values are AmericanExpress, Cash, Check, DebitCard, Discover, ECheck, GiftCard, MasterCard, Other, OtherCreditCard, Visa.
    EditSequence String True 16 A string indicating the revision of the payment method.
    TimeCreated Datetime True The time the payment method was created.
    TimeModified Datetime True The last time the payment method was modified.

    PayrollNonWageItems

    Query QuickBooks Non-Wage Payroll Items.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True The unique identifier.
    Name String False The name of the payroll item. This is required to have a value when inserting.
    IsActive Boolean False Whether or not the payroll item is active.
    NonWageType String False The type of pay. The allowed values are Addition, CompanyContribution, Deduction, DirectDeposit, Tax.
    ExpenseAccountRef_FullName String False The expense account name for this nonwage payroll item. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAccountRef_ListID String False Accounts.ID The expense account ID for this nonwage payroll item. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    LiabilityAccountRef_FullName String False The liability account name for this nonwage payroll item. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    LiabilityAccountRef_ListID String False Accounts.ID The liability account ID for this nonwage payroll item. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    TimeCreated Datetime True The datetime the payroll item was made.
    TimeModified Datetime True The last datetime the payroll item was modified.
    EditSequence String True An identifier used for versioning for this copy of the object.

    PayrollWageItems

    Create and query QuickBooks Wage Payroll Items.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True The unique identifier.
    Name String False The name of the payroll item. This is required to have a value when inserting.
    IsActive Boolean False Whether or not the payroll item is active.
    WageType String False The type of pay. The allowed values are Bonus, Commission, HourlyOvertime, HourlyRegular, HourlySick, HourlyVacation, SalaryRegular, SalarySick, SalaryVacation.
    ExpenseAccountRef_FullName String False The expense account name for this wage payroll item. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAccountRef_ListID String False Accounts.ID The expense account ID for this wage payroll item. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    TimeCreated Datetime True The datetime the payroll item was made.
    TimeModified Datetime True The last datetime the payroll item was modified.
    EditSequence String True An identifier used for versioning for this copy of the object.

    PriceLevelPerItem

    Create and query QuickBooks Price Levels Per Item. Only QuickBooks Premier and Enterprise support Per-Item Price Levels. Note that while Price Levels can be added from this table, you may only add Per-Item Price Levels from this table. Price Levels may be deleted from the PriceLevels table. This table requires QBXML version 4.0 or later.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    PriceLevelID String False PriceLevels.ID 255 The unique identifier of the price level.
    Name String False 31 The name of the price level.
    PriceLevelType String True 15 The type of price level. The allowed values are FixedPercentage, PerItem.
    IsActive Boolean False A boolean determining if the price level is active.
    PriceLevelPerItemRet_ItemRef_ListID String False Items.ID 255 A reference to the ID of the item. Either the ID or FullName property of the item is required on insertion.
    PriceLevelPerItemRet_ItemRef_FullName String False A reference to the name of the item. Either the ID or FullName property of the item is required on insertion.
    PriceLevelPerItemRet_CustomPrice Decimal False A fixed amount for the price.
    PriceLevelPerItemRet_CustomPricePercent Double False A fixed discount percentage.
    PriceLevelPerItemRet_CurrencyRef_ListID String False Currency.ID 255 A reference to the currency Id. Requires a minimum QBXML version of 8.0 and multiple currencies enabled for the company file.
    PriceLevelPerItemRet_CurrencyRef_FullName String False 64 A reference to the currency name. Requires a minimum QBXML version of 8.0 and multiple currencies enabled for the company file.
    TimeCreated Datetime True The datetime the transaction was made.
    TimeModified Datetime True The last datetime the transaction was modified.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.

    PriceLevels

    Create, delete, and query QuickBooks Price Levels. Note that while Price Levels can be added and deleted from this table, you may add only fixed-percentage Price Levels from this table. Per-Item Price Levels may be added via the PriceLevelPerItem table. This table requires QBXML version 4.0 or higher.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    Name String False 31 The name of the price level.
    PriceLevelType String True 15 The type of price level. The allowed values are FixedPercentage, PerItem.
    IsActive Boolean False A boolean determining if the price level is active.
    PriceLevelFixedPercentage Double False A fixed discount percentage for the price level.
    PriceLevelPerItemAggregate String False 5000 An aggregate of the per-item price level data.
    PriceLevelPerItemRet_CurrencyRef_ListID String False Currency.ID 255 A reference to the currency Id. Requires a minimum QBXML version of 8.0 and multiple currencies enabled for the company file.
    PriceLevelPerItemRet_CurrencyRef_FullName String False 64 A reference to the currency name. Requires a minimum QBXML version of 8.0 and multiple currencies enabled for the company file.
    TimeCreated Datetime True The datetime the transaction was made.
    TimeModified Datetime True The last datetime the transaction was modified.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.

    PurchaseOrderLineItems

    Create, update, delete, and query QuickBooks Purchase Order Line Items.

    Table Specific Information

    PurchaseOrders may be inserted, queried, or updated via the PurchaseOrders or PurchaseOrderLineItems tables. PurchaseOrders may be deleted by using the PurchaseOrders table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for PurchaseOrders are Id, Date, TimeModified, ReferenceNumber, VendorName, and VendorId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM PurchaseOrderLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a PurchaseOrder, specify the Vendor and at least one Line Item. All Line Item columns and can be used for inserting multiple Line Items for a new PurchaseOrder transaction. For example, the following will insert a new PurchaseOrder with two Line Items:

    INSERT INTO PurchaseOrderLineItems#TEMP (VendorName, ItemName, ItemQuantity) VALUES ('A Cheung Limited', 'Repairs', 1)
    INSERT INTO PurchaseOrderLineItems#TEMP (VendorName, ItemName, ItemQuantity) VALUES ('A Cheung Limited', 'Removal', 2)
    INSERT INTO PurchaseOrderLineItems (VendorName, ItemName, ItemQuantity) SELECT VendorName, ItemName, ItemQuantity FROM PurchaseOrderLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format PurchaseOrderId|ItemLineId.
    PurchaseOrderID String False PurchaseOrders.ID 255 The unique identifier of the purchase order.
    VendorName String False 1000 Vendor name this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.
    VendorId String False Vendors.ID 255 Vendor ID this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.
    VendorMessage String False 99 Message to appear to vendor.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    DueDate Date False Date when payment is due.
    ShipMethod String False 1000 Shipping method.
    ShipMethodId String False ShippingMethods.ID 255 Shipping method.
    ExpectedDate Date False Date when the shipment is expected.
    Memo String False 5000 Memo regarding this transaction.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    Terms String False 100 Payment terms.
    TermsId String False 255 Payment terms.
    TotalAmount Decimal True Total amount for this purchase order.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    CurrencyName String False 64 Name of the currency code used for this purchase order. QBXML version must be set to 8.0 or higher to use this field.
    CurrencyId String False Currency.ID 255 Id of the currency code used for this purchaseorder. QBXML version must be set to 8.0 or higher to use this field.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item identifier.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group Id. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemCustomer String False 1000 A reference to a customer for whom this item was ordered. This may also be a customer job.
    ItemCustomerId String False Customers.ID 255 A reference to a customer for whom this item was ordered. This may also be a customer job.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML version 7.0 and above.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemRate Double False The unit rate charged for this item.
    ItemAmount Decimal False Total amount for this item.
    ItemReceivedQuantity Double False The quantity of items that have been received against this purchase order.
    ItemClass String False 1000 The class name of the item.
    ItemClassId String False Class.ID 255 The class name of the item.
    ItemInventorySiteLocationId String False 31 The inventory site location ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationName String False 255 The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemIsManuallyClosed String False 10 Whether or not the item is manually closed.
    ItemPartNumber String False The part number used by the manufacturer of the item.
    ItemServiceDate Date False The date of the Service
    ItemOther1 String False 29 The Other1 field of this line item. QBXML version must be set to 6.0 or higher to use this field.
    ItemOther2 String False 29 The Other2 field of this line item. QBXML version must be set to 6.0 or higher to use this field.
    ItemCustomFields String False The custom fields for this line item.
    IsFullyReceived Boolean True If IsFullyReceived is true, all the items in the purchase order have been received and none were closed manually.
    IsManuallyClosed String False 10 Whether or not the purchase order is closed.
    IsToBePrinted Boolean False Whether this transaction is to be printed.
    IsToBeEmailed Boolean False Indicates whether the transaction is to be emailed.
    IsTaxIncluded Boolean False Indicates whether the dollar amounts in the line items include tax or not.
    SalesTaxCodeName String False 3 The type of sales tax that will be charged for this purchase order.
    SalesTaxCodeId String False SalesTaxCodes.ID 255 The type of sales tax that will be charged for this purchase order.
    FOB String False 1000 Freight on board: The place to ship from.
    VendorAddress String True Full vendor address returned by QuickBooks.
    VendorLine1 String False 500 First line of the vendor address.
    VendorLine2 String False 500 Second line of the vendor address.
    VendorLine3 String False 500 Third line of the vendor address.
    VendorLine4 String False 500 Forth line of the vendor address.
    VendorLine5 String False 41 Fifth line of the vendor address.
    VendorCity String False 255 City name for the vendor address of the vendor.
    VendorState String False 255 State name for the vendor address of the vendor.
    VendorPostalCode String False 30 Postal code for the vendor address of the vendor.
    VendorCountry String False 255 Country for the vendor address of the vendor.
    VendorNote String False 41 Note for the vendor address of the vendor.
    ShipToEntityId String False 255 A reference to an entity (a customer, a vendor or an employee) to whom shipment is to be made. This may also be a customer job.
    ShipToEntityName String False 1000 A reference to an entity (a customer, a vendor or an employee) to whom shipment is to be made. This may also be a customer job.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address.
    ShippingState String False 255 State name for the shipping address.
    ShippingPostalCode String False 30 Postal code for the shipping address.
    ShippingCountry String False 255 Country for the shipping address.
    ShippingNote String False 41 Note for the shipping address.
    ExchangeRate Double False Indicates the exchange rate for the transaction.
    Other1 String False 25 Predefined QuickBooks custom field.
    Other2 String False 29 Predefined QuickBooks custom field.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the purchase order was last modified.
    TimeCreated Datetime True When the purchase order was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String Item price level name. QuickBooks will not return the price level.
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    PurchaseOrders

    Create, update, delete, and query QuickBooks Purchase Orders.

    Table Specific Information

    Purchase orders may be inserted, queried, or updated via the PurchaseOrders or PurchaseOrderLineItems tables. PurchaseOrders may be deleted by using the PurchaseOrders table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for PurchaseOrders are Id, Date, TimeModified, VendorName, and VendorId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM PurchaseOrders WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a PurchaseOrder, specify the Vendor and at least one Line Item. The ItemAggregate columns may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the PurchaseOrderLineItems table and it starts with Item. For example, the following will insert a new PurchaseOrder with two Line Items:

    INSERT INTO PurchaseOrders (VendorName, ItemAggregate)
    VALUES ('A Cheung Limited',
    '<PurchaseOrderLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </PurchaseOrderLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format PurchaseOrderId.
    VendorName String False 1000 Vendor name this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.
    VendorId String False Vendors.ID 255 Vendor ID this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.
    VendorMessage String False 99 Message to appear to vendor.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    DueDate Date False Date when payment is due.
    ShipMethod String False 1000 Shipping method.
    ShipMethodId String False ShippingMethods.ID 255 Shipping method.
    ExpectedDate Date False Date when the shipment is expected.
    Memo String False 5000 Memo regarding this transaction.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    Terms String False 100 Payment terms.
    TermsId String False 255 Payment terms.
    TotalAmount Decimal True Total amount for this purchase order.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    CurrencyName String False 64 Name of the currency code used for this purchase order. QBXML version must be set to 8.0 or higher to use this field.
    CurrencyId String False Currency.ID 255 Id of the currency code used for this purchase order. QBXML version must be set to 8.0 or higher to use this field.
    ItemCount Integer True The number of line items.
    ItemAggregate String False 5000 An aggregate of the Line item data which can be used for adding a purchase orders and its line item data.
    IsFullyReceived Boolean True If IsFullyReceived is true, all the items in the purchase order have been received and none were closed manually.
    IsManuallyClosed String False 10 Whether or not the purchase order is closed.
    IsToBePrinted Boolean False Whether this transaction is to be printed.
    IsToBeEmailed Boolean False Indicates whether the transaction is to be emailed.
    IsTaxIncluded Boolean False Indicates whether the dollar amounts in the line items include tax or not.
    SalesTaxCodeName String False 3 The type of sales tax that will be charged for this purchase order.
    SalesTaxCodeId String False SalesTaxCodes.ID 255 The type of sales tax that will be charged for this purchase order.
    FOB String False 1000 Freight on board: The place to ship from.
    VendorAddress String True Full vendor address returned by QuickBooks.
    VendorLine1 String False 500 First line of the vendor address.
    VendorLine2 String False 500 Second line of the vendor address.
    VendorLine3 String False 500 Third line of the vendor address.
    VendorLine4 String False 500 Fourth line of the vendor address.
    VendorLine5 String False 41 Fifth line of the vendor address.
    VendorCity String False 255 City name for the vendor address of the vendor.
    VendorState String False 255 State name for the vendor address of the vendor.
    VendorPostalCode String False 30 Postal code for the vendor address of the vendor.
    VendorCountry String False 255 Country for the vendor address of the vendor.
    VendorNote String False 41 Note for the vendor address of the vendor.
    ShipToEntityName String False 1000 A reference to an entity (a customer, a vendor or an employee) to whom shipment is to be made. This may also be a customer job.
    ShipToEntityId String False 255 A reference to an entity (a customer, a vendor or an employee) to whom shipment is to be made. This may also be a customer job.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address.
    ShippingState String False 255 State name for the shipping address.
    ShippingPostalCode String False 30 Postal code for the shipping address.
    ShippingCountry String False 255 Country for the shipping address.
    ShippingNote String False 41 Note for the shipping address.
    ExchangeRate Double False Indicates the exchange rate for the transaction.
    Other1 String False 25 Predefined QuickBooks custom field.
    Other2 String False 29 Predefined QuickBooks custom field.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the purchase order was last modified.
    TimeCreated Datetime True When the purchase order was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.

    ReceivePayments

    Create, update, delete, and query QuickBooks Receive Payment transactions. QBXMLVersion must be set to 6.0 or higher to update a ReceivePayment.

    Table Specific Information

    ReceivePayments may be inserted, queried, or updated via the ReceivePayments or ReceivePaymentsAppliedTo tables. ReceivePayments may be deleted by using the ReceivePayments table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for ReceivePayments are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, DepositToAccountName, and DepositToAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM ReceivePayments WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a ReceivePayment, specify the Customer and Amount. The AppliedToAggregate column may be used to specify an XML aggregate of AppliedTo data. In a Receive Payment, each AppliedTo aggregate represents the transaction to which this part of the payment is being applied. The columns that may be used in these aggregates are defined in the ReceivePaymentsAppliedTo table and it starts with AppliedTo. To use the ApplyToAggregate column, set the AutoApply pseudo column to Custom. For example, the following will insert a new ReceivePayment with two AppliedTo entries:

    INSERT INTO ReceivePayments (CustomerName, Amount, AutoApply, AppliedToAggregate)
    VALUES ('Cook, Brian', '300.00', 'Custom',
    '<ReceivePaymentsAppliedTo>
    <Row><AppliedToRefId>178C1-1450221347</AppliedToRefId><AppliedToPaymentAmount>200.00</AppliedToPaymentAmount></Row>
    <Row><AppliedToRefId>881-933371709</AppliedToRefId><AppliedToPaymentAmount>100.00</AppliedToPaymentAmount></Row>
    </ReceivePaymentsAppliedTo>')
    

    If you would like to insert a ReceivePayment and let QuickBooks automatically determine which transaction to apply it to, you can use the AutoApply pseudo column to apply the transaction to an existing transaction. For example:

    INSERT INTO ReceivePayments (CustomerName, Amount, AutoApply) VALUES ('Cook, Brian', '300.00', 'ExistingTransactions')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier for the transaction.
    ReferenceNumber String False 21 The transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False The date of the transaction.
    UnusedPayment Decimal True This property will contain the amount of the payment that was not applied to existing invoices.
    Amount Decimal False The amount of the payment received from the Customer.
    AccountsReceivableName String False 1000 A reference to the name of the accounts-receivable account where the money received from this transaction will be deposited.
    AccountsReceivableId String False Accounts.ID 255 A reference to the ID of the accounts-receivable account where the money received from this transaction will be deposited.
    CustomerName String False 1000 The name of the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerID does not.
    CustomerId String False Customers.ID 255 The ID of the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerName does not.
    DepositToAccountName String False 1000 The account name that the payment should be deposited to.
    DepositToAccountId String False Accounts.ID 255 The account ID that the payment should be deposited to.
    PaymentMethodName String False 100 Name of the payment method that already exists in QuickBooks.
    PaymentMethodId String False PaymentMethods.ID 255 Id of the payment method that already exists in QuickBooks.
    Memo String False 5000 A memo to appear on internal reports.
    ExchangeRate Double False The exachange rate of the payment currency to the home currency.
    TotalAmountInHomeCurrency Decimal False The total amount in home currency.
    AppliedToAggregate String False 5000 An aggregate of the applied-to data which can be used for adding a bill payment credit card and its applied-to data.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the receive payment was last modified.
    TimeCreated Datetime True When the receive payment was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    AutoApply String How the payment should be applied. The allowed values are ExistingTransactions, FutureTransactions, Custom. The default value is ExistingTransactions.

    ReceivePaymentsAppliedTo

    Create, update, and query QuickBooks Receive Payment AppliedTo aggregates. In a Receive Payment, each AppliedTo aggregate represents the transaction to which this part of the payment is being applied. QBXMLVersion must be set to 6.0 or higher to update a ReceivePayment.

    Table Specific Information

    ReceivePayments may be inserted, queried, or updated via the ReceivePayments or ReceivePaymentsAppliedTo tables. ReceivePayments may be deleted by using the ReceivePayments table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for ReceivePayments are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, DepositToAccountName, and DepositToAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM ReceivePaymentsAppliedTo WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a ReceivePayment, specify the Customer and the Amount. All AppliedTo columns can be used to explicitly identify the transactions the payment is applied to. An AppliedTo entry must at the minimum specify the AppliedToRefId and AppliedToPaymentAmount. Optionally, the INSERT may specify the AutoApply behavior.

    For example, the following will insert a new ReceivePayment with two AppliedTo entries:

    INSERT INTO ReceivePaymentsAppliedTo#TEMP (CustomerName, AppliedToAmount, AutoApply, AppliedToRefId, AppliedToPaymentAmount) VALUES ('Cook, Brian', '300.00', 'Custom', '178C1-1450221347', '200.00')
    INSERT INTO ReceivePaymentsAppliedTo#TEMP (CustomerName, AppliedToAmount, AutoApply, AppliedToRefId, AppliedToPaymentAmount) VALUES ('Cook, Brian', '300.00', 'Custom', '881-933371709', '100.00')
    INSERT INTO ReceivePaymentsAppliedTo (CustomerName, AppliedToAmount, AutoApply, AppliedToRefId, AppliedToPaymentAmount) SELECT CustomerName, AppliedToAmount, AutoApply, AppliedToRefId, AppliedToPaymentAmount FROM ReceivePaymentsAppliedTo#TEMP
    

    If you would like to insert a ReceivePayment and let QuickBooks automatically determine which transaction to apply it to, you can use the AutoApply pseudo column to apply the transaction to an existing transaction. For example:

    INSERT INTO ReceivePaymentsAppliedTo (CustomerName, Amount, AutoApply) VALUES ('Cook, Brian', '300.00', 'ExistingTransactions')
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format ReceivePaymentId|AppliedToRefId.
    ReceivePaymentId String False ReceivePayments.ID 255 The ID of the bill-payment transaction.
    ReferenceNumber String False 21 The transaction reference number. This may be set to refnumber*, *refnumber, and *refnumber* in the WHERE clause of a SELECT statement to search by StartsWith, EndsWith, and Contains. Refnum1:refnum2, refnum1:, and :refnum1 may also be used to denote a range.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date False The date of the transaction.
    UnusedPayment Decimal True This property will contain the amount of the payment that was not applied to existing invoices.
    Amount Decimal False The amount of the payment received from the Customer.
    AccountsReceivableName String False 1000 A reference to the name of the accounts-receivable account where the money received from this transaction will be deposited.
    AccountsReceivableId String False Accounts.ID 255 A reference to the ID of the accounts-receivable account where the money received from this transaction will be deposited.
    CustomerName String False 1000 The name of the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerId is not defined.
    CustomerId String False Customers.ID 255 The ID of the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerName is not defined.
    DepositToAccountName String False 1000 The account name that the payment should be deposited to.
    DepositToAccountId String False Accounts.ID 255 The account ID that the payment should be deposited to.
    PaymentMethodName String False 100 Name of a payment method that already exists in QuickBooks.
    PaymentMethodId String False PaymentMethods.ID 255 Id of a payment method that already exists in QuickBooks.
    Memo String False 5000 A memo to appear on internal reports.
    ExchangeRate Double False The exachange rate of the payment currency to the home currency.
    TotalAmountInHomeCurrency Decimal False The total amount in home currency.
    AutoApply String False 20 How the payment should be applied. The allowed values are ExistingTransactions, FutureTransactions, Custom. The default value is ExistingTransactions.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    AppliedToRefId String False 255 The applied-to reference identifier. This is the ID of an existing transaction that a payment can be applied to such as a JournalEntry, or an Invoice.
    AppliedToAmount Decimal True The amount to be applied.
    AppliedToBalanceRemaining Double True The balance remaining to be applied.
    AppliedToCreditAppliedAmount Decimal False The credit applied amount to be applied.
    AppliedToCreditMemoId String False CreditMemos.ID 255 The credit memo ID to be applied.
    AppliedToDiscountAccountName String False 1000 The discount account name to be applied.
    AppliedToDiscountAccountId String False Accounts.ID 255 The discount account ID to be applied.
    AppliedToDiscountAmount Decimal False The discount amount to be applied.
    AppliedToPaymentAmount Decimal False The payment amount to be applied.
    AppliedToReferenceNumber String True 21 The ref number to be applied.
    AppliedToTxnDate Date True The transaction date to be applied.
    AppliedToTxnType String True 100 The transaction type that was applied.
    TimeModified Datetime True When the receive payment was last modified.
    TimeCreated Datetime True When the receive payment was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    StartTxnDate String Earliest transaction date to search for.
    EndTxnDate String Latest transaction date to search for.
    StartModifiedDate String Earliest modified date to search for.
    EndModifiedDate String Latest modified date to search for.

    SalesOrderLineItems

    Create, update, delete, and query QuickBooks Sales Order Line Items.

    Table Specific Information

    SalesOrders may be inserted, queried, or updated via the SalesOrders or SalesOrderLineItems table. SalesOrders may be deleted by using the SalesOrders table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesOrders are Id, Date, TimeModified, ReferenceNumber, CustomerName, and CustomerId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM SalesOrderLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a SalesOrder, specify the Customer and at least one Line Item. All Line Item columns can be used for inserting multiple Line Items for a new SalesOrder transaction. For example, the following will insert a new SalesOrder with two Line Items:

    INSERT INTO SalesOrderLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Cook, Brian', 'Repairs', 1)
    INSERT INTO SalesOrderLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Cook, Brian', 'Removal', 2)
    INSERT INTO SalesOrderLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM SalesOrderLineItems#TEMP
    
    Inserting Into an Existing SalesOrder

    To add a SalesOrderLineItem to an existing SalesOrder, specify the SalesOrderId, the Item's name, and the Item's Quanitiy. For example:

    INSERT INTO SalesOrderLineItems (SalesOrderId, ItemName, ItemQuantity) VALUES ('SalesOrderId', '01Item1', 1)
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format SalesOrderId|ItemLineId.
    SalesOrderId String False SalesOrders.ID 255 The item identifier.
    ReferenceNumber String False 21 Transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String False 1000 Customer name this transaction is recorded under. This is required to have a value when inserting.
    CustomerId String False Customers.ID 255 Customer ID this transaction is recorded under.
    Date Date False Transaction date.
    ShipMethod String False 1000 Shipping method.
    ShipMethodId String False ShippingMethods.ID 255 Shipping method.
    ShipDate Date False Shipping date.
    Memo String False 5000 Memo regarding this transaction.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    TotalAmount Decimal False Total amount for this transaction.
    DueDate Date False Date the payment is due.
    Message String False 101 Message to the customer.
    MessageId String False CustomerMessages.ID 255 Message to the customer.
    SalesRep String False 5 Reference to (the initials of) the sales rep.
    SalesRepId String False SalesReps.ID 255 Reference to the sales rep.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    CurrencyName String False 64 Name of the currency code used for this sales order.
    CurrencyId String False Currency.ID 255 Id of the currency code used for this sales order.
    ExchangeRate Double False Currency exchange rate for this sales order.
    TotalAmountInHomeCurrency Decimal False Returned for transactions in currencies different from the merchant's home currency.
    BillingAddress String True Full billing address returned by QuickBooks.
    FOB String False 13 Freight on board: The place to ship from.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address.
    BillingState String False 255 State name for the billing address.
    BillingPostalCode String False 30 Postal code for the billing address.
    BillingCountry String False 255 Country for the billing address.
    BillingNote String False 41 Note for the billing address.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address.
    ShippingState String False 255 State name for the shipping address.
    ShippingPostalCode String False 30 Postal code for the shipping address.
    ShippingCountry String False 255 Country for the shipping address.
    ShippingNote String False 41 Note for the shipping address.
    Subtotal Decimal True Gross subtotal. This does not include tax or the amount already paid.
    Tax Double True Total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True Percentage charged for sales tax.
    PONumber String False 41 Purchase order number.
    Terms String False 100 Payment terms.
    TermsId String False 255 Payment terms.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item identifier.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group Id.
    ItemDescription String False 5000 A description of the item.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemRate Double False The unit rate charged for this item.
    ItemRatePercent Double False The rate percent charged for this item.
    ItemTaxCode String False 3 Sales tax information for this item (taxable or nontaxable).
    ItemTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item (taxable or nontaxable).
    ItemInvoicedAmount Decimal True The amount of this sales order line that has been invoiced.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemAmount Decimal False Total amount for this item.
    ItemClass String False 1000 The class name of the item.
    ItemClassId String False Class.ID 255 The class ID of the item.
    ItemInventorySiteName String False 1000 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteId String False InventorySites.ID 255 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemSerialNumber String False 5000 The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemLotNumber String False 40 The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemExpirationDateForSerialLotNumber String True The expiration date for serial lot number of this item. It is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0.
    ItemIsManuallyClosed String False 10 Whether this sales order line is manually closed.
    ItemOther1 String False 29 The Other1 field of this line item. QBXML version must be set to 6.0 or higher.
    ItemOther2 String False 29 The Other2 field of this line item. QBXML version must be set to 6.0 or higher.
    ItemCustomFields String False The custom fields for this line item.
    ItemUOMSetFullName String False 1000 Indicates the price of something as a percent.
    ItemUOMSetListID String False UnitOfMeasure.ID 1000 Indicates the price of something as a percent.
    ItemIsGetPrintItemsInGroup String False 1000 If true, a list of this group's individual items their amounts will appear on printed forms.
    CustomerTaxCode String False 3 The tax code specific to this customer.
    CustomerTaxCodeId String False SalesTaxCodes.ID 255 The tax code specific to this customer.
    IsToBePrinted Boolean False Whether this sales order is to be printed.
    IsToBeEmailed Boolean False When true, if no email address is on file for the customer the transaction will fail.
    IsManuallyClosed String False 10 Whether this sales order is manually closed.
    IsFullyInvoiced Boolean True Whether this sales order is fully invoiced.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the sales order was last modified.
    TimeCreated Datetime True When the sales order was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String Item price level name. QuickBooks will not return the price level.

    SalesOrders

    Create, update, delete, and query QuickBooks Sales Orders.

    Table Specific Information

    SalesOrders may be inserted, queried, or updated via the SalesOrders or SalesOrderLineItems table. SalesOrders may be deleted by using the SalesOrders table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesOrders are Id, Date, TimeModified, ReferenceNumber, CustomerName, and CustomerId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM SalesOrders WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a SalesOrder, specify the Customer and at least one Line Item. The ItemAggregate column may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the SalesOrderLineItems tables and it starts with Item. For example, the following will insert a new SalesOrder with two Line Items:

    INSERT INTO SalesOrders (CustomerName, ItemAggregate)
    VALUES ('Cook, Brian',
    '<SalesOrderLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </SalesOrderLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    ReferenceNumber String False 21 Transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String False 1000 Customer name this transaction is recorded under. This is required to have a value when inserting.
    CustomerId String False Customers.ID 255 Customer ID this transaction is recorded under.
    Date Date False Transaction date.
    ShipMethod String False 1000 Shipping method.
    ShipMethodId String False ShippingMethods.ID 255 Shipping method.
    ShipDate Date False Shipping date.
    Memo String False 5000 Memo regarding this transaction.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    TotalAmount Decimal False Total amount for this transaction.
    DueDate Date False Date the payment is due.
    Message String False 101 Message to the customer.
    MessageId String False CustomerMessages.ID 255 Message to the customer.
    SalesRep String False 5 Reference to (the initials of) the sales rep.
    SalesRepId String False SalesReps.ID 255 Reference to the sales rep.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    CurrencyName String False 64 Name of the currency code used for this sales order.
    CurrencyId String False Currency.ID 255 Id of the currency code used for this sales order.
    ExchangeRate Double False Currency exchange rate for this sales order.
    TotalAmountInHomeCurrency Decimal False Returned for transactions in currencies different from the merchant's home currency.
    FOB String False 13 Freight on board: The place to ship from.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address.
    BillingState String False 255 State name for the billing address.
    BillingPostalCode String False 30 Postal code for the billing address.
    BillingCountry String False 255 Country for the billing address.
    BillingNote String False 41 Note for the billing address.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address.
    ShippingState String False 255 State name for the shipping address.
    ShippingPostalCode String False 30 Postal code for the shipping address.
    ShippingCountry String False 255 Country for the shipping address.
    ShippingNote String False 41 Note for the shipping address.
    Subtotal Decimal True Gross subtotal. This does not include tax or the amount already paid.
    Tax Double True Total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True Percentage charged for sales tax.
    PONumber String False 41 Purchase order number.
    Terms String False 100 Payment terms.
    TermsId String False 255 Payment terms.
    ItemCount Integer True The count of item entries for this transaction.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a SalesOrders and its Line Item data.
    TransactionCount Integer True The count of related transactions to the bill.
    TransactionAggregate String True 5000 An aggregate of the linked transaction data.
    CustomerTaxCode String False 3 The tax code specific to this customer.
    CustomerTaxCodeId String False SalesTaxCodes.ID 255 The tax code specific to this customer.
    IsPrinted Boolean True Whether this invoice is to be printed.
    IsManuallyClosed String False 10 Whether this sales order is manually closed.
    IsFullyInvoiced Boolean True Whether this sales order is fully invoiced.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount.
    IsToBePrinted Boolean False Whether this sales order is to be printed.
    IsToBeEmailed Boolean False Whether this sales order is to be emailed.
    Other String False 29 A predefined QuickBooks custom field.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the sales order was last modified.
    TimeCreated Datetime True When the sales order was created.
    ShippingDetailTrackingID Integer True The Tracking ID of Sales order which is already shipped.
    ShippingDetailCarrierName String True The Carries Name of Sales Order which is already shipped.
    ShippingDetailShippingMethod String True The Shipping Method of Sales Order which is already shipped.
    ShippingDetailShippingCharges Decimal True The Shipping Charges of Sales Order which is already shipped.
    FulfillmentStatus String True The Sales order Fulfillment Status details.
    SOChannel String True Sales Channel Name.
    StoreName String True Sales Store Name.
    StoreType String True Sales Store type.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.

    SalesReceiptLineItems

    Create, update, delete, and query QuickBooks Sales Receipt Line Items.

    Table Specific Information

    SalesReceipts may be inserted, queried, or updated via the SalesReceipts or SalesReceiptLineItems tables. SalesReceipts may be deleted by using the SalesReceipts table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesReceipts are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, DepositAccount, and DepositAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM SalesReceiptLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a SalesReceipt, specify the Customer column and at least one Line Item. All Line Item columns can be used for inserting multiple Line Items for a new SalesReceipt transaction. For example, the following will insert a new SalesReceipt with two Line Items:

    INSERT INTO SalesReceiptLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Cook, Brian', 'Repairs', 1)
    INSERT INTO SalesReceiptLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Cook, Brian', 'Removal', 2)
    INSERT INTO SalesReceiptLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM SalesReceiptLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format SalesReceiptId|ItemLineId.
    SalesReceiptId String False SalesReceipts.ID 255 The item identifier.
    ReferenceNumber String False 21 Transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, but not the QuickBooks-generated Id.
    CustomerName String False 1000 Customer name this transaction is recorded under.
    CustomerId String False Customers.ID 255 Customer ID this transaction is recorded under.
    Date Date False Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ShipMethod String False 1000 Shipping method.
    ShipMethodId String False ShippingMethods.ID 255 Shipping method.
    ShipDate Date False Shipping date.
    Memo String False 5000 Memo regarding this transaction.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    DueDate Date False The date when payment is due.
    TotalAmount Decimal True Total amount for this transaction.
    Message String False 101 Message to the customer.
    MessageId String False CustomerMessages.ID 255 Message to the customer.
    SalesRep String False 5 Reference to (the initials of) the sales rep.
    SalesRepId String False SalesReps.ID 255 Reference to the sales rep.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    ExchangeRate Double False Currency exchange rate for this sales receipt.
    FOB String False 13 Freight on board: The place to ship from.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address.
    BillingState String False 255 State name for the billing address.
    BillingPostalCode String False 30 Postal code for the billing address.
    BillingCountry String False 255 Country for the billing address.
    BillingNote String False 41 Note for the billing address.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address.
    ShippingState String False 255 State name for the shipping address.
    ShippingPostalCode String False 30 Postal code for the shipping address.
    ShippingCountry String False 255 Country for the shipping address.
    ShippingNote String False 41 Note for the shipping address.
    Subtotal Decimal True Gross subtotal. This does not include tax or the amount already paid.
    Tax Double True Total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True Percentage charged for sales tax.
    IsPending Boolean False Transaction status (whether this transaction has been completed or it is still pending).
    IsToBePrinted Boolean False Whether this transaction is to be printed.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. This is only available in the UK and CA editions.
    IsToBeEmailed Boolean False When true, if no email address is on file for the customer the transaction will fail.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item identifier.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group Id. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemRate Double False The unit rate charged for this item.
    ItemRatePercent Double False The rate percent charged for this item.
    ItemTaxCode String False 3 Sales tax information for this item (taxable or nontaxable).
    ItemTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item.
    ItemAmount Decimal False Total amount for this item.
    ItemInventorySiteName String False 31 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteId String False InventorySites.ID 255 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemSerialNumber String False 5000 The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemLotNumber String False 40 The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.
    ItemExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. It is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0.
    ItemClass String False 1000 The class name of the item.
    ItemClassId String False Class.ID 255 The class ID of the item.
    ItemUOMSetFullName String False 1000 Indicates the price of something as a percent.
    ItemUOMSetListID String False UnitOfMeasure.ID 1000 Indicates the price of something as a percent.
    ItemIsGetPrintItemsInGroup String False 1000 If true, a list of this group's individual items their amounts will appear on printed forms.
    CheckNumber String False 25 Check number.
    PaymentMethod String False 100 Payment method.
    PaymentMethodId String False PaymentMethods.ID 255 Payment method.
    DepositAccount String False 1000 Account name where this payment is deposited.
    DepositAccountId String False Accounts.ID 255 Account name where this payment is deposited.
    CustomerTaxCode String True 3 The tax code specific to this customer.
    CustomerTaxCodeId String True SalesTaxCodes.ID 255 The tax code specific to this customer.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the sales receipt was last modified.
    TimeCreated Datetime True When the sales receipt was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String Item price level name. QuickBooks will not return the price level.
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    SalesReceipts

    Create, update, delete, and query QuickBooks Sales Receipts.

    Table Specific Information

    SalesReceipts may be inserted, queried, or updated via the SalesReceipts or SalesReceiptLineItems tables. SalesReceipts may be deleted by using the SalesReceipts table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesReceipts are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, DepositAccount, and DepositAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM SalesReceipts WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a SalesReceipt, specify the Customer and at least one Line Item. The ItemAggregate columns may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the SalesReceiptLineItems table and it starts with Item. For example, the following will insert a new SalesReceipt with two Line Items:

    INSERT INTO SalesReceipts (CustomerName, ItemAggregate)
    VALUES ('Cook, Brian',
    '<SalesReceiptLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </SalesReceiptLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    ReferenceNumber String False 21 Transaction reference number.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, but not the QuickBooks-generated Id.
    CustomerName String False 1000 Customer name this transaction is recorded under.
    CustomerId String False Customers.ID 255 Customer ID this transaction is recorded under.
    Date Date False Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    ShipMethod String False 1000 Shipping method.
    ShipMethodId String False ShippingMethods.ID 255 Shipping method.
    ShipDate Date False Shipping date.
    Memo String False 5000 Memo regarding this transaction.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    DueDate Date False The date when payment is due.
    TotalAmount Decimal True Total amount for this transaction.
    Message String False 101 Message to the customer.
    MessageId String False CustomerMessages.ID 255 Message to the customer.
    SalesRep String False 5 Reference to (the initials of) the sales rep.
    SalesRepId String False SalesReps.ID 255 Reference to the sales rep.
    Template String False 100 The name of an existing template to apply to the transaction.
    TemplateId String False Templates.ID 255 The ID of an existing template to apply to the transaction.
    ExchangeRate Double False Currency exchange rate for this sales receipt.
    FOB String False 13 Freight on board: The place to ship from.
    BillingAddress String True Full billing address returned by QuickBooks.
    BillingLine1 String False 500 First line of the billing address.
    BillingLine2 String False 500 Second line of the billing address.
    BillingLine3 String False 500 Third line of the billing address.
    BillingLine4 String False 500 Fourth line of the billing address.
    BillingLine5 String False 41 Fifth line of the billing address.
    BillingCity String False 255 City name for the billing address.
    BillingState String False 255 State name for the billing address.
    BillingPostalCode String False 30 Postal code for the billing address.
    BillingCountry String False 255 Country for the billing address.
    BillingNote String False 41 Note for the billing address.
    ShippingAddress String True Full shipping address returned by QuickBooks.
    ShippingLine1 String False 500 First line of the shipping address.
    ShippingLine2 String False 500 Second line of the shipping address.
    ShippingLine3 String False 500 Third line of the shipping address.
    ShippingLine4 String False 500 Fourth line of the shipping address.
    ShippingLine5 String False 41 Fifth line of the shipping address.
    ShippingCity String False 255 City name for the shipping address.
    ShippingState String False 255 State name for the shipping address.
    ShippingPostalCode String False 30 Postal code for the shipping address.
    ShippingCountry String False 255 Country for the shipping address.
    ShippingNote String False 41 Note for the shipping address.
    Subtotal Decimal True Gross subtotal. This does not include tax or the amount already paid.
    Tax Double True Total sales tax applied to this transaction.
    TaxItem String False 100 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxItemId String False SalesTaxItems.ID 255 A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.
    TaxPercent Double True Percentage charged for sales tax.
    IsPending Boolean False Transaction status (whether this transaction has been completed or it is still pending).
    IsToBePrinted Boolean False Whether this transaction is to be printed.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount. This is only available in UK and CA editions.
    IsToBeEmailed Boolean False When true, if no email address is on file for the customer the transaction will fail.
    ItemCount Integer True The count of item entries for this transaction.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a sales receipt and its line item data.
    CheckNumber String False 25 Check number.
    PaymentMethod String False 100 Payment method.
    PaymentMethodId String False PaymentMethods.ID 255 Payment method.
    DepositAccount String False 1000 Account name where this payment is deposited.
    DepositAccountId String False Accounts.ID 255 Account name where this payment is deposited.
    CustomerTaxCode String True 3 The tax code specific to this customer.
    CustomerTaxCodeId String True SalesTaxCodes.ID 255 The tax code specific to this customer.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the sales receipt was last modified.
    TimeCreated Datetime True When the sales receipt was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.

    SalesReps

    Create, update, delete, and query QuickBooks Sales Rep entities.

    Table Specific Information
    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesReps are Id, TimeModified, Initial, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM SalesReps WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Initial LIKE '%12345%'
    
    Insert

    To insert a SalesRep, specify the Initial column and an existing SalesRepEntityRef. The SalesRepEntityRef can be taken from an existing entity (Employee, Vendor, or OtherName).

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The ID of the sales rep.
    Initial String False 5 The initials of the sales rep. These must be unique for each record.
    IsActive Boolean False Boolean indicating if the sales rep is active.
    SalesRepEntityRef_FullName String False 1000 Refers to the sales rep's full name on the employee, vendor, or other-name list. You may specify either SalesRepEntityRef_FullName or SalesRepEntityRef_ListId on insert/update statements, but not both.
    SalesRepEntityRef_ListId String False 255 Refers to the sales rep's ID on the employee, vendor, or other-name list. You may specify either SalesRepEntityRef_FullNamee or SalesRepEntityRef_ListId on insert/update statements, but not both.
    EditSequence String True 16 A string indicating the revision of the sales rep.
    TimeCreated Datetime True The time the sales rep was created.
    TimeModified Datetime True The time the sales rep was modified.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    MaxResults String Maximum number of results to return.

    SalesTaxCodes

    Create, update, delete, and query QuickBooks Sales Tax Codes.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    Name String False 3 The name of the sales tax code.
    Description String False 31 The description of the sales tax code.
    IsActive Boolean False Whether or not the other name is active.
    IsTaxable Boolean False Whether or not the other name is taxable.
    ItemPurchaseTaxRef_FullName String False 1000 Refers to the purchase tax item. Only available in international versions of QuickBooks.
    ItemPurchaseTaxRef_ListId String False 255 Refers to the purchase tax item. Only available in international versions of QuickBooks.
    ItemSalesTaxRef_FullName String False 1000 Refers to the sales tax item. Only available in international versions of QuickBooks.
    ItemSalesTaxRef_ListId String False SalesTaxItems.ID 255 Refers to the sales tax item. Only available in international versions of QuickBooks.
    TimeCreated Datetime True The datetime the sales tax code was made.
    TimeModified Datetime True The last datetime the sales tax code was modified.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.

    SalesTaxItems

    Create, update, delete, and query QuickBooks Sales Tax Items.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    Name String False 31 The name of the other name. This is required to have a value when inserting.
    IsActive Boolean False Whether or not the other name is active.
    ClassRef_FullName String False 1000 A reference to the class of the transaction. Requires QBXML version 12.0 or later.
    ClassRef_ListID String False Class.ID 255 A reference to the class of the transaction. Requires QBXML version 12.0 or later.
    ItemDesc String False 4096 A description for the sales tax item.
    TaxRate Double False The tax rate. If a nonzero TaxRate is specified, then TaxVendorRef is required.
    TaxVendorRef_FullName String False 1000 Refers to the tax agency to whom collected taxes are owed. This will be a vendor on the vendor list.
    TaxVendorRef_ListID String False Vendors.ID 255 Refers to the tax agency to whom collected taxes are owed. This will be a vendor on the vendor list.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the sales tax item was last modified.
    TimeCreated Datetime True When the sales tax item was created.

    ShippingMethods

    Create, update, delete, and query QuickBooks Shipping Methods.

    Table Specific Information
    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for ShippingMethods are Id, TimeModified, Name, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM ShippingMethods WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Name LIKE '%12345%'
    
    Insert

    To insert a ShippingMethod, specify the Name column.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the shipping method.
    Name String False 15 The name of the shipping method.
    IsActive Boolean False Boolean determining if the shipping method is active.
    EditSequence String True 16 A string indicating the revision of the shipping method.
    TimeCreated Datetime True The time the shipping method was created.
    TimeModified Datetime True The last time the shipping method was modified.

    StandardTerms

    Create, update, delete, and query QuickBooks Standard Terms.

    Table Specific Information
    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for StandardTerms records are Id, TimeModified, Name, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM StandardTerms WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Name LIKE '%12345%'
    
    Insert

    To insert a StandardTerm, specify the Name column.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The ID of the standard term.
    Name String False 100 The name of the standard term.
    IsActive Boolean False Boolean indicating if the standard term is active.
    StdDueDays Integer False The number of days until payment is due.
    StdDiscountDays Integer False If payment is received within StdDiscountDays number of the days, then DiscountPct will apply to the payment.
    DiscountPct Double False If payment is received within StdDiscountDays number of days, then this discount will apply to the payment. DiscountPct must be between 0 and 100.
    EditSequence String True 16 A string indicating the revision of the standard term.
    TimeCreated Datetime True The time the standard term was created.
    TimeModified Datetime True The time the standard term was modified.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    MaxResults String Maximum number of results to return.

    StatementCharges

    Create, update, delete, and query QuickBooks Statement Charges.

    Table Specific Information

    To add a StatementCharge, specify the CustomerName or CustomerId and the ItemName or ItemId.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for StatementCharges are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, IsPaid, AccountsReceivable, and AccountsReceivableId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM StatementCharges WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    ReferenceNumber String False Transaction reference number.
    CustomerName String False 1000 Customer name this transaction is recorded under. Either CustomerName or CustomerId must have a value when inserting.
    CustomerId String False Customers.ID 255 Customer ID this transaction is recorded under. Either CustomerName or CustomerId must have a value when inserting.
    Date Date False Transaction date.
    ItemName String False A reference to the item for the transaction.
    ItemId String False Items.ID A reference to the item for the transaction.
    Quantity Double False Quantity in stock for this inventory item.
    UnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    OverrideUnitOfMeasure String False 100 When you modify a transaction line to change the unit of measure used in that line, you use this to specify the UOM set within which you are choosing an available unit of measure. Only available in QBXML Version 7.0 and above.
    OverrideUnitOfMeasureId String False UnitOfMeasure.ID When you modify a transaction line to change the unit of measure used in that line, you use this to specify the UOM set within which you are choosing an available unit of measure. Only available in QBXML Version 7.0 and above.
    Rate Double False The unit rate charged for this item.
    Amount Decimal False Amount of the transaction.
    Balance Double True The balance remaining on the transaction.
    Description String False A textual description of the StatementCharge.
    AccountsReceivable String False 1000 A reference to the name of the accounts-receivable account where the money received from this transaction will be deposited.
    AccountsReceivableId String False Accounts.ID A reference to the ID of the accounts-receivable account where the money received from this transaction will be deposited.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID A reference to the class of the transaction.
    BilledDate Date False Date when the customer was billed.
    DueDate Date False Date when the payment is due.
    IsPaid Boolean True Indicates whether this statement charge has been paid.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the statement charge was last modified.
    TimeCreated Datetime True When the statement charge was created.

    TimeTracking

    Create, update, delete, and query QuickBooks Time Tracking events.

    Table Specific Information

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for TimeTracking entries are Id, TimeModified, Date, EmployeeName, and EmployeeId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM TimeTracking WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To insert a TimeTracking entry, specify the Employee and Duration columns.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 An ID is an alphanumerical identifier assigned by the server whenever an object is added to QuickBooks. It is guaranteed to be unique across all objects of the same type.
    BillableStatus String False 15 The billing status of this line item. If the billing status is empty (that is, if no billing status appears in QuickBooks), then no BillableStatus value will be returned. The allowed values are Empty, Billable, NotBillable, HasBeenBilled.
    Date Date False The date of the transaction. The standard formatting for dates is YYYY-MM-DD; i.e., September 2, 2002 is formatted as 2002-09-02. When getting the value of a date property, the date will always be in this format. This is required to have a value when inserting.
    CustomerName String False 1000 The Customer property indicates the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerID is empty and BillableStatus is not NotBillable.
    CustomerId String False Customers.ID 255 The Customer property indicates the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerName is empty and BillableStatus is not NotBillable.
    Duration String False 50 The duration of time being tracked. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'.
    EmployeeName String False 1000 A reference to the employee or subcontractor whose time is being tracked. The person is typically an employee but may be a vendor or defined in an other-name record as well. This is required to have a value when inserting if EmployeeId is empty.
    EmployeeId String False Employees.ID 255 A reference to the employee or subcontractor whose time is being tracked. The person is typically an employee but may be a vendor or defined in an other-name record as well. This is required to have a value when inserting if EmployeeName is empty.
    Notes String False 5000 Notes about this transaction.
    Class String False 1000 A reference to the class of the transaction.
    ClassId String False Class.ID 255 A reference to the class of the transaction.
    PayrollWageItemName String False 100 A payment scheme, such as Regular Pay, Overtime Pay, etc. This property may only be specified if (1) the employee specified refers to an employee, and not a vendor or subcontractor, and (2) the 'Use time data to create paychecks' option is selected for this employee (from within the QuickBooks UI.)
    PayrollWageItemId String False PayrollWageItems.ID 255 A payment scheme, such as Regular Pay, Overtime Pay, etc. This property may only be specified if (1) the employee specified refers to an employee, and not a vendor or subcontractor, and (2) the 'Use time data to create paychecks' option is selected for this employee from within the QuickBooks UI.
    ServiceItemName String False 1000 The type of work being performed. If a Customer is not specified, ServiceItem is not needed. If BillableStatus is set to Billable, then both ServiceItem and Customer are required. This is required to have a value when inserting if ServiceItemID is empty.
    ServiceItemId String False Items.ID 255 The type of work being performed. If a Customer is not specified, ServiceItem is not needed. If BillableStatus is set to Billable, then both ServiceItem and Customer are required. This is required to have a value when inserting if ServiceItemName is empty.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.
    TimeModified Datetime True When the time-tracking event was last modified.
    TimeCreated Datetime True When the time-tracking event was created.

    ToDo

    Create, update, delete, and query QuickBooks To Do entries.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the vendor type.
    Notes String False Notes on this to do entry.
    IsActive Boolean False Boolean determining if the vendor type is active.
    Type String False Type of this to do entry. Requires QBXML Version 13.0 or higher.
    Priority String False Priority of this to do entry. Requires QBXML Version 13.0 or higher.
    IsDone Boolean False Whether or not this to do entry is complete.
    ReminderDate Datetime False Reminder date for this to do entry.
    ReminderTime String False Reminder time for this to do entry. Requires QBXML Version 13.0 or higher.
    EditSequence String True 16 A string indicating the revision of the payment method.
    TimeCreated Datetime True The time the vendor type was created.
    TimeModified Datetime True The last time the vendor type was modified.

    TransferInventory

    Query and delete QuickBooks Transfer Inventory transactions. Transfer Inventory is available in only QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on.

    Table Specific Information

    TransferInventory transactions may be queried via the TransferInventory or TransferInventoryLineItems tables. TransferInventory transactions may be added by using the TransferInventoryLineItems table. TransferInventory transactions may be deleted by using the TransferInventory table. Updates to existing TransferInventory transactions are not supported at this time.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the TransferInventory table are Id, TimeModified, TxnDate, and RefNumber. TimeModified and TxnDate may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. RefNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM TransferInventoryLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND RefNumber LIKE '%12345%'
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    TxnDate Date False The date of the transaction.
    TxnNumber Integer True An identifying number for this transaction.
    RefNumber String False 21 The transaction reference number.
    FromInventorySiteRef_ListID String False InventorySites.ID 255 The site inventory was transfered from.
    FromInventorySiteRef_FullName String False 31 The site inventory was transfered from.
    ToInventorySiteRef_ListID String False InventorySites.ID 255 The site inventory was transfered to.
    ToInventorySiteRef_FullName String False 31 The site inventory was transfered to.
    Memo String False 5000 Additional information about the transaction.
    ExternalGUID String False Allows for the attachment of a user defined GUID value.
    TransferInventoryLineAggregate String False 5000 An aggregate of the line item data which can be used for adding a transfer inventory and its line item data.
    TimeCreated Datetime True The datetime the transaction was made.
    TimeModified Datetime True The last datetime the transaction was modified.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.

    TransferInventoryLineItems

    Create and query QuickBooks Transfer Inventory Line Items. Transfer Inventory is available in only QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on.

    Table Specific Information

    TransferInventory transactions may be queried via the TransferInventory or TransferInventoryLineItems tables. TransferInventory transactions may be added by using the TransferInventoryLineItems table. Transfer-inventory transactions may be deleted by using the TransferInventory table. Updates to existing TransferInventory transactions are not supported at this time.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the TransferInventory table are Id, TxnDate, TimeModified, and RefNumber. TimeModified and TxnDate may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. RefNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM TransferInventoryLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND RefNumber LIKE '%12345%'
    
    Insert

    To add a TransferInventory transaction, specify a FromInventorySite, ToInventorySite, and at least one Line Item. All Line Item columns can be used for inserting multiple Line Items for a new TransferInventory transaction. For example, the following will insert a new TransferInventory transaction with one Line Items:

    INSERT INTO TransferInventoryLineItems#TEMP (FromInventorySiteRef_FullName, ToInventorySiteRef_FullName, ItemRef_FullName, QuantityToTransfer) VALUES ('Site A', 'Site B', 'Cabinets', 10)
    INSERT INTO TransferInventoryLineItems#TEMP (FromInventorySiteRef_FullName, ToInventorySiteRef_FullName, ItemRef_FullName, QuantityToTransfer) VALUES ('Site A', 'Site B', 'Door Knobs', 12)
    INSERT INTO TransferInventoryLineItems (FromInventorySiteRef_FullName, ToInventorySiteRef_FullName, ItemRef_FullName, QuantityToTransfer ) SELECT FromInventorySiteRef_FullName, ToInventorySiteRef_FullName, ItemRef_FullName, QuantityToTransfer FROM TransferInventoryLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format TransferInventoryId|TransferInventoryLineRet_TxnLineID.
    TransferInventoryId String False 255 The item identifier.
    TxnDate Date False The date of the transaction.
    TxnNumber Integer True An identifying number for this transaction.
    RefNumber String False 21 The transaction reference number.
    FromInventorySiteRef_ListID String False InventorySites.ID 255 The site inventory was transfered from.
    FromInventorySiteRef_FullName String False 31 The site inventory was transfered from.
    ToInventorySiteRef_ListID String False InventorySites.ID 255 The site inventory was transfered to.
    ToInventorySiteRef_FullName String False 31 The site inventory was transfered to.
    Memo String False 5000 Additional information about the transaction.
    ExternalGUID String False Allows for the attachment of a user-defined GUID value.
    TransferInventoryLineRet_TxnLineID String True 255 Identifying number for the transaction line.
    TransferInventoryLineRet_ItemRef_ListID String False Items.ID 255 A reference to the item that was transfered.
    TransferInventoryLineRet_ItemRef_FullName String False Name of the item that was transfered.
    TransferInventoryLineRet_FromInventorySiteLocationRef_ListID String False 255 A reference to the location to transfer from.
    TransferInventoryLineRet_FromInventorySiteLocationRef_FullName String False Name of the location to transfer from.
    TransferInventoryLineRet_ToInventorySiteLocationRef_ListID String False 255 A reference to the location to transfer to.
    TransferInventoryLineRet_ToInventorySiteLocationRef_FullName String False Name of the location to transfer to.
    TransferInventoryLineRet_QuantityToTransfer Double False Quantity of items to transfer. This is an input only. Check the TransferInventoryLineRet_QuantityTransferred for the response.
    TransferInventoryLineRet_QuantityTransferred Double True Quantity of items that were transfered. This is an output only.
    TransferInventoryLineRet_SerialNumber String False 5000 The serial number of the asset.
    TransferInventoryLineRet_LotNumber String False 40 A lot number the item is stored on.
    TimeCreated Datetime True The datetime the transaction was made.
    TimeModified Datetime True The last datetime the transaction was modified.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.

    Transfers

    Create, update, and query QuickBooks transfers. Requires QBXML version 12.0 or higher.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    TxnNumber String True 21 The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    TxnDate Date False The date of the transaction.
    TransferFromAccountRef_ListID String False Accounts.ID 255 The ID for the account from which the funds will be transfered.
    TransferFromAccountRef_FullName String False 1000 The account from which the funds will be transfered.
    FromAccountBalance Double True The balance of the account from which the funds will be transfered.
    TransferToAccountRef_ListID String False Accounts.ID 255 The ID for the account to which the funds will be transfered.
    TransferToAccountRef_FullName String False 1000 The account to which the funds will be transfered.
    ToAccountBalance Double True The balance of the account to which the funds will be transfered.
    ClassRef_ListID String False Class.ID 255 A reference to the class of the transaction.
    ClassRef_FullName String False 1000 A reference to the class of the transaction.
    Amount Decimal False The total amount for this transfer.
    Memo String False 5000 Memo for the transaction.
    TimeCreated Datetime True The datetime the other name was made.
    TimeModified Datetime True The last datetime the other name was modified.
    EditSequence String True 16 An identifier used for versioning for this copy of the object.

    UnitOfMeasure

    Create, update, delete, and query QuickBooks units of measure. QuickBooks requires QBXML version 7.0 or higher to use this table.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the unit of measure.
    Name String False 31 The name of the unit of measure.
    IsActive Boolean False Boolean determining if the unit of measure is active.
    UnitOfMeasureType String False 1000 The type of the unit of measure such as Count.
    BaseUnit_Name String False 31 The name of the base unit of measure.
    BaseUnit_Abbreviation String False 31 The abbreviation for the base unit of measure.
    RelatedUnitAggregate String False 5000 An XML aggregate containing the related units of measure.
    DefaultUnitAggregate String False 5000 An XML aggregate containing the default units of measure.
    EditSequence String True 16 A string indicating the revision of the unit of measure entity.
    TimeCreated Datetime True The time the unit of measure entity was created.
    TimeModified Datetime True The last time the unit of measure entity was modified.

    UnitOfMeasureDefaultUnits

    Create and query QuickBooks unit-of-measure default units. QuickBooks requires QBXML version 7.0 or higher to use this table.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the unit-of-measure default unit.
    UnitOfMeasureSetId String False UnitOfMeasure.ID 255 The item identifier of the unit of measure.
    Name String False 31 The name of the unit of measure.
    IsActive Boolean False Boolean determining if the unit of measure is active.
    UnitOfMeasureType String False 1000 The type of unit of measure, such as Count.
    BaseUnit_Name String False 31 The name of the base unit of measure.
    BaseUnit_Abbreviation String False 31 The abbreviation for the base unit of measure.
    DefaultUnit_UnitUsedFor String False 100 What the default unit is used for.
    DefaultUnit_Unit String False 31 The default unit.
    EditSequence String True 16 A string indicating the revision of the record.
    TimeCreated Datetime True The time the record was created.
    TimeModified Datetime True The last time the record was modified.

    UnitOfMeasureRelatedUnits

    Create and query QuickBooks unit-of-measure related units. QuickBooks requires QBXML version 7.0 or higher to use this table.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the unit-of-measure related unit.
    UnitOfMeasureSetId String False UnitOfMeasure.ID 255 The item identifier of the unit of measure.
    Name String False 31 The name of the unit of measure.
    IsActive Boolean False Boolean determining if the unit of measure is active.
    UnitOfMeasureType String False 1000 The type of unit of measure, such as Count.
    BaseUnit_Name String False 31 The name of the base unit of measure.
    BaseUnit_Abbreviation String False 31 The abbreviation for the base unit of measure.
    RelatedUnit_Name String False 31 The name of the related unit of measure.
    RelatedUnit_Abbreviation String False 31 The abbreviation of the related unit of measure.
    RelatedUnit_ConversionRatio String False 5000 The conversion ratio of the related unit of measure.
    EditSequence String True 16 A string indicating the revision of the record.
    TimeCreated Datetime True The time the record was created.
    TimeModified Datetime True The last time the record was modified.

    VehicleMileage

    Create, update, delete, and query QuickBooks Vehicle Mileage entities. QuickBooks requires QBXML version 6.0 or higher to use this table.

    Table Specific Information
    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the VehicleMileage table are Id, Name, and TimeModified. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM VehicleMileage WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Name LIKE '%12345%'
    
    Insert

    To insert a VehicleMileage entry, specify an existing VehicleRef and either TotalMiles or both OdometerStart and OdometerEnd.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The ID of the vehicle mileage.
    VehicleRef_FullName String False 100 The vehicle for use in vehicle mileage transactions. Each vehicle name must be unique.
    VehicleRef_ListID String False 255 The reference ID for the vehicle mileage transaction.
    CustomerRef_FullName String False 1000 The full name of a referenced customer in QuickBooks. You may specify only CustomerRef_FullName or CustomerRef_ListId on insert/update statements and not both.
    CustomerRef_ListID String False Customers.ID 255 The ID of the referenced customer in QuickBooks. You may specify only CustomerRef_FullName or CustomerRef_ListId on insert/update statements and not both.
    ItemRef_FullName String False A reference to the full name of an item in QuickBooks. You may specify only ItemRef_FullName or ItemRef_ListId on insert/update statements and not both.
    ItemRef_ListID String False Items.ID 255 A reference to the ID of an item in QuickBooks. You may specify only ItemRef_FullName or ItemRef_ListId on insert/update statements and not both.
    ClassRef_FullName String False 1000 A reference to the full name of a class in QuickBooks. You may specify only ClassRef_FullName or ClassRef_ListId on insert/update statements and not both.
    ClassRef_ListID String False Class.ID 255 A reference to the ID of a class in QuickBooks. You may specify only ClassRef_FullName or ClassRef_ListId on insert/update statements and not both.
    TripStartDate String False Date the trip began. If left blank on an insert, the current date at the time of the transaction will be used.
    TripEndDate String False The date the trip ended. If left blank on an insert, the current date at the time of the transaction will be used.
    OdometerStart Integer False Odometer reading at the start of the trip. If TotalMiles is specified, you cannot specify OdometerStart and OdometerEnd.
    OdometerEnd Integer False Odometer reading at the end of the trip. If TotalMiles is specified, you cannot specify OdometerStart and OdometerEnd.
    TotalMiles Double False Total trip miles. If TotalMiles is specified, you cannot specify OdometerStart and OdometerEnd.
    Notes String False 5000 Additional information.
    BillableStatus String False 13 The billig status of the vehicle mileage. The allowed values are Billable, NotBillable, HasBeenBilled.
    StandardMileageRate Double False The mileage rate currently allowed by the tax authority for vehicle expenses.
    StandardMileageTotalAmount Double False Amount calculated by multiplying the total trip miles in the current vehicle mileage transaction by the standard mileage rate currently in use.
    BillableRate Double False In a billable vehicle mileage transaction, refers to the rate being used to charge mileage to a customer. The rate is specified in the service item or the other charge item that is referenced in the ItemRef columns.
    BillableAmount Decimal False In a billable vehicle mileage transaction, this refers to the total charge that QuickBooks calculates by by multiplying the trip total mileage by the rate specified in the item referenced by the ItemRef columns.
    EditSequence String True 16 A string indicating the revision of the vehicle mileage transaction.
    TimeCreated Datetime True When the vehicle mileage was last modified.
    TimeModified Datetime True When the vehicle mileage was created.

    VendorCreditExpenseItems

    Create, update, delete, and query QuickBooks Vendor Credit Expense Line Items.

    Table Specific Information

    VendorCredits may be inserted, updated, or queried via the VendorCredits, VendorCreditExpenseItems, or VendorCreditLineItems tables. VendorCredits may be deleted by using the VendorCredits table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the VendorCredits table are Id, Date, TimeModified, VendorName, VendorId, AccountsPayableId, and AccountsPayableName. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM VendorCreditExpenseItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a VendorCredit, specify the Vendor and at least one Expense or Line Item. All Expense Line Item columns can be used for inserting multiple Expense Line Items for a new VendorCredit transaction. For example, the following will insert a new VendorCredit with two Expense Line Items:

    INSERT INTO VendorCreditExpenseItems#TEMP (VendorName, ExpenseAccount, ExpenseAmount) VALUES ('A Cheung Limited', 'Utilities:Telephone', 52.25)
    INSERT INTO VendorCreditExpenseItems#TEMP (VendorName, ExpenseAccount, ExpenseAmount) VALUES ('A Cheung Limited', 'Professional Fees:Accounting', 235.87)
    INSERT INTO VendorCreditExpenseItems (VendorName, ExpenseAccount, ExpenseAmount) SELECT VendorName, ExpenseAccount, ExpenseAmount FROM VendorCreditExpenseItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format VendorCreditId|ExpenseLineId.
    VendorCreditId String False VendorCredits.ID 255 The ID of the VendorCredit transaction.
    VendorName String False 1000 Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
    VendorId String False Vendors.ID 255 Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    ReferenceNumber String False 21 Reference number for the transaction.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False Accounts.ID 255 Reference to the accounts-payable account.
    Amount Decimal True Amount of the transaction.
    Memo String False 5000 Memo for the transaction.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount.
    TaxCode String False 3 The type of sales tax that will be charged for this vendor credit.
    TaxCodeId String False SalesTaxCodes.ID 255 The type of sales tax that will be charged for this vendor credit.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    ExchangeRate String False Indicates the exchange rate for the transaction.
    ExpenseLineId String True 255 The line item identifier.
    ExpenseLineNumber String True 255 The expense line number.
    ExpenseAccount String False 1000 The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAccountId String False Accounts.ID 255 The account ID for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.
    ExpenseAmount Decimal False The total amount of this expense line.
    ExpenseBillableStatus String False 13 The billing status of this expense line. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED. The default value is EMPTY.
    ExpenseCustomer String False 1000 The customer associated with this expense line.
    ExpenseCustomerId String False Customers.ID 255 The customer associated with this expense line.
    ExpenseClass String False 1000 The class name of this expense.
    ExpenseClassId String False Class.ID 255 The class ID of this expense.
    ExpenseTaxCode String False 3 Sales tax information for this item (taxable or non-taxable).
    ExpenseTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item (taxable or non-taxable).
    ExpenseMemo String False 5000 A memo for this expense line.
    TimeModified Datetime True When the inventory assembly was last modified.
    TimeCreated Datetime True When the inventory assembly was created.

    VendorCreditLineItems

    Create, update, delete, and query QuickBooks Vendor Credit Line Items.

    Table Specific Information

    VendorCredits may be inserted, updated, or queried via the VendorCredits, VendorCreditExpenseItems, or VendorCreditLineItems tables. VendorCredits may be deleted by using the VendorCredits table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the VendorCredits table are Id, Date, TimeModified, VendorName, VendorId, AccountsPayableId, and AccountsPayableName. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM VenderCreditLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a VendorCredit, specify a Vendor and at least one Expense or Line Item. All Line Item columns can be used for inserting multiple Line Items for a new VendorCredit transaction. For example, the following will insert a new VendorCredit with two Line Items:

    INSERT INTO VendorCreditLineItems#TEMP (VendorName, ItemName, ItemQuantity) VALUES ('A Cheung Limited', 'Repairs', 1)
    INSERT INTO VendorCreditLineItems#TEMP (VendorName, ItemName, ItemQuantity) VALUES ('A Cheung Limited', 'Removal', 2)
    INSERT INTO VendorCreditLineItems (VendorName, ItemName, ItemQuantity) SELECT VendorName, ItemName, ItemQuantity FROM VendorCreditLineItems#TEMP
    
    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier in the format VendorCreditId|ItemLineId.
    VendorCreditId String False VendorCredits.ID 255 The ID of the VendorCredit transaction.
    VendorName String False 1000 Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
    VendorId String False Vendors.ID 255 Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    ReferenceNumber String False 21 Reference number for the transaction.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False Accounts.ID 255 Reference to the accounts-payable account.
    Amount Decimal True Amount of the transaction.
    Memo String False 5000 Memo for the transaction.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount.
    TaxCode String False 3 The type of sales tax that will be charged for this vendor credit.
    TaxCodeId String False SalesTaxCodes.ID 255 The type of sales tax that will be charged for this vendor credit.
    ExchangeRate String False Indicates the exchange rate for the transaction.
    ItemLineId String True 255 The line item identifier.
    ItemLineNumber String True 255 The line item number.
    ItemAmount Decimal False The total amount of this vendor credit line item. This should be a positive number.
    ItemClass String False 1000 Specifies the class of the vendor credit line item.
    ItemClassId String False Class.ID 255 Specifies the class of the vendor credit line item.
    ItemTaxCode String False 3 Sales tax information for this item (taxable or non-taxable).
    ItemTaxCodeId String False SalesTaxCodes.ID 255 Sales tax information for this item (taxable or non-taxable).
    ItemName String False The item name.
    ItemId String False Items.ID 255 The item Id.
    ItemGroup String False 100 Item group name. Reference to a group of line items this item is part of.
    ItemGroupId String False Items.ID 255 Item group name. Reference to a group of line items this item is part of.
    ItemDescription String False 5000 A description of the item.
    ItemQuantity Double False The quantity of the item or item group specified in this line.
    ItemUnitOfMeasure String False 31 In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.
    ItemCost Double False The unit cost for an item.
    ItemBillableStatus String False 13 Billing status of the item. The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED. The default value is EMPTY.
    ItemCustomer String False 1000 The name of the customer who ordered the item.
    ItemCustomerId String False Customers.ID 255 The ID of the customer who ordered the item.
    ItemInventorySiteId String False InventorySites.ID 31 The inventory site ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteName String False 255 The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationId String False 31 The inventory site location ID of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ItemInventorySiteLocationName String False 255 The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.
    ExpirationDateForSerialLotNumber String True 1099 The expiration date for serial lot number of this item. It is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier for this copy of the object.
    TimeModified Datetime True When the vendor credit was last modified.
    TimeCreated Datetime True When the vendor credit was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemOverrideAccount String The Account Name used to override the default Account for the Item. This is only available during inserts and updates.
    ItemOverrideAccountId String The Account ID used to override the default Account for the Item. This is only available during inserts and updates.

    VendorCredits

    Create, update, delete, and query QuickBooks Vendor Credits.

    Table Specific Information

    VendorCredits may be inserted, updated, or queried via the VendorCredits, VendorCreditExpenseItems, or VendorCreditLineItems tables. VendorCredits may be deleted by using the VendorCredits table.

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for VendorCredits are Id, Date, TimeModified, VendorName, VendorId, AccountsPayableId, and AccountsPayableName. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM VendorCredits WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Insert

    To add a VendorCredit, specify a Vendor and at least one Expense or Line Item. The ItemAggregate and ExpenseAggregate columns may be used to specify an XML aggregate of Line Item or Expense Item data. The columns that may be used in these aggregates are defined in the VendorCreditLineItems and VendorCreditExpenseItems tables and it starts with Item and Expense. For example, the following will insert a new VendorCredit with two Line Items:

    INSERT INTO VendorCredits (VendorName, ItemAggregate)
    VALUES ('A Cheung Limited',
    '<VendorCreditLineItems>
    <Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>
    <Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>
    </VendorCreditLineItems>')
    

    To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True The refId of the record.
    VendorName String False 1000 Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
    VendorId String False Vendors.ID 255 Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
    Date Date False Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    TxnNumber Integer True The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    ReferenceNumber String False 21 Reference number for the transaction.
    AccountsPayable String False 1000 Reference to the accounts-payable account.
    AccountsPayableId String False Accounts.ID 255 Reference to the accounts-payable account.
    Amount Decimal True Amount of the transaction.
    Memo String False 5000 Memo for the transaction.
    IsTaxIncluded Boolean False Determines if tax is included in the transaction amount.
    TaxCode String False 3 The type of sales tax that will be charged for this vendor credit.
    TaxCodeId String False SalesTaxCodes.ID 255 The type of sales tax that will be charged for this vendor credit.
    ExchangeRate String False Indicates the exchange rate for the transaction.
    ItemCount Integer True The count of line items.
    ItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a vendor credit and its line item data.
    ExpenseItemCount Integer True The count of expense line items.
    ExpenseItemAggregate String False 5000 An aggregate of the line item data which can be used for adding a VendorCredit and its expense item data.
    TransactionCount Integer True The count of related transactions to the bill.
    TransactionAggregate String True 5000 An aggregate of the linked transaction data.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    TimeModified Datetime True When the vendor credit was last modified.
    TimeCreated Datetime True When the vendor credit was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    Item\* String All line-item-specific columns may be used in insertions.
    Expense\* String All expense-item-specific columns may be used in insertions.

    Vendors

    Create, update, delete, and query QuickBooks Vendors.

    Table Specific Information

    This table has a Custom Fields column. See the Custom Fields page for more information.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the Vendors table are Id, TimeModified, Balance, and Name. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Balance may be used with the >=, <=, or = conditions but cannot be used to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Vendors WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Name LIKE '%12345%'
    
    Insert

    To add a Vendor, specify the Name column.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the Vendor.
    Name String False 100 The vendor's name. This is required to have a value when inserting.
    Salutation String False 15 A salutation, such as Mr., Mrs., etc.
    FirstName String False 25 A first name.
    MiddleInitial String False 25 The middle initial.
    LastName String False 25 A last name.
    Company String False 50 The vendor's company name.
    Contact String False 1023 The contact's name.
    AccountNumber String False 99 The account number for this vendor.
    Type String False 1000 The type of vendor, predefined in QuickBooks.
    TypeId String False 255 The type of vendor, predefined in QuickBooks.
    CreditLimit Double False The credit limit for this vendor.
    TaxIdentity String False 20 String that identifies the vendor to the IRS.
    SalesTaxCountry String False 100 Identifies the country collecting applicable sales taxes. Only available in international editons of QuickBooks. QBXML version must be set to 8.0 or higher to use this field.
    AlternateContact String False 41 The alternate contact's name.
    Phone String False 21 The vendor's telephone number.
    Fax String False 21 The vendor's fax number.
    AlternatePhone String False 21 The vendor's alternate telephone number.
    Email String False 1023 The vendor's email address.
    Cc String False 1023 An additional email adress for a vendor.
    Notes String False 5000 Notes on this vendor.
    Address String True Full address returned by QuickBooks.
    Line1 String False 500 First line of the address.
    Line2 String False 500 Second line of the address.
    Line3 String False 500 Third line of the address.
    Line4 String False 500 Fourth line of the address.
    Line5 String False 41 Fifth line of the address.
    City String False 255 City name for the address of the vendor.
    State String False 255 State name for the address of the vendor.
    PostalCode String False 30 Postal code for the address of the vendor.
    Country String False 255 Country for the address of the vendor.
    Note String False 41 Note for the address of the vendor.
    ShippingAddress String True Full shipping address returned by QuickBooks. Requires QBXML Version 11.0 or higher.
    ShippingLine1 String False 500 First line of the shipping address. Requires QBXML Version 11.0 or higher.
    ShippingLine2 String False 500 Second line of the shipping address. Requires QBXML Version 11.0 or higher.
    ShippingLine3 String False 500 Third line of the shipping address. Requires QBXML Version 11.0 or higher.
    ShippingLine4 String False 500 Fourth line of the shipping address. Requires QBXML Version 11.0 or higher.
    ShippingLine5 String False 41 Fifth line of the shipping address. Requires QBXML Version 11.0 or higher.
    ShippingCity String False 255 City name for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.
    ShippingState String False 255 State name for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.
    ShippingPostalCode String False 30 Postal code for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.
    ShippingCountry String False 255 Country for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.
    ShippingNote String False 41 Note for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.
    Balance Double True Open balance for this vendor.
    Terms String False 100 A reference to terms of payment for this vendor. A typical example might be '2% 10 Net 60'. This field can be set in inserts but not in updates.
    TermsId String False 255 A reference to terms of payment for this vendor.
    EligibleFor1099 Boolean False Whether this vendor is eligible for 1099.
    NameOnCheck String False 110 The name to be printed on checks.
    CurrencyName String False 64 Name of the currency code used for this vendor. QBXML version must be set to 8.0 or higher to use this field.
    CurrencyId String False Currency.ID 255 Id of the currency code used for this vendor. QBXML version must be set to 8.0 or higher to use this field.
    IsActive Boolean False Whether or not the vendor is active.
    CustomFields String False Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String True 16 An identifier for this copy of the object.
    TimeModified Datetime True When the vendor was last modified.
    TimeCreated Datetime True When the vendor was created.
    PrefillAccountId1 String False Id of an Account Prefill defined for this vendor.
    PrefillAccountName1 String False Name of an Account Prefill defined for this vendor.
    PrefillAccountId2 String False Id of an Account Prefill defined for this vendor.
    PrefillAccountName2 String False Name of an Account Prefill defined for this vendor.
    PrefillAccountId3 String False Id of an Account Prefill defined for this vendor.
    PrefillAccountName3 String False Name of an Account Prefill defined for this vendor.

    VendorTypes

    Create, update, delete, and query QuickBooks Vendor Types.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier of the vendor type.
    Name String False 31 The name of the vendor type.
    FullName String False 159 The name of the vendor type.
    IsActive Boolean False Boolean determining if the vendor type is active.
    ParentRef_FullName String False Full name of the parent for the vendor type. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT/UPDATE statements and not both.
    ParentRef_ListId String False VendorTypes.ID 255 Id for the parent of the vendor type. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT/UPDATE statements and not both.
    Sublevel Integer True How many parents the vendor type has.
    EditSequence String True 16 A string indicating the revision of the payment method.
    TimeCreated Datetime True The time the vendor type was created.
    TimeModified Datetime True The last time the vendor type was modified.

    WorkersCompCodeLines

    Query QuickBooks Workers Comp Code entries by line. Requires QBXML Version 7.0 or higher.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    WorkersCompCodeId String False 255 The primary key of the workes comp code.
    Name String False 13 The name of the workers comp code. This is required to have a value when inserting.
    Desc String False 31 The description of the workers comp code.
    CurrentRate Double False Indicates the workers comp insurance premium rate that is currently in effect for the current comp code. If the code doesn't have a current effective date--that is, it has a future date only, then this field is empty.
    CurrentEffectiveDate Datetime False Indicates the date at which the workers' compensation code went into effect. This field contains a value only if the code is currently in effect. If the code has only a future date, then this field is empty.
    NextRate Double False Indicates the workers comp insurance premium rate that will occur after the current rate and effective date.
    NextEffectiveDate Datetime False Indicates the the first effective date that will occur after the current effective date.
    RateHistory_Rate Double False The rate of the workers comp code.
    RateHistory_EffectiveDate Datetime False Specifies the date at which the workers comp code and the related premium goes into effect.
    IsActive Boolean False Whether or not the workers comp code is active.
    TimeCreated Datetime True The datetime the entry was made.
    TimeModified Datetime True The last datetime the entry was modified.
    EditSequence String True An identifier used for versioning for this copy of the object.

    WorkersCompCodes

    Query QuickBooks Workers Comp Code entries. Requires QBXML Version 7.0 or higher.

    Columns
    Name Type ReadOnly References ColumnSize Description
    ID [KEY] String True 255 The unique identifier.
    Name String False 13 The name of the workers comp code. This is required to have a value when inserting.
    Desc String False 31 The description of the workers comp code.
    CurrentRate Double False Indicates the workers comp insurance premium rate that is currently in effect for the current comp code. If the code doesn't have a current effective date--that is, it has a future date only, then this field is empty.
    CurrentEffectiveDate Datetime False Indicates the date at which the workers' compensation code went into effect. This field contains a value only if the code is currently in effect. If the code has only a future date, then this field is empty.
    NextRate Double False Indicates the workers comp insurance premium rate that will occur after the current rate and effective date.
    NextEffectiveDate Datetime False Indicates the the first effective date that will occur after the current effective date.
    RateHistory String False The rate of the workers comp code.
    IsActive Boolean False Whether or not the workers comp code is active.
    TimeCreated Datetime True The datetime the entry was made.
    TimeModified Datetime True The last datetime the entry was modified.
    EditSequence String True An identifier used for versioning for this copy of the object.

    Views

    Views are similar to tables in the way that data is represented; however, views are read-only.

    Queries can be executed against a view as if it were a normal table.

    QuickBooks Connector Views

    Name Description
    BalanceSheetDetail Balance Sheet Detail Report.
    BalanceSheetStandard Balance Sheet Standard Report.
    BalanceSheetSummary Balance Sheet Summary Report.
    BillingRate Query QuickBooks Billing Rate. Requires QBXML Version 6.0 or higher.
    BillLinkedTransactions Query QuickBooks Bill Linked Transactions.
    CompanyInfo Query the company information from QuickBooks.
    CreditMemoLinkedTransactions Query QuickBooks Credit Memo Linked Transactions.
    CustomColumns Query QuickBooks Custom Columns.
    DeletedEntities Query deleted Entities.
    DeletedTransactions Query deleted Transactions.
    EmployeeStateTaxesDetail Returns information of employee state taxes detail report.
    EstimateLinkedTransactions Query QuickBooks Estimate Linked transactions.
    Host Query the QuickBooks host process. The Host represents information about the QuickBooks process currently being executed.
    InvoiceLinkedTransactions Query QuickBooks Invoice Linked Transactions.
    ItemReceiptLinkedTransactions Query QuickBooks Item Receipt Linked Transactions.
    ItemSites Create, update, delete, and query QuickBooks Item Sites. Item sites are only available in QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on. This table requires a minimum of QBXML version 10.0.
    PayrollItemDetail Returns information of Payroll item detail report (lists the payroll transactions on which each payroll item appears).
    PayrollReviewDetail Returns information of Payroll detail review report (provides detailed information about how QuickBooks calculates tax amounts on employee paychecks and in year-to-date transactions).
    PayrollTransactionDetail Returns information of Payroll transaction detail report (shows the line-item detail that appears on each payroll transaction).
    PayrollTransactionsByPayee Payroll transactions by payee report (lists payroll transactions, grouping them by payee).
    Preferences Query information about many of the preferences the QuickBooks user has set in the company file.
    ProfitAndLossDetail Profit & Loss Prev Year Comparison Report.
    ProfitAndLossStandard Profit & Loss YTD Comparison Report.
    PurchaseOrderLinkedTransactions Query QuickBooks Purchase Order Linked Transactions.
    ReceivePaymentToDeposit Returns information about payments that have been received and are ready to deposit.
    SalesOrderLinkedTransactions Query QuickBooks Sales Order Linked Transactions.
    StatementChargeLinkedTransactions Query QuickBooks Statement Charge Linked Transactions.
    Templates Query QuickBooks templates.
    Transactions Query QuickBooks transactions. You may search the Transactions using a number of values including Type, Entity, Account, ReferenceNumber, Item, Class, Date, and TimeModified.
    VendorCreditLinkedTransactions Query QuickBooks Vendor Credit Linked Transactions.

    BalanceSheetDetail

    Balance Sheet Detail Report.

    Columns
    Name Type References Description
    Label String The Label column of the BalanceSheetDetail report.
    Type String The Type column of the BalanceSheetDetail report.
    Date Date The Date column of the BalanceSheetDetail report.
    Num String The Num column of the BalanceSheetDetail report.
    Name String The Name column of the BalanceSheetDetail report.
    Memo String The Memo column of the BalanceSheetDetail report.
    Class String The Class column of the BalanceSheetDetail report.
    Clr String The Clr column of the BalanceSheetDetail report.
    Split String The Split column of the BalanceSheetDetail report.
    Amount Decimal The Amount column of the BalanceSheetDetail report.
    Balance Double The Balance column of the BalanceSheetDetail report.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    ReportDateRangeMacro String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    ModifiedDateRangeMacro String
    DetailLevel String
    PostingStatus String
    IncludeAccounts String
    ReportBasis String
    SummarizeRowsBy String

    BalanceSheetStandard

    Balance Sheet Standard Report.

    Columns
    Name Type References Description
    Label String The Label column of the BalanceSheetStandard report.
    Total Double The Total column of the BalanceSheetStandard report.
    AccountLabel String The Account label column of the BalanceSheetStandard report.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    ReportDateRangeMacro String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    ModifiedDateRangeMacro String
    DetailLevel String
    PostingStatus String
    ReportAsOf String
    ReportBasis String
    ReportCalendar String

    BalanceSheetSummary

    Balance Sheet Summary Report.

    Columns
    Name Type References Description
    Account String The Account column of the BalanceSheetSummary report.
    Total Double The Total column of the BalanceSheetSummary report.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    ReportDateRangeMacro String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    ModifiedDateRangeMacro String
    DetailLevel String
    PostingStatus String
    ReportBasis String
    ReturnColumns String
    ReturnRows String
    ReportCalendar String

    BillingRate

    Query QuickBooks Billing Rate. Requires QBXML Version 6.0 or higher.

    Columns
    Name Type References Description
    ListID String The unique identifier.
    Name String The entity full name.
    BillingRateType String Indicates whether the billing rate is a fixed rate or applies to specific service items.
    TimeCreated Datetime The time the object was created.
    TimeModified Datetime The last datetime the entry was modified.
    EditSequence String An identifier used for versioning for this copy of the object.

    BillLinkedTransactions

    Query QuickBooks Bill Linked Transactions.

    Table Specific Information

    Linked transactions are transactions that have been associated with the Bill specified by the BillId column.

    Select

    By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

    QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Bills are Id, Date, ReferenceNumber, VendorName, VendorId, AccountsPayable, AccountsPayableId, IsPaid, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

    SELECT * FROM Bills WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
    
    Columns
    Name Type References Description
    ID [KEY] String The unique identifier in the format BillId|ItemLineId.
    BillId String Bills.ID The item identifier.
    TransactionId String The ID of the linked transaction.
    TransactionAmount Decimal The amount of the linked transaction.
    TransactionDate Date The date of the linked transaction.
    TransactionReferenceNumber String The reference number of the linked transaction.
    TransactionType String The type of linked transaction.
    TransactionLinkType String The link type between the bill and the linked transaction.
    TimeModified Datetime When the bill was last modified.
    TimeCreated Datetime When the bill was created.

    CompanyInfo

    Query the company information from QuickBooks.

    Columns
    Name Type References Description
    ID [KEY] String The employer identification number of the company.
    Name String The company name.
    Type String The type of company.
    Address String Full address returned by QuickBooks.
    Line1 String First line of the address.
    Line2 String Second line of the address.
    Line3 String Third line of the address.
    Line4 String Fourth line of the address.
    Line5 String Fifth line of the address.
    City String City name for the address of the company.
    State String State name for the address of the company.
    PostalCode String Postal code for the address of the company.
    Country String Country for the address of the company.
    Note String Note for the address of the company.
    Email String Company email address.
    Phone String Company phone number.
    Fax String Company fax number.
    SSN String The SSN of the company.
    Taxform String The tax form used by the company.
    Website String Company website URL.
    FirstMonthFiscal String The first month in the fiscal year for the company.
    FirstMonthTax String The first month in the taxable year for the company.
    LegalAddress String Full legal address of the company.
    LegalCity String Legal city name for the company.
    LegalCountry String Legal country name for the company.
    LegalState String Legal state name for the company.
    LegalZip String Legal zip code for the company.
    LegalName String Legal company name.
    ShippingAddress String Full shipping address returned by QuickBooks.
    ShippingLine1 String First line of the shipping address.
    ShippingLine2 String Second line of the shipping address.
    ShippingLine3 String Third line of the shipping address.
    ShippingLine4 String Fourth line of the shipping address.
    ShippingLine5 String Fifth line of the shipping address.
    ShippingCity String City name for the shipping address of the company.
    ShippingState String State name for the shipping address of the company.
    ShippingPostalCode String Postal code for the shipping address of the company.
    ShippingCountry String Country for the shipping address of the company.
    ShippingNote String Note for the shipping address of the company.
    OpenedCompanyFile String The path to the currently opened company file in QuickBooks.

    CreditMemoLinkedTransactions

    Query QuickBooks Credit Memo Linked Transactions.

    Table Specific Information

    Linked transactions are transactions that have been associated with the CreditMemo specified by the CreditMemoId column.

    Columns
    Name Type References Description
    ID [KEY] String The unique identifier in the format CreditMemoId|ItemLineId.
    CreditMemoId String CreditMemos.ID The credit memo identifier.
    ReferenceNumber String The transaction reference number.
    TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    CustomerId String Customers.ID The ID of the customer on the credit memo.
    CustomerName String The name of the customer on the credit memo.
    TransactionId String The ID of the linked transaction.
    TransactionAmount Decimal The amount of the linked transaction.
    TransactionDate Date The date of the linked transaction.
    TransactionReferenceNumber String The reference number of the linked transaction.
    TransactionType String The type of linked transaction.
    TransactionLinkType String The link type between the credit memo and linked transaction.
    TimeModified Datetime When the credit memo was last modified.
    TimeCreated Datetime When the credit memo was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String

    CustomColumns

    Query QuickBooks Custom Columns.

    Columns
    Name Type References Description
    DataExtID [KEY] String The ID of a data extension.
    OwnerID String The owner of a data extension.
    DataExtName String The name of the data extension.
    DataExtType String The field's data type.
    AssignToObject String The object associated with the result.
    DataExtListRequire Boolean
    DataExtTxnRequire Boolean
    DataExtFormatString String

    DeletedEntities

    Query deleted Entities.

    Columns
    Name Type References Description
    ListID [KEY] String The unique identifier.
    ListDelType String The entity type. Valid values are Account, BillingRate, Class, Currency, Customer, CustomerMsg, CustomerType, DateDrivenTerms, Employee, InventorySite, ItemDiscount, ItemFixedAsset, ItemGroup, ItemInventory, ItemInventoryAssembly, ItemNonInventory, ItemOtherCharge, ItemPayment, ItemSalesTax, ItemSalesTaxGroup, ItemService, ItemSubtotal, JobType, OtherName, PaymentMethod, PayrollItemNonWage, PayrollItemWage, PriceLevel, SalesRep, SalesTaxCode, ShipMethod, StandardTerms, ToDo, UnitOfMeasureSet, Vehicle, Vendor, VendorType, WorkersCompCode
    FullName String The entity full name.
    TimeCreated Datetime The time the object was created.
    TimeDeleted Datetime The time the object was deleted.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    TimeModified String

    DeletedTransactions

    Query deleted Transactions.

    Columns
    Name Type References Description
    TxnID [KEY] String The unique identifier.
    TxnDelType String The transaction type. Valid values are ARRefundCreditCard, Bill, BillPaymentCheck, BillPaymentCreditCard, BuildAssembly, Charge, Check, CreditCardCharge, CreditCardCredit, CreditMemo, Deposit, Estimate, InventoryAdjustment, Invoice, ItemReceipt, JournalEntry, PurchaseOrder, ReceivePayment, SalesOrder, SalesReceipt, SalesTaxPaymentCheck, TimeTracking, TransferInventory, VehicleMileage, VendorCredit
    RefNumber String The transaction's reference number.
    TimeCreated Datetime The time the object was created.
    TimeDeleted Datetime The time the object was deleted.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    TimeModified String

    EmployeeStateTaxesDetail

    Returns information of employee state taxes detail report.

    Columns
    Name Type References Description
    Label String The Label column of the EmployeeStateTaxesDetail report.
    Source_Name String The Source_Name column of the EmployeeStateTaxesDetail report.
    SSN_Tax_ID String The SSN_Tax_ID column of the EmployeeStateTaxesDetail report.
    Date Date The Date column of the EmployeeStateTaxesDetail report.
    Payroll_Item String The Payroll_Item column of the EmployeeStateTaxesDetail report.
    Income_Subject_To_Tax Double The Income_Subject_To_Tax column of the EmployeeStateTaxesDetail report.
    Wage_Base Double The Wage_Base column of the EmployeeStateTaxesDetail report.
    Amount Double The Amount column of the EmployeeStateTaxesDetail report.
    RowType String The type of data in the row. For example, Text, Data, Subtotal, or Total.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    DetailLevel String
    PostingStatus String
    ReportAsOf String
    SummarizeColumnsBy String
    IncludeColumns String
    IncludeAccounts String
    SummarizeRowsBy String

    EstimateLinkedTransactions

    Query QuickBooks Estimate Linked transactions.

    Table Specific Information

    Linked transactions are transactions that have been associated with the Estimate specified by the EstimateId column.

    Columns
    Name Type References Description
    ID [KEY] String The unique identifier in the format EstimateId|ItemLineId.
    EstimateId String Estimates.ID The estimate identifier.
    ReferenceNumber String Transaction reference number.
    TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String Customer name this transaction is recorded under.
    CustomerId String Customers.ID Customer ID this transaction is recorded under.
    Date Date Transaction date.
    TransactionId String The ID of the linked transaction.
    TransactionAmount Decimal The amount of the linked transaction.
    TransactionDate Date The date of the linked transaction.
    TransactionReferenceNumber String The reference number of the linked transaction.
    TransactionType String The type of linked transaction.
    TransactionLinkType String The link type between the estimate and linked transaction.
    TimeModified Datetime When the credit memo was last modified.
    TimeCreated Datetime When the credit memo was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String

    Host

    Query the QuickBooks host process. The Host represents information about the QuickBooks process currently being executed.

    Columns
    Name Type References Description
    ProductName [KEY] String The name of the QuickBooks version being used.
    MajorVersion String The major version of QuickBooks.
    MinorVersion String The minor version of QuickBooks.
    Country String Country the QuickBooks edition was designed for.
    SupportedQBXMLVersion String A comma separated list of QBXML versions supported by the version of QuickBooks.
    IsAutomaticLogin Boolean A boolean indicating if the currently running .exe for QuickBooks is using automatic login. If true, this means that the QuickBooks UI is currently closed and the QuickBooks .exe was launched in the background to interact with the company file.
    QBFileMode String The company file mode currently in use. For instance, SingleUser or MultiUser.

    InvoiceLinkedTransactions

    Query QuickBooks Invoice Linked Transactions.

    Table Specific Information

    Linked transactions are transactions that have been associated with the Invoice specified by the InvoiceId column.

    Columns
    Name Type References Description
    ID [KEY] String The unique identifier in the format InvoiceId|ItemLineId.
    InvoiceId String Invoices.ID The invoice identifier.
    ReferenceNumber String The transaction reference number.
    TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String The name of the customer on the invoice. Either CustomerName or CustomerId must have a value when inserting.
    CustomerId String Customers.ID The ID of the customer on the invoice. Alternatively give this field a value when inserting instead of CustomerName.
    Account String A reference to the accounts-receivable account where the money received from this transaction will be deposited.
    AccountId String Accounts.ID A reference to the accounts-receivable account where the money received from this transaction will be deposited.
    Date Date The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    TransactionId String The ID of the linked transaction.
    TransactionAmount Decimal The amount of the linked transaction.
    TransactionDate Date The date of the linked transaction.
    TransactionReferenceNumber String The reference number of the linked transaction.
    TransactionType String The type of linked transaction.
    TransactionLinkType String The link type between the invoice and linked transaction.
    TimeModified Datetime When the invoice was last modified.
    TimeCreated Datetime When the invoice was created.

    ItemReceiptLinkedTransactions

    Query QuickBooks Item Receipt Linked Transactions.

    Table Specific Information

    Linked transactions are transactions that have been associated with the ItemReceipts specified by the ItemReceiptId column.

    Columns
    Name Type References Description
    ID [KEY] String The unique identifier in the format ItemReceiptId|ItemReceiptLineId.
    ItemReceiptId String ItemReceipts.ID The item identifier for the item receipt. This is obtained from the ItemReceipts table.
    VendorName String The name of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
    VendorId String Vendors.ID The unique ID of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
    Date Date The transaction date.
    ReferenceNumber String The transaction reference number.
    AccountsPayable String A reference to the name of the account the item receipt is payable to.
    AccountsPayableId String Accounts.ID A reference to the unique ID of the account the item receipt is payable to.
    Memo String A memo regarding the item receipt.
    Amount Decimal Total amount of the item receipt.
    TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    ExchangeRate Double The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency. Requires QBXML Version 8.0 or higher.
    TransactionId String PurchaseOrders.ID The ID of the linked transaction.
    TransactionAmount Decimal The amount of the linked transaction.
    TransactionDate Date The date of the linked transaction.
    TransactionReferenceNumber String The reference number of the linked transaction.
    TransactionType String The type of linked transaction.
    TransactionLinkType String The link type between the item receipt and linked transaction.
    CustomFields String Custom fields returned from QuickBooks and formatted into XML.
    EditSequence String An identifier used for versioning for this copy of the object.
    TimeModified Datetime When the item receipt was last modified.
    TimeCreated Datetime When the item receipt was created.

    ItemSites

    Create, update, delete, and query QuickBooks Item Sites. Item sites are only available in QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on. This table requires a minimum of QBXML version 10.0.

    Columns
    Name Type References Description
    ID [KEY] String The ID of the inventory site.
    ItemInventoryAssemblyRef_ListID String Items.ID Reference to the ID of an inventory assembly located on the item site. Either an inventory assembly or an inventory item will be specified, but not both.
    ItemInventoryAssemblyRef_FullName String Reference to the full name of an inventory assembly located on the item site. Either an inventory assembly or an inventory item will be specified, but not both.
    ItemInventoryRef_ListID String Items.ID Reference to the ID of an inventory item located on the item site. Either an inventory assembly or an inventory item will be specified, but not both.
    ItemInventoryRef_FullName String Reference to the full name of an inventory item located on the item Site. Either an inventory assembly or an Inventory Item will be specified, but not both.
    InventorySiteRef_ListID String InventorySites.ID Reference to the ID of an inventory site.
    InventorySiteRef_FullName String Reference to the full name of an inventory site.
    InventorySiteLocationRef_ListID String Reference to the ID of an inventory site location. This field requires QBXML version 12.0 or higher.
    InventorySiteLocationRef_FullName String Reference to the full name of an inventory site location. This field requires QBXML version 12.0 or higher.
    ReorderLevel Double The quantity at which to reorder the inventory assembly or inventory item.
    QuantityOnHand Double The total quantity of the inventory assemblies or inventory items in the inventory.
    QuantityOnPurchaseOrders Double The quantity of the inventory assemblies or inventory items currently on open purchase orders.
    QuantityOnSalesOrders Double The quantity of the inventory assemblies or inventory items currently on open sales orders.
    QuantityToBeBuiltByPendingBuildTxns Double The quantity of the inventory assemblies or inventory items are in use by pending Build Assembly transactions.
    QuantityRequiredByPendingBuildTxns Double The quantity of the inventory assemblies or inventory items that are required to complete remaining build assembly transactions.
    QuantityOnPendingTransfers Double The quantity of the inventory assemblies or inventory items that are currently on pending transfer inventory transactions.
    AssemblyBuildPoint Double The quantity of the inventory assemblies or inventory items remaining before creating a new Assembly.
    EditSequence String A string indicating the revision of the inventory site.
    TimeCreated Datetime The time the inventory site was created.
    TimeModified Datetime The time the inventory site was modified.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemType String

    PayrollItemDetail

    Returns information of Payroll item detail report (lists the payroll transactions on which each payroll item appears).

    Columns
    Name Type References Description
    Label String The Label column of the PayrollItemDetail report.
    Num String The Num column of the PayrollItemDetail report.
    Date Date The Date column of the PayrollItemDetail report.
    Source_Name String The Source_Name column of the PayrollItemDetail report.
    Payroll_Item String The Payroll_Item column of the PayrollItemDetail report.
    Type String The Type column of the PayrollItemDetail report.
    Wage_Base Double The Wage_Base column of the PayrollItemDetail report.
    Amount Double The Amount column of the PayrollItemDetail report.
    RowType String The type of data in the row. For example, Text, Data, Subtotal, or Total.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    DetailLevel String
    PostingStatus String
    ReportAsOf String
    SummarizeColumnsBy String
    IncludeColumns String
    IncludeAccounts String
    SummarizeRowsBy String

    PayrollReviewDetail

    Returns information of Payroll detail review report (provides detailed information about how QuickBooks calculates tax amounts on employee paychecks and in year-to-date transactions).

    Columns
    Name Type References Description
    Label String The Label column of the PayrollReviewDetail report.
    Date Date The Date column of the PayrollReviewDetail report.
    Entered_Last_Modified String The Entered_Last_Modified column of the PayrollReviewDetail report.
    Tax_Table_Version String The Tax_Table_Version column of the PayrollReviewDetail report.
    Income_Subject_To_Tax Double The Income_Subject_To_Tax column of the PayrollReviewDetail report.
    Wage_Base Double The Wage_Base column of the PayrollReviewDetail report.
    Payroll_Tax_Rate Double The Payroll_Tax_Rate column of the PayrollReviewDetail report.
    User_Edit\_ String The User_Edit_ column of the PayrollReviewDetail report.
    Amount Double The Amount column of the PayrollReviewDetail report.
    Calculated_Amount Double The Calculated_Amount column of the PayrollReviewDetail report.
    Amount_Difference Double The Amount_Difference column of the PayrollReviewDetail report.
    RowType String The type of data in the row. For example, Text, Data, Subtotal, or Total.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    DetailLevel String
    PostingStatus String
    ReportAsOf String
    SummarizeColumnsBy String
    IncludeColumns String
    IncludeAccounts String
    SummarizeRowsBy String

    PayrollTransactionDetail

    Returns information of Payroll transaction detail report (shows the line-item detail that appears on each payroll transaction).

    Columns
    Name Type References Description
    Date String The Date column of the PayrollTransactionDetail report.
    Num String The Num column of the PayrollTransactionDetail report.
    Type String The Type column of the PayrollTransactionDetail report.
    Source_Name String The Source_Name column of the PayrollTransactionDetail report.
    Payroll_Item String The Payroll_Item column of the PayrollTransactionDetail report.
    Wage_Base Double The Wage_Base column of the PayrollTransactionDetail report.
    Amount Double The Amount column of the PayrollTransactionDetail report.
    RowType String The type of data in the row. For example, Text, Data, Subtotal, or Total.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    DetailLevel String
    PostingStatus String
    ReportAsOf String
    SummarizeColumnsBy String
    IncludeColumns String
    IncludeAccounts String
    SummarizeRowsBy String

    PayrollTransactionsByPayee

    Payroll transactions by payee report (lists payroll transactions, grouping them by payee).

    Columns
    Name Type References Description
    Label String The Label column of the PayrollTransactionsByPayee report.
    Date Date The Date column of the PayrollTransactionsByPayee report.
    Name String The Name column of the PayrollTransactionsByPayee report.
    Num String The Num column of the PayrollTransactionsByPayee report.
    Type String The Type column of the PayrollTransactionsByPayee report.
    Memo String The Memo column of the PayrollTransactionsByPayee report.
    Account String The Account column of the PayrollTransactionsByPayee report.
    Amount Double The Amount column of the PayrollTransactionsByPayee report.
    RowType String The type of data in the row. For example, Text, Data, Subtotal, or Total.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    DetailLevel String
    PostingStatus String
    ReportAsOf String
    SummarizeColumnsBy String
    IncludeColumns String
    IncludeAccounts String
    SummarizeRowsBy String

    Preferences

    Query information about many of the preferences the QuickBooks user has set in the company file.

    Columns
    Name Type References Description
    ID [KEY] String Key for the table. The default value is 1.
    AccountingPreferences_IsUsingAccountNumbers Boolean If true, an account number can be recorded for new accounts. If you include an account numnber in the AccountAdd object when this preference is false, the account number will be set but will not be visible in the user interface.
    AccountingPreferences_IsRequiringAccounts Boolean If true, a transaction cannot be recorded in the user interface unless it is assigned to an account. (However, transactions affected by this preference always require an account to be specified when added through the SDK).
    AccountingPreferences_IsUsingClassTracking Boolean If true, QuickBooks will include a class field on all transactions.
    AccountingPreferences_AssignClassTo String What classes should be assigned to be default. Requires QBXML version 12.0 or higher.
    AccountingPreferences_IsUsingAuditTrail Boolean If true, QuickBooks will log all transaction changes in the audit trail report. if false, QuickBooks logs only the most recent versions of each transaction.
    AccountingPreferences_IsAssigningJournalEntryNumbers Boolean If true, QuickBooks will automatically assign a number to each journal entry.
    AccountingPreferences_ClosingDate Date The company closing date set within the company file. (The QuickBooks admin can assign a password restricting access to transactions that occurred before this date).
    FinanceChargePreferences_AnnualInterestRate Double The interest rate, set by the QuickBooks user, that QuickBooks will use to calculate finance charges. The default is 0.
    FinanceChargePreferences_MinFinanceCharge Decimal The minimum finance charge that will be applied regardless of the amount overdue. MinFinanceCharge is set by the QuickBooks user, and has a default value (within QuickBooks) of 0.
    FinanceChargePreferences_GracePeriod Integer The number of days before finance charges apply to customers' overdue invoices. GracePeriod is set by the QuickBooks user and has a default value (within QuickBooks) of 0.
    FinanceChargePreferences_FinanceChargeAccountRef_ListID String Accounts.ID Refers to the ID of the account used to track finance charges that the customers pay. This is usually an income account. In a request, if a FinanceChargeAccountRef aggregate includes both FullName and ListId, FullName will be ignored.
    FinanceChargePreferences_FinanceChargeAccountRef_FullName String Refers to the full name of the account used to track finance charges that the customers pay. This is usually an income account. In a request, if a FinanceChargeAccountRef aggregate includes both FullName and ListId, FullName will be ignored.
    FinanceChargePreferences_IsAssessingForOverdueCharges Boolean If true, finance charges are assessed on overdue finance charges. This preference is set by the QuickBooks user, and has a default value (within QuickBooks) of false. (Note that laws vary about whether a company can charge interest on overdue interest payments.)
    FinanceChargePreferences_CalculateChargesFrom String This preference is set by the QuickBooks user. Unless they change the value within QuickBooks, it will be DueDate. If set to DueDate, finance charges are assessed from the day the invoice or statement is due. If set to InvoiceOrBilledDate, finance charges are assessed from the transaction dates. The allowed values are DueDate, InvoiceOrBilledDate.
    FinanceChargePreferences_IsMarkedToBePrinted Boolean If true, all newly created finance charge invoices will be marked to be printed. (This makes it easier for the QuickBooks user to print a selection of invoices all at once.) This preference is set by the QuickBooks user and has a default value within QuickBooks of false.
    JobsAndEstimatesPreferences_IsUsingEstimates Boolean If true, this user is set up to create estimates for jobs.
    JobsAndEstimatesPreferences_IsUsingProgressInvoicing Boolean If true, this QuickBooks user can create an invoice for only a portion of an estimate.
    JobsAndEstimatesPreferences_IsPrintingItemsWithZeroAmounts Boolean If true, line items with an amount of 0 will print on progress invoices. (IsPrintingItemsWithZeroAmounts is not relevant unless IsUsingProgressInvoices is true).
    MultiCurrencyPreferences_IsMultiCurrencyOn Boolean Indicates whether the multicurrency feature is turned on for this company file. A value of true means it is to be turned on, and a value of false means is not turned on. Currently, once multicurrency is turned on for a company file, it cannot be turned off. Requires QBXML version 8.0 or higher.
    MultiCurrencyPreferences_HomeCurrencyRef_ListID String Currency.ID Reference to the ID of the currency that is listed as the home currency. The home currency is normally the curency of the country where the business is located. Requires QBXML version 8.0 or higher.
    MultiCurrencyPreferences_HomeCurrencyRef_FullName String Reference to the full name of the currency that is listed as the home currency. The home currency is normally the curency of the country where the business is located. Requires QBXML version 8.0 or higher.
    MultiLocationInventoryPreferences_IsMultiLocationInventoryAvailable Boolean Boolean indicating if multiple inventory locations are available. Requires QBXML version 10.0 or higher.
    MultiLocationInventoryPreferences_IsMultiLocationInventoryEnabled Boolean Boolean indicating if multiple inventory locations are enabled.
    PurchasesAndVendorsPreferences_IsUsingInventory Boolean If true, the inventory-related features of QuickBooks are available.
    PurchasesAndVendorsPreferences_DaysBillsAreDue Integer By default, bills are due this many days after receipt.
    PurchasesAndVendorsPreferences_IsAutomaticallyUsingDiscounts Boolean If true, QuickBooks will automatically apply available vendor discounts or credits to a bill that is being paid.
    PurchasesAndVendorsPreferences_DefaultDiscountAccountRef_ListID String Accounts.ID Id of the account where vendor discounts are tracked. In a request, if a DefaultDiscountAccountRef aggregate includes both FullName and ListId, FullName will be ignored.
    PurchasesAndVendorsPreferences_DefaultDiscountAccountRef_FullName String Full name of the account where vendor discounts are tracked. In a request, if a DefaultDiscountAccountRef aggregate includes both FullName and ListId, FullName will be ignored.
    ReportsPreferences_AgingReportBasis String AgeFromDueDate means that the overdue days shown in these reports will begin with the due date on the invoice. AgeFromTransactionDate means that the overdue days shown in these reports will begin with the date the transaction was created. The allowed values are AgeFromDueDate, AgeFromTransactionDate.
    ReportsPreferences_SummaryReportBasis String Indicates whether summary reports are cash-basis or accrual-basis bookkeeping. The allowed values are Accrual, Cash.
    SalesAndCustomersPreferences_DefaultShipMethodRef_ListID String ShippingMethods.ID Id that references to a ship method that will be used as the default value in all ShipVia fields.
    SalesAndCustomersPreferences_DefaultShipMethodRef_FullName String Full name of a ship method that will be used as the default value in all ShipVia fields.
    SalesAndCustomersPreferences_DefaultFOB String Default FOB (freight on board: the site from which invoiced products are shipped).
    SalesAndCustomersPreferences_DefaultMarkup Double Default percentage that an inventory item will be marked up from its cost.
    SalesAndCustomersPreferences_IsTrackingReimbursedExpensesAsIncome Boolean If true, an expense and the customers reimbursement for that expense can be tracked in separate accounts.
    SalesAndCustomersPreferences_IsAutoApplyingPayments Boolean If true, a customers' payment will automatically be applied to the outstanding invoices for that customer, beginning with the oldest invoice.
    SalesAndCustomersPreferences_PriceLevels_IsUsingPriceLevels Boolean If true, price levels have been turned on for the company file (under Sales and Customers preferences), which enables the creation and use of price levels.
    SalesAndCustomersPreferences_PriceLevels_IsRoundingSalesPriceUp Boolean If true, amounts are rounded up to the nearest whole dollar for fixed percentage price levels (not for per-item price levels).
    SalesTaxPreferences_DefaultItemSalesTaxRef_ListID String SalesTaxItems.ID Id reference to the default tax code for sales. (Refers to a sales tax code on the SalesTaxCode list).
    SalesTaxPreferences_DefaultItemSalesTaxRef_FullName String Full name for the default tax code for sales. (Refers to a sales tax code on the SalesTaxCode list).
    SalesTaxPreferences_PaySalesTax String The frequency of sales tax reports. The allowed values are Monthly, Quarterly, Annually.
    SalesTaxPreferences_DefaultTaxableSalesTaxCodeRef_ListID String SalesTaxCodes.ID Id reference to the default tax code for taxable sales. (Refers to a sales tax code in the SalesTaxCode list).
    SalesTaxPreferences_DefaultTaxableSalesTaxCodeRef_FullName String Full name of a default tax code for taxable sales. (Refers to a sales tax code in the SalesTaxCode list).
    SalesTaxPreferences_DefaultNonTaxableSalesTaxCodeRef_ListID String SalesTaxCodes.ID Id reference to the default tax code for nontaxable sales. (Refers to a sales tax code in the SalesTaxCode list).
    SalesTaxPreferences_DefaultNonTaxableSalesTaxCodeRef_FullName String Full name of a default tax code for nontaxable sales. (Refers to a sales tax code in the SalesTaxCode list).
    SalesTaxPreferences_IsUsingVendorTaxCode Boolean Boolean indicating if the vendor's tax codes are being used.
    SalesTaxPreferences_IsUsingCustomerTaxCode Boolean Boolean indicating if the customer's tax codes are being used.
    SalesTaxPreferences_IsUsingAmountsIncludeTax Boolean Boolean indicating if total amounts include sales tax.
    TimeTrackingPreferences_FirstDayOfWeek String The first day of a weekly timesheet period. The allowed values are Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
    CurrentAppAccessRights_IsAutomaticLoginAllowed Boolean If true, then applications can use autologin to access this QuickBooks company file.
    CurrentAppAccessRights_AutomaticLoginUserName String If autologin is allowed for this QuickBooks company file, then this field gives the username that is allowed to use autologin.
    CurrentAppAccessRights_IsPersonalDataAccessAllowed Boolean If true, then access is allowed to sensitive (personal) data in this QuickBooks company file.
    ItemsAndInventoryPreferences_EnhancedInventoryReceivingEnabled Boolean Boolean indicating if enhanced inventory receiving is enabled. Requires QBXML version 11.0.
    ItemsAndInventoryPreferences_IsTrackingSerialOrLotNumber String Indicates if tracking is done based on serial or lot number. Requires QBXML version 11.0.
    ItemsAndInventoryPreferences_IsTrackingOnSalesTransactionsEnabled Boolean Boolean indicating if tracking is enabled on sales transactions. Requires QBXML version 11.0.
    ItemsAndInventoryPreferences_IsTrackingOnPurchaseTransactionsEnabled Boolean Boolean indicating if tracking is enabled on purchase transactions. Requires QBXML version 11.0.
    ItemsAndInventoryPreferences_IsTrackingOnInventoryAdjustmentEnabled Boolean Boolean indicating if tracking is enabled on inventory adjustments. Requires QBXML version 11.0.
    ItemsAndInventoryPreferences_IsTrackingOnBuildAssemblyEnabled Boolean Boolean indicating if tracking is enabled on build assemblies. Requires QBXML version 11.0.
    ItemsAndInventoryPreferences_FIFOEnabled Boolean Boolean indicating if FIFO is enabled. Requires QBXML version 11.0.
    ItemsAndInventoryPreferences_FIFOEffectiveDate Date FIFO effective date. Requires QBXML version 11.0.
    ItemsAndInventoryPreferences_IsRSBEnabled Boolean Boolean indicating if RSB is enabled. Requires QBXML version 12.0.
    ItemsAndInventoryPreferences_IsBarcodeEnabled Boolean Boolean indicating if bar codes are enabled. Requires QBXML version 12.0.

    ProfitAndLossDetail

    Profit & Loss Prev Year Comparison Report.

    Columns
    Name Type References Description
    Label String The Label column of the ProfitAndLossDetail report.
    Type String The Type column of the ProfitAndLossDetail report.
    Date Date The Date column of the ProfitAndLossDetail report.
    Num String The Num column of the ProfitAndLossDetail report.
    Name String The Name column of the ProfitAndLossDetail report.
    Memo String The Memo column of the ProfitAndLossDetail report.
    Class String The Class column of the ProfitAndLossDetail report.
    Clr String The Clr column of the ProfitAndLossDetail report.
    Split String The Split column of the ProfitAndLossDetail report.
    Amount Double The Amount column of the ProfitAndLossDetail report.
    Balance Double The Balance column of the ProfitAndLossDetail report.
    RowType String The type of data in the row. For example, Text, Data, Subtotal, or Total.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    ReportDateRangeMacro String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    ModifiedDateRangeMacro String
    DetailLevel String
    PostingStatus String
    ReportAsOf String
    IncludeAccounts String
    ReportBasis String
    IncludeColumns String
    SummarizeRowsBy String

    ProfitAndLossStandard

    Profit & Loss YTD Comparison Report.

    Columns
    Name Type References Description
    Label String The Label column of the ProfitAndLossStandard report.
    Amount Double The Amount column of the ProfitAndLossStandard report.
    RowType String The type of data in the row. For example, Text, Data, Subtotal, or Total.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ReportPeriod String
    ReportDateRangeMacro String
    AccountType String
    AccountList String
    AccountListType String
    EntityType String
    EntityList String
    EntityListType String
    ItemType String
    ItemList String
    ItemListType String
    ClassList String
    ClassListType String
    TransactionTypes String
    ModifiedDateRange String
    ModifiedDateRangeMacro String
    DetailLevel String
    PostingStatus String
    ReportAsOf String
    SummarizeColumnsBy String
    IncludeSubColumns String
    ReportBasis String
    ReturnColumns String
    ReturnRows String
    ReportCalendar String

    PurchaseOrderLinkedTransactions

    Query QuickBooks Purchase Order Linked Transactions.

    Table Specific Information

    Linked transactions are transactions that have been associated with the PurchaseOrder specified by the PurchaseOrderId column.

    Columns
    Name Type References Description
    ID [KEY] String The unique identifier in the format PurchaseOrderId|ItemLineId.
    PurchaseOrderId String PurchaseOrders.ID The purchase order identifier.
    VendorName String Vendor name this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.
    VendorId String Vendors.ID Vendor ID this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.
    VendorMessage String Message to appear to vendor.
    ReferenceNumber String The transaction reference number.
    TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    Date Date Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    TransactionId String The ID of the linked transaction.
    TransactionAmount Decimal The amount of the linked transaction.
    TransactionDate Date The date of the linked transaction.
    TransactionReferenceNumber String The reference number of the linked transaction.
    TransactionType String The type of linked transaction.
    TransactionLinkType String The link type between the purchase order and linked transaction.
    TimeModified Datetime When the purchase order was last modified.
    TimeCreated Datetime When the purchase order was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String

    ReceivePaymentToDeposit

    Returns information about payments that have been received and are ready to deposit.

    Table Specific Information
    Select

    The QuickBooks does not support any filters on the server side. All the columns specified in the WHERE clause of a SELECT query will be processed on the client-side. For example, the following query processed on the server side:

    SELECT * FROM ReceivePaymentToDeposit
    
    Columns
    Name Type References Description
    ID [KEY] String The unique identifier of the transaction.
    TxnType String The type of transaction.
    TxnLineID String The unique identifier of the transaction Line.
    CustomerRef_ListID String Customers.ID The ID of the customer.
    CustomerRef_FullName String The name of the customer.
    TxnDate Date Date of the transaction..
    RefNumber String Reference number for the transaction.
    Amount Decimal Amount of the transaction. This is calculated by QuickBooks based on the line items or expense line items.
    CurrencyId String Currency.ID The unique ID of the currency for the account. A minimum QBXML version of 8.0 is required for this feature.
    CurrencyName String The name of the currency for the account. A minimum QBXML version of 8.0 is required for this feature.
    ExchangeRate Double Exchange Rate is the market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the 'home' currency.
    AmountInHomeCurrency Double Amount in units of the home currency.

    SalesOrderLinkedTransactions

    Query QuickBooks Sales Order Linked Transactions.

    Table Specific Information

    Linked transactions are transactions that have been associated with the SalesOrder specified by the SalesOrderId column.

    Columns
    Name Type References Description
    ID [KEY] String The unique identifier in the format SalesOrderId|ItemLineId.
    SalesOrderId String SalesOrders.ID The item identifier.
    ReferenceNumber String Transaction reference number.
    TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String Customer name this transaction is recorded under.
    CustomerId String Customers.ID Customer ID this transaction is recorded under.
    Date Date Transaction date.
    TransactionId String Invoices.ID The ID of the linked transaction.
    TransactionAmount Decimal The amount of the linked transaction.
    TransactionDate Date The date of the linked transaction.
    TransactionReferenceNumber String The reference number of the linked transaction.
    TransactionType String The type of linked transaction.
    TransactionLinkType String The link type between the sales order and linked transaction.
    TimeModified Datetime When the sales order was last modified.
    TimeCreated Datetime When the sales order was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemPriceLevel String

    StatementChargeLinkedTransactions

    Query QuickBooks Statement Charge Linked Transactions.

    Table Specific Information

    Linked transactions are transactions that have been associated with the StatementCharge specified by the StatementChargeId column.

    Columns
    Name Type References Description
    ID [KEY] String The unique identifier in the format StatementChargeId|TransactionLineId.
    StatementChargeId String StatementCharges.ID The item identifier.
    ReferenceNumber String Transaction reference number.
    TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    CustomerName String Customer name this transaction is recorded under.
    CustomerId String Customers.ID Customer ID this transaction is recorded under.
    Date Date Transaction date.
    TransactionId String The ID of the linked transaction.
    TransactionAmount Decimal The amount of the linked transaction.
    TransactionDate Date The date of the linked transaction.
    TransactionReferenceNumber String The reference number of the linked transaction.
    TransactionType String The type of linked transaction.
    TransactionLinkType String The link type between the statement charge and linked transaction.
    TimeModified Datetime When the statement charge was last modified.
    TimeCreated Datetime When the statement charge was created.

    Templates

    Query QuickBooks templates.

    Columns
    Name Type References Description
    ID [KEY] String The unique identifier of the template.
    Name String The name of the template.
    IsActive Boolean Boolean determining if the template is active.
    TemplateType String The type of template. This may be BuildAssembly, CreditMemo, Estimate, Invoice, PurchaseOrder, SalesOrder, or SalesReceipt.
    EditSequence String A string indicating the revision of the template.
    TimeCreated Datetime The time the template was created.
    TimeModified Datetime The last time the template was modified.

    Transactions

    Query QuickBooks transactions. You may search the Transactions using a number of values including Type, Entity, Account, ReferenceNumber, Item, Class, Date, and TimeModified.

    Columns
    Name Type References Description
    ID String The unique identifier of the transaction.
    TxnLineId String The ID of the individual line item.
    Type String The transaction type of the result.
    Date Date The date of the transaction.
    Entity String The name of the entity associated with the transaction. For example, the name of a customer, vendor, employee, or other name.
    EntityId String The ID of the entity associated with the transaction. For example, the name of a customer, vendor, employee, or other name.
    AccountName String The name of the account associated with the transaction.
    AccountId String Accounts.ID The ID of the account associated with the transaction.
    ReferenceNumber String The reference number of the transaction, if applicable.
    Amount Decimal The amount of the transaction.
    CurrencyName String The name of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    CurrencyId String Currency.ID The unique ID of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
    ExchangeRate Double The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
    AmountInHomeCurrency Decimal The amount of the transaction in units of the home currency.
    Memo String The memo appearing on the transaction.
    TimeModified Datetime When the transaction was last modified.
    TimeCreated Datetime When the transaction was created.
    Pseudo-Columns

    Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

    Name Type Description
    ItemName String
    ItemId String
    ClassName String
    ClassId String
    PostingStatus String
    PaidStatus String
    DetailLevel String

    VendorCreditLinkedTransactions

    Query QuickBooks Vendor Credit Linked Transactions.

    Table Specific Information

    Linked transactions are transactions that have been associated with the VendorCredit specified by the VendorCreditId column.

    Columns
    Name Type References Description
    ID [KEY] String The unique identifier in the format VendorCreditId|ItemLineId.
    VendorCreditId String VendorCredits.ID The ID of the VendorCredit transaction.
    VendorName String Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
    VendorId String Vendors.ID Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
    Date Date Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
    TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
    ReferenceNumber String Reference number for the transaction.
    TransactionId String Bills.ID The ID of the linked transaction.
    TransactionAmount Decimal The amount of the linked transaction.
    TransactionDate Date The date of the linked transaction.
    TransactionReferenceNumber String The reference number of the linked transaction.
    TransactionType String The type of linked transaction.
    TransactionLinkType String The link type between the vendor credit and linked transaction.
    TimeModified Datetime When the vendor credit was last modified.
    TimeCreated Datetime When the vendor credit was created.

    Stored Procedures

    Stored procedures are function-like interfaces that extend the functionality of the connector beyond simple SELECT/INSERT/UPDATE/DELETE operations with QuickBooks.

    Stored procedures accept a list of parameters, perform their intended function, and then return any relevant response data from QuickBooks, along with an indication of whether the procedure succeeded or failed.

    QuickBooks Connector Stored Procedures

    Name Description
    ClearTransaction Marks the transaction checks with Cleared, NotCleared or Pending status.
    CreateReportSchema Generates a report schema file.
    GetQBFileStatus Gets the status of the quickbooks file.
    ListMerge Merge two accounts, customers, or vendors. Requires QBXML version 7.0 or higher.
    SearchEntities Search entities in QuickBooks.
    SendQBXML Sends the provided QBXML directly to QuickBooks.
    SendQBXMLFile Sends the provided QBXML file directly to QuickBooks. This is designed for use with mass inserts.
    VoidTransaction Voids a given transaction in QuickBooks.

    ClearTransaction

    Marks the transaction checks with Cleared, NotCleared or Pending status.

    Input
    Name Type Description
    TxnID String The ID of the Transaction. The TxnID should be of type balance sheet.
    TxnLineID String The ID of the Transaction Line Item
    ClearedStatus String The Cleared Status of the Transaction The allowed values are Cleared, NotCleared, Pending.
    Result Set Columns
    Name Type Description
    \* String Output varies depending on the supplied QBXML request.

    CreateReportSchema

    Generates a report schema file.

    CreateReportSchema

    CreateReportSchema creates a schema file based on the specified report.

    This schema adds a table to your existing list that corresponds with the results of your report, which can then be queried like other tables.

    (Reports from the QuickBooks are not modeled by connector as queryable tables by default.)

    The generated schema file outlines the metadata for the report, such as columns and column data types. You can edit the file to adjust data types, rename columns, and include or exclude columns.

    Updating a Report Schema

    In the following example, the SP CreateReportSchema creates a new report using TestReportTest1 as a base template. It appends new columns to TestReportTest1 and creates a new report, named TestReport2. The new report is saved as ...\TestReportTest2.rsd.

    EXECUTE [CreateReportSchema]
        [ReportName] = "TestReportTest2",
        [CustomFieldIdsPrimitive] = "1459925,1459928",
        [CustomFieldIdsDropdown] = "1469785",
        [CustomDimensionKeyIds] = "13539564",
        [BaseReportName] = "TestReportTest1",
    [FileName] = "...\TestReportTest2.rsd"
    
    Input
    Name Type Description
    ReportName String The name of the report. If this is not specified the ReportType will be used as the name.
    ReportDescription String A description for the report. If one is not specified, a description based on the ReportType will be selected.
    ReportType String The type of report to create a schema for. The allowed values are 1099DETAIL, APAGINGDETAIL, APAGINGSUMMARY, ARAGINGDETAIL, ARAGINGSUMMARY, AUDITTRAIL, BALANCESHEETBUDGETOVERVIEW, BALANCESHEETBUDGETVSACTUAL, BALANCESHEETDETAIL, BALANCESHEETPREVYEARCOMP, BALANCESHEETSTANDARD, BALANCESHEETSUMMARY, CHECKDETAIL, COLLECTIONSREPORT, CUSTOMDETAIL, CUSTOMERBALANCEDETAIL, CUSTOMERBALANCESUMMARY, CUSTOMSUMMARY, DEPOSITDETAIL, EMPLOYEEEARNINGSSUMMARY, EMPLOYEESTATETAXESDETAIL, ESTIMATESBYJOB, EXPENSEBYVENDORDETAIL, EXPENSEBYVENDORSUMMARY, GENERALLEDGER, INCOMEBYCUSTOMERDETAIL, INCOMEBYCUSTOMERSUMMARY, INCOMETAXDETAIL, INCOMETAXSUMMARY, INVENTORYSTOCKSTATUSBYITEM, INVENTORYSTOCKSTATUSBYVENDOR, INVENTORYVALUATIONDETAIL, INVENTORYVALUATIONSUMMARY, ITEMESTIMATESVSACTUALS, ITEMPROFITABILITY, JOBESTIMATESVSACTUALSDETAIL, JOBESTIMATESVSACTUALSSUMMARY, JOBPROFITABILITYDETAIL, JOBPROFITABILITYSUMMARY, JOBPROGRESSINVOICESVSESTIMATES, JOURNAL, MISSINGCHECKS, OPENINVOICES, OPENPOS, OPENPOSBYJOB, OPENSALESORDERBYCUSTOMER, OPENSALESORDERBYITEM, PAYROLLITEMDETAIL, PAYROLLLIABILITYBALANCES, PAYROLLREVIEWDETAIL, PAYROLLSUMMARY, PAYROLLTRANSACTIONDETAIL, PAYROLLTRANSACTIONSBYPAYEE, PENDINGSALES, PHYSICALINVENTORYWORKSHEET, PROFITANDLOSSBUDGETOVERVIEW, PROFITANDLOSSBUDGETPERFORMANCE, PROFITANDLOSSBUDGETVSACTUAL, PROFITANDLOSSBYCLASS, PROFITANDLOSSBYJOB, PROFITANDLOSSDETAIL, PROFITANDLOSSPREVYEARCOMP, PROFITANDLOSSSTANDARD, PROFITANDLOSSYTDCOMP, PURCHASEBYITEMDETAIL, PURCHASEBYITEMSUMMARY, PURCHASEBYVENDORDETAIL, PURCHASEBYVENDORSUMMARY, SALESBYCUSTOMERDETAIL, SALESBYCUSTOMERSUMMARY, SALESBYITEMDETAIL, SALESBYITEMSUMMARY, SALESBYREPDETAIL, SALESBYREPSUMMARY, SALESTAXLIABILITY, SALESTAXREVENUESUMMARY, TIMEBYITEM, TIMEBYJOBDETAIL, TIMEBYJOBSUMMARY, TIMEBYNAME, TRIALBALANCE, TXNDETAILBYACCOUNT, TXNLISTBYCUSTOMER, TXNLISTBYDATE, TXNLISTBYVENDOR, UNBILLEDCOSTSBYJOB, UNPAIDBILLSDETAIL, VENDORBALANCEDETAIL, VENDORBALANCESUMMARY.
    IncludeRowtype Boolean A boolean determining if the rowtype column should be included in the output schema. The default value is FALSE.
    ReportPeriod String Report date range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2009-12-25:) or a macro. Supported date format: yyyy-MM-dd and Supported Macro values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR
    AccountType String The specific type of account to request in the report. The allowed values are NONE, ACCOUNTSPAYABLE, ACCOUNTSRECEIVABLE, ALLOWEDFOR1099, APANDSALESTAX, APORCREDITCARD, ARANDAP, ASSET, BALANCESHEET, BANK, BANKANDARANDAPANDUF, BANKANDUF, COSTOFSALES, CREDITCARD, CURRENTASSET, CURRENTASSETANDEXPENSE, CURRENTLIABILITY, EQUITY, EQUITYANDINCOMEANDEXPENSE, EXPENSEANDOTHEREXPENSE, FIXEDASSET, INCOMEANDEXPENSE, INCOMEANDOTHERINCOME, LIABILITY, LIABILITYANDEQUITY, LONGTERMLIABILITY, NONPOSTING, ORDINARYEXPENSE, ORDINARYINCOME, ORDINARYINCOMEANDCOGS, ORDINARYINCOMEANDEXPENSE, OTHERASSET, OTHERCURRENTASSET, OTHERCURRENTLIABILITY, OTHEREXPENSE, OTHERINCOME, OTHERINCOMEOREXPENSE.
    AccountList String A comma separated list of account names or IDs. Also specify a value for AccountListType if specifying a value for this input. For instance AccountName, AccountId2, AccountId3.
    AccountListType String Allows the user to query for specific list accounts. The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.
    EntityType String The specific type of entity to request in the report. The allowed values are NONE, CUSTOMER, EMPLOYEE, OTHERNAME, VENDOR.
    EntityList String A comma separated list of entity names or IDs. Also specify a value for EntityListType if specifying a value for this input.
    EntityListType String Allows the user to query for specific list of entities. The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.
    ItemType String The specific type of item to request in the report. The allowed values are NONE, ALLEXCEPTFIXEDASSET, ASSEMBLY, DISCOUNT, FIXEDASSET, INVENTORY, INVENTORYANDASSEMBLY, NONINVENTORY, OTHERCHARGE, PAYMENT, SALES, SALESTAX, SERVICE.
    ItemList String A comma separated list of item names or IDs. Also specify a value for ItemListType if specifying a value for this input.
    ItemListType String Allows the user to query for specific list of items. The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.
    ClassList String A comma separated list of class names or IDs. Also specify a value for ClassListType if specifying a value for this input.
    ClassListType String Allows the user to query for specific list of classes. The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.
    ModifiedDateRange String Date modified range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2009-12-25:) or a macro. Supported date format: yyyy-MM-dd. Support Macro The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR..
    DetailLevel String The level of detail to include in the report. The allowed values are ALL, ALLEXCEPTSUMMARY, SUMMARYONLY.
    SummarizeColumnsBy String Determines which data the report calculates and how the columns will be labeled across the top of the report. The allowed values are NONE, ACCOUNT, BALANCESHEET, CLASS, CUSTOMER, CUSTOMERTYPE, DAY, EMPLOYEE, FOURWEEK, HALFMONTH, INCOMESTATEMENT, ITEMDETAIL, ITEMTYPE, MONTH, PAYEE, PAYMENTMETHOD, PAYROLLITEMDETAIL, QUARTER, SALESREP, SALESTAXCODE, SHIPMETHOD, TERMS, TOTALONLY, TWOWEEK, VENDOR, VENDORTYPE, WEEK, YEAR.
    IncludeSubColumns String A boolean indicating if subcolumns should be included.
    IncludeColumns String A comma separated list of columns to include. Supported values include ACCOUNT, AGING, AMOUNT, AMOUNTDIFFERENCE, AVERAGECOST, BILLEDDATE, BILLINGSTATUS, CALCULATEDAMOUNT, CLASS, CLEAREDSTATUS, COSTPRICE, CREDIT, CURRENCY, DATE, DEBIT, DELIVERYDATE, DUEDATE, ESTIMATEACTIVE, EXCHANGERATE, FOB, INCOMESUBJECTTOTAX, INVOICED, ITEM, ITEMDESC, LASTMODIFIEDBY, LATESTORPRIORSTATE, MEMO, MODIFIEDTIME, NAME, NAMEACCOUNTNUMBER, NAMEADDRESS, NAMECITY, NAMECONTACT, NAMEEMAIL, NAMEFAX, NAMEPHONE, NAMESTATE, NAMEZIP, OPENBALANCE, ORIGINALAMOUNT, PAIDAMOUNT, PAIDSTATUS, PAIDTHROUGHDATE, PAYMENTMETHOD, PAYROLLITEM, PONUMBER, PRINTSTATUS, PROGRESSAMOUNT, PROGRESSPERCENT, QUANTITY, QUANTITYAVAILABLE, QUANTITYONHAND, QUANTITYONSALESORDER, RECEIVEDQUANTITY, REFNUMBER, RUNNINGBALANCE, SALESREP, SALESTAXCODE, SHIPDATE, SHIPMETHOD, SOURCENAME, SPLITACCOUNT, SSNORTAXID, TAXLINE, TAXTABLEVERSION, TERMS, TXNID, TXNNUMBER, TXNTYPE, UNITPRICE, USEREDIT, VALUEONHAND, WAGEBASE, WAGEBASETIPS
    IncludeAccounts String Indicates whether this report should include all accounts or just those that are currently in use. The allowed values are ALL, INUSE.
    SummarizeRowsBy String Determines along with includecolumnlist, in most cases, what data is calculated for this report and controls how the rows are organized and labeled. For example, if you set the value to Account, the report's row labels might be Checking, Savings, and so on. The allowed values are NONE, ACCOUNT, BALANCESHEET, CLASS, CUSTOMER, CUSTOMERTYPE, DAY, EMPLOYEE, FOURWEEK, HALFMONTH, INCOMESTATEMENT, ITEMDETAIL, ITEMTYPE, MONTH, PAYEE, PAYMENTMETHOD, PAYROLLITEMDETAIL, QUARTER, SALESREP, SALESTAXCODE, SHIPMETHOD, TAXLINE, TERMS, TOTALONLY, TWOWEEK, VENDOR, VENDORTYPE, WEEK, YEAR.
    ReportCalendar String Specifies the type of year that will be used for this report. The allowed values are NONE, CALENDARYEAR, FISCALYEAR, TAXYEAR.
    ReturnRows String Specifies whether you want the report to include only rows with active information, only rows with nonzero values, or all rows regardless of their content or active status. The allowed values are NONE, ACTIVEONLY, NONZERO, All.
    ReturnColumns String Specifies whether you want the report to include only columns with active information, only columns with nonzero values, or all columns regardless of their content or active status. The allowed values are NONE, ACTIVEONLY, NONZERO, All.
    PostingStatus String Allows you to query for posting reports, nonposting reports, or reports that are either one. The allowed values are EITHER, NONPOSTING, POSTING.
    ReportAsOf String The report will return open balance information up to the reportopenbalanceasof date. The allowed values are REPORTENDDATE, TODAY.
    TransactionTypes String A comma separated list of the transaction types you want the report to cover. Values include ALL, ARREFUNDCREDITCARD, BILL, BILLPAYMENTCHECK, BILLPAYMENTCREDITCARD, BUILDASSEMBLY, CHARGE, CHECK, CREDITCARDCHARGE, CREDITCARDCREDIT, CREDITMEMO, DEPOSIT, ESTIMATE, INVENTORYADJUSTMENT, INVOICE, ITEMRECEIPT, JOURNALENTRY, LIABILITYADJUSTMENT, PAYCHECK, PAYROLLLIABILITYCHECK, PURCHASEORDER, RECEIVEPAYMENT, SALESORDER, SALESRECEIPT, SALESTAXPAYMENTCHECK, TRANSFER, VENDORCREDIT, YTDADJUSTMENT.
    ReportBasis String If reportbasis is Cash, the report bases income and expenses on the dates when money changed hands. If Accrual, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered. If None, the report uses the default report basis, which is either the QuickBooks preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns None for reports that do not support a report basis. (The 1099 report, for example, has its own basis for generation.) The allowed values are ACCRUAL, CASH, NONE.
    FiscalYear String The fiscal year of the budget to be queried. For example, 2014.
    BudgetCriterion String Specifies what this budget covers. The allowed values are NONE, ACCOUNTS, ACCOUNTSANDCLASSES, ACCOUNTSANDCUSTOMERS.
    SummarizeBudgetColumnsBy String The data the report calculates and how the columns will be labeled across the top of the report. The allowed values are NONE, CLASS, CUSTOMER, DATE.
    SummarizeBudgetRowsBy String How rows are to be labeled in the report. For example, if you set the value to Account, the row labels of the report might be Checking, Savings, and so on. The allowed values are NONE, CLASS, CUSTOMER, ACCOUNT.
    Result Set Columns
    Name Type Description
    Result String Success or Failure.
    SchemaFile String The generated schema file.
    Columns String The number of columns found.

    GetQBFileStatus

    Gets the status of the quickbooks file.

    Result Set Columns
    Name Type Description
    Qbfilestatus String A number indicating the status of the qbfile. 0 indicates it can be connected to. 1 indicates it cannot be connected to. -1 indicates it could not be determined.

    ListMerge

    Merge two accounts, customers, or vendors. Requires QBXML version 7.0 or higher.

    Input
    Name Type Description
    Type String The type of the object to be merged. The allowed values are Account, Customer, Vendor.
    MergeFromId String The ID of the object to be merged into another object. Either the name or ID must be specified for the From object.
    MergeFromName String The name of the object to be merged into another object. Either the name or ID must be specified for the From object.
    MergeToId String The ID of the object into which another object is merged. Either the name or ID must be specified for the To object.
    MergeToName String The name of the object into which another object is merged. Either the name or ID must be specified for the To object.
    OverwriteDuplicateShipToAddr String If set to true, shipping addresses with the same name will be overwritten with the addresses in the object you are merging to. Requires QBXML version 8.0 or higher.
    Result Set Columns
    Name Type Description
    Success String Whether the two objects were successfully merged.
    ErrorMessage String The error message if there is a failure.

    SearchEntities

    Search entities in QuickBooks.

    Input
    Name Type Description
    Entity String The entity to search. The allowed values are Vendor, Employee, Bill, Invoice, CreditMemo, VendorCredit, SalesReceipt, PurchaseOrder, CCCredit, CCCharge, Customer, Estimate, SalesOrder, TimeTracking, ReceivePayment, JournalEntry, Item, Account, Deposit, InventoryAdjustment, PriceLevel, Class, CustomerType, JobType, PaymentMethod, PayrollItemWage, SalesTaxCode, ShipMethod, SalesRep, VendorType, BillToPay, ItemAssembliesCanBuild, ListDeleted, Preferences, ReceivePaymentToDeposit, SalesTaxPaymentCheck, TxnDeleted, ItemReceipt, BillPaymentCheck, BillPaymentCharge, StatementCharge, VehicleMileage, OtherTransaction, OtherList. The default value is Vendor.
    Name String The name to search for. Use in conjunction with MatchType for more granular control over the entries returned.
    NameMatch String The type of match to use for this entity. The allowed values are EXACT, CONTAINS, STARTSWITH, ENDSWITH, RANGEEND, RANGESTART. The default value is EXACT.
    StartModifiedDate String Earliest modified date to search for. Limits the search to records modified on or after this date. When setting the value of a date property, the formats MM-DD-YY, MM-DD-YYYY, MM/DD/YY, and MM/DD/YYYY are acceptable. Dates in these formats will be automatically parsed and stored in YYYY-MM-DD format.
    EndModifiedDate String Latest modified date to search for. Limits the search to records modified on or before this date. When setting the value of a date property, the formats MM-DD-YY, MM-DD-YYYY, MM/DD/YY, and MM/DD/YYYY are acceptable. Dates in these formats will be automatically parsed and stored in YYYY-MM-DD format.
    MinBalance String The minimum balance that returned records should have. Limits the search to records with balances greater than or equal to MinBalance.
    MaxBalance String The maximum balance that returned records should have. Limits the search to records with balances less than or equal to MaxBalance.
    MaxResults String Maximum number of results to be returned from this search.
    OtherEntity String To search for other entities not included in the entity input; for example ItemService. When searching for other entities the entity input should be set to OtherList.
    Result Set Columns
    Name Type Description
    XMLEntry String A entry in the result collection encoded in XML from QuickBooks.
    \* String Output varies based upon the type of entity queried.

    SendQBXML

    Sends the provided QBXML directly to QuickBooks.

    Input
    Name Type Description
    RawXML String The QBXML to be sent to QuickBooks.
    OutputRawResponse String Determines whether or not to output the raw response or the parsed response. The default behavior is to return the parsed response. The default value is false.
    Result Set Columns
    Name Type Description
    \* String Output varies depending on the supplied QBXML request.

    SendQBXMLFile

    Sends the provided QBXML file directly to QuickBooks. This is designed for use with mass inserts.

    Input
    Name Type Description
    File String An URL to the file to submit to QuickBooks.
    ContinueOnError String Determines if QuickBooks will continue executing the request after an error has been reached. It can be used to stop the operation on an exception when mass inserting for instance. The default value is true.
    IncludeInfoMessages String Determines if info messages will be printed in the output. These typically do not contain any useful information other than indicating the specific request was successful. The default value is false.
    Result Set Columns
    Name Type Description
    RequestId String The Requestid the message is associated with.
    Severity String The severity of the message.
    StatusCode String The status code of the output message.
    StatusMessage String The status message giving details abouts what happened.

    VoidTransaction

    Voids a given transaction in QuickBooks.

    Input
    Name Type Description
    TransactionType String The type of transaction to void. The allowed values are ARRefundCreditCard, Bill, BillPaymentCheck, BillPaymentCreditCard, Charge, Check, CreditCardCharge, CreditCardCredit, CreditMemo, Deposit, InventoryAdjustment, Invoice, ItemReceipt, JournalEntry, SalesReceipt, VendorCredit.
    TxnID String The ID of the transaction to be voided. This should be the ID of an invoice, bill, check, or other such transaction.
    Result Set Columns
    Name Type Description
    \* String Output varies depending on the supplied QBXML request.

    System Tables

    You can query the system tables described in this section to access schema information, information on data source functionality, and batch operation statistics.

    Schema Tables

    The following tables return database metadata for QuickBooks:

    Data Source Tables

    The following tables return information about how to connect to and query the data source:

    • sys_connection_props: Returns information on the available connection properties.
    • sys_sqlinfo: Describes the SELECT queries that the connector can offload to the data source.

    Query Information Tables

    The following table returns query statistics for data modification queries, including batch operations:

    • sys_identity: Returns information about batch operations or single updates.

    sys_catalogs

    Lists the available databases.

    The following query retrieves all databases determined by the connection string:

    SELECT * FROM sys_catalogs
    
    Columns
    Name Type Description
    CatalogName String The database name.

    sys_schemas

    Lists the available schemas.

    The following query retrieves all available schemas:

    SELECT * FROM sys_schemas
    
    Columns
    Name Type Description
    CatalogName String The database name.
    SchemaName String The schema name.

    sys_tables

    Lists the available tables.

    The following query retrieves the available tables and views:

    SELECT * FROM sys_tables
    
    Columns
    Name Type Description
    CatalogName String The database containing the table or view.
    SchemaName String The schema containing the table or view.
    TableName String The name of the table or view.
    TableType String The table type (table or view).
    Description String A description of the table or view.
    IsUpdateable Boolean Whether the table can be updated.

    sys_tablecolumns

    Describes the columns of the available tables and views.

    The following query returns the columns and data types for the Customers table:

    SELECT ColumnName, DataTypeName FROM sys_tablecolumns WHERE TableName='Customers'
    
    Columns
    Name Type Description
    CatalogName String The name of the database containing the table or view.
    SchemaName String The schema containing the table or view.
    TableName String The name of the table or view containing the column.
    ColumnName String The column name.
    DataTypeName String The data type name.
    DataType Int32 An integer indicating the data type. This value is determined at run time based on the environment.
    Length Int32 The storage size of the column.
    DisplaySize Int32 The designated column's normal maximum width in characters.
    NumericPrecision Int32 The maximum number of digits in numeric data. The column length in characters for character and date-time data.
    NumericScale Int32 The column scale or number of digits to the right of the decimal point.
    IsNullable Boolean Whether the column can contain null.
    Description String A brief description of the column.
    Ordinal Int32 The sequence number of the column.
    IsAutoIncrement String Whether the column value is assigned in fixed increments.
    IsGeneratedColumn String Whether the column is generated.
    IsHidden Boolean Whether the column is hidden.
    IsArray Boolean Whether the column is an array.
    IsReadOnly Boolean Whether the column is read-only.
    IsKey Boolean Indicates whether a field returned from sys_tablecolumns is the primary key of the table.

    sys_procedures

    Lists the available stored procedures.

    The following query retrieves the available stored procedures:

    SELECT * FROM sys_procedures
    
    Columns&