`

Matillion ETL Data Model for QuickBooks
Version - 18.0.6886




Connection String OptionsBack To Top

  1. Application Name
  2. Auto Cache
  3. Batch Size
  4. Cache Connection
  5. Cache Driver
  6. Cache Location
  7. Cache Metadata
  8. Cache Query Result
  9. Cache Tolerance
  10. Company File
  11. Connection Life Time
  12. Connect On Open
  13. Custom Field Mode
  14. Delay After Close
  15. Firewall Password
  16. Firewall Port
  17. Firewall Server
  18. Firewall Type
  19. Firewall User
  20. Include Line Items
  21. Include Linked Txns
  22. Location
  23. Logfile
  24. Max Log File Size
  25. Max Rows
  26. Offline
  27. Other
  28. Pagesize
  29. Password
  30. Pool Idle Timeout
  31. Pool Max Size
  32. Pool Min Size
  33. Pool Wait Time
  34. Proxy Auth Scheme
  35. Proxy Auto Detect
  36. Proxy Password
  37. Proxy Port
  38. Proxy Server
  39. Proxy SSL Type
  40. Proxy User
  41. Pseudo Columns
  42. QBXML Version
  43. Readonly
  44. RTK
  45. SSL Server Cert
  46. Support Enhanced SQL
  47. Tables
  48. Timeout
  49. URL
  50. Use Connection Pooling
  51. User
  52. Use RDS
  53. Verbosity
  54. Views



Application Name

The name of the developer's application.
Data Type

string

Default Value

"CData QuickBooks Connector"

Remarks

This name will appear when the application first connects to QuickBooks. QuickBooks will display this name and prompt the user to grant or refuse access to the application.





Auto Cache

Automatically caches the results of SELECT queries into a cache database specified by either CacheLocation or both of CacheConnection and CacheProvider . Configured with CacheQueryResult .
Data Type

bool

Default Value

false

Remarks

When AutoCache is set, the driver automatically maintains a cache of your table's data in the database of your choice. By default, the driver incrementally updates the cache, retrieving only changes since the last SELECT query was run if the length of time since the last run has exceeded the CacheTolerance. After the cache is updated, the query is executed against the cached data. With CacheQueryResult additionally set, the driver updates the cache when you execute a SELECT query and returns the live results from the QuickBooks data.

Explicitly Caching SELECT Results

CacheQueryResult is a way to query QuickBooks in real time while maintaining a cache for offline use. Set CacheQueryResult to update the cache whenever you execute a SELECT statement. When you execute a SELECT statement with AutoCache and CacheQueryResult set, the driver executes the query to the remote data and caches the results; rows that already exist are overwritten. That is, SELECT statements are used to create and refresh the cache, not to query it. Data manipulation commands are executed to the remote data as well.

To query the cached data, set the Offline property. If you need to query the cached data in an online connection, you can append #CACHE to the table name. For example:

SELECT * FROM [Customers#CACHE]

Setting the Caching Database

When AutoCache is set, the driver caches to a simple, file-based cache. You can configure its location or cache to a different database with the following properties:

See Also





Batch Size

The maximum size of each batch operation to submit.
Data Type

int

Default Value

0

Remarks

When BatchSize is set to a value greater than 0, the batch operation will split the entire batch into separate batches of size BatchSize. The split batches will then be submitted to the server individually. This is useful when the server has limitations on the size of the request that can be submitted.

Setting BatchSize to 0 will submit the entire batch as specified.





Cache Connection

The connection string for the cache database. Always used in conjunction with CacheProvider . Setting both properties will override the value set for CacheLocation for caching data.
Data Type

string

Default Value

""

Remarks

The cache database is determined based on the CacheDriver and CacheConnection properties. Both properies are required to use the cache database. Examples of common cache database settings can be found below. For more information on setting the caching database's driver, refer to CacheDriver.

The connection string specified in the CacheConnection property is passed directly to the underlying CacheDriver. Consult the documentation for the specific JDBC driver for more information on the available properties. Make sure to include the JDBC driver in your application's classpath.

Derby and Java DB

The driver simplifies caching to Derby, only requiring you to set the CacheLocation property to make a basic connection.

Alternatively, you can configure the connection to Derby manually using CacheProvider and CacheConnection. Below is the Derby JDBC URL syntax:

jdbc:derby:[subsubprotocol:][databaseName][;attribute=value[;attribute=value] ... ]
For example, to cache to an in-memory database, use the following:
jdbc:derby:memory

SQLite

To cache to SQLite, you can use the SQLite JDBC driver. Below is the syntax of the JDBC URL:

jdbc:sqlite:dataSource

MySQL

The installation includes the CData JDBC Driver for MySQL. Below is an example JDBC URL:

jdbc:mysql:User=root;Password=root;Server=localhost;Port=3306;Database=cache
Below are typical connection properties:

SQL Server

The JDBC URL for the Microsoft JDBC Driver for SQL Server has the following syntax:

jdbc:sqlserver://[serverName[\instance][:port]][;database=databaseName][;property=value[;property=value] ... ]
For example:
jdbc:sqlserver://localhost\sqlexpress:1433;integratedSecurity=true
Below are typical SQL Server connection properties:
Oracle

Below is the conventional JDBC URL syntax for the Oracle JDBC Thin driver:

jdbc:oracle:thin:[userId/password]@[//]host[[:port][:sid]]
For example:
jdbc:oracle:thin:scott/tiger@myhost:1521:orcl
Below are typical connection properties:
PostgreSQL

Below is the JDBC URL syntax for the official PostgreSQL JDBC driver:

jdbc:postgresql:[//[host[:port]]/]database[[?option=value][[&option=value][&option=value] ... ]]
For example, the following connection string connects to a database on the default host (localhost) and port (5432):
jdbc:postgresql:postgres
Below are typical connection properties:





Cache Driver

The database driver to be used to cache data.
Data Type

string

Default Value

""

Remarks

You can cache to any database for which you have a JDBC driver, including CData JDBC drivers.

The cache database is determined based on the CacheDriver and CacheConnection properties. The CacheDriver is the name of the JDBC driver class that you would like to use to cache data.

Note that you must also add the CacheDriver JAR to the classpath.

The following examples show how to cache to several major databases. Refer to CacheConnection for more information on the JDBC URL syntax and typical connection properties.

Derby and Java DB

The driver simplifies Derby configuration. Java DB is the Oracle distribution of Derby. The JAR is shipped in the JDK. You can find the JAR, derby.jar, in the db subfolder of the JDK installation. In most caching scenarios, you need to specify only the following, after adding derby.jar to the classpath.

jdbc:quickbooks:CacheLocation='c:/Temp/cachedir';User=test;Password=test;URL=http://localhost:8166;
To customize the Derby JDBC URL, use CacheDriver and CacheConnection. For example, to cache to an in-memory database, use a JDBC URL like the following:
jdbc:quickbooks:CacheDriver=org.apache.derby.jdbc.EmbeddedDriver;CacheConnection='jdbc:derby:memory';User=test;Password=test;URL=http://localhost:8166;
SQLite

Below is a JDBC URL for the SQLite JDBC driver:

jdbc:quickbooks:CacheDriver=org.sqlite.JDBC;CacheConnection='jdbc:sqlite:C:/Temp/sqlite.db';User=test;Password=test;URL=http://localhost:8166;
MySQL

Below is a JDBC URL for the included CData JDBC Driver for MySQL:

  jdbc:quickbooks:Cache Driver=cdata.jdbc.mysql.MySQLDriver;Cache Connection='jdbc:mysql:Server=localhost;Port=3306;Database=cache;User=root;Password=123456';User=test;Password=test;URL=http://localhost:8166;
  
The CData JDBC Driver for MySQL is located in the lib subfolder of the CData JDBC Driver for QuickBooks 2018 installation directory.
SQL Server

The following JDBC URL uses the Microsoft JDBC Driver for SQL Server:

jdbc:quickbooks:Cache Driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;Cache Connection='jdbc:sqlserver://localhost\sqlexpress:7437;user=sa;password=123456;databaseName=Cache';User=test;Password=test;URL=http://localhost:8166;
Oracle

Below is a JDBC URL for the Oracle Thin Client:

jdbc:quickbooks:Cache Driver=oracle.jdbc.driver.OracleDriver;CacheConnection='jdbc:oracle:thin:scott/tiger@localhost:1521:orcldb';User=test;Password=test;URL=http://localhost:8166;
PostgreSQL

The following JDBC URL uses the official PostgreSQL JDBC driver:

jdbc:quickbooks:CacheDriver=org.postgresql.Driver;CacheConnection='jdbc:postgresql://localhost:5433/postgres?user=postgres&password=admin';User=test;Password=test;URL=http://localhost:8166;





Cache Location

Specifies the path to the cache when caching to a file.
Data Type

string

Default Value

""

Remarks

The CacheLocation is a simple, file-based cache. The driver uses Java DB, Oracle's distribution of the Derby database. To cache to Java DB, you will need to add the Java DB JAR to the classpath. The JAR, derby.jar, is shipped in the JDK and located in the db subfolder of the JDK installation.

CacheLocation defaults to the directory specified by the Location setting.

See Also





Cache Metadata

Whether or not to cache the table metadata to a file store.
Data Type

bool

Default Value

false

Remarks

As you execute queries with this property set, table metadata in the QuickBooks catalog are cached to the file store specified by CacheLocation if set or the user's home directory otherwise. A table's metadata will be retrieved only once, when the table is queried for the first time.

When to Use CacheMetadata

The driver automatically persists metadata in memory for up to two hours when you first discover the metadata for a table or view and therefore, CacheMetadata is generally not required. CacheMetadata becomes useful when metadata operations are expensive such as when you are working with large amounts of metadata or when you have many short-lived connections.

When Not to Use CacheMetadata





Cache Query Result

With AutoCache set, caches each row read from a SELECT query's results. Without this, the provider will attempt to fully replicate the table before executing the actual query against the replication database.
Data Type

bool

Default Value

false

Remarks

When CacheQueryResult and AutoCache are set, the rows returned from a SELECT query are cached in the cache database. The driver handles caching in a streaming fashion with each row being processed into the cache database from the original result set as you read the row from the returned ResultSet object. This ensures that the live data is not queried twice. Note that any rows you do not read from the returned ResultSet will not be updated in the cache.





Cache Tolerance

The tolerance for stale data in the cache specified in seconds when using AutoCache .
Data Type

string

Default Value

"600"

Remarks

The tolerance for stale data in the cache specified in seconds. This only applies when AutoCache is used. The driver will check with the data source for newer records after the tolerance interval has expired. Otherwise it will return the data directly from the cache.





Company File

The name of the CompanyFile to open.
Data Type

string

Default Value

""

Remarks

If QuickBooks is not currently open with a CompanyFile, QuickBooks will be automatically opened in the background with the file specified. Do not set CompanyFile when QuickBooks is open. If QuickBooks is open through the application UI, only the currently opened CompanyFile may be used. If you are connecting to a remote company file, the CompanyFile parameter will be ignored. Specify the company file when you create a Remote Connector user.





Connection Life Time

The maximum lifetime of a connection in seconds. Once the time has elapsed, the connection object is disposed.
Data Type

string

Default Value

"0"

Remarks

The maximum lifetime of a connection in seconds. Once the time has elapsed, the connection object is disposed. The default is 0 which indicates there is no limit to the connection lifetime.





Connect On Open

Species whether to connect to the QuickBooks when the connection is opened.
Data Type

bool

Default Value

false

Remarks

When set to 'true', a connection will be made to QuickBooks when the connection is opened. This property enables the 'Test Connection' feature available in various database tools.

This feature acts as a NOOP command as it is used to verify a connection can be made to QuickBooks and nothing from this initial connection is maintained.

Setting this property to 'false' may provide performance improvements (depending upon the number of times a connection is opened).





Custom Field Mode

How custom fields should display.
Data Type

string

Default Value

"XML"

Remarks

XML is the traditional way of displaying custom fields and will be compatible with older implementations. However, JSON is more compact and may be more appropriate if the values are being saved to a database or other tool that cannot easily traverse the XML structure.





Delay After Close

A delay in milliseconds to be applied each time a connection to QuickBooks is closed.
Data Type

string

Default Value

""

Remarks

If QuickBooks is generating internal errors (in particular with automatic login), setting this delay to a positive value may solve the problem.





Firewall Password

A password used to authenticate to a proxy-based firewall.
Data Type

string

Default Value

""

Remarks

This property is passed to the proxy specified by FirewallServer and FirewallPort, following the authentication method specified by FirewallType.





Firewall Port

The TCP port for a proxy-based firewall.
Data Type

string

Default Value

""

Remarks

This specifies the TCP port for a proxy allowing traversal of a firewall. Use FirewallServer to specify the name or IP address. Specify the protocol with FirewallType.





Firewall Server

The name or IP address of a proxy-based firewall.
Data Type

string

Default Value

""

Remarks

This property specifies the IP address, DNS name, or host name of a proxy allowing traversal of a firewall. The protocol is specified by FirewallType: Use FirewallServer with this property to connect through SOCKS or do tunneling. Use ProxyServer to connect to an HTTP proxy.

Note that the driver uses the system proxy by default. To use a different proxy, set ProxyAutoDetect to false.





Firewall Type

The protocol used by a proxy-based firewall.
Data Type

string

Default Value

"NONE"

Remarks

This property specifies the protocol that the driver will use to tunnel traffic through the FirewallServer proxy. Note that by default the driver connects to the system proxy; to disable this behavior and connect to one of the following proxy types, set ProxyAutoDetect to false.

Type Default Port Description
TUNNEL 80 When this is set, the driver opens a connection to QuickBooks and traffic flows back and forth through the proxy.
SOCKS4 1080 When this is set, the driver sends data through the SOCKS 4 proxy specified by FirewallServer and FirewallPort and passes the FirewallUser value to the proxy, which determines if the connection request should be granted.
SOCKS5 1080 When this is set, the driver sends data through the SOCKS 5 proxy specified by FirewallServer and FirewallPort. If your proxy requires authentication, set FirewallUser and FirewallPassword to credentials the proxy recognizes.

To connect to HTTP proxies, use ProxyServer and ProxyPort. To authenticate to HTTP proxies, use ProxyAuthScheme, ProxyUser, and ProxyPassword.





Firewall User

The user name to use to authenticate with a proxy-based firewall.
Data Type

string

Default Value

""

Remarks

The FirewallUser and FirewallPassword properties are used to authenticate against the proxy specified in FirewallServer and FirewallPort, following the authentication method specified in FirewallType.





Include Line Items

Whether or not to request Line Item responses from QuickBooks when retrieving a base transaction, such as Invoices.
Data Type

bool

Default Value

false

Remarks

Whether or not to request Line Item responses from QuickBooks when retrieving a base transaction, such as Invoices. This will not affect Line Item tables, only base transaction tables. Setting this value to false will typically result in better performance.





Include Linked Txns

Whether or not to request Linked Transactions from QuickBooks when retrieving a base transaction, such as Invoices.
Data Type

bool

Default Value

false

Remarks

Whether or not to request Linked Transactions from QuickBooks when retrieving a base transaction, such as Invoices. This will not affect Linked Transaction tables, only base transaction tables. Setting this value to false will typically result in better performance.





Location

A path to the directory that contains the schema files defining tables, views, and stored procedures.
Data Type

string

Default Value

""

Remarks

The path to a directory which contains the schema files for the driver (.rsd files for tables and views, .rsb files for stored procedures). The Location property is only needed if you would like to customize definitions (e.g., change a column name, ignore a column, etc.) or extend the data model with new tables, views, or stored procedures.

The schema files are deployed alongside the driver assemblies. You must also ensure that Location points to the folder that contains the schema files. The folder location can be a relative path from the location of the executable.





Logfile

A path to the log file.
Data Type

string

Default Value

""

Remarks

For more control over what is written to the log file, take a look at Verbosity.





Max Log File Size

A string specifying the maximum size in bytes for a log file (ex: 10MB). When the limit is hit, a new log is created in the same folder with the date and time appended to the end.
Data Type

string

Default Value

"100MB"

Remarks

A string specifying the maximum size in bytes for a log file (ex: 10MB). When the limit is hit, a new log is created in the same folder with the date and time appended to the end. The default limit is 100MB. Values lower than 100kB will use 100kB as the value instead.





Max Rows

Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
Data Type

string

Default Value

"-1"

Remarks

Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.





Offline

Use offline mode to get the data from the cache instead of the live source.
Data Type

bool

Default Value

false

Remarks

When Offline is set to TRUE, all queries execute against the cache as opposed to the live data source. In this mode, certain queries like INSERT, UPDATE, DELETE, and CACHE are not allowed.





Other

Hidden properties needed only in specific use cases.
Data Type

string

Default Value

""

Remarks

The properties listed below are available for specific use cases. Normal driver use cases and functionality should not require these properties.

Specify multiple properties in a semicolon-separated list.

Caching Configuration

CachePartial=TrueCaches only a subset of columns, which you can specify in your query.
QueryPassthrough=TruePasses the specified query to the cache database instead of using the SQL parser of the driver.

Integration and Formatting

DefaultColumnSizeSets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000.
ConvertDateTimeToGMTWhether to convert date-time values to GMT, instead of the local time of the machine.
RecordToFile=filenameRecords the underlying socket data transfer to the specified file.





Pagesize

The maximum number of results to return per page from QuickBooks.
Data Type

string

Default Value

"500"

Remarks

The Pagesize property affects the maximum number of results to return per page from QuickBooks when executing a query. A higher value will return more results per page, but may also cause a timeout exception. 500 is the maximum number of results that may be returned per page for the Online Edition. The Desktop Edition has no limits on the maximum page size.





Password

A password for the Remote Connector connection.
Data Type

string

Default Value

""

Remarks

The Remote Connector must require user authentication before this property is used.





Pool Idle Timeout

The allowed idle time for a connection before it is closed.
Data Type

string

Default Value

""

Remarks

The allowed idle time a connection can remain in the pool until the connection is closed. The default is 60 seconds.





Pool Max Size

The maximum connections in the pool.
Data Type

string

Default Value

"100"

Remarks

The maximum connections in the pool. The default is 100. To disable this property, set the property value to 0 or less.





Pool Min Size

The minimum number of connections in the pool.
Data Type

string

Default Value

"1"

Remarks

The minimum number of connections in the pool. The default is 1.





Pool Wait Time

The max seconds to wait for an available connection.
Data Type

string

Default Value

""

Remarks

The max seconds to wait for a connection to become available. If a new connection request is waiting for an available connection and exceeds this time, an error is thrown. By default, new requests wait forever for an available connection.





Proxy Auth Scheme

The authentication type to use to authenticate to the ProxyServer proxy.
Data Type

string

Default Value

"BASIC"

Remarks

This value specifies the authentication type to use to authenticate to the HTTP proxy specified by ProxyServer and ProxyPort.

Note that the driver will use the system proxy settings by default, without further configuration needed; if you want to connect to another proxy, you will need to set ProxyAutoDetect to false, in addition to ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.

The authentication type can be one of the following:

If you need to use another authentication type, such as SOCKS 5 authentication, see FirewallType.





Proxy Auto Detect

This indicates whether to use the system proxy settings or not. Set ProxyAutoDetect to FALSE to use custom proxy settings. This takes precedence over other proxy settings.
Data Type

bool

Default Value

true

Remarks

By default, the driver uses the system HTTP proxy. Set this to false if you want to connect to another proxy.

To connect to an HTTP proxy, see ProxyServer.

For other proxies, such as SOCKS or tunneling, see FirewallType.





Proxy Password

A password to be used to authenticate to the ProxyServer proxy.
Data Type

string

Default Value

""

Remarks

This property is used to authenticate to an HTTP proxy server that supports NTLM (Windows), Kerberos, or HTTP authentication. To specify the HTTP proxy, you can set ProxyServer and ProxyPort. To specify the authentication type, set ProxyAuthScheme.

If you are using HTTP authentication, additionally set ProxyUser and ProxyPassword to HTTP proxy.

If you are using NTLM authentication, set ProxyUser and ProxyPassword to your Windows password. You may also need these to complete Kerberos authentication.

For SOCKS 5 authentication or tunneling, see FirewallType.

By default, the driver uses the system proxy. If you want to connect to another proxy, set ProxyAutoDetect to false.





Proxy Port

The TCP port the ProxyServer proxy is running on.
Data Type

string

Default Value

"80"

Remarks

The port the HTTP proxy is running on that you want to redirect HTTP traffic through. Specify the HTTP proxy in ProxyServer. For other proxy types, see FirewallType.





Proxy Server

The hostname or IP address of a proxy to route HTTP traffic through.
Data Type

string

Default Value

""

Remarks

The hostname or IP address of a proxy to route HTTP traffic through. The driver can use the HTTP, Windows (NTLM), or Kerberos authentication types to authenticate to an HTTP proxy.

If you need to connect through a SOCKS proxy or tunnel the connection, see FirewallType.

By default, the driver uses the system proxy. If you need to use another proxy, set ProxyAutoDetect to false.





Proxy SSL Type

The SSL type to use when connecting to the ProxyServer proxy.
Data Type

string

Default Value

"AUTO"

Remarks

This property determines when to use SSL for the connection to an HTTP proxy specified by ProxyServer. This value can be AUTO, ALWAYS, NEVER, or TUNNEL. The applicable values are the following:

AUTODefault setting. If the URL is an HTTPS URL, the driver will use the TUNNEL option. If the URL is an HTTP URL, the component will use the NEVER option.
ALWAYSThe connection is always SSL enabled.
NEVERThe connection is not SSL enabled.
TUNNELThe connection is through a tunneling proxy: The proxy server opens a connection to the remote host and traffic flows back and forth through the proxy.





Proxy User

A user name to be used to authenticate to the ProxyServer proxy.
Data Type

string

Default Value

""

Remarks

The ProxyUser and ProxyPassword options are used to connect and authenticate against the HTTP proxy specified in ProxyServer.

You can select one of the available authentication types in ProxyAuthScheme. If you are using HTTP authentication, set this to the username of a user recognized by the HTTP proxy. If you are using Windows or Kerberos authentication, set this property to a username in one of the following formats:

user@domain
domain\user





Pseudo Columns

Indicates whether or not to include pseudo columns as columns to the table.
Data Type

string

Default Value

""

Remarks

This setting is particularly helpful in Entity Framework, which does not allow you to set a value for a pseudo column unless it is a table column. The value of this connection setting is of the format "Table1=Column1, Table1=Column2, Table2=Column3". You can use the "*" character to include all tables and all columns; i.e., "*=*".





QBXML Version

The version of QBXML used in the outgoing message. This is only applicable to Desktop Edition.
Data Type

string

Default Value

"QBDEFAULT"

Remarks

Except as noted in the documentation, a value of "1.1" will suffice for all requests and for all versions of QuickBooks that support integrated applications.

With each release of QuickBooks since 2002, a corresponding version of the QuickBooks SDK has also been released: 1.0 for QuickBooks 2002, 2.0 for QuickBooks 2003, 3.0 for QuickBooks 2004, etc., up to 8.0 for QuickBooks 2009. In addition, each release of QuickBooks continues to support all earlier versions of the SDK, meaning that requests using version 1.1 of the QuickBooks SDK are supported by all versions of QuickBooks. However, new requests and newer fields in existing requests are supported in only later versions of the QuickBooks SDK. As such, it is recommended that you set the QBXMLVersion property to correspond to the version of QuickBooks you are interacting with. These values are:

QuickBooks 20021.0, 1.1
QuickBooks 20032.0
QuickBooks 20043.0
QuickBooks 20054.0, 4.1
QuickBooks 20065.0
QuickBooks 20076.0
QuickBooks 20087.0
QuickBooks 20098.0
QuickBooks 20109.0
QuickBooks 201110.0
QuickBooks 201211.0
QuickBooks 201312.0
QuickBooks 201413.0

In addition, versions of QuickBooks outside of the U.S. released before QuickBooks 2008 adhere to a different version of the QuickBooks SDK. These versions were updated with less frequency than the U.S. SDK and may omit features introduced in later releases:

QuickBooks Canadian 2003CA2.0
QuickBooks Canadian 2004 to 2007CA3.0
QuickBooks UK 2003UK2.0
QuickBooks UK 2004 to 2007UK3.0
QuickBooks Australian 2003OZ2.0
QuickBooks Australian 2004 to 2007AU3.0





Readonly

You can use this property to enforce read-only access to QuickBooks from the provider.
Data Type

bool

Default Value

false

Remarks

If this property is set to true, the driver will allow only SELECT queries. INSERT, UPDATE, DELETE, and stored procedure queries will cause an error to be thrown.





RTK

The runtime key used for licensing.
Data Type

string

Default Value

""

Remarks

The RTK property may be used to license a build. Please see the included licensing file to see how to set this property. The runtime key is only available if you purchased an OEM license.





SSL Server Cert

The SSL certificate being used by the Remote Connector.
Data Type

string

Default Value

""

Remarks

If using a TLS/SSL connection, this property can be used to specify the TLS/SSL certificate to be accepted from the server. Any other certificate that is not trusted by the machine will be rejected.

This property can take the forms:

Description Example
A full PEM Certificate (example shortened for brevity) -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----
A path to a local file containing the certificate C:\cert.cer
The public key (example shortened for brevity) -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY-----
The MD5 Thumbprint (hex values can also be either space or colon separated) ecadbdda5a1529c58a1e9e09828d70e4
The SHA1 Thumbprint (hex values can also be either space or colon separated) 34a929226ae0819f2ec14b4a3d904f801cbb150d

If not specified, any certificate trusted by the machine will be accepted. Use '*' to signify to accept all certificates (not recommended for security concerns).

The base-64 encoded certificate being used by the Remote Connector.

This is only necessary if using a self-signed certificate or any other certificate that has not been signed by a Certificate Authority (CA) trusted by the system.





Support Enhanced SQL

Enhances SQL functionality beyond what can be supported through the API directly, by enabling in-memory client-side processing.
Data Type

bool

Default Value

true

Remarks

When SupportEnhancedSQL is set to true, the driver offloads as much of the SELECT statement processing as possible to QuickBooks and then processes the rest of the query in memory. In this way the driver can execute unsupported predicates, joins, and aggregation.

When SupportEnhancedSQL is set to false, the driver limits SQL execution to what is supported by the QuickBooks API.

Execution of Predicates

The driver determines which of the clauses are supported by the data source and then pushes them to the source to get the smallest superset of rows that would satisfy the query. It then filters the rest of the rows locally. The filter operation is streamed, which enables the driver to filter effectively for even very large datasets.

Execution of Joins

The driver uses various techniques to join in memory. The driver trades off memory utilization against the requirement of reading the same table more than once.

Execution of Aggregates

The driver retrieves all rows necessary to process the aggregation in memory.





Tables

Restrict the tables reported to a subset of the available tables. For example: Tables=TableA,TableB,TableC.
Data Type

string

Default Value

""

Remarks

Listing the tables from some databases can be expensive. Providing a list of tables in the connection string improves the performance of the driver.

This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.

Specify the tables you want in a comma-separated list. For example: Tables=TableA,TableB,TableC





Timeout

A timeout, in seconds, for the provider to keep open the connection to the Remote Connector or QuickBooks. The value must be greater than 0. If not set or set to 0, the Timeout will default to 300.
Data Type

string

Default Value

"300"

Remarks

If the Connector does not finish and respond within the chosen length of time, the driver will generate an exception instead of hanging.





URL

The URL for the Remote Connector. For example, http://localhost:8166.
Data Type

string

Default Value

""

Remarks

The URL where the Remote Connector is running. For example, http://localhost:8166. The Remote Connector is a lightweight HTTP server that proxies requests from the driver to QuickBooks. The address is the name or IP address of the machine where QuickBooks is running. By default, the Remote Connector runs on port 8166.





Use Connection Pooling

Enables connection pooling.
Data Type

bool

Default Value

false

Remarks

Enables connection pooling. The default is false. See Connection Pooling for information on using connection pools.





User

A username for the Remote Connector connection (if required by the Remote Connector).
Data Type

string

Default Value

""

Remarks

The Remote Connector must require user authentication before this property is used.





Use RDS

Whether the provider will connect using Remote Data Sharing (RDS). Cannot be used together with the Remote Connector.
Data Type

bool

Default Value

false

Remarks

Whether the driver will connect using Remote Data Sharing (RDS). If set to True, the driver will attempt to connect using the RDS client installed on the machine. The RDS client and server must be configured separately. Cannot be used together with the Remote Connector.





Verbosity

The verbosity level that determines the amount of detail included in the log file.
Data Type

string

Default Value

"1"

Remarks

The verbosity level determines the amount of detail that the driver reports to the Logfile. Verbosity levels from 1 to 5 are supported. These are described below:

1Setting Verbosity to 1 will log the query, the number of rows returned by it, the start of execution and the time taken, and any errors.
2Setting Verbosity to 2 will log everything included in Verbosity 1, cache queries, and additional information about the request, if applicable, such as HTTP headers.
3Setting Verbosity to 3 will additionally log the body of the request and the response.
4Setting Verbosity to 4 will additionally log transport-level communication with the data source. This includes SSL negotiation.
5Setting Verbosity to 5 will additionally log communication with the data source and additional details that may be helpful in troubleshooting problems. This includes interface commands.

The Verbosity should not be set to greater than 1 for normal operation. Substantial amounts of data can be logged at higher verbosities, which can delay execution times.





Views

Restrict the views reported to a subset of the available tables. For example: Views=ViewsA,ViewsB,ViewsC.
Data Type

string

Default Value

""

Remarks

Listing the views from some databases can be expensive. Providing a list of views in the connection string improves the performance of the driver.

This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.

Specify the views you want in a comma-separated list. For example: For example: Views=ViewsA,ViewsB,ViewsC





TablesBack To Top

  1. Accounts
  2. BillExpenseItems
  3. BillLineItems
  4. BillPaymentChecks
  5. BillPaymentChecksAppliedTo
  6. BillPaymentCreditCards
  7. BillPaymentCreditCardsAppliedTo
  8. Bills
  9. BuildAssemblies
  10. BuildAssemblyLineItems
  11. CheckExpenseItems
  12. CheckLineItems
  13. Checks
  14. Class
  15. CreditCardChargeExpenseItems
  16. CreditCardChargeLineItems
  17. CreditCardCharges
  18. CreditCardCreditExpenseItems
  19. CreditCardCreditLineItems
  20. CreditCardCredits
  21. CreditMemoLineItems
  22. CreditMemos
  23. Currency
  24. CustomerContacts
  25. CustomerMessages
  26. CustomerNotes
  27. Customers
  28. CustomerShippingAddresses
  29. CustomerTypes
  30. DateDrivenTerms
  31. DepositLineItems
  32. Deposits
  33. EmployeeEarnings
  34. Employees
  35. EstimateLineItems
  36. Estimates
  37. InventoryAdjustmentLineItems
  38. InventoryAdjustments
  39. InventorySites
  40. InvoiceLineItems
  41. Invoices
  42. ItemLineItems
  43. ItemReceiptExpenseItems
  44. ItemReceiptLineItems
  45. ItemReceipts
  46. Items
  47. JobTypes
  48. JournalEntries
  49. JournalEntryLines
  50. OtherNames
  51. PaymentMethods
  52. PayrollNonWageItems
  53. PayrollWageItems
  54. PriceLevelPerItem
  55. PriceLevels
  56. PurchaseOrderLineItems
  57. PurchaseOrders
  58. ReceivePayments
  59. ReceivePaymentsAppliedTo
  60. SalesOrderLineItems
  61. SalesOrders
  62. SalesReceiptLineItems
  63. SalesReceipts
  64. SalesReps
  65. SalesTaxCodes
  66. SalesTaxItems
  67. ShippingMethods
  68. StandardTerms
  69. StatementCharges
  70. TimeTracking
  71. ToDo
  72. TransferInventory
  73. TransferInventoryLineItems
  74. Transfers
  75. UnitOfMeasure
  76. UnitOfMeasureDefaultUnits
  77. UnitOfMeasureRelatedUnits
  78. VehicleMileage
  79. VendorCreditExpenseItems
  80. VendorCreditLineItems
  81. VendorCredits
  82. Vendors
  83. VendorTypes
  84. WorkersCompCodeLines
  85. WorkersCompCodes



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 Description
ID [KEY] String True

The unique identifier of the account.

Name String False

The name of the account. This is required to have a value when inserting.

FullName String True

The full name of the account, including any ancestors (parents) in the format Parent:AccountName.

Type String False

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

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

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

Accounts.FullName

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

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

Currency.Name

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

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

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Expense Line Item columns and 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 (VendorName, Date, ExpenseAccount#1, ExpenseAmount#1, ExpenseAccount#2, ExpenseAmount#2) VALUES ('Cal Telephone', '1/1/2011', 'Utilities:Telephone', 52.25, 'Professional Fees:Accounting', 235.87)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format BillId|ExpenseLineId.

BillId String False

Bills.ID

The bill identifier.

VendorName String False

Vendors.Name

Vendor for this transaction. Either VenderName or VendorId must have a value when inserting.

VendorId String False

Vendors.ID

Vendor Id for this transaction. Either VenderName or VendorId must have a value when inserting.

ReferenceNumber String False

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

Reference to terms of payment.

TermsId String False

Reference Id for the terms of payment.

AccountsPayable String False

Accounts.FullName

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

Reference Id for the accounts-payable account.

Amount Double True

Amount of the transaction. This is calculated by QuickBooks based on the line items or expense line items.

Memo String False

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

The expense line item identifier.

ExpenseLineNumber# String True

The expense line number.

ExpenseAccount# String False

Accounts.FullName

The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAccountId# String False

Accounts.ID

The account Id for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAmount# Double False

The total amount of this expense line.

ExpenseBillableStatus# String False

The billing status of this expense line.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

ExpenseCustomer# String False

Customers.FullName

The customer associated with this expense line.

ExpenseCustomerId# String False

Customers.ID

The customer associated with this expense line.

ExpenseClass# String False

Class.FullName

The class name of this expense.

ExpenseClassId# String False

Class.ID

The class Id of this expense.

ExpenseMemo# String False

A memo for this expense line.

ExpenseTaxCode# String False

SalesTaxCodes.Name

Sales tax information for this item (taxable or non-taxable).

ExpenseTaxCodeId# String False

SalesTaxCodes.ID

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (VendorName, Date, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('Cal Telephone', '1/1/2011', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format BillId|ItemLineId.

BillId String False

Bills.ID

The bill identifier.

VendorName String False

Vendors.Name

Vendor for this transaction. Either VenderName or VendorId must have a value when inserting.

VendorId String False

Vendors.ID

Vendor Id for this transaction. Either VenderName or VendorId must have a value when inserting.

ReferenceNumber String False

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

Reference to terms of payment.

TermsId String False

Reference Id for the terms of payment.

AccountsPayable String False

Accounts.FullName

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

Reference Id for the accounts-payable account.

Amount Double True

Amount of the transaction. This is calculated by QuickBooks based on the line items or expense line items.

Memo String False

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

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item name.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group name. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemQuantity# Double False

The quantity of the item or item group specified in this line.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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# Double False

Total amount for the item.

ItemBillableStatus# String False

Billing status of the item.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

ItemCustomer# String False

Customers.FullName

The name of the customer who ordered the item.

ItemCustomerId# String False

Customers.ID

The Id of the customer who ordered the item.

ItemInventorySiteId# String False

InventorySites.ID

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

The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteLocationId# String False

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

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

The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemLotNumber# String False

The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemClass# String False

Class.FullName

The name for the class of the item.

ItemClassId# String False

Class.ID

The Id for the class of the item.

ItemTaxCode# String False

SalesTaxCodes.Name

Sales tax information for this item (taxable or non-taxable).

ItemTaxCodeId# String False

SalesTaxCodes.ID

Sales tax information for this item (taxable or non-taxable).

ItemCustomFields# String False

The custom fields for this lineitem.

CurrencyName String False

Currency.FullName

Name of the currency code used for this bill.

CurrencyId String False

Currency.ListID

Id of the currency code used for this bill.

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier for the transaction.

PayeeName String False

Vendors.Name

A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required.

PayeeId String False

Vendors.ID

A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required.

ReferenceNumber String False

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 Double True

Amount of the transaction. This is calculated by QuickBooks based on the line items or expense line items.

AccountsPayable String False

Accounts.FullName

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

Reference to the accounts-payable account Id.

BankAccountName String False

Accounts.FullName

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

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

A memo to appear on internal reports.

AppliedToAggregate String False

An aggregate of the applied-to data which can be used for adding a bill payment check and its applied-to data.

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are AppliedTo columns and 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 (PayeeName, BankAccountName, AppliedToRefId#1, AppliedToAmount#1, AppliedToRefId#2, AppliedToAmount#2) VALUES ('Vu Contracting', 'Checking', '178C1-1450221347', 20.00, '881-933371709', 51.25)

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format BillPaymentId|AppliedToId.

BillPaymentId String False

BillPaymentChecks.ID

The Id of the bill payment transaction.

PayeeName String False

Vendors.Name

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

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

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

Reference to the accounts-payable account.

AccountsPayableId String False

Reference to the accounts-payable account Id.

BankAccountId String False

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

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

A memo to appear on internal reports.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

AppliedToRefId# String True

The applied-to reference identifier. This is a reference to a bill Id, which can be found in the Bills table.

AppliedToAmount# Double True

The amount to be applied.

AppliedToBalanceRemaining# Double True

The balance remaining to be applied.

AppliedToCreditAmount# Double False

The amount of the credit to be applied.

AppliedToCreditMemoId# String False

The Id of the credit memo to be applied.

AppliedToDiscountAccountId# String False

The discount account Id to be applied.

AppliedToDiscountAccountName# String False

The discount account name to be applied.

AppliedToDiscountAmount# Double False

The discount amount to be applied.

AppliedToPaymentAmount# Double False

The payment amount to be applied.

AppliedToReferenceNumber# String True

The ref number to be applied.

AppliedToTxnDate# Date True

The transaction date to be applied.

AppliedToTxnType# String True

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier for the transaction.

PayeeName String False

Vendors.Name

A reference to the the entity merchandise was purchased from. Either PayeeId or PayeeName is required.

PayeeId String False

Vendors.ID

A reference to the the entity merchandise was purchased from. Either PayeeId or PayeeName is required.

ReferenceNumber String False

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 Double True

Amount of the transaction. This is calculated by QuickBooks based on the line items or expense line items.

AccountsPayable String False

Accounts.FullName

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

Reference to the accounts-payable account Id.

CreditCardName String False

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

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

A memo to appear on internal reports.

AppliedToAggregate String False

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are AppliedTo columns and 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 (PayeeName, CreditCardName, AppliedToRefId#1, AppliedToAmount#1, AppliedToRefId#2, AppliedToAmount#2) VALUES ('Vu Contracting', 'CalOil Credit Card', '178C1-1450221347', 20.00, '881-933371709', 51.25)

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format BillPaymentId|AppliedToId.

BillPaymentId String False

BillPaymentCreditCards.ID

The Id of the bill payment transaction.

PayeeName String False

Vendors.Name

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

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

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

Accounts.FullName

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

Reference to the accounts-payable account Id.

CreditCardName String False

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

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

A memo to appear on internal reports.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

AppliedToRefId# String True

The applied-to reference identifier. This is a reference to a bill Id, which can be found in the bills table.

AppliedToAmount# Double True

The amount to be applied.

AppliedToBalanceRemaining# Double True

CreditMemos.ID

The balance remaining to be applied.

AppliedToCreditMemoId# String False

The Id of the credit memo to be applied.

AppliedToDiscountAccountName# String False

Accounts.FullName

The discount account name to be applied.

AppliedToDiscountAccountId# String False

Accounts.ID

The discount account Id to be applied.

AppliedToDiscountAmount# Double False

The discount amount to be applied.

AppliedToPaymentAmount# Double False

The payment amount to be applied.

AppliedToReferenceNumber# String True

The ref number to be applied.

AppliedToTxnDate# Date True

The transaction date to be applied.

AppliedToTxnType# String True

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier for the bill.

VendorName String False

Vendors.Name

Vendor for this transaction. Either VenderName or VendorId must have a value when inserting.

VendorId String False

Vendors.ID

Vendor Id for this transaction. Either VenderName or VendorId must have a value when inserting.

ReferenceNumber String False

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

Reference to terms of payment.

TermsId String False

Reference Id for the terms of payment.

AccountsPayable String False

Accounts.FullName

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

Reference Id for the accounts-payable account.

Memo String False

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

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

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

An aggregate of the linked transaction data.

CurrencyName String False

Currency.FullName

Name of the currency code used for this bill.

CurrencyId String False

Currency.ListID

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





BuildAssemblies

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier.

TxnNumber Integer True

An identifying number for this transaction.

ItemInventoryAssemblyRef_ListID String False

Items.ID

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

Items.FullName

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

A reference to the Id of an inventory site.

InventorySiteRef_FullName String False

InventorySites.Name

A reference to the name of an inventory site.

SerialNumber String False

The serial number of the asset. This cannot be used with LotNumber.

LotNumber String False

The lot number of the asset. This cannot be used with SerialNumber.

TxnDate Date False

The date of the transaction.

RefNumber String False

A reference number identifying the transaction. This does not have to be unique.

Memo String False

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





BuildAssemblyLineItems

Create and query QuickBooks Build Assembly transactions.

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier.

BuildAssemblyId String False

BuildAssemblies.ID

The unique Id of the build assembly.

TxnNumber Integer True

An identifying number for this transaction.

ItemInventoryAssemblyRef_ListID String False

Items.ID

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

Items.FullName

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

A reference to the Id of an inventory site. Requires QBXML Version 10.0.

InventorySiteRef_FullName String False

InventorySites.Name

A reference to the name of an inventory site. Requires QBXML Version 10.0.

SerialNumber String False

The serial number of the asset. This cannot be used with LotNumber.

LotNumber String False

The lot number of the asset. This cannot be used with SerialNumber.

TxnDate Date False

The date of the transaction.

RefNumber String False

A reference number identifying the transaction. This does not have to be unique.

Memo String False

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

Reference to the Id of an item.

ComponentItemLineRet_ItemRef_FullName# String True

Items.FullName

Reference to the full name of an item.

ComponentItemLineRet_InventorySiteRef_ListID# String True

InventorySites.ID

Reference to the Id of an inventory site. Requires QBXML Version 10.0.

ComponentItemLineRet_InventorySiteRef_FullName# String True

InventorySites.Name

Reference to the full name of an inventory site. Requires QBXML Version 10.0.

ComponentItemLineRet_Desc# String True

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Checks WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a Check, specify an Account, a Date, and at least one Expense or Line Item. All columns denoted with a # are Expense Line Item columns and 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 (Account, Date, ExpenseAccount#1, ExpenseAmount#1, ExpenseAccount#2, ExpenseAmount#2) VALUES ('Checking', '1/1/2011', 'Utilities:Telephone', 52.25, 'Professional Fees:Accounting', 235.87)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format CheckId|ExpenseLineId.

CheckId String False

Checks.ID

The item identifier for the check. This is obtained from the Checks table.

ReferenceNumber String False

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

Accounts.FullName

The name of the account funds are being drawn from.

AccountId String False

Accounts.ID

The Id of the account funds are being drawn from.

Payee String False

Vendors.Name

The name of the payee for the check.

PayeeId String False

Vendors.ID

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 Double True

Amount of the transaction.

Memo String False

A memo regarding this transaction.

Address String True

Full address returned by QuickBooks.

Line1 String False

First line of the address.

Line2 String False

Second line of the address.

Line3 String False

Third line of the address.

Line4 String False

Fourth line of the address.

Line5 String False

Fifth line of the address.

City String False

City name for the address of the check.

State String False

State name for the address of the check.

PostalCode String False

Postal code for the address of the check.

Country String False

Country for the address of the check.

Note String False

Note for the address of the check.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

ExpenseLineId# String True

The line item identifier.

ExpenseLineNumber# String True

The expense line number.

ExpenseAccount# String False

Accounts.FullName

The account name for this expense line.

ExpenseAccountId# String False

Accounts.ID

The account Id for this expense line.

ExpenseAmount# Double False

The total amount of this expense line.

ExpenseBillableStatus# String False

The billing status of this expense line.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

The default value is EMPTY.

ExpenseCustomer# String False

Customers.FullName

The customer associated with this expense line.

ExpenseCustomerId# String False

Customers.ID

The customer associated with this expense line.

ExpenseClass# String False

Class.FullName

The class name of this expense.

ExpenseClassId# String False

Class.ID

The class Id of this expense.

ExpenseTaxCode# String False

SalesTaxCodes.Name

Sales tax information for this item. Available in only international editions of QuickBooks.

ExpenseTaxCodeId# String False

SalesTaxCodes.ID

Sales tax Id information for this item. Available in only international editions of QuickBooks.

ExpenseMemo# String False

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

Currency.Name

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Checks WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a Check, specify an Account, a Date, and at least one Expense or Line Item. All columns denoted with a # are Line Item columns and 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 (Account, Date, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('Checking', '1/1/2011', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format CheckId|ItemLineId.

CheckId String False

Checks.ID

The item identifier for the check. This is obtained from the checks table.

ReferenceNumber String False

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

Accounts.FullName

The name of the account funds are being drawn from.

AccountId String False

Accounts.ID

The Id of the account funds are being drawn from.

Payee String False

Vendors.Name

The name of the payee for the check.

PayeeId String False

Vendors.ID

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 Double True

Amount of the transaction.

Memo String False

A memo regarding this transaction.

Address String True

Full address returned by QuickBooks.

Line1 String False

First line of the address.

Line2 String False

Second line of the address.

Line3 String False

Third line of the address.

Line4 String False

Fourth line of the address.

Line5 String False

Fifth line of the address.

City String False

City name for the address of the check.

State String False

State name for the address of the check.

PostalCode String False

Postal code for the address of the check.

Country String False

Country for the address of the check.

Note String False

Note for the address of the check.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

ItemLineId# String True

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item Id.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group Id. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemQuantity# Double False

The quantity of the item or item group specified in this line.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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# Double False

Total amount for the item.

ItemBillableStatus# String False

Billing status of the item.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

The default value is EMPTY.

ItemCustomer# String False

Customers.FullName

The name of the customer who ordered the item.

ItemCustomerId# String False

Customers.ID

The Id of the customer who ordered the item.

ItemClass# String False

Class.FullName

The name for the class of the item.

ItemClassId# String False

Class.ID

The Id for the class of the item.

ItemInventorySiteId# String False

InventorySites.ID

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

The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteLocationId# String False

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

The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemTaxCode# String False

SalesTaxCodes.Name

Sales tax information for this item. Available in only international editions of QuickBooks.

ItemTaxCodeId# String False

SalesTaxCodes.ID

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

Currency.Name

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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%'
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 as # columns. 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 Description
ID [KEY] String True

The unique identifier.

ReferenceNumber String False

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

Accounts.FullName

The name of the account funds are being drawn from.

AccountId String False

Accounts.ID

The id of the account funds are being drawn from.

Payee String False

Vendors.Name

The name of the payee for the Check.

PayeeId String False

Vendors.ID

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 Double True

Amount of the transaction.

Memo String False

A memo regarding this transaction.

Address String True

Full address returned by QuickBooks.

Line1 String False

First line of the address.

Line2 String False

Second line of the address.

Line3 String False

Third line of the address.

Line4 String False

Fourth line of the address.

Line5 String False

Fifth line of the address.

City String False

City name for the address of the check.

State String False

State name for the address of the check.

PostalCode String False

Postal code for the address of the check.

Country String False

Country for the address of the check.

Note String False

Note for the address of the check.

ItemCount Integer True

The count of line items.

ItemAggregate String False

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

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

Currency.Name

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier of the class.

Name String False

The name of the class.

FullName String True

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

Class.FullName

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

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Expense Line Item columns and 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 (AccountName, ExpenseAccount#1, ExpenseAmount#1, ExpenseAccount#2, ExpenseAmount#2) VALUES ('CalOil Credit Card', 'Job Expenses:Job Materials', 52.25, 'Automobile:Fuel', 235.87)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format CCChargeId|ItemLineId.

CCChargeId String False

CreditCardCharges.ID

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

Reference number for the transaction.

AccountName String False

Accounts.FullName

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

AccountId String False

Accounts.ID

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

Memo String False

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

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

The expense line item identifier.

ExpenseLineNumber# String True

The expense line number.

ExpenseAccount# String False

Accounts.FullName

The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAccountId# String False

Accounts.ID

The account Id for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAmount# Double False

The total amount of this expense line.

ExpenseBillableStatus# String False

The billing status of this expense line.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

ExpenseCustomer# String False

Customers.FullName

The customer associated with this expense line.

ExpenseCustomerId# String False

Customers.ID

The customer associated with this expense line.

ExpenseClass# String False

Class.FullName

The class name of this expense.

ExpenseClassId# String False

Class.ID

The class Id of this expense.

ExpenseMemo# String False

A memo for this expense line.

ExpenseTaxCode# String False

SalesTaxCodes.Name

Sales tax information for this item (taxable or nontaxable).

ExpenseTaxCodeId# String False

SalesTaxCodes.ID

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (AccountName, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('CalOil Credit Card', '1/1/2011', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format CCChargeId|ItemLineId.

CCChargeId String False

CreditCardCharges.ID

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

Reference number for the transaction.

AccountName String False

Accounts.FullName

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

AccountId String False

Accounts.ID

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

Memo String False

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

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

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item identifier.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group name. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemQuantity# Double False

The quantity of the item or item group specified in this line.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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# Double False

Total amount for this item.

ItemBillableStatus# String False

Billing status of the item.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

ItemCustomer# String False

Customers.FullName

The name of the customer who ordered the item.

ItemCustomerId# String False

Customers.ID

The Id of the customer who ordered the item.

ItemClass# String False

Class.FullName

The name for the class of the item.

ItemClassId# String False

Class.ID

The Id for the class of the item.

ItemTaxCode# String False

SalesTaxCodes.Name

Sales tax information for this item (taxable or nontaxable).

ItemTaxCodeId# String False

SalesTaxCodes.ID

Sales tax information for this item (taxable or nontaxable).

ItemInventorySiteId# String False

InventorySites.ID

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

The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteLocationId# String False

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

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 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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

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

Reference number for the transaction.

AccountName String False

Accounts.FullName

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

AccountId String False

Accounts.ID

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

Memo String False

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

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

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

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.

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Expense Line Item columns and 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 (AccountName, ExpenseAccount#1, ExpenseAmount#1, ExpenseAccount#2, ExpenseAmount#2) VALUES ('CalOil Credit Card', 'Job Expenses:Job Materials', 52.25, 'Automobile:Fuel', 235.87)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format CCCreditId|ItemLineId.

CCCreditId String False

CreditCardCredits.ID

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

Reference number for the transaction.

AccountName String False

Accounts.FullName

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

AccountId String False

Accounts.ID

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

Memo String False

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

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

The expense line item identifier.

ExpenseLineNumber# String True

The expense line number.

ExpenseAccount# String False

Accounts.FullName

The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAccountId# String False

Accounts.ID

The account Id for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAmount# Double False

The total amount of this expense line.

ExpenseBillableStatus# String False

The billing status of this expense line.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

ExpenseCustomer# String False

Customers.FullName

The customer associated with this expense line.

ExpenseCustomerId# String False

Customers.ID

The customer associated with this expense line.

ExpenseClass# String False

Class.FullName

The class name of this expense.

ExpenseClassId# String False

Class.ID

The class Id of this expense.

ExpenseMemo# String False

A memo for this expense line.

ExpenseTaxCode# String False

SalesTaxCodes.Name

Sales tax information for this item (taxable or nontaxable).

ExpenseTaxCodeId# String False

SalesTaxCodes.ID

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (AccountName, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('CalOil Credit Card', '1/1/2011', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format CCCreditId|ItemLineId.

CCCreditId String False

CreditCardCredits.ID

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

Reference number for the transaction.

AccountName String False

Accounts.FullName

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

AccountId String False

Accounts.ID

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

Memo String False

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

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

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item identifier.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group name. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemQuantity# Double False

The quantity of the item or item group specified in this line.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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# Double False

Total amount for this item.

ItemBillableStatus# String False

Billing status of the item.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

ItemCustomer# String False

Customers.FullName

The name of the customer who ordered the item.

ItemCustomerId# String False

Customers.ID

The Id of the customer who ordered the item.

ItemClass# String False

Class.FullName

The name for the class of the item.

ItemClassId# String False

Class.ID

The Id for the class of the item.

ItemTaxCode# String False

SalesTaxCodes.Name

Sales tax information for this item (taxable or nontaxable).

ItemTaxCodeId# String False

SalesTaxCodes.ID

Sales tax information for this item (taxable or nontaxable).

ItemInventorySiteId# String False

InventorySites.ID

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

The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteLocationId# String False

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

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

Reference number for the transaction.

AccountName String False

Accounts.FullName

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

AccountId String False

Accounts.ID

A reference to the credit card account. Either AccountId or AccountName must have a value when inserting.

Memo String False

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

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

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

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.

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (CustomerName, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('Abercrombie, Kristy', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format CreditMemoId|ItemLineId.

CreditMemoId String False

CreditMemos.ID

The item identifier.

ReferenceNumber String False

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

Customers.FullName

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

The Id of the customer on the credit memo. CustomerName or CustomerId are required to have a value when inserting.

AccountsReceivable String False

Accounts.FullName

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.

ShipMethod String False

ShippingMethods.Name

The shipping method.

ShipMethodId String False

ShippingMethods.ID

The shipping method id.

ShipDate Date False

The shipping date.

Memo String False

A memo regarding this transaction.

Amount Double False

Total amount for this transaction.

Message String False

CustomerMessages.Name

A message to the customer.

MessageId String False

CustomerMessages.ID

Id of the message to the customer.

SalesRep String False

SalesReps.Initial

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

Reference Id to the sales rep.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address of the credit memo.

BillingState String False

State name for the billing address of the credit memo.

BillingPostalCode String False

Postal code for the billing address of the credit memo.

BillingCountry String False

Country for the billing address of the credit memo.

BillingNote String False

Note for the billing address of the credit memo.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address of the credit memo.

ShippingState String False

State name for the shipping address of the credit memo.

ShippingPostalCode String False

Postal code for the shipping address of the credit memo.

ShippingCountry String False

Country for the shipping address of the credit memo.

ShippingNote String False

Note for the shipping address of the credit memo.

Subtotal Double 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

SalesTaxItems.Name

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

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

The purchase order number.

Terms String False

The payment terms.

TermsId String False

The payment terms.

CreditRemaining Double True

Remaining credit.

DueDate Date False

Date when the credit is due.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

CustomerSalesTax String False

SalesTaxCodes.Name

Reference to sales tax information for the customer.

CustomerSalesTaxId String False

SalesTaxCodes.ID

Reference to sales tax information for the customer.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

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

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item identifier.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group Id. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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

SalesTaxItems.Name

Sales tax information for this item (taxable or nontaxable).

ItemTaxCodeId# String False

SalesTaxItems.ID

Sales tax information for this item (taxable or nontaxable).

ItemAmount# Double False

Total amount for this item.

ItemClass# String False

Class.FullName

The class name of the item.

ItemClassId# String False

Class.ID

The class name of the item.

ItemInventorySiteName# String False

InventorySites.Name

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

The inventory site Id of this item. This requires QBXML version at least 10.0 and the Advanced Inventory Add-on.

ItemInventorySiteLocationName# String False

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

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

The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory Add-on.

ItemLotNumber# String False

The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory Add-on.

ItemOther1# String False

The Other1 field of this line item. QBXMLVersion must be set to 6.0 or higher.

ItemOther2# String False

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

UnitOfMeasure.Name

Indicates the price of something as a percent.

ItemUOMSetListID# String False

UnitOfMeasure.ID

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup# String False

If true, a list of this group's individual items their amounts will appear on printed forms.

EditSequence String True

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 table as # columns. 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 Description
ID [KEY] String True

The unique identifier.

ReferenceNumber String False

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

Customers.FullName

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

The Id of the customer on the credit memo. CustomerName or CustomerId are required to have a value when inserting.

AccountsReceivable String False

Accounts.FullName

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.

ShipMethod String False

ShippingMethods.Name

The shipping method.

ShipMethodId String False

ShippingMethods.ID

The shipping method Id.

ShipDate Date False

The shipping date.

Memo String False

A memo regarding this transaction.

Amount Double False

Total amount for this transaction.

Message String False

CustomerMessages.Name

A message to the customer.

MessageId String False

CustomerMessages.ID

Id of the message to the customer.

SalesRep String False

SalesReps.Initial

Reference to (initials of) the sales rep.

SalesRepId String False

SalesReps.ID

Reference Id to the sales rep.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address of the credit memo.

BillingState String False

State name for the billing address of the credit memo.

BillingPostalCode String False

Postal code for the billing address of the credit memo.

BillingCountry String False

Country for the billing address of the credit memo.

BillingNote String False

Note for the billing address of the credit memo.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address of the credit memo.

ShippingState String False

State name for the shipping address of the credit memo.

ShippingPostalCode String False

Postal code for the shipping address of the credit memo.

ShippingCountry String False

Country for the shipping address of the credit memo.

ShippingNote String False

Note for the shipping address of the credit memo.

Subtotal Double 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

SalesTaxItems.Name

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

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

The purchase order number.

Terms String False

The payment terms.

TermsId String False

The payment terms.

CreditRemaining Double True

Remaining credit.

DueDate Date False

Date when the credit is due.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

CustomerSalesTax String False

SalesTaxCodes.Name

Reference to sales tax information for the customer.

CustomerSalesTaxId String False

SalesTaxCodes.ID

Reference to sales tax information for the customer.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

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

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

An aggregate of the linked transaction data.

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The Id of the currency.

Name String False

The name of the currency.

IsActive Boolean False

Boolean indicating if the currency is active.

CurrencyCode String False

A maximum of 3 characters describing the code for the currency. For example: USD.

CurrencyFormat_ThousandSeparator String False

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

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

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

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier of the shipping address in the format CustomerId|ContactId.

CustomerId String False

Customers.ID

The Id of the customer the shipping address is associated with.

Name String False

The name of the customer. This is required to have a value when inserting.

FullName String True

The full name of the customer, including parents in the format parent:customer.

ContactId# String False

The Id of the contact.

ContactEditSequence# String False

An identifer used for versioning for this copy of the object.

ContactFirstName# String False

The first name of the contact.

ContactMiddleName# String False

The middle name of the contact.

ContactLastName# String False

The last name of the contact.

ContactJobTitle# String False

The job title of the contact.

ContactSalutation# String False

The salutation of the contact.

ContactMethods# String False

A list of contact methods for the contact.

EditSequence String False

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 String

Whether or not to include job information in the results.

The allowed values are TRUE, FALSE.

The default value is TRUE.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





CustomerMessages

Create, delete, and query Customer Messages.

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier of the customer message.

Name String False

The name of the customer message.

IsActive Boolean False

Boolean determining if the customer message is active.

EditSequence String True

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





CustomerNotes

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier of the note in the format CustomerId|NoteId.

CustomerID String False

Customers.ID

The Id of the customer the note is associated with.

Name String False

The name of the customer. This is required to have a value when inserting.

FullName String True

The full name of the customer, including parents in the format parent:customer.

NoteId# String False

Id of the note.

Date# String False

Date for this note

Note# String False

Note for this customer

EditSequence String False

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 String

Whether or not to include job information in the results.

The allowed values are TRUE, FALSE.

The default value is TRUE.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier of the customer.

Name String False

The name of the customer. This is required to have a value when inserting.

FullName String True

The full name of the customer, including parents in the format parent:customer.

Salutation String False

A salutation, such as Mr., Mrs., etc.

FirstName String False

The first name of the customer as stated in the address info.

MiddleInitial String False

A middle name or middle initial of the customer.

LastName String False

The last name of the customer as stated in the address info.

AccountNumber String False

The account number for the customer.

Company String False

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

The name of the main contact person for the customer.

Type String False

CustomerTypes.Name

A predefined customer type within QuickBooks. Typical customer types, if defined, might be Commercial, Residential, etc.

TypeId String False

CustomerTypes.ID

A predefined customer type within QuickBooks.

Phone String False

The main telephone number for the customer.

Fax String False

The fax number number for the customer.

AlternateContact String False

The name of an alternate contact person for the customer.

AlternatePhone String False

The alternate telephone number for the customer.

Email String False

The email address for communicating with the customer.

Cc String False

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

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

The first note for a customer. To retrieve all notes for a customer, use the NotesAggregate column or the CustomerNotes table.

NotesAggregate String False

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

Customers.FullName

The parent name of the job.

ParentId String False

Customers.ID

The parent Id of the job.

Sublevel Integer False

The number of ancestors this customer has.

JobStatus String False

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

A description of the job.

JobType String False

The name of the job type.

JobTypeId String False

A job type reference Id.

CreditCardAddress String False

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

The name as it appears on the credit card of the customer.

CreditCardNumber String False

The credit card number on file for this customer.

CreditCardPostalCode String False

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

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address of the customer.

BillingState String False

State name for the billing address of the customer.

BillingPostalCode String False

Postal code for the billing address of the customer.

BillingCountry String False

Country for the billing address of the customer.

BillingNote String False

Note for the billing address of the customer.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address of the customer.

ShippingState String False

State name for the shipping address of the customer.

ShippingPostalCode String False

Postal code for the shipping address of the customer.

ShippingCountry String False

Country for the shipping address of the customer.

ShippingNote String False

Note for the shipping address of the customer.

ShippingAggregate String False

An XML aggregate of the shipping addresses associated with the customer. Requires QBXML Version 12.0

ResaleNumber String False

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

A reference to a sales rep for the customer.

SalesRepId String False

SalesReps.Initial

A reference to a sales rep for the customer.

Terms String False

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

A reference to terms of payment for this customer.

CurrencyName String False

Currency.Name

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

The unique Id of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.

TaxCode String False

SalesTaxCodes.Name

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

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

SalesTaxItems.Name

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

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

Identifies the country collecting applicable sales taxes. Only available in international editons of QuickBooks.

PriceLevel String False

PriceLevels.Name

Reference to a price level for the customer.

PriceLevelId String False

PriceLevels.ID

Reference to a price level for the customer.

PreferredDeliveryMethod String False

The preferred delivery method for the customer. Enter either: fax, email, or none. This column requires QBXML Version 12.0.

PreferredPaymentMethodName String False

PaymentMethods.Name

The preferred method of payment.

PreferredPaymentMethodId String False

PaymentMethods.ID

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

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 String

Whether or not to include job information in the results.

The allowed values are TRUE, FALSE.

The default value is TRUE.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 # may be used as to insert multiple Addresses in one statement. For example:
INSERT INTO Customers (CustomerId, ShipToName#1, ShipToCity#1, ShipToName#2, ShipToCity#2) VALUES ('123456789-9999', 'Shipto Addr 1', 'London', 'Shipto Addr 2', 'Paris') 
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier of the shipping address in the format CustomerId|ShipToName.

CustomerId String False

Customers.ID

The Id of the customer the shipping address is associated with.

Name String False

The name of the customer. This is required to have a value when inserting.

FullName String True

The full name of the customer, including parents in the format parent:customer.

ShipToName# String False

Name of the shipping address in QuickBooks. This input is required when inserting additional shipping addresses for a customer.

ShipToAddr1# String False

First line of the shipping address.

ShipToAddr2# String False

Second line of the shipping address.

ShipToAddr3# String False

Third line of the shipping address.

ShipToAddr4# String False

Fourth line of the shipping address.

ShipToAddr5# String False

Fifth line of the shipping address.

ShipToCity# String False

City name for the shipping address of the customer.

ShipToState# String False

State name for the shipping address of the customer.

ShipToPostalCode# String False

Postal code for the shipping address of the customer.

ShipToCountry# String False

Country for the shipping address of the customer.

ShipToNote# String False

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

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 String

Whether or not to include job information in the results.

The allowed values are TRUE, FALSE.

The default value is TRUE.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





CustomerTypes

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier.

Name String False

The name of the customer type.

FullName String True

The full name of the customer, including parents in the format Parent:Customer.

ParentName String False

CustomerTypes.FullName

The parent name of the job.

ParentId String False

CustomerTypes.ID

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

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The Id of the date driven term.

Name String False

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (DepositToAccount, ItemAccount#1, ItemAmount#1, ItemAccount#2, ItemAmount#2) VALUES ('Checking', 'Undeposited Funds', 12.25, 'Savings', 155.35)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format DepositId|ItemLineId.

DepositId String False

Deposits.ID

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

Accounts.FullName

Account reference to the bank or credit card company.

CashBackAccountId String False

Accounts.ID

Account reference to the bank or credit card company.

CashBackAmount Double False

Cash-back amount.

CashBackId String True

Id of the cash back transaction.

CashBackMemo String False

Additional info for the cash back transaction.

DepositToAccount String False

Accounts.FullName

Account to deposit funds to.

DepositToAccountId String False

Accounts.ID

Account to deposit funds to.

Memo String False

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

The line item identifier.

ItemAccount# String False

Accounts.FullName

A reference to the account funds are being deposited to.

ItemAccountId# String False

Accounts.ID

A reference to the account funds are being deposited to.

ItemAmount# Double False

The total amount of this deposit line item. This should be a positive number.

ItemCheckNumber# String False

The check number for this deposit line item.

ItemClass# String False

Class.FullName

Specifies the class of the deposit line item.

ItemClassId# String False

Class.ID

Specifies the class of the deposit line item.

ItemEntityName# String False

An entity name for this deposit line item.

ItemEntityId# String False

An entity Id for this deposit line item.

ItemMemo# String False

Memo for this deposit line item.

ItemPaymentMethod# String False

PaymentMethods.Name

The payment method (funding source) for this deposit line item. For example: cash, check, or Master Card.

ItemPaymentId# String False

PaymentMethods.ID

The payment transaction Id for this deposit line item.

ItemPaymentLineId# String False

The payment transaction line id for this deposit line item.

ItemRefId# String False

Identification number of the transaction associated with this deposit line.

ItemTxnType# String True

Type of the transaction associated with this deposit line.

CurrencyName String False

Currency.Name

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

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

Vendors.Name

The name of the payee for the Check.

PayeeId String False

Vendors.ID

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

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

Accounts.FullName

Account reference to the bank or credit card company.

CashBackAccountId String False

Accounts.ID

Account reference to the bank or credit card company.

CashBackAmount Double False

Cash back amount.

CashBackId String True

Id of the cash back transaction.

CashBackMemo String False

Additional info for the cash back transaction.

DepositToAccount String False

Accounts.FullName

Account to deposit funds to.

DepositToAccountId String False

Accounts.ID

Account to deposit funds to.

Memo String False

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

An aggregate of the line item data which can be used for adding a deposit and its line item data.

CurrencyName String False

Currency.Name

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

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

Vendors.Name

The name of the payee for the Check.

PayeeId String False

Vendors.ID

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 driver 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 Description
ID [KEY] String True

The unique identifier in the format EmployeeId|EmployeeEarningsId.

Name String True

The name of the employee.

PayPeriod String False

Indicates how often employees are paid

The allowed values are Daily, Weekly, Biweekly, Semimonthly, Monthly, Quarterly, Yearly.

EmployeeId String False

Employees.ID

The Id of the employee. This is required to have a value when inserting.

EarningsId String True

The Id of the employee earnings entry.

EarningsWageName String False

The wage name. This is required to have a value when inserting.

EarningsWageId String False

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier of the employee.

Name String False

The name of the employee. This is required to have a value when inserting.

Salutation String False

A salutation, such as Mr., Mrs., etc.

FirstName String False

The first name of the employee.

MiddleInitial String False

A middle name or middle initial of the employee.

LastName String False

The last name of the employee.

JobTitle String False

Job title of the employee. Requires QBXML Version 12.0 or higher.

AccountNumber String False

The account number for this employee.

SSN String False

The social security number of the employee.

EmployeeType String False

The type of employee.

The allowed values are Regular, Unspecified, Officer, Statutory, Owner.

Gender String False

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

First line of the address.

Line2 String False

Second line of the address.

City String False

City name for the address.

State String False

State name for the address.

PostalCode String False

Postal code for the address.

AlternatePhone String False

An alternate phone number for the employee.

Email String False

The email address of the employee.

PrintAs String False

How the employee name should be printed.

MobilePhone String False

The mobile phone number of this employee.

Pager String False

The pager number of this employee.

PagerPIN String False

The personal identification number for the pager of this employee.

Fax String False

The fax number of this employee.

BirthDate Date False

The date of birth of this employee.

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

This property may contain any notes you wish to make concerning the transaction.

PayPeriod String False

Indicates how often employees are paid.

The allowed values are NotSet, Daily, Weekly, Biweekly, Semimonthly, Monthly, Quarterly, Yearly.

PayrollClassName String False

Class.FullName

A reference to the class into which this employee payroll falls. Id/Name Reference Properties.

PayrollClassId String False

Class.ID

A reference to the class into which this employee payroll falls. Id/Name Reference Properties.

Phone String False

The phone number of the employee.

ReleasedDate Date False

The date the employee was released (if he/she was released).

TimeDataForPaychecks String False

Indicates whether time data is used to create paychecks for this employee.

The allowed values are NotSet, UseTimeData, DoNotUseTimeData.

SickTimeAccrualPeriod String False

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

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

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

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

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

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

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

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

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

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (CustomerName, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('Abercrombie, Kristy', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format EstimateId|ItemLineId.

EstimateId String False

Estimates.ID

The unique identifier of the estimate.

ReferenceNumber String False

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

CustomerName String False

Customers.FullName

Customer name this transaction is recorded under. This is required to have a value when inserting.

CustomerId String False

Customers.ID

Customer Id this transaction is recorded under. This is required to have a value when inserting.

Date Date False

Transaction date.

Memo String False

Memo regarding this transaction.

TotalAmount Double True

Total amount for this transaction.

ItemLineID# String True

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item identifier.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group Id. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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

SalesTaxCodes.Name

Sales tax information for this item (taxable or nontaxable).

ItemTaxCodeId# String False

SalesTaxCodes.ID

Sales tax Id for this tax item.

ItemAmount# Double False

Total amount for this item.

ItemClass# String False

Class.FullName

The class name of the item.

ItemClassId# String False

Class.ID

The class name of the item.

ItemInventorySiteId# String False

InventorySites.Name

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

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

The Other1 field of this line item. QBXMLVersion must be set to 6.0 or higher.

ItemOther2# String False

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

UnitOfMeasure.Name

Indicates the price of something as a percent.

ItemUOMSetListID# String False

UnitOfMeasure.ID

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup# String False

If true, a list of this group's individual items their amounts will appear on printed forms.

Message String False

CustomerMessages.Name

Message to the customer.

MessageId String False

CustomerMessages.ID

Message to the customer.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

SalesRep String False

SalesReps.Initial

Reference to (initials of) the sales rep.

SalesRepId String False

SalesReps.ID

Reference to (initials of) the sales rep.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address.

BillingState String False

State name for the billing address.

BillingPostalCode String False

Postal code for the billing address.

BillingCountry String False

Country for the billing address.

BillingNote String False

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks. Requires QBBXML Version 7.0 or higher.

ShippingLine1 String False

First line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingLine2 String False

Second line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingLine3 String False

Third line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingLine4 String False

Fourth line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingLine5 String False

Fifth line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingCity String False

City name for the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingState String False

State name for the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingPostalCode String False

Postal code for the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingCountry String False

Country for the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingNote String False

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

SalesTaxItems.Name

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

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

The purchase order number.

Terms String False

A reference to terms of payment, predefined within QuickBooks.

TermsId String False

A reference to terms of payment, predefined within QuickBooks.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

CustomerSalesTaxName String False

SalesTaxCodes.Name

Reference to sales tax information for the customer.

CustomerSalesTaxId String False

SalesTaxCodes.ID

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier.

ReferenceNumber String False

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

CustomerName String False

Customers.FullName

Customer name this transaction is recorded under. This is required to have a value when inserting.

CustomerId String False

Customers.ID

Customer Id this transaction is recorded under. This is required to have a value when inserting.

Date Date False

Transaction date.

Memo String False

Memo regarding this transaction.

TotalAmount Double True

Total amount for this transaction.

Message String False

CustomerMessages.Name

Message to the customer.

MessageId String False

CustomerMessages.ID

Message to the customer.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

SalesRep String False

SalesReps.Initial

Reference to (initials of) the sales rep.

SalesRepId String False

SalesReps.ID

Reference to (initials of) the sales rep.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address.

BillingState String False

State name for the billing address.

BillingPostalCode String False

Postal code for the billing address.

BillingCountry String False

Country for the billing address.

BillingNote String False

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks. Requires QBBXML Version 7.0 or higher.

ShippingLine1 String False

First line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingLine2 String False

Second line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingLine3 String False

Third line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingLine4 String False

Fourth line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingLine5 String False

Fifth line of the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingCity String False

City name for the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingState String False

State name for the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingPostalCode String False

Postal code for the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingCountry String False

Country for the shipping address. Requires QBBXML Version 7.0 or higher.

ShippingNote String False

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

SalesTaxItems.Name

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

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

The purchase order number.

Terms String False

A reference to the terms of payment, predefined within QuickBooks.

TermsId String False

A reference to the terms of payment, predefined within QuickBooks.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

CustomerSalesTaxName String False

SalesTaxCodes.Name

Reference to sales tax information for the customer.

CustomerSalesTaxId String False

SalesTaxCodes.ID

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

Other data associated with the estimate.

ItemCount Integer True

A count of the line items.

ItemAggregate String False

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

An aggregate of the linked transaction data.

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (Account, ItemName#1, ItemNewQuantity#1, ItemName#2, ItemNewQuantity#2) VALUES ('Cost of Good Sold', 'Wood Door:Exterior', 100, 'Wood Door:Interior', 200)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format InventoryAdjustmentId|ItemLineId.

InventoryAdjustmentID String True

InventoryAdjustments.ID

The unique identifier for the Inventory Adjustment.

ReferenceNumber String False

The transaction reference number.

Account String False

Accounts.FullName

The account the inventory adjustment is associated with. Either Account or AccountId is required on insert.

AccountId String False

Accounts.ID

The account the inventory adjustment is associated with. Either Account or AccountId is required on insert.

Class String False

Class.FullName

A reference to the class for the inventory adjustment.

ClassId String False

Class.ID

A reference to the class for the inventory adjustment.

CustomerName String False

Customers.FullName

The name of the customer on the inventory adjustment.

CustomerId String False

Customers.ID

The id of the customer on the inventory adjustment.

Memo String False

A memo regarding this transaction.

InventorySite String False

InventorySites.Name

The name of the inventory site for the transaction.

InventorySiteId String False

InventorySites.ID

The id of the inventory site for the transaction.

Date Date False

The date of the transaction.

ItemLineId# String False

The line id of the item.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name. Either ItemName or ItemId is required on an insert.

ItemId# String False

Items.ID

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

The lot number for this adjustment. This field requires QBXML Version 11.0.

ItemSerialNumber# String False

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

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier.

ReferenceNumber String False

The transaction reference number.

Account String False

Accounts.FullName

The account the inventory adjustment is associated with. Either Account or AccountId is required on insert.

AccountId String False

Accounts.ID

The account the inventory adjustment is associated with. Either Account or AccountId is required on insert.

Class String False

Class.FullName

A reference to the class for the inventory adjustment.

ClassId String False

Class.ID

A reference to the class for the inventory adjustment.

CustomerName String False

Customers.FullName

The name of the customer on the inventory adjustment.

CustomerId String False

Customers.ID

The Id of the customer on the inventory adjustment.

Memo String False

A memo regarding this transaction.

InventorySite String False

InventorySites.Name

The name of the inventory site for the transaction.

InventorySiteId String False

InventorySites.ID

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The Id of the inventory site.

Name String False

Name of the inventory site.

IsActive Boolean False

Whether or not the inventory site is active.

SiteDesc String False

A description of the inventory site.

Contact String False

Contact for the inventory site.

Phone String False

Phone number for the inventory site.

Fax String False

Fax number for the inventory site.

Email String False

Email address for the inventory site.

SiteAddress_Addr1 String False

First line of the address.

SiteAddress_Addr2 String False

Second line of the address.

SiteAddress_Addr3 String False

Third line of the address.

SiteAddress_Addr4 String False

Fourth line of the address.

SiteAddress_Addr5 String False

Fifth line of the address.

SiteAddress_City String False

City portion of the address.

SiteAddress_State String False

State portion of the address.

SiteAddress_PostalCode String False

Postal Code portion of the address.

SiteAddress_Country String False

Country portion of the address.

EditSequence String True

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (CustomerName, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('Abercrombie, Kristy', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format InvoiceId|ItemLineId.

InvoiceId String False

Invoices.ID

The unique identifier of the Invoice.

ReferenceNumber String False

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

Customers.FullName

The name of the customer on the invoice. Either CustomerName or CustomerId must have a value when inserting.

CustomerId String False

Customers.ID

The Id of the customer on the invoice. Alternatively give this field a value when inserting instead of CustomerName.

Account String False

Accounts.FullName

A reference to the accounts-receivable account where the money received from this transaction will be deposited.

AccountId String False

Accounts.ID

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

ShippingMethods.Name

The shipping method associated with the invoice.

ShipMethodId String False

ShippingMethods.ID

The shipping method associated with the invoice.

ShipDate Date False

The shipping date associated with the invoice.

Memo String False

A memo regarding this transaction.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

Amount Double True

The total amount for this invoice.

Message String False

CustomerMessages.Name

A message to the vendor or customer to appear in the invoice.

MessageId String False

CustomerMessages.ID

A message to vendor or customer to appear in the invoice.

SalesRep String False

SalesReps.Initial

A reference to the (initials of) sales rep.

SalesRepId String False

SalesReps.ID

A reference to the sales rep.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address.

BillingState String False

State name for the billing address.

BillingPostalCode String False

Postal code for the billing address.

BillingCountry String False

Country for the billing address.

BillingNote String False

A note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address.

ShippingState String False

State name for the shipping address.

ShippingPostalCode String False

Postal code for the shipping address.

ShippingCountry String False

Country for the shipping address.

ShippingNote String False

A note for the shipping address.

Subtotal Double 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

SalesTaxItems.Name

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

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

The purchase order number.

DueDate Date False

The date when payment is due.

Terms String False

The payment terms.

TermsId String False

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

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item identifier.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group Id. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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

SalesTaxCodes.Name

Sales tax information for this item (taxable or nontaxable).

ItemTaxCodeId# String False

SalesTaxCodes.ID

Sales tax information for this item.

ItemAmount# Double False

Total amount for this item.

ItemClass# String False

Class.FullName

The class name of the item.

ItemClassId# String False

Class.ID

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

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

The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteLocationId# String False

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

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

The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemLotNumber# String False

The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemOther1# String False

The Other1 field of this line item. QBXMLVersion must be set to 6.0 or higher.

ItemOther2# String False

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

UnitOfMeasure.Name

Indicates the price of something as a percent.

ItemUOMSetListID# String False

UnitOfMeasure.ID

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup# String False

If true, a list of this group's individual items their amounts will appear on printed forms.

AppliedAmount Double True

The total amount of applied credits and payments.

Balance Double False

The unpaid amount for this sale.

CustomerTaxCode String False

SalesTaxCodes.Name

The tax code specific to this customer.

CustomerTaxCodeId String False

SalesTaxCodes.ID

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

Whether this invoice includes a finance charge.

The allowed values are NotSet, IsFinanceCharge, NotFinanceCharge.

The default value is NotSet.

Template String False

Templates.Name

A reference to a template specifying how to print the transaction.

TemplateId String False

Templates.ID

A reference to a template specifying how to print the transaction.

SuggestedDiscountAmount Double 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

Currency.Name

Name of the currency code used for this invoice.

CurrencyId String False

Currency.ID

Id of the currency code used for this invoice.

Other String False

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier.

ReferenceNumber String False

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

Customers.FullName

The name of the customer on the invoice. Either CustomerName or CustomerId must have a value when inserting.

CustomerId String False

Customers.ID

The Id of the customer on the invoice. Alternatively give this field a value when inserting instead of CustomerName.

Account String False

Accounts.FullName

A reference to the accounts-receivable account where the money received from this transaction will be deposited.

AccountId String False

Accounts.ID

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

ShippingMethods.Name

The shipping method associated with the invoice.

ShipMethodId String False

ShippingMethods.ID

The shipping method associated with the invoice.

ShipDate Date False

The shipping date associated with the invoice.

Memo String False

A memo regarding this transaction.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

Amount Double True

The total amount for this invoice.

Message String False

CustomerMessages.Name

A message to vendor or customer to appear in the invoice.

MessageId String False

CustomerMessages.ID

A message to vendor or customer to appear in the invoice.

SalesRep String False

SalesReps.Initial

A reference to the (initials of) sales rep.

SalesRepId String False

SalesReps.ID

A reference to the sales rep.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address.

BillingState String False

State name for the billing address.

BillingPostalCode String False

Postal code for the billing address.

BillingCountry String False

Country for the billing address.

BillingNote String False

A note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address.

ShippingState String False

State name for the shipping address.

ShippingPostalCode String False

Postal code for the shipping address.

ShippingCountry String False

Country for the shipping address.

ShippingNote String False

A note for the shipping address.

Subtotal Double 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

SalesTaxItems.Name

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

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

The purchase order number.

DueDate Date False

The date when payment is due.

Terms String False

The payment terms.

TermsId String False

The payment terms.

ItemCount Integer True

The count of item entries for this transaction.

ItemAggregate String False

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

An aggregate of the linked transaction data.

AppliedAmount Double True

The total amount of applied credits and payments.

Balance Double False

The unpaid amount for this sale.

CustomerTaxCode String False

SalesTaxCodes.Name

The tax code specific to this customer.

CustomerTaxCodeId String False

SalesTaxCodes.ID

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

Whether this invoice includes a finance charge.

The allowed values are NotSet, IsFinanceCharge, NotFinanceCharge.

The default value is NotSet.

Template String False

Templates.Name

A reference to a template specifying how to print the transaction.

TemplateId String False

Templates.ID

A reference to a template specifying how to print the transaction.

SuggestedDiscountAmount Double 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

Currency.Name

Name of the currency code used for this invoice.

CurrencyId String False

Currency.ID

Id of the currency code used for this invoice.

Other String False

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

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 (Name, Type, LineItemName#1, LineItemQuantity#1, LineItemName#2, LineItemQuantity#2) VALUES ('MyItemGroup', 'ItemGroup', 'Hardware:Doorknobs Std', 1, 'Cabinets', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format ItemId|ItemLineNumber.

ItemId String False

Items.ID

The unique identifier for the inventory assembly or group item.

Name String False

The name of the inventory assembly or group.

FullName String True

Full item name in the format parentname:name if the item is a subitem).

Type String False

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

Accounts.FullName

Account name the inventory assembly or group is associated with.

AccountId String False

Accounts.ID

Account Id the inventory assembly or group is associated with.

COGSAccount String False

Accounts.FullName

Cost of Goods Sold account for the inventory assembly or group.

COGSAccountId String False

Accounts.ID

Cost of Goods Sold account for the inventory assembly or group.

AssetAccount String False

Accounts.FullName

Inventory asset account for the inventory assembly or group if it is an inventory item.

AssetAccountId String False

Accounts.ID

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

The line item identifier. Either LineItemId or LineItemName need to have a value when inserting.

LineItemName# String False

Items.FullName

The line item name. Either LineItemId or LineItemName need to have a value when inserting.

LineItemQuantity# Double False

The line item quantity.

ParentName String False

Items.FullName

The parent name of the inventory assembly or group if the inventory assembly or group is a subitem.

ParentId String False

Items.ID

The parent Id of the inventory assembly or group if the inventory assembly or group is a subitem.

Description String False

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

Purchase description for the inventory assembly or group.

PreferredVendor String False

Vendors.Name

Preferred vendor for the inventory assembly or group.

PreferredVendorId String False

Vendors.ID

Preferred vendor for the inventory assembly or group.

TaxCode String False

SalesTaxCodes.Name

This is a reference to a sales tax code predefined within QuickBooks.

TaxCodeId String False

SalesTaxCodes.ID

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Expense Line Item columns and 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 (VendorName, Date, ExpenseAccount#1, ExpenseAmount#1, ExpenseAccount#2, ExpenseAmount#2) VALUES ('Patton Hardware Supplies', '1/1/2011', 'Utilities:Telephone', 52.25, 'Professional Fees:Accounting', 235.87)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format ItemReceiptId|ExpenseLineId.

ItemReceiptId String False

ItemReceipts.ID

The item identifier for the item receipt. This is obtained from the ItemReceipts table.

VendorName String False

Vendors.Name

The name of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.

VendorId String False

Vendors.ID

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

The transaction reference number.

AccountsPayable String False

Accounts.FullName

A reference to the name of the account the item receipt is payable to.

AccountsPayableId String False

Accounts.ID

A reference to the unique Id of the account the item receipt is payable to.

Memo String False

A memo regarding the item receipt.

Amount Double 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

The line item identifier.

ExpenseLineNumber# String True

The expense line number.

ExpenseAccount# String False

Accounts.FullName

The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAccountId# String False

Accounts.ID

The account Id for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAmount# Double False

The total amount of this expense line.

ExpenseBillableStatus# String False

The billing status of this expense line.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

The default value is EMPTY.

ExpenseCustomer# String False

Customers.FullName

The customer associated with this expense line.

ExpenseCustomerId# String False

Customers.ID

The customer associated with this expense line.

ExpenseClass# String False

Class.FullName

The class name of this expense.

ExpenseClassId# String False

Class.ID

The class Id of this expense.

ExpenseTaxCode# String False

SalesTaxCodes.Name

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

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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. All columns denoted with a # are Line Item columns and can be used for inserting multiple Line Items for a new ItemReceipt transaction. For example, the following will insert a new ItemReceipt with two Line Items:

INSERT INTO ItemReceiptLineItems (VendorName, Date, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('Patton Hardware Supplies', '1/1/2011', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format ItemReceiptId|ItemLineId.

ItemReceiptId String False

ItemReceipts.ID

The item identifier for the item receipt. This is obtained from the ItemReceipt table.

VendorName String False

Vendors.Name

The name of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.

VendorId String False

Vendors.ID

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

The transaction reference number.

AccountsPayable String False

Accounts.FullName

A reference to the name of the account the item receipt is payable to.

AccountsPayableId String False

Accounts.ID

A reference to the unique id of the account the item receipt is payable to.

Memo String False

A memo regarding the item receipt.

Amount Double 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

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item Id.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group Id. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemQuantity# Double False

The quantity of the item or item group specified in this line.

ItemTaxCode# String False

SalesTaxCodes.FullName

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

The Id of the sales tax code for the line item. Only available in UK and CA editions of QuickBooks.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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

InventorySites.Name

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

The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteLocationId# String False

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

The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemLotNumber# String False

The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemOverrideAccount# String False

Accounts.FullName

Reference to the name of an account which may be used to override the default account associated with the item receipt.

ItemOverrideAccountId# String False

Accounts.ID

Reference to the Id of an account which may be used to override the default account associated with the item receipt.

ItemCost# Double False

The unit cost for an item.

ItemAmount# Double False

Total amount for this item.

ItemBillableStatus# String False

Billing status of the item.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

The default value is EMPTY.

ItemCustomer# String False

Customers.FullName

The name of the customer who ordered the item.

ItemCustomerId# String False

Customers.ID

The Id of the customer who ordered the item.

ItemClass# String False

Class.FullName

The name for the class of the item.

ItemClassId# String False

Class.ID

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

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier.

VendorName String False

Vendors.Name

The name of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.

VendorId String False

Vendors.ID

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

The transaction reference number.

AccountsPayable String False

Accounts.ID

A reference to the name of the account the item receipt is payable to.

AccountsPayableId String False

Accounts.Name

A reference to the unique Id of the account the item receipt is payable to.

Memo String False

A memo regarding the item receipt.

Amount Double 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

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

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

An aggregate of the linked transaction data.

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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:

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier.

Name String False

The name of the item.

FullName String True

Full item name in the format parentname:name if the item is a subitem.

Type String False

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

Accounts.FullName

Account name the item is associated with.

AccountId String False

Accounts.ID

Account Id the item is associated with.

COGSAccount String False

Accounts.FullName

Cost of Goods Sold account for the item.

COGSAccountId String False

Accounts.ID

Cost of Goods Sold account for the item.

AssetAccount String False

Accounts.FullName

Inventory asset account for the item if it is an inventory item.

AssetAccountId String False

Accounts.ID

Inventory asset account for the item if it is an inventory 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

Items.FullName

The parent name of the item if the item is a subitem.

ParentId String False

Items.ID

The parent Id of the item if the item is a subitem.

Description String False

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

Purchase description for the item.

ExpenseAccount String False

Accounts.FullName

Expense account for the item.

ExpenseAccountId String False

Accounts.ID

Expense account for the item.

PreferredVendor String False

Vendors.Name

Preferred vendor for the item.

PreferredVendorId String False

Vendors.ID

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

Barcode for the item.

TaxCode String False

SalesTaxCodes.Name

Reference to a sales tax code predefined within QuickBooks.

TaxCodeId String False

SalesTaxCodes.ID

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

SalesTaxCodes.Name

Reference to a purchase tax code predefined within QuickBooks. Only available in international versions of QuickBooks.

PurchaseTaxCodeId String False

SalesTaxCodes.ID

This is a reference to a purchase tax code predefined within QuickBooks. Available in only international versions of QuickBooks.

PartNumber String False

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

PaymentMethods.Name

The method of payment: check, credit card, etc.

PaymentMethodId String False

PaymentMethods.ID

The method of payment: check, credit card, etc.

TaxRate Double False

The percentage rate of tax.

TaxVendorName String False

SalesTaxItems.Name

The VENDOR or tax agency to whom taxes are due.

TaxVendorId String False

SalesTaxItems.ID

The VENDOR or tax agency to whom taxes are due.

SpecialItemType String False

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

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

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

Description of the asset.

AssetLocation String False

Where the asset is located or has been placed into service.

AssetPONumber String False

The purchase order number associated with this asset.

AssetSerialNumber String False

The serial number of the asset.

AssetWarrantyExpires Date False

The date when the warranty for this asset expires.

AssetNotes String False

Additional information about the asset.

AssetNumber String False

The number used by the QuickBooks Fixed Asset Manager to identify this asset.

AssetCostBasis Double 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

UnitOfMeasure.Name

Name of the units that the item is measured in. Requires QBXML Version 7.0 or higher.

UnitOfMeasureId String False

UnitOfMeasure.ID

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

An aggregate of the line item data.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





JobTypes

Create and query QuickBooks JobTypes.

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier of the jobtype.

Name String False

The name of the jobtype.

FullName String True

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

JobTypes.FullName

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

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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-1450196662'
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier for the journal entry.

ReferenceNumber String False

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

Accounts.FullName

The first credit account associated with the JournalEntry.

FirstCreditAmount Double 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

Accounts.FullName

The first debit account associated with the JournalEntry.

FirstDebitAmount Double 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

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

Currency.Name

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

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 
         (ReferenceNumber, LineType#1, LineAccount#1, LineAmount#1, LineType#2, LineAccount#2, LineAmount#2, LineType#3, LineAccount#3, LineAmount#3) 
VALUES   ('12345', 'Credit', 'Retained Earnings', '100', 'Credit', 'Note Payable - Bank of Anycity', '20', 'Debit', 'Checking', '120')

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-1450196662'
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format JournalEntryId|ItemLineId.

JournalEntryID String False

JournalEntries.ID

The journal entry Id.

ReferenceNumber String False

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

The line item identifier.

LineType# String False

Type of line: credit or debit.

LineAccount# String False

Accounts.FullName

Account name of a credit or debit line.

LineAccountId# String False

Accounts.ID

Account Id of a credit or debit line.

LineAmount# Double False

Amount of a credit or debit line.

LineEntityName# String False

Entity name of a credit or debit line.

LineEntityId# String False

Entity Id of a credit or debit line.

LineMemo# String False

Memo for a credit or debit line.

LineClass# String False

Class.FullName

Class name of a credit or debit line.

LineClassId# String False

Class.ID

Class Id of a credit or debit line.

LineStatus# String False

Billing status of a credit or debit line.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

LineTaxItem# String False

SalesTaxItems.Name

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

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

Currency.Name

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

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

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





OtherNames

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier.

Name String False

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

The name of the customer, vendor, employee, or person on the other-names list.

Salutation String False

A salutation, such as Mr., Mrs., etc.

FirstName String False

The first name of a customer, vendor, employee, or person on the other-names list

MiddleName String False

The middle name of a customer, vendor, employee, or person on the other-names list.

LastName String False

The last name of a customer, vendor, employee, or person on the other-names list.

OtherNameAddress_Addr1 String False

First line of the other-name address.

OtherNameAddress_Addr2 String False

Second line of the other-name address.

OtherNameAddress_Addr3 String False

Third line of the other-name address.

OtherNameAddress_Addr4 String False

Fourth line of the other-name address.

OtherNameAddress_Addr5 String False

Fifth line of the other-name address.

OtherNameAddress_City String False

City name for the other-name address of the customer, vendor, employee, or person on the other-names list.

OtherNameAddress_State String False

State name for the other-name address of the customer, vendor, employee, or person on the other-names list.

OtherNameAddress_PostalCode String False

Postal code for the other name address of the customer, vendor, employee, or person on the other-names list.

OtherNameAddress_Country String False

Country for the other-name address of the customer, vendor, employee, or person on the other-names list.

OtherNameAddress_Note String False

Note for the other-name address of the customer, vendor, employee, or person on the other-names list.

Phone String False

The main telephone number for the customer, vendor, employee, or person on the other-names list.

AltPhone String False

The alternate telephone number for the customer, vendor, employee, or person on the other-names list.

Fax String False

The fax number number for the customer, vendor, employee, or person on the other-names list.

Email String False

The email address for communicating with the customer, vendor, employee, or person on the other-names list.

Contact String False

The name of a contact person for the customer, vendor, employee, or person on the other-names list.

AltContact String False

The name of an alternate contact person for the customer, vendor, employee, or person on the other-names list.

AccountNumber String False

The account number for the other-name.

Notes String False

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

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





PaymentMethods

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier of the payment method.

Name String False

The name of the payment method.

IsActive Boolean False

Boolean determining if the payment method is active.

PaymentMethodType String False

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





PayrollNonWageItems

Query QuickBooks Non-Wage Payroll Items.

Columns

Name Type ReadOnly References 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

Accounts.FullName

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

Accounts.FullName

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





PayrollWageItems

Create and query QuickBooks Wage Payroll Items.

Columns

Name Type ReadOnly References 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

Accounts.FullName

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier.

PriceLevelID String False

PriceLevels.ID

The unique identifier of the price level.

Name String False

The name of the price level.

PriceLevelType String True

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

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

Items.FullName

A reference to the name of the item. Either the Id or FullName property of the item is required on insertion.

PriceLevelPerItemRet_CustomPrice# Double False

A fixed amount for the price.

PriceLevelPerItemRet_CustomPricePercent# Double False

A fixed discount percentage.

PriceLevelPerItemRet_CurrencyRef_ListID String False

Currency.ID

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

Currency.FullName

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

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier.

Name String False

The name of the price level.

PriceLevelType String True

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

An aggregate of the per-item price level data.

PriceLevelPerItemRet_CurrencyRef_ListID String False

Currency.ID

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

Currency.FullName

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

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are 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 (VendorName, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('A Cheung Limited', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format PurchaseOrderId|ItemLineId.

PurchaseOrderID String False

PurchaseOrders.ID

The unique identifier of the purchase order.

VendorName String False

Vendors.Name

Vendor name this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.

VendorId String False

Vendors.ID

Vendor Id this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.

VendorMessage String False

Message to appear to vendor.

ReferenceNumber String False

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

ShippingMethods.Name

Shipping method.

ShipMethodId String False

ShippingMethods.ID

Shipping method.

ExpectedDate Date False

Date when the shipment is expected.

Memo String False

Memo regarding this transaction.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

Terms String False

Payment terms.

TermsId String False

Payment terms.

TotalAmount Double True

Total amount for this purchase order.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

CurrencyName String False

Currency.Name

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

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

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item identifier.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group Id. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemCustomer# String False

Customers.FullName

A reference to a customer for whom this item was ordered. This may also be a customer job.

ItemCustomerId# String False

Customers.ID

A reference to a customer for whom this item was ordered. This may also be a customer job.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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# Double False

Total amount for this item.

ItemReceivedQuantity# Double False

The quantity of items that have been received against this purchase order.

ItemClass# String False

Class.FullName

The class name of the item.

ItemClassId# String False

Class.ID

The class name of the item.

ItemInventorySiteLocationId# String False

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

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

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

The Other1 field of this line item. QBXML version must be set to 6.0 or higher to use this field.

ItemOther2# String False

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

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

SalesTaxCodes.Name

The type of sales tax that will be charged for this purchase order.

SalesTaxCodeId String False

SalesTaxCodes.ID

The type of sales tax that will be charged for this purchase order.

FOB String False

Freight on board: The place to ship from.

VendorAddress String True

Full vendor address returned by QuickBooks.

VendorLine1 String False

First line of the vendor address.

VendorLine2 String False

Second line of the vendor address.

VendorLine3 String False

Third line of the vendor address.

VendorLine4 String False

Forth line of the vendor address.

VendorLine5 String False

Fifth line of the vendor address.

VendorCity String False

City name for the vendor address of the vendor.

VendorState String False

State name for the vendor address of the vendor.

VendorPostalCode String False

Postal code for the vendor address of the vendor.

VendorCountry String False

Country for the vendor address of the vendor.

VendorNote String False

Note for the vendor address of the vendor.

ShipToEntityId String False

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

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

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address.

ShippingState String False

State name for the shipping address.

ShippingPostalCode String False

Postal code for the shipping address.

ShippingCountry String False

Country for the shipping address.

ShippingNote String False

Note for the shipping address.

ExchangeRate Double False

Indicates the exchange rate for the transaction.

Other1 String False

Predefined QuickBooks custom field.

Other2 String False

Predefined QuickBooks custom field.

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
ItemPriceLevel# String

Item price level name. QuickBooks will not return the price level.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier in the format PurchaseOrderId.

VendorName String False

Vendors.Name

Vendor name this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.

VendorId String False

Vendors.ID

Vendor Id this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.

VendorMessage String False

Message to appear to vendor.

ReferenceNumber String False

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

ShippingMethods.Name

Shipping method.

ShipMethodId String False

ShippingMethods.ID

Shipping method.

ExpectedDate Date False

Date when the shipment is expected.

Memo String False

Memo regarding this transaction.

Class String False

Class.Name

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

Terms String False

Payment terms.

TermsId String False

Payment terms.

TotalAmount Double True

Total amount for this purchase order.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

CurrencyName String False

Currency.Name

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

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

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

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

SalesTaxCodes.Name

The type of sales tax that will be charged for this purchase order.

SalesTaxCodeId String False

SalesTaxCodes.ID

The type of sales tax that will be charged for this purchase order.

FOB String False

Freight on board: The place to ship from.

VendorAddress String True

Full vendor address returned by QuickBooks.

VendorLine1 String False

First line of the vendor address.

VendorLine2 String False

Second line of the vendor address.

VendorLine3 String False

Third line of the vendor address.

VendorLine4 String False

Fourth line of the vendor address.

VendorLine5 String False

Fifth line of the vendor address.

VendorCity String False

City name for the vendor address of the vendor.

VendorState String False

State name for the vendor address of the vendor.

VendorPostalCode String False

Postal code for the vendor address of the vendor.

VendorCountry String False

Country for the vendor address of the vendor.

VendorNote String False

Note for the vendor address of the vendor.

ShipToEntityName String False

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

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

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address.

ShippingState String False

State name for the shipping address.

ShippingPostalCode String False

Postal code for the shipping address.

ShippingCountry String False

Country for the shipping address.

ShippingNote String False

Note for the shipping address.

ExchangeRate Double False

Indicates the exchange rate for the transaction.

Other1 String False

Predefined QuickBooks custom field.

Other2 String False

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier for the transaction.

ReferenceNumber String False

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 Double True

This property will contain the amount of the payment that was not applied to existing invoices.

Amount Double False

The amount of the payment received from the Customer.

AccountsReceivableName String False

Accounts.FullName

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.

CustomerName String False

Customers.FullName

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

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

Accounts.FullName

The account name that the payment should be deposited to.

DepositToAccountId String False

Accounts.ID

The account Id that the payment should be deposited to.

PaymentMethodName String False

PaymentMethods.Name

Name of the payment method that already exists in QuickBooks.

PaymentMethodId String False

PaymentMethods.ID

Id of the payment method that already exists in QuickBooks.

Memo String False

A memo to appear on internal reports.

ExchangeRate Double False

The exachange rate of the payment currency to the home currency.

TotalAmountInHomeCurrency Double False

The total amount in home currency.

AppliedToAggregate String False

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are AppliedTo columns and 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 
(CustomerName, Amount, AutoApply, AppliedToRefId#1, AppliedToPaymentAmount#1, AppliedToRefId#2, AppliedToPaymentAmount#2) 
VALUES ('Cook, Brian', '300.00', 'Custom', '178C1-1450221347', '200.00', '881-933371709', '100.00')

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 Description
ID [KEY] String True

The unique identifier in the format ReceivePaymentId|AppliedToRefId.

ReceivePaymentId String False

ReceivePayments.ID

The Id of the bill-payment transaction.

ReferenceNumber String False

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 Double True

This property will contain the amount of the payment that was not applied to existing invoices.

Amount Double False

The amount of the payment received from the Customer.

AccountsReceivableName String False

Accounts.FullName

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.

CustomerName String False

Customers.FullName

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

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

Accounts.FullName

The account name that the payment should be deposited to.

DepositToAccountId String False

Accounts.ID

The account Id that the payment should be deposited to.

PaymentMethodName String False

PaymentMethods.Name

Name of a payment method that already exists in QuickBooks.

PaymentMethodId String False

PaymentMethods.ID

Id of a payment method that already exists in QuickBooks.

Memo String False

A memo to appear on internal reports.

ExchangeRate Double False

The exachange rate of the payment currency to the home currency.

TotalAmountInHomeCurrency Double False

The total amount in home currency.

AutoApply String False

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

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# Double True

The amount to be applied.

AppliedToBalanceRemaining# Double True

The balance remaining to be applied.

AppliedToCreditAppliedAmount# Double False

The credit applied amount to be applied.

AppliedToCreditMemoId# String False

CreditMemos.ID

The credit memo Id to be applied.

AppliedToDiscountAccountName# String False

Accounts.FullName

The discount account name to be applied.

AppliedToDiscountAccountId# String False

Accounts.ID

The discount account Id to be applied.

AppliedToDiscountAmount# Double False

The discount amount to be applied.

AppliedToPaymentAmount# Double False

The payment amount to be applied.

AppliedToReferenceNumber# String True

The ref number to be applied.

AppliedToTxnDate# Date True

The transaction date to be applied.

AppliedToTxnType# String True

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (CustomerName, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('Cook, Brian', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format SalesOrderId|ItemLineId.

SalesOrderId String False

SalesOrders.ID

The item identifier.

ReferenceNumber String False

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

CustomerName String False

Customers.Name

Customer name this transaction is recorded under. This is required to have a value when inserting.

CustomerId String False

Customers.ID

Customer Id this transaction is recorded under.

Date Date False

Transaction date.

ShipMethod String False

ShippingMethods.Name

Shipping method.

ShipMethodId String False

ShippingMethods.ID

Shipping method.

ShipDate Date False

Shipping date.

Memo String False

Memo regarding this transaction.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

TotalAmount Double False

Total amount for this transaction.

DueDate Date False

Date the payment is due.

Message String False

CustomerMessages.Name

Message to the customer.

MessageId String False

CustomerMessages.ID

Message to the customer.

SalesRep String False

SalesReps.Initial

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

Reference to the sales rep.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

CurrencyName String False

Currency.Name

Name of the currency code used for this sales order.

CurrencyId String False

Currency.ID

Id of the currency code used for this sales order.

ExchangeRate Double False

Currency exchange rate for this sales order.

TotalAmountInHomeCurrency Double False

Returned for transactions in currencies different from the merchant's home currency.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address.

BillingState String False

State name for the billing address.

BillingPostalCode String False

Postal code for the billing address.

BillingCountry String False

Country for the billing address.

BillingNote String False

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address.

ShippingState String False

State name for the shipping address.

ShippingPostalCode String False

Postal code for the shipping address.

ShippingCountry String False

Country for the shipping address.

ShippingNote String False

Note for the shipping address.

Subtotal Double 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

SalesTaxItems.Name

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

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

Purchase order number.

Terms String False

Payment terms.

TermsId String False

Payment terms.

ItemLineId# String True

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item identifier.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group Id.

ItemDescription# String False

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

SalesTaxCodes.Name

Sales tax information for this item (taxable or nontaxable).

ItemTaxCodeId# String False

SalesTaxCodes.ID

Sales tax information for this item (taxable or nontaxable).

ItemInvoicedAmount# Double False

The amount of this sales order line that has been invoiced.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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# Double False

Total amount for this item.

ItemClass# String False

Class.FullName

The class name of the item.

ItemClassId# String False

Class.ID

The class Id of the item.

ItemInventorySiteName# String False

InventorySites.Name

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

The inventory site Id of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemSerialNumber# String False

The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemLotNumber# String False

The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemManuallyClosed# String False

Whether this sales order line is manually closed.

ItemOther1# String False

The Other1 field of this line item. QBXML version must be set to 6.0 or higher.

ItemOther2# String False

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

UnitOfMeasure.Name

Indicates the price of something as a percent.

ItemUOMSetListID# String False

UnitOfMeasure.ID

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup# String False

If true, a list of this group's individual items their amounts will appear on printed forms.

CustomerTaxCode String False

SalesTaxCodes.Name

The tax code specific to this customer.

CustomerTaxCodeId String False

SalesTaxCodes.ID

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

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier.

ReferenceNumber String False

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

CustomerName String False

Customers.FullName

Customer name this transaction is recorded under. This is required to have a value when inserting.

CustomerId String False

Customers.ID

Customer Id this transaction is recorded under.

Date Date False

Transaction date.

ShipMethod String False

ShippingMethods.Name

Shipping method.

ShipMethodId String False

ShippingMethods.ID

Shipping method.

ShipDate Date False

Shipping date.

Memo String False

Memo regarding this transaction.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

TotalAmount Double False

Total amount for this transaction.

DueDate Date False

Date the payment is due.

Message String False

CustomerMessages.Name

Message to the customer.

MessageId String False

CustomerMessages.ID

Message to the customer.

SalesRep String False

SalesReps.Initial

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

Reference to the sales rep.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

CurrencyName String False

Currency.Name

Name of the currency code used for this sales order.

CurrencyId String False

Currency.ID

Id of the currency code used for this sales order.

ExchangeRate Double False

Currency exchange rate for this sales order.

TotalAmountInHomeCurrency Double False

Returned for transactions in currencies different from the merchant's home currency.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address.

BillingState String False

State name for the billing address.

BillingPostalCode String False

Postal code for the billing address.

BillingCountry String False

Country for the billing address.

BillingNote String False

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address.

ShippingState String False

State name for the shipping address.

ShippingPostalCode String False

Postal code for the shipping address.

ShippingCountry String False

Country for the shipping address.

ShippingNote String False

Note for the shipping address.

Subtotal Double 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

SalesTaxItems.Name

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

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

Purchase order number.

Terms String False

Payment terms.

TermsId String False

Payment terms.

ItemCount Integer True

The count of item entries for this transaction.

ItemAggregate String False

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

An aggregate of the linked transaction data.

CustomerTaxCode String False

SalesTaxCodes.Name

The tax code specific to this customer.

CustomerTaxCodeId String False

SalesTaxCodes.ID

The tax code specific to this customer.

IsPrinted Boolean True

Whether this invoice is to be printed.

IsManuallyClosed String False

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

A 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 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
Item* String

All line-item-specific columns may be used in insertions.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (CustomerName, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('Cook, Brian', 'Repairs', 1, 'Removal', 2)
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format SalesReceiptId|ItemLineId.

SalesReceiptId String False

SalesReceipts.ID

The item identifier.

ReferenceNumber String False

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, but not the QuickBooks-generated Id.

CustomerName String False

Customers.FullName

Customer name this transaction is recorded under.

CustomerId String False

Customers.ID

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

ShippingMethods.Name

Shipping method.

ShipMethodId String False

ShippingMethods.ID

Shipping method.

ShipDate Date False

Shipping date.

Memo String False

Memo regarding this transaction.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

DueDate Date False

The date when payment is due.

TotalAmount Double True

Total amount for this transaction.

Message String False

CustomerMessages.Name

Message to the customer.

MessageId String False

CustomerMessages.ID

Message to the customer.

SalesRep String False

SalesReps.Initial

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

Reference to the sales rep.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

ExchangeRate Double False

Currency exchange rate for this sales receipt.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address.

BillingState String False

State name for the billing address.

BillingPostalCode String False

Postal code for the billing address.

BillingCountry String False

Country for the billing address.

BillingNote String False

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address.

ShippingState String False

State name for the shipping address.

ShippingPostalCode String False

Postal code for the shipping address.

ShippingCountry String False

Country for the shipping address.

ShippingNote String False

Note for the shipping address.

Subtotal Double 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

SalesTaxItems.Name

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

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

The line item identifier.

ItemLineNumber# String True

The line item number.

ItemName# String False

Items.FullName

The item name.

ItemId# String False

Items.ID

The item identifier.

ItemGroup# String False

Items.FullName

Item group name. Reference to a group of line items this item is part of.

ItemGroupId# String False

Items.ID

Item group Id. Reference to a group of line items this item is part of.

ItemDescription# String False

A description of the item.

ItemQuantity# Double False

The quantity of the item or item group specified in this line.

ItemUnitOfMeasure# String False

UnitOfMeasure.Name

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

SalesTaxCodes.Name

Sales tax information for this item (taxable or nontaxable).

ItemTaxCodeId# String False

SalesTaxCodes.ID

Sales tax information for this item.

ItemAmount# Double False

Total amount for this item.

ItemInventorySiteName# String False

InventorySites.Name

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

The inventory site Id of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemSerialNumber# String False

The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemLotNumber# String False

The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemClass# String False

Class.FullName

The class name of the item.

ItemClassId# String False

Class.ID

The class Id of the item.

ItemUOMSetFullName# String False

UnitOfMeasure.Name

Indicates the price of something as a percent.

ItemUOMSetListID# String False

UnitOfMeasure.ID

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup# String False

If true, a list of this group's individual items their amounts will appear on printed forms.

CheckNumber String False

Check number.

PaymentMethod String False

PaymentMethods.Name

Payment method.

PaymentMethodId String False

PaymentMethods.ID

Payment method.

DepositAccount String False

Accounts.Name

Account name where this payment is deposited.

DepositAccountId String False

Accounts.ID

Account name where this payment is deposited.

CustomerTaxCode String True

SalesTaxCodes.Name

The tax code specific to this customer.

CustomerTaxCodeId String True

SalesTaxCodes.ID

The tax code specific to this customer.

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 as # columns. 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 Description
ID [KEY] String True

The unique identifier.

ReferenceNumber String False

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, but not the QuickBooks-generated Id.

CustomerName String False

Customers.FullName

Customer name this transaction is recorded under.

CustomerId String False

Customers.ID

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

ShippingMethods.Name

Shipping method.

ShipMethodId String False

ShippingMethods.ID

Shipping method.

ShipDate Date False

Shipping date.

Memo String False

Memo regarding this transaction.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

DueDate Date False

The date when payment is due.

TotalAmount Double True

Total amount for this transaction.

Message String False

CustomerMessages.Name

Message to the customer.

MessageId String False

CustomerMessages.ID

Message to the customer.

SalesRep String False

SalesReps.Initial

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

Reference to the sales rep.

Template String False

Templates.Name

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

The Id of an existing template to apply to the transaction.

ExchangeRate Double False

Currency exchange rate for this sales receipt.

FOB String False

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False

First line of the billing address.

BillingLine2 String False

Second line of the billing address.

BillingLine3 String False

Third line of the billing address.

BillingLine4 String False

Fourth line of the billing address.

BillingLine5 String False

Fifth line of the billing address.

BillingCity String False

City name for the billing address.

BillingState String False

State name for the billing address.

BillingPostalCode String False

Postal code for the billing address.

BillingCountry String False

Country for the billing address.

BillingNote String False

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False

First line of the shipping address.

ShippingLine2 String False

Second line of the shipping address.

ShippingLine3 String False

Third line of the shipping address.

ShippingLine4 String False

Fourth line of the shipping address.

ShippingLine5 String False

Fifth line of the shipping address.

ShippingCity String False

City name for the shipping address.

ShippingState String False

State name for the shipping address.

ShippingPostalCode String False

Postal code for the shipping address.

ShippingCountry String False

Country for the shipping address.

ShippingNote String False

Note for the shipping address.

Subtotal Double 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

SalesTaxItems.Name

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

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

An aggregate of the line item data which can be used for adding a sales receipt and its line item data.

CheckNumber String False

Check number.

PaymentMethod String False

PaymentMethods.Name

Payment method.

PaymentMethodId String False

PaymentMethods.ID

Payment method.

DepositAccount String False

Accounts.FullName

Account name where this payment is deposited.

DepositAccountId String False

Accounts.ID

Account name where this payment is deposited.

CustomerTaxCode String True

SalesTaxCodes.Name

The tax code specific to this customer.

CustomerTaxCodeId String True

SalesTaxCodes.ID

The tax code specific to this customer.

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

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The Id of the sales rep.

Initial String False

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

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

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





SalesTaxCodes

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier.

Name String False

The name of the sales tax code.

Description String False

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

Refers to the purchase tax item. Only available in international versions of QuickBooks.

ItemPurchaseTaxRef_ListId String False

Refers to the purchase tax item. Only available in international versions of QuickBooks.

ItemSalesTaxRef_FullName String False

SalesTaxItems.Name

Refers to the sales tax item. Only available in international versions of QuickBooks.

ItemSalesTaxRef_ListId String False

SalesTaxItems.ID

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

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





SalesTaxItems

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier.

Name String False

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

Class.FullName

A reference to the class of the transaction. Requires QBXML version 12.0 or later.

ClassRef_ListID String False

Class.ID

A reference to the class of the transaction. Requires QBXML version 12.0 or later.

ItemDesc String False

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

Vendors.Name

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

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier of the shipping method.

Name String False

The name of the shipping method.

IsActive Boolean False

Boolean determining if the shipping method is active.

EditSequence String True

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The Id of the standard term.

Name String False

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

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.

Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

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

Customers.FullName

Customer name this transaction is recorded under. Either CustomerName or CustomerId must have a value when inserting.

CustomerId String False

Customers.ID

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

Items.FullName

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

UnitOfMeasure.Name

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

UnitOfMeasure.Name

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

Accounts.FullName

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

Class.FullName

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

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

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

Customers.FullName

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

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

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

Employees.Name

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

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

Notes about this transaction.

Class String False

Class.FullName

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

PayrollWageItemName String False

PayrollWageItems.Name

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

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

Items.Name

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

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





ToDo

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier.

TxnDate Date False

The date of the transaction.

TxnNumber Integer True

An identifying number for this transaction.

RefNumber String False

The transaction reference number.

FromInventorySiteRef_ListID String False

InventorySites.ID

The site inventory was transfered from.

FromInventorySiteRef_FullName String False

InventorySites.Name

The site inventory was transfered from.

ToInventorySiteRef_ListID String False

InventorySites.ID

The site inventory was transfered to.

ToInventorySiteRef_FullName String False

InventorySites.Name

The site inventory was transfered to.

Memo String False

Additional information about the transaction.

ExternalGUID String False

Allows for the attachment of a user defined GUID value.

TransferInventoryLineAggregate String False

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Line Item columns and 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 (FromInventorySiteRef_FullName, ToInventorySiteRef_FullName, TransferInventoryLineRet_ItemRef_FullName#1, TransferInventoryLineRet_QuantityToTransfer#1, TransferInventoryLineRet_ItemRef_FullName#2, TransferInventoryLineRet_QuantityToTransfer#2) VALUES ('Site A', 'Site B', 'Cabinets', 10, 'Door Knobs', '12')
Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier in the format TransferInventoryId|TransferInventoryLineRet_TxnLineID.

TransferInventoryId String False

The item identifier.

TxnDate Date False

The date of the transaction.

TxnNumber Integer True

An identifying number for this transaction.

RefNumber String False

The transaction reference number.

FromInventorySiteRef_ListID String False

InventorySites.ID

The site inventory was transfered from.

FromInventorySiteRef_FullName String False

InventorySites.Name

The site inventory was transfered from.

ToInventorySiteRef_ListID String False

InventorySites.ID

The site inventory was transfered to.

ToInventorySiteRef_FullName String False

InventorySites.Name

The site inventory was transfered to.

Memo String False

Additional information about the transaction.

ExternalGUID String False

Allows for the attachment of a user-defined GUID value.

TransferInventoryLineRet_TxnLineID# String True

Identifying number for the transaction line.

TransferInventoryLineRet_ItemRef_ListID# String False

Items.ID

A reference to the item that was transfered.

TransferInventoryLineRet_ItemRef_FullName# String False

Items.FullName

Name of the item that was transfered.

TransferInventoryLineRet_FromInventorySiteLocationRef_ListID# String False

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

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

The serial number of the asset.

TransferInventoryLineRet_LotNumber# String False

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

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





Transfers

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

Columns

Name Type ReadOnly References Description
ID [KEY] String True

The unique identifier.

TxnNumber String True

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

The Id for the account from which the funds will be transfered.

TransferFromAccountRef_FullName String False

Accounts.FullName

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

The Id for the account to which the funds will be transfered.

TransferToAccountRef_FullName String False

Accounts.FullName

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

A reference to the class of the transaction.

ClassRef_FullName String False

Class.FullName

A reference to the class of the transaction.

Amount Double False

The total amount for this transfer.

Memo String False

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

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier of the unit of measure.

Name String False

The name of the unit of measure.

IsActive Boolean False

Boolean determining if the unit of measure is active.

UnitOfMeasureType String False

The type of the unit of measure such as Count.

BaseUnit_Name String False

The name of the base unit of measure.

BaseUnit_Abbreviation String False

The abbreviation for the base unit of measure.

RelatedUnitAggregate String False

An XML aggregate containing the related units of measure.

DefaultUnitAggregate String False

An XML aggregate containing the default units of measure.

EditSequence String True

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The unique identifier of the unit-of-measure default unit.

UnitOfMeasureSetId String False

UnitOfMeasure.ID

The item identifier of the unit of measure.

Name String False

The name of the unit of measure.

IsActive Boolean False

Boolean determining if the unit of measure is active.

UnitOfMeasureType String False

The type of unit of measure, such as Count.

BaseUnit_Name String False

The name of the base unit of measure.

BaseUnit_Abbreviation String False

The abbreviation for the base unit of measure.

DefaultUnit_UnitUsedFor# String False

What the default unit is used for.

DefaultUnit_Unit# String False

The default unit.

EditSequence String True

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 Description
ID [KEY] String True

The unique identifier of the unit-of-measure related unit.

UnitOfMeasureSetId String False

UnitOfMeasure.ID

The item identifier of the unit of measure.

Name String False

The name of the unit of measure.

IsActive Boolean False

Boolean determining if the unit of measure is active.

UnitOfMeasureType String False

The type of unit of measure, such as Count.

BaseUnit_Name String False

The name of the base unit of measure.

BaseUnit_Abbreviation String False

The abbreviation for the base unit of measure.

RelatedUnit_Name# String False

The name of the related unit of measure.

RelatedUnit_Abbreviation# String False

The abbreviation of the related unit of measure.

RelatedUnit_ConversionRatio# String False

The conversion ratio of the related unit of measure.

EditSequence String True

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 Description
ID [KEY] String True

The Id of the vehicle mileage.

VehicleRef_FullName String False

The vehicle for use in vehicle mileage transactions. Each vehicle name must be unique.

VehicleRef_ListID String False

The reference Id for the vehicle mileage transaction.

CustomerRef_FullName String False

Customers.FullName

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

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

Items.FullName

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

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

Class.FullName

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

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

Additional information.

BillableStatus String False

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

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.

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
Rows@Next String

Identifier for the next page of results. Do not set this value manually.





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 columns denoted with a # are Expense Line Item columns and 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 (VendorName, ExpenseAccount#1, ExpenseAmount#1, ExpenseAccount#2, ExpenseAmount#2) VALUES ('A Cheung Limited', 'Utilities:Telephone', 52.25, 'Professional Fees:Accounti