Matillion Data Model for QuickBooks
Version - 21.0.8137.0

Note: If you're using Matillion ETL, we advise you update to the latest version to ensure that your instance is reflective of the information displayed in the data model. This note does not apply to the Data Productivity Cloud.



Connection String OptionsBack To Top

  1. CompanyFile
  2. ApplicationName
  3. User
  4. Password
  5. URL
  6. SSLServerCert
  7. FirewallType
  8. FirewallServer
  9. FirewallPort
  10. FirewallUser
  11. FirewallPassword
  12. ProxyAutoDetect
  13. ProxyServer
  14. ProxyPort
  15. ProxyAuthScheme
  16. ProxyUser
  17. ProxyPassword
  18. ProxySSLType
  19. ProxyExceptions
  20. Logfile
  21. Verbosity
  22. LogModules
  23. MaxLogFileSize
  24. MaxLogFileCount
  25. Location
  26. BrowsableSchemas
  27. Tables
  28. Views
  29. AutoCache
  30. CacheDriver
  31. CacheConnection
  32. CacheLocation
  33. CacheTolerance
  34. Offline
  35. CacheMetadata
  36. BatchSize
  37. ConnectionLifeTime
  38. ConnectOnOpen
  39. CustomFieldMode
  40. DelayAfterClose
  41. IncludeLineItems
  42. IncludeLinkedTxns
  43. MaxRows
  44. Other
  45. Pagesize
  46. PoolIdleTimeout
  47. PoolMaxSize
  48. PoolMinSize
  49. PoolWaitTime
  50. PseudoColumns
  51. QBXMLVersion
  52. Readonly
  53. RTK
  54. SupportEnhancedSQL
  55. Timeout
  56. UseConnectionPooling
  57. UseRDS

CompanyFile

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 QuickBooks Gateway user.



ApplicationName

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.



User

Data Type

string

Default Value

""

Remarks

The QuickBooks Gateway must require user authentication before this property is used.



Password

Data Type

string

Default Value

""

Remarks

The QuickBooks Gateway must require user authentication before this property is used.



URL

Data Type

string

Default Value

""

Remarks

The URL where the QuickBooks Gateway is running. For example, http://localhost:8166. The QuickBooks Gateway 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 QuickBooks Gateway runs on port 8166.



SSLServerCert

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 QuickBooks Gateway. Any other certificate that is not trusted by the machine is rejected.

This property can take the following 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



FirewallType

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.



FirewallServer

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.



FirewallPort

Data Type

int

Default Value

0

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.



FirewallUser

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.



FirewallPassword

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.



ProxyAutoDetect

Data Type

bool

Default Value

false

Remarks

This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.

NOTE: When this property is set to True, the proxy used is determined as follows:

To connect to an HTTP proxy, see ProxyServer. For other proxies, such as SOCKS or tunneling, see FirewallType.



ProxyServer

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.



ProxyPort

Data Type

int

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.



ProxyAuthScheme

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.



ProxyUser

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 user name of a user recognized by the HTTP proxy. If you are using Windows or Kerberos authentication, set this property to a user name in one of the following formats:

user@domain

domain\user



ProxyPassword

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.



ProxySSLType

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.



ProxyExceptions

Data Type

string

Default Value

""

Remarks

The ProxyServer is used for all addresses, except for addresses defined in this property. Use semicolons to separate entries.

Note that the driver uses the system proxy settings by default, without further configuration needed; if you want to explicitly configure proxy exceptions for this connection, you need to set ProxyAutoDetect = false, and configure ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.



Logfile

Data Type

string

Default Value

""

Remarks

Once this property is set, the driver will populate the log file as it carries out various tasks, such as when authentication is performed or queries are executed. If the specified file doesn't already exist, it will be created.

Connection strings and version information are also logged, though connection properties containing sensitive information are masked automatically.

If a relative filepath is supplied, the location of the log file will be resolved based on the path found in the Location connection property.

For more control over what is written to the log file, you can adjust the Verbosity property.

Log contents are categorized into several modules. You can show/hide individual modules using the LogModules property.

To edit the maximum size of a single logfile before a new one is created, see MaxLogFileSize.

If you would like to place a cap on the number of logfiles generated, use MaxLogFileCount.

Java Logging

Java logging is also supported. To enable Java logging, set Logfile to:

Logfile=JAVALOG://myloggername

As in the above sample, JAVALOG:// is a required prefix to use Java logging, and you will substitute your own Logger.

The supplied Logger's getLogger method is then called, using the supplied value to create the Logger instance. If a logging instance already exists, it will reference the existing instance.

When Java logging is enabled, the Verbosity will now correspond to specific logging levels.



Verbosity

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 detailed in the Logging page.



LogModules

Data Type

string

Default Value

""

Remarks

Only the modules specified (separated by ';') will be included in the log file. By default all modules are included.

See the Logging page for an overview.



MaxLogFileSize

Data Type

string

Default Value

"100MB"

Remarks

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 100 MB. Values lower than 100 kB will use 100 kB as the value instead.

Adjust the maximum number of logfiles generated with MaxLogFileCount.



MaxLogFileCount

Data Type

int

Default Value

-1

Remarks

When the limit is hit, a new log is created in the same folder with the date and time appended to the end and the oldest log file will be deleted.

The minimum supported value is 2. A value of 0 or a negative value indicates no limit on the count.

Adjust the maximum size of the logfiles generated with MaxLogFileSize.



Location

Data Type

string

Default Value

"%APPDATA%\\CData\\QuickBooks Data Provider\\Schema"

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 folder location can be a relative path from the location of the executable. The Location property is only needed if you want to customize definitions (for example, change a column name, ignore a column, and so on) or extend the data model with new tables, views, or stored procedures.

If left unspecified, the default location is "%APPDATA%\\CData\\QuickBooks Data Provider\\Schema" with %APPDATA% being set to the user's configuration directory:

Platform %APPDATA%
Windows The value of the APPDATA environment variable
Mac ~/Library/Application Support
Linux ~/.config



BrowsableSchemas

Data Type

string

Default Value

""

Remarks

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



Tables

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. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.

Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.



Views

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. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.

Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.



AutoCache

Data Type

bool

Default Value

false

Remarks

When AutoCache = true, 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.

Setting the Caching Database

When AutoCache = true, 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



CacheDriver

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 want to use to cache data.

Note that you must also add the CacheDriver JAR file 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 file is shipped in the JDK. You can find the JAR file, 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

The following 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

The following 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;

  
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

The following is a JDBC URL for the Oracle Thin Client:

jdbc:quickbooks:Cache Driver=oracle.jdbc.OracleDriver;CacheConnection='jdbc:oracle:thin:scott/tiger@localhost:1521:orcldb';User=test;Password=test;URL=http://localhost:8166;
NOTE: If using a version of Oracle older than 9i, the cache driver will instead be oracle.jdbc.driver.OracleDriver .
PostgreSQL

The following JDBC URL uses the official PostgreSQL JDBC driver:

jdbc:quickbooks:CacheDriver=cdata.jdbc.postgresql.PostgreSQLDriver;CacheConnection='jdbc:postgresql:User=postgres;Password=admin;Database=postgres;Server=localhost;Port=5432;';User=test;Password=test;URL=http://localhost:8166;



CacheConnection

Data Type

string

Default Value

""

Remarks

The cache database is determined based on the CacheDriver and CacheConnection properties. Both properties 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 CacheDriver and CacheConnection. The following 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. The following is the syntax of the JDBC URL:

jdbc:sqlite:dataSource

MySQL

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

jdbc:mysql:User=root;Password=root;Server=localhost;Port=3306;Database=cache
The following 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
The following are typical SQL Server connection properties:
Oracle

The following 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
The following are typical connection properties:
PostgreSQL

The following 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
The following are typical connection properties:



CacheLocation

Data Type

string

Default Value

"%APPDATA%\\CData\\QuickBooks Data Provider"

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 file to the classpath. The JAR file, derby.jar, is shipped in the JDK and located in the db subfolder of the JDK installation.

If left unspecified, the default location is "%APPDATA%\\CData\\QuickBooks Data Provider" with %APPDATA% being set to the user's configuration directory:

Platform %APPDATA%
Windows The value of the APPDATA environment variable
Mac ~/Library/Application Support
Linux ~/.config

See Also



CacheTolerance

Data Type

int

Default Value

600

Remarks

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



Offline

Data Type

bool

Default Value

false

Remarks

When Offline = 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.



CacheMetadata

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



BatchSize

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.



ConnectionLifeTime

Data Type

int

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.



ConnectOnOpen

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



CustomFieldMode

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.



DelayAfterClose

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.



IncludeLineItems

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.



IncludeLinkedTxns

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.



MaxRows

Data Type

int

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.



Other

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

Data Type

int

Default Value

500

Remarks

The Pagesize property affects the maximum number of results to return per page from QuickBooks. Setting a higher value may result in better performance at the cost of additional memory allocated per page consumed.



PoolIdleTimeout

Data Type

int

Default Value

60

Remarks

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



PoolMaxSize

Data Type

int

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.



PoolMinSize

Data Type

int

Default Value

1

Remarks

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



PoolWaitTime

Data Type

int

Default Value

60

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.



PseudoColumns

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; for example, "*=*".



QBXMLVersion

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

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

Data Type

string

Default Value

""

Remarks

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



SupportEnhancedSQL

Data Type

bool

Default Value

true

Remarks

When SupportEnhancedSQL = 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 = 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.



Timeout

Data Type

int

Default Value

300

Remarks

If Timeout = 0, operations do not time out. The operations run until they complete successfully or until they encounter an error condition.

If Timeout expires and the operation is not yet complete, the driver throws an exception.



UseConnectionPooling

Data Type

bool

Default Value

false

Remarks

This property enables connection pooling. The default is false. See Connection Pooling for information on using connection pools.



UseRDS

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





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. CreditCardRefunds
  22. CreditMemoLineItems
  23. CreditMemos
  24. Currency
  25. CustomerContacts
  26. CustomerMessages
  27. CustomerNotes
  28. Customers
  29. CustomerShippingAddresses
  30. CustomerTypes
  31. DateDrivenTerms
  32. DepositLineItems
  33. Deposits
  34. EmployeeEarnings
  35. Employees
  36. EstimateLineItems
  37. Estimates
  38. InventoryAdjustmentLineItems
  39. InventoryAdjustments
  40. InventorySites
  41. InvoiceLineItems
  42. Invoices
  43. ItemLineItems
  44. ItemReceiptExpenseItems
  45. ItemReceiptLineItems
  46. ItemReceipts
  47. Items
  48. JobTypes
  49. JournalEntries
  50. JournalEntryLines
  51. OtherNames
  52. PaymentMethods
  53. PayrollNonWageItems
  54. PayrollWageItems
  55. PriceLevelPerItem
  56. PriceLevels
  57. PurchaseOrderLineItems
  58. PurchaseOrders
  59. ReceivePayments
  60. ReceivePaymentsAppliedTo
  61. SalesOrderLineItems
  62. SalesOrders
  63. SalesReceiptLineItems
  64. SalesReceipts
  65. SalesReps
  66. SalesTaxCodes
  67. SalesTaxItems
  68. ShippingMethods
  69. StandardTerms
  70. StatementCharges
  71. TimeTracking
  72. ToDo
  73. TransferInventory
  74. TransferInventoryLineItems
  75. Transfers
  76. UnitOfMeasure
  77. UnitOfMeasureDefaultUnits
  78. UnitOfMeasureRelatedUnits
  79. VehicleMileage
  80. VendorCreditExpenseItems
  81. VendorCreditLineItems
  82. VendorCredits
  83. Vendors
  84. VendorTypes
  85. WorkersCompCodeLines
  86. 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 ColumnSize Description
ID [KEY] String True 255

The unique identifier of the account.

Name String False 31

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

FullName String True 1000

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

Type String False 100

The type of account.

The allowed values are ACCOUNTSPAYABLE, ACCOUNTSRECEIVABLE, BANK, COSTOFGOODSSOLD, CREDITCARD, EQUITY, EXPENSE, FIXEDASSET, INCOME, LONGTERMLIABILITY, OTHERASSET, OTHERCURRENTASSET, OTHERCURRENTLIABILITY, OTHEREXPENSE, OTHERINCOME, NONPOSTING.

SpecialType String True 100

The special account type in QuickBooks if applicable.

The allowed values are AccountsPayable, AccountsReceivable, CondenseItemAdjustmentExpenses, CostOfGoodsSold, DirectDepositLiabilities, Estimates, ExchangeGainLoss, InventoryAssets, ItemReceiptAccount, OpeningBalanceEquity, PayrollExpenses, PayrollLiabilities, PettyCash, PurchaseOrders, ReconciliationDifferences, RetainedEarnings, SalesOrders, SalesTaxPayable, UncategorizedExpenses, UncategorizedIncome, UndepositedFunds.

Number String False

The bank number of the account.

Balance Double True

The total balance of the account, including subaccounts.

AccountBalance Double True

The balance of this account only. This balance does not include subaccounts.

BankAccount String False

The bank account number for the account (or an identifying note).

Description String False 200

A textual description of the account.

IsActive Boolean False

This property indicates whether the object is currently enabled for use by QuickBooks.

ParentName String False

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

255

This is a reference to a parent account. If set to a nonempty string, then this account is a subaccount or job of its parent.

Sublevel Integer True

The number of ancestors the account has.

CurrencyName String False

Currency.Name

64

The name of the currency for the account. A minimum QBXML version of 8.0 is required for this feature.

CurrencyId String False

Currency.ID

255

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

CashFlowClassification String True

Indicates how the account is classified for cash flow reporting.' value='None, Operating, Investing, Financing, NotApplicable.

TaxLineName String True 256

The name of the line on the tax form this account is associated with, if any. Check the CompanyInfo to see which tax form is associated with the company file.

TaxLineId String False 255

The Id of the line on the tax form this account is associated with, if any. Check the CompanyInfo to see which tax form is associated with the company file. Requires QBXML Version 7.0 to modify.

TimeModified Datetime True

When the account was last modified.

TimeCreated Datetime True

When the account was created.

Pseudo-Columns

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

Name Type Description
OpeningBalance String

The opening balance of the account (by default 0). Note that this property is only used when adding new accounts to QuickBooks.

OpeningDate String

The opening balance date of the account. Note that this property is only used when adding new accounts to QuickBooks.



BillExpenseItems

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

Table Specific Information

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

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

Select

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

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

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

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

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

INSERT INTO BillExpenseItems#TEMP (VendorName, Date, ExpenseAccount, ExpenseAmount) VALUES ('Cal Telephone', '1/1/2011', 'Utilities:Telephone', 52.25)

INSERT INTO BillExpenseItems#TEMP (VendorName, Date, ExpenseAccount, ExpenseAmount) VALUES ('Cal Telephone', '1/1/2011', 'Professional Fees:Accounting', 235.87)

INSERT INTO BillExpenseItems (VendorName, Date, ExpenseAccount, ExpenseAmount) SELECT VendorName, Date, ExpenseAccount, ExpenseAmount FROM BillExpenseItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format BillId|ExpenseLineId.

BillId String False

Bills.ID

255

The bill identifier.

VendorName String False

Vendors.Name

1000

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

VendorId String False

Vendors.ID

255

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

ReferenceNumber String False 21

Reference number for the transaction.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

TxnNumber Integer True

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

DueDate Date False

Date when payment is due.

Terms String False 100

Reference to terms of payment.

TermsId String False 255

Reference Id for the terms of payment.

AccountsPayable String False

Accounts.FullName

1000

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

255

Reference Id for the accounts-payable account.

Amount Decimal True

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

Memo String False 5000

Memo for the transaction.

IsPaid Boolean True

Indicates whether this bill has been paid.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ExpenseLineId String True 255

The expense line item identifier.

ExpenseLineNumber String True 255

The expense line number.

ExpenseAccount String False

Accounts.FullName

1000

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

ExpenseAccountId String False

Accounts.ID

255

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

ExpenseAmount Decimal False

The total amount of this expense line.

ExpenseBillableStatus String False 13

The billing status of this expense line.

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

ExpenseCustomer String False

Customers.FullName

1000

The customer associated with this expense line.

ExpenseCustomerId String False

Customers.ID

255

The customer associated with this expense line.

ExpenseClass String False

Class.FullName

1000

The class name of this expense.

ExpenseClassId String False

Class.ID

255

The class Id of this expense.

ExpenseMemo String False 5000

A memo for this expense line.

ExpenseTaxCode String False

SalesTaxCodes.Name

3

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

ExpenseTaxCodeId String False

SalesTaxCodes.ID

255

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

ExpenseCustomFields String True

The custom fields for this expense item.

ExchangeRate Double False

Exchange Rate is the market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the 'home' currency.

TimeModified Datetime True

When the Bill was last modified.

TimeCreated Datetime True

When the Bill was created.

OpenAmount Decimal True

The current balance for the Vendor

Pseudo-Columns

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

Name Type Description
LinkToTxnId String

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



BillLineItems

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

Table Specific Information

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

Select

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

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

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

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

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

INSERT INTO BillLineItems#TEMP (VendorName, Date, ItemName, ItemQuantity) VALUES ('Cal Telephone', '1/1/2011', 'Repairs', 1)

INSERT INTO BillLineItems#TEMP (VendorName, Date, ItemName, ItemQuantity) VALUES ('Cal Telephone', '1/1/2011', 'Removal', 2)

INSERT INTO BillLineItems (VendorName, Date, ItemName, ItemQuantity) SELECT VendorName, Date, ItemName, ItemQuantity FROM BillLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format BillId|ItemLineId.

BillId String False

Bills.ID

255

The bill identifier.

VendorName String False

Vendors.Name

1000

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

VendorId String False

Vendors.ID

255

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

ReferenceNumber String False 21

Reference number for the transaction.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

TxnNumber Integer True

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

DueDate Date False

Date when payment is due.

Terms String False 100

Reference to terms of payment.

TermsId String False 255

Reference Id for the terms of payment.

AccountsPayable String False

Accounts.FullName

1000

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

255

Reference Id for the accounts-payable account.

Amount Decimal True

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

Memo String False 5000

Memo for the transaction.

IsPaid Boolean True

Indicates whether this bill has been paid.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item name.

ItemGroup String False

Items.FullName

100

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

ItemGroupId String False

Items.ID

255

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

ItemDescription String False 5000

A description of the item.

ItemQuantity Double False

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

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemCost Double False

The unit cost for the item.

ItemAmount Decimal False

Total amount for the item.

ItemBillableStatus String False 13

Billing status of the item.

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

ItemCustomer String False

Customers.FullName

1000

The name of the customer who ordered the item.

ItemCustomerId String False

Customers.ID

255

The Id of the customer who ordered the item.

ItemInventorySiteId String False

InventorySites.ID

31

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

ItemInventorySiteName String False

InventorySites.Name

255

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

ItemInventorySiteLocationId String False 31

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

ItemInventorySiteLocationName String False 255

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

ItemSerialNumber String False 5000

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

ItemLotNumber String False 40

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

ItemClass String False

Class.FullName

1000

The name for the class of the item.

ItemClassId String False

Class.ID

255

The Id for the class of the item.

ItemTaxCode String False

SalesTaxCodes.Name

3

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

ItemTaxCodeId String False

SalesTaxCodes.ID

255

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

ItemCustomFields String False

The custom fields for this lineitem.

CurrencyName String False

Currency.Name

64

Name of the currency code used for this bill.

CurrencyId String False

Currency.ID

1000

Id of the currency code used for this bill.

ExchangeRate Decimal False

Exchange Rate is the market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the 'home' currency.

TimeModified Datetime True

When the Bill was last modified.

TimeCreated Datetime True

When the Bill was created.

OpenAmount Decimal True

The current balance for the Vendor

Pseudo-Columns

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

Name Type Description
LinkToTxnId String

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

ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



BillPaymentChecks

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO BillPaymentChecks (PayeeName, BankAccountName, AppliedToAggregate) 

VALUES ('Vu Contracting', 'Checking', 

'<BillPaymentChecksAppliedTo>

<Row><AppliedToRefId>178C1-1450221347</AppliedToRefId><AppliedToAmount>20.00</AppliedToAmount></Row>

<Row><AppliedToRefId>178C1-1450221347</AppliedToRefId><AppliedToAmount>51.25</AppliedToAmount></Row>

</BillPaymentChecksAppliedTo>')

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier for the transaction.

PayeeName String False

Vendors.Name

1000

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

PayeeId String False

Vendors.ID

255

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

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Int True

The transaction number.

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

Amount Decimal True

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

AccountsPayable String False

Accounts.FullName

1000

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

255

Reference to the accounts-payable account Id.

BankAccountName String False

Accounts.FullName

1000

Refers to the Account funds are being drawn from for this bill payment. This property is only applicable to the check payment method.

BankAccountId String False

Accounts.ID

255

Refers to the Account funds are being drawn from for this bill payment. This property is only applicable to the check payment ethod.

IsToBePrinted Boolean False

Indicates whether or not the transaction is to be printed. If set to true, the 'To Be Printed' box in the QuickBooks user interface will be checked.

The default value is false.

Memo String False 5000

A memo to appear on internal reports.

AppliedToAggregate String False 5000

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

ExchangeRate Double False

Currency exchange rate for this Bill Payment.

AmountInHomeCurrency Double True

Amount in units of the home currency.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the bill payment was last modified.

TimeCreated Datetime True

When the bill payment was created.

Pseudo-Columns

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

Name Type Description
AppliedTo* String

All applied-to-specific columns may be used in insertions.



BillPaymentChecksAppliedTo

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

Table Specific Information

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

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

Select

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

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

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

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

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

INSERT INTO BillPaymentChecksAppliedTo#TEMP (PayeeName, BankAccountName, AppliedToRefId, AppliedToAmount) VALUES ('Vu Contracting', 'Checking', '881-933371709', 51.25)

INSERT INTO BillPaymentChecksAppliedTo (PayeeName, BankAccountName, AppliedToRefId, AppliedToAmount) SELECT PayeeName, BankAccountName, AppliedToRefId, AppliedToAmount FROM BillPaymentChecksAppliedTo#TEMP

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format BillPaymentId|AppliedToId.

BillPaymentId String False

BillPaymentChecks.ID

255

The Id of the bill payment transaction.

PayeeName String False

Vendors.Name

1000

A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required. This must match the Vendor associated with the Bill being paid when inserting.

PayeeId String False

Vendors.ID

255

A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required. This must match the Vendor associated with the Bill being paid when inserting.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Int True

The transaction number.

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

AccountsPayable String False 1000

Reference to the accounts-payable account.

AccountsPayableId String False 255

Reference to the accounts-payable account Id.

BankAccountId String False 255

Refers to the account funds are being drawn from for this bill payment. This property is only applicable to the check payment method.

BankAccountName String False 1000

Refers to the account funds are being drawn from for this bill payment. This property is only applicable to the check payment method.

IsToBePrinted Boolean False

Indicates whether or not the transaction is to be printed. If set to true, the 'To Be Printed' box in the QuickBooks user interface will be checked.

The default value is false.

Memo String False 5000

A memo to appear on internal reports.

ExchangeRate Double False

Currency exchange rate for this Bill Payment.

AmountInHomeCurrency Double True

Amount in units of the home currency.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

AppliedToRefId String True 255

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

AppliedToAmount Decimal True

The amount to be applied.

AppliedToBalanceRemaining Decimal True

The balance remaining to be applied.

AppliedToCreditAmount Decimal False

The amount of the credit to be applied.

AppliedToCreditMemoId String False 255

The Id of the credit memo to be applied.

AppliedToDiscountAccountId String False 255

The discount account Id to be applied.

AppliedToDiscountAccountName String False 1000

The discount account name to be applied.

AppliedToDiscountAmount Decimal False

The discount amount to be applied.

AppliedToPaymentAmount Decimal False

The payment amount to be applied.

AppliedToReferenceNumber String True 21

The ref number to be applied.

AppliedToTxnDate Date True

The transaction date to be applied.

AppliedToTxnType String True 100

The transaction type that was applied.

TimeModified Datetime True

When the bill payment was last modified.

TimeCreated Datetime True

When the bill payment was created.

Pseudo-Columns

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

Name Type Description
AppliedToCreditAppliedAmount String

The credit applied amount to be applied.



BillPaymentCreditCards

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO BillPaymentCreditCard (PayeeName, CreditCardName, AppliedToAggregate) 

VALUES ('Vu Contracting', 'CalOil Credit Card', 

'<BillPaymentCreditCardsAppliedTo>

<Row><AppliedToRefId>178C1-1450221347</AppliedToRefId><AppliedToAmount>20.00</AppliedToAmount></Row>

<Row><AppliedToRefId>881-933371709</AppliedToRefId><AppliedToAmount>51.25</AppliedToAmount></Row>

</BillPaymentCreditCardsAppliedTo>')

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier for the transaction.

PayeeName String False

Vendors.Name

1000

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

PayeeId String False

Vendors.ID

255

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

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Int True

The transaction number.

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

Amount Decimal True

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

AccountsPayable String False

Accounts.FullName

1000

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

255

Reference to the accounts-payable account Id.

CreditCardName String False 1000

Refers to the credit card account this payment is being charged to. This property is only applicable to the credit card payment Method.

CreditCardId String False 255

Refers to the credit card account this payment is being charged to. This property is only applicable to the credit card payment Method.

Memo String False 5000

A memo to appear on internal reports.

AppliedToAggregate String False 5000

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

ExchangeRate Double False

Currency exchange rate for this Bill Payment.

AmountInHomeCurrency Double True

Amount in units of the home currency.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the bill payment was last modified.

TimeCreated Datetime True

When the bill payment was created.

Pseudo-Columns

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

Name Type Description
AppliedTo* String

All applied-to-specific columns may be used in insertions.



BillPaymentCreditCardsAppliedTo

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

Table Specific Information

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

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

Select

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

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

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

You can also use BillPaymentCreditCards to insert a BillPaymentCreditCard.

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

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

INSERT INTO BillPaymentCreditCardsAppliedTo#TEMP (PayeeName, CreditCardName, AppliedToRefId, AppliedToAmount) VALUES ('Vu Contracting', 'CalOil Credit Card', '881-933371709', 51.25)

INSERT INTO BillPaymentCreditCardsAppliedTo (PayeeName, CreditCardName, AppliedToRefId, AppliedToAmount) SELECT PayeeName, CreditCardName, AppliedToRefId, AppliedToAmount FROM BillPaymentCreditCardsAppliedTo#TEMP

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format BillPaymentId|AppliedToId.

BillPaymentId String False

BillPaymentCreditCards.ID

255

The Id of the bill payment transaction.

PayeeName String False

Vendors.Name

1000

A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required. This must match the vendor associated with the bill being paid when inserting.

PayeeId String False

Vendors.ID

255

A reference to the entity merchandise was purchased from. Either PayeeId or PayeeName is required. This must match the vendor associated with the bill being paid when inserting.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Int True

The transaction number.

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

AccountsPayable String False

Accounts.FullName

1000

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

255

Reference to the accounts-payable account Id.

CreditCardName String False 1000

Refers to the credit card account this payment is being charged to. This property is only applicable to the credit card payment method.

CreditCardId String False 255

Refers to the credit card account this payment is being charged to. This property is only applicable to the credit card payment method.

IsToBePrinted Boolean False

Indicates whether or not the transaction is to be printed. If set to true, the 'To Be Printed' box in the QuickBooks user interface will be checked.

The default value is false.

Memo String False 5000

A memo to appear on internal reports.

ExchangeRate Double False

Currency exchange rate for this Bill Payment.

AmountInHomeCurrency Double True

Amount in units of the home currency.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

AppliedToRefId String True 255

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

AppliedToAmount Decimal True

The amount to be applied.

AppliedToBalanceRemaining Double True

The balance remaining to be applied.

AppliedToCreditMemoId String False

CreditMemos.ID

255

The Id of the credit memo to be applied.

AppliedToDiscountAccountName String False

Accounts.FullName

1000

The discount account name to be applied.

AppliedToDiscountAccountId String False

Accounts.ID

255

The discount account Id to be applied.

AppliedToDiscountAmount Decimal False

The discount amount to be applied.

AppliedToPaymentAmount Decimal False

The payment amount to be applied.

AppliedToReferenceNumber String True 21

The ref number to be applied.

AppliedToTxnDate Date True

The transaction date to be applied.

AppliedToTxnType String True 100

The transaction type that was applied.

TimeModified Datetime True

When the bill payment was last modified.

TimeCreated Datetime True

When the bill payment was created.

Pseudo-Columns

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

Name Type Description
AppliedToCreditAppliedAmount String

The credit applied amount to be applied.



Bills

Create, update, delete, and query QuickBooks Bills.

Table Specific Information

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

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

Select

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

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

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

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

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

INSERT INTO Bills (VendorName, Date, ItemAggregate) 

VALUES ('Cal Telephone', '1/1/2011', 

'<BillLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

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

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier for the bill.

VendorName String False

Vendors.Name

1000

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

VendorId String False

Vendors.ID

255

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

ReferenceNumber String False 21

Reference number for the transaction.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

Amount Decimal True

Amount of the transaction. This is calculated by QuickBooks based on the Line Items or Expense Line Items.

TxnNumber Integer True

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

DueDate Date False

Date when payment is due.

Terms String False 100

Reference to terms of payment.

TermsId String False 255

Reference Id for the terms of payment.

AccountsPayable String False

Accounts.FullName

1000

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

255

Reference Id for the accounts-payable account.

Memo String False 5000

Memo for the transaction.

IsPaid Boolean True

Indicates whether this Bill has been paid.

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ItemCount Integer True

The count of line items.

ItemAggregate String False 5000

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

ExpenseItemCount Integer True

The count of expense line items.

ExpenseItemAggregate String False 5000

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

TransactionCount Integer True

The count of related transactions to the bill.

TransactionAggregate String True 5000

An aggregate of the linked transaction data.

CurrencyName String False

Currency.Name

64

Name of the currency code used for this bill.

CurrencyId String False

Currency.ID

1000

Id of the currency code used for this bill.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the bill was last modified.

TimeCreated Datetime True

When the bill was created.

OpenAmount Decimal True

The current balance for the Vendor

Pseudo-Columns

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

Name Type Description
Item* String

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

Expense* String

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

LinkToTxnId String

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



BuildAssemblies

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

TxnNumber Integer True

An identifying number for this transaction.

ItemInventoryAssemblyRef_ListID String False

Items.ID

255

A reference to the Id of an inventory assembly. Either ItemInventoryAssemblyRef_ListID or ItemInventoryAssemblyRef_FullName is required when inserting a BuildAssembly.

ItemInventoryAssemblyRef_FullName String False

Items.FullName

1000

A reference to the name of an inventory assembly. Either ItemInventoryAssemblyRef_ListID or ItemInventoryAssemblyRef_FullName is required when inserting a BuildAssembly.

InventorySiteRef_ListID String False

InventorySites.ID

255

A reference to the Id of an inventory site.

InventorySiteRef_FullName String False

InventorySites.Name

31

A reference to the name of an inventory site.

SerialNumber String False 5000

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

LotNumber String False 40

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

TxnDate Date False

The date of the transaction.

RefNumber String False 21

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

Memo String False 5000

A memo about the transaction.

IsPending Boolean True

If IsPending is set to true, the transaction in question has not been completed.

QuantityToBuild Double False

Specifies the number of assemblies to be built. The transaction will fail if the number specified here exceeds the number of on-hand items.

QuantityCanBuild Double True

Indicates the number of this assembly that can be built from the parts on hand.

QuantityOnHand Double True

The number of these items in the inventory. To change the QuantityOnHand, you would need to add an inventory adjustment.

QuantityOnSalesOrder Double True

The number of these items that have been sold (as recorded in sales orders) but not delivered to customers.

MarkPendingIfRequired Boolean False

Allows the build assembly to be marked pending if there are insufficient quantities to complete the build assembly. This field requires QBXML Version 7.0 and is not returned in the response from QuickBooks.

ExternalGUID String True

A user-defined GUID value. Requires QBXML Version 9.0.

BuildAssemblyLineAggregate String True 5000

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

TimeCreated Datetime True

The datetime the transaction was made.

TimeModified Datetime True

The last datetime the transaction was modified.

EditSequence String True

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



BuildAssemblyLineItems

Create and query QuickBooks Build Assembly transactions.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

BuildAssemblyId String False

BuildAssemblies.ID

255

The unique Id of the build assembly.

TxnNumber Integer True

An identifying number for this transaction.

ItemInventoryAssemblyRef_ListID String False

Items.ID

255

A reference to the Id of an inventory assembly. Either ItemInventoryAssemblyRef_ListID or ItemInventoryAssemblyRef_FullName is required when inserting a BuildAssembly.

ItemInventoryAssemblyRef_FullName String False

Items.FullName

1000

A reference to the name of an inventory assembly. Either ItemInventoryAssemblyRef_ListID or ItemInventoryAssemblyRef_FullName is required when inserting a BuildAssembly.

InventorySiteRef_ListID String False

InventorySites.ID

255

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

InventorySiteRef_FullName String False

InventorySites.Name

31

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

SerialNumber String False 5000

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

LotNumber String False 40

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

TxnDate Date False

The date of the transaction.

RefNumber String False 21

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

Memo String False 5000

A memo about the transaction.

IsPending Boolean True

If IsPending is set to true, the transaction in question has not been completed.

QuantityToBuild Double False

Specifies the number of assemblies to be built. The transaction will fail if the number specified here exceeds the number of on-hand items.

QuantityCanBuild Double True

Indicates the number of this assembly that can be built from the parts on hand.

QuantityOnHand Double True

The number of these items in the inventory. To change the QuantityOnHand, you would need to add an inventory adjustment.

QuantityOnSalesOrder Double True

The number of these items that have been sold (as recorded in sales orders) but not delivered to customers.

MarkPendingIfRequired Boolean False

Allows the build assembly to be marked pending if there are insufficient quantities to complete the build assembly. This field requires QBXML Version 7.0 and is not returned in the response from QuickBooks.

ExternalGUID String True

A user-defined GUID value. Requires QBXML Version 9.0.

ComponentItemLineRet_ItemRef_ListID String True

Items.ID

255

Reference to the Id of an item.

ComponentItemLineRet_ItemRef_FullName String True

Items.FullName

255

Reference to the full name of an item.

ComponentItemLineRet_InventorySiteRef_ListID String True

InventorySites.ID

255

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

ComponentItemLineRet_InventorySiteRef_FullName String True

InventorySites.Name

31

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

ComponentItemLineRet_Desc String True 5000

Description for the line item.

ComponentItemLineRet_QuantityOnHand Double True

The number of these items in the inventory.

ComponentItemLineRet_QuantityNeeded Double True

The number of these items used in the assembly.

TimeCreated Datetime True

The datetime the transaction was made.

TimeModified Datetime True

The last datetime the transaction was modified.

EditSequence String True

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



CheckExpenseItems

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

Table Specific Information

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

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

Select

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

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

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



SELECT * FROM CheckExpenseItems WHERE Date >= '2020-01-07' AND Date < '2020-01-10' 



SELECT * FROM CheckExpenseItems WHERE [Date] = '2020-01-07' 
Insert

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

INSERT INTO CheckExpenseItems#TEMP (Account, Date, ExpenseAccount, ExpenseAmount) VALUES ('Checking', '1/1/2011', 'Utilities:Telephone', 52.25,)

INSERT INTO CheckExpenseItems#TEMP (Account, Date, ExpenseAccount, ExpenseAmount) VALUES ('Checking', '1/1/2011', 'Professional Fees:Accounting', 235.87)

INSERT INTO CheckExpenseItems (Account, Date, ExpenseAccount, ExpenseAmount) SELECT Account, Date, ExpenseAccount, ExpenseAmount FROM CheckExpenseItems#TEMP 
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format CheckId|ExpenseLineId.

CheckId String False

Checks.ID

255

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

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Account String False

Accounts.FullName

1000

The name of the account funds are being drawn from.

AccountId String False

Accounts.ID

255

The Id of the account funds are being drawn from.

Payee String False

Vendors.Name

1000

The name of the payee for the check.

PayeeId String False

Vendors.ID

255

The Id of the payee for the check.

Date Date False

Date of transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

Amount Decimal True

Amount of the transaction.

Memo String False 5000

A memo regarding this transaction.

Address String True

Full address returned by QuickBooks.

Line1 String False 500

First line of the address.

Line2 String False 500

Second line of the address.

Line3 String False 500

Third line of the address.

Line4 String False 500

Fourth line of the address.

Line5 String False 41

Fifth line of the address.

City String False 255

City name for the address of the check.

State String False 255

State name for the address of the check.

PostalCode String False 30

Postal code for the address of the check.

Country String False 255

Country for the address of the check.

Note String False 41

Note for the address of the check.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

ExpenseLineId String True 255

The line item identifier.

ExpenseLineNumber String True 255

The expense line number.

ExpenseAccount String False

Accounts.FullName

1000

The account name for this expense line.

ExpenseAccountId String False

Accounts.ID

255

The account Id for this expense line.

ExpenseAmount Decimal False

The total amount of this expense line.

ExpenseBillableStatus String False 13

The billing status of this expense line.

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

The default value is EMPTY.

ExpenseCustomer String False

Customers.FullName

1000

The customer associated with this expense line.

ExpenseCustomerId String False

Customers.ID

255

The customer associated with this expense line.

ExpenseClass String False

Class.FullName

1000

The class name of this expense.

ExpenseClassId String False

Class.ID

255

The class Id of this expense.

ExpenseTaxCode String False

SalesTaxCodes.Name

3

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

ExpenseTaxCodeId String False

SalesTaxCodes.ID

255

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

ExpenseMemo String False 5000

A memo for this expense line.

ExpenseCustomFields String True

The custom fields for this expense item.

IsToBePrinted Boolean False

Whether this transaction is to be printed.

The default value is false.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

CurrencyName String False

Currency.Name

64

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

CurrencyId String False

Currency.ID

255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

TimeModified Datetime True

When the check was last modified.

TimeCreated Datetime True

When the check was created.

Pseudo-Columns

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

Name Type Description
ApplyCheckToTxnId String

Identifies the transaction to be paid by this check. This can be used in updates and inserts.

ApplyCheckToTxnAmount String

The amount of the transaction to be paid by this check. This can be used in updates and inserts.



CheckLineItems

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

Table Specific Information

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

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

Select

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

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

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



SELECT * FROM CheckLineItems WHERE Date >= '2020-01-07' AND Date < '2020-01-10' 



SELECT * FROM CheckLineItems WHERE [Date] = '2020-01-07' 
Insert

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

INSERT INTO CheckLineItems#TEMP (Account, Date, ItemName, ItemQuantity) VALUES ('Checking', '1/1/2011', 'Repairs', 1)

INSERT INTO CheckLineItems#TEMP (Account, Date, ItemName, ItemQuantity) VALUES ('Checking', '1/1/2011', 'Removal', 2)

INSERT INTO CheckLineItems (Account, Date, ItemName, ItemQuantity) VALUES Account, Date, ItemName, ItemQuantity FROM CheckLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format CheckId|ItemLineId.

CheckId String False

Checks.ID

255

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

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Account String False

Accounts.FullName

1000

The name of the account funds are being drawn from.

AccountId String False

Accounts.ID

255

The Id of the account funds are being drawn from.

Payee String False

Vendors.Name

1000

The name of the payee for the check.

PayeeId String False

Vendors.ID

255

The id of the payee for the check.

Date Date False

Date of transaction.

Amount Decimal True

Amount of the transaction.

Memo String False 5000

A memo regarding this transaction.

Address String True

Full address returned by QuickBooks.

Line1 String False 500

First line of the address.

Line2 String False 500

Second line of the address.

Line3 String False 500

Third line of the address.

Line4 String False 500

Fourth line of the address.

Line5 String False 41

Fifth line of the address.

City String False 255

City name for the address of the check.

State String False 255

State name for the address of the check.

PostalCode String False 30

Postal code for the address of the check.

Country String False 255

Country for the address of the check.

Note String False 41

Note for the address of the check.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

The item Id.

ItemGroup String False

Items.FullName

100

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

ItemGroupId String False

Items.ID

255

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

ItemDescription String False 5000

A description of the item.

ItemQuantity Double False

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

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled for only a single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemCost Double False

The unit cost for the item.

ItemAmount Decimal False

Total amount for the item.

ItemBillableStatus String False 13

Billing status of the item.

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

The default value is EMPTY.

ItemCustomer String False

Customers.FullName

1000

The name of the customer who ordered the item.

ItemCustomerId String False

Customers.ID

255

The Id of the customer who ordered the item.

ItemClass String False

Class.FullName

1000

The name for the class of the item.

ItemClassId String False

Class.ID

255

The Id for the class of the item.

ItemInventorySiteId String False

InventorySites.ID

31

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

ItemInventorySiteName String False

InventorySites.Name

255

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

ItemInventorySiteLocationId String False 31

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

ItemInventorySiteLocationName String False 255

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

ItemTaxCode String False

SalesTaxCodes.Name

3

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

ItemTaxCodeId String False

SalesTaxCodes.ID

255

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

ItemCustomFields String False

The custom fields for this lineitem.

IsToBePrinted Boolean False

Whether this transaction is to be printed.

The default value is false.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

CurrencyName String False

Currency.Name

64

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

CurrencyId String False

Currency.ID

255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

TimeModified Datetime True

When the check was last modified.

TimeCreated Datetime True

When the check was created.

Pseudo-Columns

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

Name Type Description
ApplyCheckToTxnId String

Identifies the transaction to be paid by this check. This can be used in updates and inserts.

ApplyCheckToTxnAmount String

The amount of the transaction to be paid by this check. This can be used in updates and inserts.



Checks

Create, update, delete, and query QuickBooks Checks.

Table Specific Information

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

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

Select

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

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

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



SELECT * FROM Checks WHERE Date >= '2020-01-07' AND Date < '2020-01-10' 



SELECT * FROM Checks WHERE [Date] = '2020-01-07' 
Insert

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

INSERT INTO Checks (Account, Date, ItemAggregate) VALUES ('Checking', '1/1/2011', 

'<CheckLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

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

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Account String False

Accounts.FullName

1000

The name of the account funds are being drawn from.

AccountId String False

Accounts.ID

255

The id of the account funds are being drawn from.

Payee String False

Vendors.Name

1000

The name of the payee for the Check.

PayeeId String False

Vendors.ID

255

The Id of the payee for the Check.

Date Date False

Date of transaction.

Amount Decimal True

Amount of the transaction.

Memo String False 5000

A memo regarding this transaction.

Address String True

Full address returned by QuickBooks.

Line1 String False 500

First line of the address.

Line2 String False 500

Second line of the address.

Line3 String False 500

Third line of the address.

Line4 String False 500

Fourth line of the address.

Line5 String False 41

Fifth line of the address.

City String False 255

City name for the address of the check.

State String False 255

State name for the address of the check.

PostalCode String False 30

Postal code for the address of the check.

Country String False 255

Country for the address of the check.

Note String False 41

Note for the address of the check.

ItemCount Integer True

The count of line items.

ItemAggregate String False 5000

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

ExpenseItemCount Integer True

The count of expense line items.

ExpenseItemAggregate String False 5000

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

IsToBePrinted Boolean False

Whether this transaction is to be printed.

The default value is false.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

CurrencyName String False

Currency.Name

64

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

CurrencyId String False

Currency.ID

255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the check was last modified.

TimeCreated Datetime True

When the check was created.

Pseudo-Columns

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

Name Type Description
Item* String

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

Expense* String

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

ApplyCheckToTxnId String

Identifies the transaction to be paid by this check. This can be used in updates and inserts.

ApplyCheckToTxnAmount String

The amount of the transaction to be paid by this check. This can be used in updates and inserts.



Class

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

Table Specific Information
Select

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

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

Insert
To insert a Class, specify the Name field.
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the class.

Name String False 100

The name of the class.

FullName String True 1000

The full name of the class in the form ParentName|ClassName.

IsActive Boolean False

Boolean determining if the class is active.

ParentRef_FullName String False

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

255

Id for the parent of the class. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT/UPDATE statements and not both.

Sublevel Integer True

How many parents the class has.

EditSequence String True 16

A string indicating the revision of the class.

TimeCreated Datetime True

The time the class was created.

TimeModified Datetime True

The last time the class was modified.



CreditCardChargeExpenseItems

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

Table Specific Information

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

Select

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

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

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

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

INSERT INTO CreditCardChargeExpenseItems#TEMP (AccountName, ExpenseAccount ExpenseAmount) VALUES ('CalOil Credit Card', 'Job Expenses:Job Materials', 52.25)

INSERT INTO CreditCardChargeExpenseItems#TEMP (AccountName, ExpenseAccount ExpenseAmount) VALUES ('CalOil Credit Card', 'Automobile:Fuel', 235.87)

INSERT INTO CreditCardChargeExpenseItems (AccountName, ExpenseAccount, ExpenseAmount) SELECT AccountName, ExpenseAccount, ExpenseAmount FROM CreditCardChargeExpenseItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format CCChargeId|ItemLineId.

CCChargeId String False

CreditCardCharges.ID

255

The item identifier.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ReferenceNumber String False 21

Reference number for the transaction.

AccountName String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Memo String False 5000

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

1000

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

255

Id of the payee for the transaction.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ExpenseLineId String True 255

The expense line item identifier.

ExpenseLineNumber String True 255

The expense line number.

ExpenseAccount String False

Accounts.FullName

1000

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

ExpenseAccountId String False

Accounts.ID

255

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

ExpenseAmount Decimal False

The total amount of this expense line.

ExpenseBillableStatus String False 13

The billing status of this expense line.

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

ExpenseCustomer String False

Customers.FullName

1000

The customer associated with this expense line.

ExpenseCustomerId String False

Customers.ID

255

The customer associated with this expense line.

ExpenseClass String False

Class.FullName

1000

The class name of this expense.

ExpenseClassId String False

Class.ID

255

The class Id of this expense.

ExpenseMemo String False 5000

A memo for this expense line.

ExpenseTaxCode String False

SalesTaxCodes.Name

3

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

ExpenseTaxCodeId String False

SalesTaxCodes.ID

255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

TimeModified Datetime True

When the credit card charge was last modified.

TimeCreated Datetime True

When the credit card charge was created.



CreditCardChargeLineItems

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

Table Specific Information

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

Select

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

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

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

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

INSERT INTO CreditCardChargeLineItems#TEMP (AccountName, ItemName, ItemQuantity) VALUES ('CalOil Credit Card', '1/1/2011', 'Repairs', 1)

INSERT INTO CreditCardChargeLineItems#TEMP (AccountName, ItemName, ItemQuantity) VALUES ('CalOil Credit Card', '1/1/2011', 'Removal', 2)

INSERT INTO CreditCardChargeLineItems (AccountName, ItemName, ItemQuantity) SELECT AccountName, ItemName, ItemQuantity FROM CreditCardChargeLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format CCChargeId|ItemLineId.

CCChargeId String False

CreditCardCharges.ID

255

The item identifier.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ReferenceNumber String False 21

Reference number for the transaction.

AccountName String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Memo String False 5000

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

1000

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

255

Id of the payee for the transaction.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item identifier.

ItemGroup String False

Items.FullName

100

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

ItemGroupId String False

Items.ID

255

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

ItemDescription String False 5000

A description of the item.

ItemQuantity Double False

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

ItemUnitOfMeasure String False

UnitOfMeasure.Name

100

In a transaction line item, the name of the unit of measure is selected from within the available units for the item. If the company file is enabled for only a single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemCost Double False

The unit cost for an item.

ItemAmount Decimal False

Total amount for this item.

ItemBillableStatus String False 13

Billing status of the item.

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

ItemCustomer String False

Customers.FullName

1000

The name of the customer who ordered the item.

ItemCustomerId String False

Customers.ID

255

The Id of the customer who ordered the item.

ItemClass String False

Class.FullName

1000

The name for the class of the item.

ItemClassId String False

Class.ID

255

The Id for the class of the item.

ItemTaxCode String False

SalesTaxCodes.Name

3

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

ItemTaxCodeId String False

SalesTaxCodes.ID

255

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

ItemInventorySiteId String False

InventorySites.ID

31

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

ItemInventorySiteName String False

InventorySites.Name

255

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

ItemInventorySiteLocationId String False 31

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

ItemInventorySiteLocationName String False 255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

TimeModified Datetime True

When the transaction was last modified.

TimeCreated Datetime True

When the transaction was created.

Pseudo-Columns

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

Name Type Description
ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



CreditCardCharges

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO CreditCardCharges (AccountName, ItemAggregate) 

VALUES ('CalOil Credit Card', 

'<CreditCardChargeLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

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

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the transaction.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ReferenceNumber String False 11

Reference number for the transaction.

AccountName String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Memo String False 5000

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

1000

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

255

Id of the payee for the transaction.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ItemCount Integer True

The count of line items.

ItemAggregate String False 5000

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

ExpenseItemCount Integer True

The count of expense line items.

ExpenseItemAggregate String False 5000

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

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the credit card charge was last modified.

TimeCreated Datetime True

When the credit card charge was created.

Pseudo-Columns

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

Name Type Description
Item* String

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

Expense* String

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



CreditCardCreditExpenseItems

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

Table Specific Information

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

Select

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

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

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

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

INSERT INTO CreditCardCreditExpenseItems#TEMP (AccountName, ExpenseAccount, ExpenseAmount) VALUES ('CalOil Credit Card', 'Job Expenses:Job Materials', 52.25)

INSERT INTO CreditCardCreditExpenseItems#TEMP (AccountName, ExpenseAccount, ExpenseAmount) VALUES ('CalOil Credit Card', 'Automobile:Fuel', 235.87)

INSERT INTO CreditCardCreditExpenseItems (AccountName, ExpenseAccount, ExpenseAmount) SELECT AccountName, ExpenseAccount, ExpenseAmount FROM CreditCardCreditExpenseItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format CCCreditId|ItemLineId.

CCCreditId String False

CreditCardCredits.ID

255

The item identifier.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ReferenceNumber String False 21

Reference number for the transaction.

AccountName String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Memo String False 5000

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

1000

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

255

Id of the payee for the transaction.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ExpenseLineId String True 255

The expense line item identifier.

ExpenseLineNumber String True 255

The expense line number.

ExpenseAccount String False

Accounts.FullName

1000

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

ExpenseAccountId String False

Accounts.ID

255

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

ExpenseAmount Decimal False

The total amount of this expense line.

ExpenseBillableStatus String False 13

The billing status of this expense line.

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

ExpenseCustomer String False

Customers.FullName

1000

The customer associated with this expense line.

ExpenseCustomerId String False

Customers.ID

255

The customer associated with this expense line.

ExpenseClass String False

Class.FullName

1000

The class name of this expense.

ExpenseClassId String False

Class.ID

255

The class Id of this expense.

ExpenseMemo String False 5000

A memo for this expense line.

ExpenseTaxCode String False

SalesTaxCodes.Name

3

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

ExpenseTaxCodeId String False

SalesTaxCodes.ID

255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

TimeModified Datetime True

When the credit card credit was last modified.

TimeCreated Datetime True

When the credit card credit was created.



CreditCardCreditLineItems

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

Table Specific Information

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

Select

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

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

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

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

INSERT INTO CreditCardCreditLineItems#TEMP (AccountName, ItemName, ItemQuantity) VALUES ('CalOil Credit Card', '1/1/2011', 'Repairs', 1)

INSERT INTO CreditCardCreditLineItems#TEMP (AccountName, ItemName, ItemQuantity) VALUES ('CalOil Credit Card', '1/1/2011', 'Removal', 2)

INSERT INTO CreditCardCreditLineItems (AccountName, ItemName, ItemQuantity) SELECT AccountName, ItemName ItemQuantity FROM CreditCardCreditLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format CCCreditId|ItemLineId.

CCCreditId String False

CreditCardCredits.ID

255

The item identifier.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ReferenceNumber String False 21

Reference number for the transaction.

AccountName String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Memo String False 5000

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

1000

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

255

Id of the payee for the transaction.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item identifier.

ItemGroup String False

Items.FullName

100

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

ItemGroupId String False

Items.ID

255

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

ItemDescription String False 5000

A description of the item.

ItemQuantity Double False

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

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the available units for the item. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemCost Double False

The unit cost for an item.

ItemAmount Decimal False

Total amount for this item.

ItemBillableStatus String False 13

Billing status of the item.

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

ItemCustomer String False

Customers.FullName

1000

The name of the customer who ordered the item.

ItemCustomerId String False

Customers.ID

255

The Id of the customer who ordered the item.

ItemClass String False

Class.FullName

1000

The name for the class of the item.

ItemClassId String False

Class.ID

1000

The Id for the class of the item.

ItemTaxCode String False

SalesTaxCodes.Name

3

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

ItemTaxCodeId String False

SalesTaxCodes.ID

255

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

ItemInventorySiteId String False

InventorySites.ID

31

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

ItemInventorySiteName String False

InventorySites.Name

255

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

ItemInventorySiteLocationId String False 31

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

ItemInventorySiteLocationName String False 255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

TimeModified Datetime True

When the bill was last modified.

TimeCreated Datetime True

When the bill was created.

Pseudo-Columns

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

Name Type Description
ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



CreditCardCredits

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO CreditCardCredits (AccountName, ItemAggregate) 

VALUES ('CalOil Credit Card', 

'<CreditCardCreditLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

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

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ReferenceNumber String False 21

Reference number for the transaction.

AccountName String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Memo String False 5000

Memo to appear on internal reports only.

PayeeName String False

Vendors.Name

1000

Name of the payee for the transaction.

PayeeId String False

Vendors.ID

255

Id of the payee for the transaction.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ItemCount Integer True

The count of line items.

ItemAggregate String False 5000

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

ExpenseItemCount Integer True

The count of expense line items.

ExpenseItemAggregate String False 5000

An aggregate of the expense item data which can be used for adding a credit card credit and its expense item data.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the credit card credit was last modified.

TimeCreated Datetime True

When the credit card credit was created.

Pseudo-Columns

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

Name Type Description
Item* String

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

Expense* String

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



CreditCardRefunds

Query and Insert QuickBooks AR Credit Card Refund transactions.

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO CreditCardRefunds#TEMP (CustomerRef_ListID, PaymentMethodRef_ListID, RefundAppliedToTxnAdd_TxnId, RefundAppliedToTxnAdd_RefundAmount) VALUES ('150000-933272658', '1D575-1544895769', '30000-933272660', 200.00)

INSERT INTO CreditCardRefunds (CustomerRef_ListID, PaymentMethodRef_ListID, RefundAppliedToTxnAdd_TxnId, RefundAppliedToTxnAdd_RefundAmount) SELECT CustomerRef_ListID, PaymentMethodRef_ListID, RefundAppliedToTxnAdd_TxnId, RefundAppliedToTxnAdd_RefundAmount FROM CreditCardRefunds#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

TxnDate Date False

The date of the transaction.

TxnNumber Integer True

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

RefNumber String False 21

The transaction reference number.

CustomerRef_ListID String False

Customers.ID

255

The ID of the customer on the refund. Either CustomerRef_ListID or CustomerRef_ListName must have a value when inserting.

CustomerRef_FullName String False

Customers.FullName

209

The name of the customer on the refund. Either CustomerRef_ListID or CustomerRef_ListName must have a value when inserting.

RefundFromAccountRef_ListID String False

Accounts.ID

255

The Id of the account which is the source of funds for the credit card refund.

RefundFromAccountRef_FullName String False

Accounts.FullName

159

The Name of the account which is the source of funds for the credit card refund.

ARAccountRef_ListID String False

Accounts.ID

255

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

ARAccountRef_FullName String False

Accounts.FullName

159

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

TotalAmount Decimal True

Total amount of the refund.

TotalAmountInHomeCurrency Decimal True

Total amount of the refund in home currency.

Address_Addr1 String False 41

First line of the address.

Address_Addr2 String False 41

Second line of the address.

Address_Addr3 String False 41

Third line of the address.

Address_Addr4 String False 41

Fourth line of the address.

Address_Addr5 String False 41

Fifth line of the address.

Address_City String False 31

City name for the address of the check.

Address_State String False 21

State name for the address of the check.

Address_PostalCode String False 13

Postal code for the address of the check.

Address_Country String False 31

Country for the address of the check.

Address_Note String False 41

Note for the address of the check.

PaymentMethodRef_ListID String False

PaymentMethods.ID

255

The Id of the Customer's payment method.

PaymentMethodRef_FullName String False

PaymentMethods.Name

31

The Name of the Customer's payment method.

Memo String False 4095

Additional information about the refund.

RefundAppliedToTxnAggregate String False 5000

An aggregate of the transactions this refund is applied to.

CreditCardTxnInfo_CreditCardTxnInputInfo_CreditCardNumber String False 25

The Credit Card Number for the Customer.

CreditCardTxnInfo_CreditCardTxnInputInfo_ExpirationMonth Integer False

The month when the credit card expires.

CreditCardTxnInfo_CreditCardTxnInputInfo_ExpirationYear Integer False

The year when the credit card expires.

CreditCardTxnInfo_CreditCardTxnInputInfo_NameOnCard String False 41

The name on the Customer's credit card.

CreditCardTxnInfo_CreditCardTxnInputInfo_CreditCardAddress String False 41

The address associated with this credit card.

CreditCardTxnInfo_CreditCardTxnInputInfo_CreditCardPostalCode String False 18

The postal code associated with the address for this credit card.

CreditCardTxnInfo_CreditCardTxnInputInfo_CommercialCardCode String False 24

This optional field is used only for Visa and Master Card commercial cards.

CreditCardTxnInfo_CreditCardTxnInputInfo_TransactionMode String False 50

Indicates whether this transaction came from a card swipe (CardPresent ) or not (CardNotPresent). Defaults to CardNotPresent

CreditCardTxnInfo_CreditCardTxnInputInfo_CreditCardTxnType String False 50

Indicates from where the current transaction data originated. Values:Authorization, Capture, Charge, Refund, VoiceAuthorization

CreditCardTxnInfo_CreditCardTxnResultInfo_ResultCode Integer False

Contains the status code returned in the original ransaction response.

CreditCardTxnInfo_CreditCardTxnResultInfo_ResultMessage String False 60

Contains the status message returned in the original transaction response.

CreditCardTxnInfo_CreditCardTxnResultInfo_CreditCardTransID String False 24

The transaction ID is returned from the credit card processor.

CreditCardTxnInfo_CreditCardTxnResultInfo_MerchantAccountNumber String False 32

The account number of the merchant who is running the transaction using the customer's credit card.

CreditCardTxnInfo_CreditCardTxnResultInfo_AuthorizationCode String False 12

The authorization code is returned from the credit card processor.

CreditCardTxnInfo_CreditCardTxnResultInfo_AVSStreet String False 50

Pass if the street address supplied in the transaction request matches the customer's address. Fail if does not match.

CreditCardTxnInfo_CreditCardTxnResultInfo_AVSZip String False 50

Pass if the zip supplied in the transaction request matches the customer's zip. Fail if does not match.

CreditCardTxnInfo_CreditCardTxnResultInfo_CardSecurityCodeMatch String False 50

Pass if the security colde supplied in the transaction request matches the Credit Card's security Code. Fail if does not match.

CreditCardTxnInfo_CreditCardTxnResultInfo_TxnAuthorizationTime Datetime False

Timestamp indicating the time in which the card processor authorized the transaction.

CustomFields String False 5000

Custom fields returned from QuickBooks and formatted into XML.

CurrencyRef_ListID String True

Currency.ListID

255

Name of the currency code used for this refund.

CurrencyRef_Name String True

Currency.Name

64

Id of the currency code used for this refund.

ExchangeRate Decimal False

Currency exchange rate for this invoice.

TimeCreated Datetime True

The datetime the transaction was made.

TimeModified Datetime True

The last datetime the transaction was modified.

EditSequence String True 16

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

Pseudo-Columns

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

Name Type Description
RefundAppliedToTxnAdd_TxnID String

The Id of the transaction to apply the refund to. Required on Inserts.

RefundAppliedToTxnAdd_RefundAmount Decimal

The Amount of the refund to apply to the transaction. Required on Inserts.



CreditMemoLineItems

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO CreditMemoLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Repairs', 1)

INSERT INTO CreditMemoLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Removal', 2)

INSERT INTO CreditMemoLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM CreditMemoLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format CreditMemoId|ItemLineId.

CreditMemoId String False

CreditMemos.ID

255

The item identifier.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

CustomerName String False

Customers.FullName

1000

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

CustomerId String False

Customers.ID

255

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

AccountsReceivable String False

Accounts.FullName

1000

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

AccountsReceivableId String False

Accounts.ID

255

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

ShipMethod String False

ShippingMethods.Name

1000

The shipping method.

ShipMethodId String False

ShippingMethods.ID

255

The shipping method id.

ShipDate Date False

The shipping date.

Memo String False 5000

A memo regarding this transaction.

Amount Decimal False

Total amount for this transaction.

Message String False

CustomerMessages.Name

101

A message to the customer.

MessageId String False

CustomerMessages.ID

255

Id of the message to the customer.

SalesRep String False

SalesReps.Initial

5

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

255

Reference Id to the sales rep.

FOB String False 13

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address of the credit memo.

BillingState String False 255

State name for the billing address of the credit memo.

BillingPostalCode String False 30

Postal code for the billing address of the credit memo.

BillingCountry String False 255

Country for the billing address of the credit memo.

BillingNote String False 41

Note for the billing address of the credit memo.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address of the credit memo.

ShippingState String False 255

State name for the shipping address of the credit memo.

ShippingPostalCode String False 30

Postal code for the shipping address of the credit memo.

ShippingCountry String False 255

Country for the shipping address of the credit memo.

ShippingNote String False 41

Note for the shipping address of the credit memo.

Subtotal Decimal True

The gross subtotal. This does not include tax or the amount already paid.

Tax Double False

Total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

Percentage charged for sales tax.

IsPending Boolean False

Transaction status (whether this transaction has been completed or it is still pending).

IsToBeEmailed Boolean False

Whether this credit memo is to be emailed.

IsToBePrinted Boolean False

Whether this transaction is to be printed.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

PONumber String False 25

The purchase order number.

Terms String False 100

The payment terms.

TermsId String False 255

The payment terms.

CreditRemaining Double True

Remaining credit.

DueDate Date False

Date when the credit is due.

Template String False

Templates.Name

100

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

TemplateId String False

Templates.ID

255

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

CustomerSalesTax String False

SalesTaxCodes.Name

3

Reference to sales tax information for the customer.

CustomerSalesTaxId String False

SalesTaxCodes.ID

255

Reference to sales tax information for the customer.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

ExchangeRate Double False

Indicates the exchange rate for the transaction.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item identifier.

ItemGroup String False

Items.FullName

100

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

ItemGroupId String False

Items.ID

255

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

ItemDescription String False 5000

A description of the item.

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the available units for the item. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemQuantity Double False

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

ItemRate Double False

The unit rate charged for this item.

ItemRatePercent Double False

The rate percent charged for this item.

ItemTaxCode String False

SalesTaxItems.Name

3

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

ItemTaxCodeId String False

SalesTaxItems.ID

255

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

ItemAmount Decimal False

Total amount for this item.

ItemClass String False

Class.FullName

1000

The class name of the item.

ItemClassId String False

Class.ID

255

The class name of the item.

ItemInventorySiteName String False

InventorySites.Name

31

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

ItemInventorySiteId String False

InventorySites.ID

255

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

ItemInventorySiteLocationName String False 31

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

ItemInventorySiteLocationId String False 255

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

ItemSerialNumber String False 5000

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

ItemLotNumber String False 40

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

ItemOther1 String False 29

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

ItemOther2 String False 29

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

ItemCustomFields String False

The custom fields for this lineitem.

ItemUOMSetFullName String False

UnitOfMeasure.Name

1000

Indicates the price of something as a percent.

ItemUOMSetListID String False

UnitOfMeasure.ID

1000

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup String False 1000

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

EditSequence String True 16

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

TimeModified Datetime True

When the credit memo was last modified.

TimeCreated Datetime True

When the credit memo was created.

Pseudo-Columns

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

Name Type Description
ItemPriceLevel String

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

ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



CreditMemos

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO CreditMemos (CustomerName, ItemAggregate) 

VALUES ('Abercrombie, Kristy', 

'<CreditMemoLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

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

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

CustomerName String False

Customers.FullName

1000

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

CustomerId String False

Customers.ID

255

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

AccountsReceivable String False

Accounts.FullName

1000

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

AccountsReceivableId String False

Accounts.ID

255

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

ShipMethod String False

ShippingMethods.Name

1000

The shipping method.

ShipMethodId String False

ShippingMethods.ID

255

The shipping method Id.

ShipDate Date False

The shipping date.

Memo String False 5000

A memo regarding this transaction.

Amount Decimal False

Total amount for this transaction.

Message String False

CustomerMessages.Name

101

A message to the customer.

MessageId String False

CustomerMessages.ID

255

Id of the message to the customer.

SalesRep String False

SalesReps.Initial

5

Reference to (initials of) the sales rep.

SalesRepId String False

SalesReps.ID

255

Reference Id to the sales rep.

FOB String False 13

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address of the credit memo.

BillingState String False 255

State name for the billing address of the credit memo.

BillingPostalCode String False 30

Postal code for the billing address of the credit memo.

BillingCountry String False 255

Country for the billing address of the credit memo.

BillingNote String False 41

Note for the billing address of the credit memo.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address of the credit memo.

ShippingState String False 255

State name for the shipping address of the credit memo.

ShippingPostalCode String False 30

Postal code for the shipping address of the credit memo.

ShippingCountry String False 255

Country for the shipping address of the credit memo.

ShippingNote String False 41

Note for the shipping address of the credit memo.

Subtotal Decimal True

The gross subtotal. This does not include tax or the amount already paid.

Tax Double False

Total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

Percentage charged for sales tax.

IsPending Boolean False

Transaction status (whether this transaction has been completed or is still pending).

IsToBeEmailed Boolean False

Whether this credit memo is to be emailed.

IsToBePrinted Boolean False

Whether this transaction is to be printed.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

PONumber String False 25

The purchase order number.

Terms String False 100

The payment terms.

TermsId String False 255

The payment terms.

CreditRemaining Double True

Remaining credit.

DueDate Date False

Date when the credit is due.

Template String False

Templates.Name

100

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

TemplateId String False

Templates.ID

255

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

CustomerSalesTax String False

SalesTaxCodes.Name

3

Reference to sales tax information for the customer.

CustomerSalesTaxId String False

SalesTaxCodes.ID

255

Reference to sales tax information for the customer.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

ExchangeRate Double False

Indicates the exchange rate for the transaction.

ItemCount Integer True

The count of line items.

ItemAggregate String False 5000

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

TransactionCount Integer True

The count of related transactions to the credi tmemo.

TransactionAggregate String True 5000

An aggregate of the linked transaction data.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

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

TimeModified Datetime True

When the credit memo was last modified.

TimeCreated Datetime True

When the credit memo was created.

Pseudo-Columns

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

Name Type Description
Item* String

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



Currency

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The Id of the currency.

Name String False 64

The name of the currency.

IsActive Boolean False

Boolean indicating if the currency is active.

CurrencyCode String False 3

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

CurrencyFormat_ThousandSeparator String False 10

The separating character for thousands. For example, in 1,000,000 the comma is the separator.

The allowed values are Comma, Period, Space, Apostrophe.

The default value is Comma.

CurrencyFormat_ThousandSeparatorGrouping String False 50

Controls how the display of the currency value is grouped. For example, 10,000,000 is XX_XXX_XXX, but could be replaced by X_XX_XX_XXX.

CurrencyFormat_DecimalPlaces String False 50

Controls the display of the decimal value. For example, in 1.00 the value would be 2. You can change to 0 if you do not want decimals to be displayed.

The default value is 2.

CurrencyFormat_DecimalSeparator String False 6

Controls the character used to separate decimal values from whole numbers. For example, in 1.00 the value is Period.

The allowed values are Comma, Period.

The default value is Period.

IsUserDefinedCurrency Boolean True

Indicates whether the currency is a built-in currency or a currency created by a QuickBooks user.

ExchangeRate Double True

The market price for which the currency can be exchanged for the currency used by the QuickBooks company file as the home currency. The exchange rate should be considered a snapshot of the rates in effect at the AsOfDate.

AsOfDate Date True

The date when the exchange rate was last changed.

EditSequence String True 16

A string indicating the revision of the currency.

TimeCreated Datetime True

The time the currency was created.

TimeModified Datetime True

The time the currency was last modified.



CustomerContacts

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

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

CustomerId String False

Customers.ID

255

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

Name String False 100

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

FullName String True 1000

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

ContactId String False 500

The Id of the contact.

ContactEditSequence String False 500

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

ContactFirstName String False 500

The first name of the contact.

ContactMiddleName String False 500

The middle name of the contact.

ContactLastName String False 500

The last name of the contact.

ContactJobTitle String False 41

The job title of the contact.

ContactSalutation String False 255

The salutation of the contact.

ContactMethods String False 1000

A list of contact methods for the contact.

EditSequence String False 16

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

TimeModified Datetime False

When the customer was last modified.

TimeCreated Datetime False

When the customer was created.

Pseudo-Columns

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

Name Type Description
IncludeJobs String

Whether or not to include job information in the results.

The allowed values are TRUE, FALSE.

The default value is TRUE.



CustomerMessages

Create, delete, and query Customer Messages.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the customer message.

Name String False 101

The name of the customer message.

IsActive Boolean False

Boolean determining if the customer message is active.

EditSequence String True 16

A string indicating the revision of the customer message.

TimeCreated Datetime True

The time the customer message was created.

TimeModified Datetime True

The last time the customer message was modified.



CustomerNotes

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

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

CustomerID String False

Customers.ID

255

The Id of the customer the note is associated with.

Name String False 100

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

FullName String True 1000

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

NoteId String False 255

Id of the note.

Date String False 5000

Date for this note

Note String False 5000

Note for this customer

EditSequence String False 16

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

TimeModified Datetime False

When the customer was last modified.

TimeCreated Datetime False

When the customer was created.

Pseudo-Columns

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

Name Type Description
IncludeJobs String

Whether or not to include job information in the results.

The allowed values are TRUE, FALSE.

The default value is TRUE.



Customers

Create, update, delete, and query QuickBooks Customers.

Table Specific Information

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

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

Select

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

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

SELECT * FROM Customers WHERE Name LIKE '%George%' AND TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Balance > 100.00 AND Balance < 200.00
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the customer.

Name String False 41

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

FullName String True 159

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

Salutation String False 15

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

FirstName String False 25

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

MiddleInitial String False 5

A middle name or middle initial of the customer.

LastName String False 25

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

AccountNumber String False 99

The account number for the customer.

Company String False 41

The name of the company of the customer.

Balance Double True

The balance owned by this customer including subcustomers.

CustomerBalance Double True

The balance owned by only this customer not including subcustomers.

Contact String False 41

The name of the main contact person for the customer.

Type String False

CustomerTypes.Name

1000

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

TypeId String False

CustomerTypes.ID

255

A predefined customer type within QuickBooks.

Phone String False 21

The main telephone number for the customer.

Fax String False 21

The fax number number for the customer.

AlternateContact String False 41

The name of an alternate contact person for the customer.

AlternatePhone String False 21

The alternate telephone number for the customer.

Email String False 1023

The email address for communicating with the customer.

Cc String False 1023

A CC email address associated with the customer. Requires QBXML Version 12.0 or higher.

AdditionalContactInfo String False

Additional contact information for the customer.

ContactsAggregate String False 5000

An xml aggregate of the additional contacts associated with the customer. Aggregate must include the contact FirstName. Requires QBXML Version 12.0.

ClassName String False

A reference to the class of a customer. Requires QBXML Version 12.0 or higher.

ClassId String False

A reference to the class of a customer. Requires QBXML Version 12.0 or higher.

Notes String False 5000

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

NotesAggregate String False 5000

An xml aggregate of the additional notes associated with the customer. Aggregate must include NoteId and Note elements. Requires QBXML Version 12.0.

ParentName String False

Customers.FullName

The parent name of the job.

ParentId String False

Customers.ID

255

The parent Id of the job.

Sublevel Integer False

The number of ancestors this customer has.

JobStatus String False 10

The current status of the job.

The allowed values are Awarded, Closed, InProgress, None, NotAwarded, Pending.

JobStartDate Date False

The start date of the job.

JobProjectedEndDate Date False

The expected end date for the job.

JobEndDate Date False

The actual end date for the job.

JobDescription String False 99

A description of the job.

JobType String False

JobTypes.FullName

1000

The full name of the job type.

JobTypeId String False

JobTypes.ID

255

A job type reference Id.

CreditCardAddress String False 41

The address associated with the credit card.

CreditCardExpMonth Integer False

The expiration month associated with the credit card.

CreditCardExpYear Integer False

The expiration year associated with the credit card.

CreditCardNameOnCard String False 41

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

CreditCardNumber String False 25

The credit card number on file for this customer.

CreditCardPostalCode String False 41

The postal code associated with the address and number on file for this customer.

CreditLimit Double False

The credit limit for this customer. If it is equal to 0, there is no credit limit.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 41

First line of the billing address.

BillingLine2 String False 41

Second line of the billing address.

BillingLine3 String False 41

Third line of the billing address.

BillingLine4 String False 41

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 31

City name for the billing address of the customer.

BillingState String False 21

State name for the billing address of the customer.

BillingPostalCode String False 13

Postal code for the billing address of the customer.

BillingCountry String False 31

Country for the billing address of the customer.

BillingNote String False 41

Note for the billing address of the customer.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 41

First line of the shipping address.

ShippingLine2 String False 41

Second line of the shipping address.

ShippingLine3 String False 41

Third line of the shipping address.

ShippingLine4 String False 41

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 31

City name for the shipping address of the customer.

ShippingState String False 21

State name for the shipping address of the customer.

ShippingPostalCode String False 13

Postal code for the shipping address of the customer.

ShippingCountry String False 31

Country for the shipping address of the customer.

ShippingNote String False 41

Note for the shipping address of the customer.

ShippingAggregate String False 5000

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

ResaleNumber String False 16

The resale number of the customer, if he/she has one. This field can be set in inserts but not in updates.

SalesRep String False

SalesReps.ID

5

A reference to a sales rep for the customer.

SalesRepId String False

SalesReps.Initial

255

A reference to a sales rep for the customer.

Terms String False 100

A reference to terms of payment for this customer. A typical example might be '2% 10 Net 60'. This field can be set in inserts but not in updates.

TermsId String False 255

A reference to terms of payment for this customer.

CurrencyName String False

Currency.Name

64

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

CurrencyId String False

Currency.ID

255

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

TaxCode String False

SalesTaxCodes.Name

3

This is a reference to a sales tax code predefined within QuickBooks. This field can be set in inserts but not in updates.

TaxCodeId String False

SalesTaxCodes.ID

255

This is a reference to a sales tax code predefined within QuickBooks. This field can be set in inserts but not in updates.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

SalesTaxCountry String False 100

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

PriceLevel String False

PriceLevels.Name

100

Reference to a price level for the customer.

PriceLevelId String False

PriceLevels.ID

255

Reference to a price level for the customer.

PreferredDeliveryMethod String False 20

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

PreferredPaymentMethodName String False

PaymentMethods.Name

100

The preferred method of payment.

PreferredPaymentMethodId String False

PaymentMethods.ID

255

The preferred method of payment.

IsActive Boolean False

Whether or not the customer is active.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

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

TimeModified Datetime True

When the customer was last modified.

TimeCreated Datetime True

When the customer was created.

Pseudo-Columns

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

Name Type Description
IncludeJobs String

Whether or not to include job information in the results.

The allowed values are TRUE, FALSE.

The default value is TRUE.



CustomerShippingAddresses

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

Table Specific Information

Insert
To insert a new Shipping Address, specify the CustomerId and the ShipToName of the new Address. Fields designated with a Shipping may be used as to insert multiple Addresses in one statement. For example:
INSERT INTO Customers#TEMP (CustomerId, ShipToName, ShipToCity) VALUES ('123456789-9999', 'Shipto Addr 1', 'London')

INSERT INTO Customers#TEMP (CustomerId, ShipToName, ShipToCity) VALUES ('123456789-9999', 'Shipto Addr 2', 'Paris')

INSERT INTO Customers (CustomerId, ShipToName, ShipToCity) SELECT CustomerId, ShipToName, ShipToCity  FROM Customers#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

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

CustomerId String False

Customers.ID

255

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

Name String False 100

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

FullName String True 1000

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

ShipToName String False 500

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

ShipToAddr1 String False 500

First line of the shipping address.

ShipToAddr2 String False 500

Second line of the shipping address.

ShipToAddr3 String False 500

Third line of the shipping address.

ShipToAddr4 String False 500

Fourth line of the shipping address.

ShipToAddr5 String False 41

Fifth line of the shipping address.

ShipToCity String False 255

City name for the shipping address of the customer.

ShipToState String False 255

State name for the shipping address of the customer.

ShipToPostalCode String False 30

Postal code for the shipping address of the customer.

ShipToCountry String False 255

Country for the shipping address of the customer.

ShipToNote String False 41

Note for the shipping address of the customer.

ShipToDefaultShipTo Boolean False

Boolean indicating if this shipping address is the default shipping address for the customer.

EditSequence String False 16

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

TimeModified Datetime False

When the customer was last modified.

TimeCreated Datetime False

When the customer was created.

Pseudo-Columns

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

Name Type Description
IncludeJobs String

Whether or not to include job information in the results.

The allowed values are TRUE, FALSE.

The default value is TRUE.



CustomerTypes

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

Name String False 31

The name of the customer type.

FullName String True 159

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

ParentName String False

CustomerTypes.FullName

The parent name of the job.

ParentId String False

CustomerTypes.ID

255

The parent id of the job.

IsActive Boolean False

Whether or not the customer type is active.

TimeCreated Datetime True

The datetime the customer type was made.

TimeModified Datetime True

The last datetime the customer type was modified.

EditSequence String True 16

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



DateDrivenTerms

Create, delete, and query QuickBooks Date Driven Terms.

Table Specific Information
Select

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

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

Insert
To insert DateDrivenTerms, specify the Name and DayOfMonthDue.
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The Id of the date driven term.

Name String False 31

The name of the date driven term.

IsActive Boolean False

Boolean indicating if the date driven term is active.

DayOfMonthDue Integer False

Day of the month when full payment is due with no discount.

DueNextMonthDays Integer False

If the invoice or bill is issued within this many days of the due date, payment is not due until the following month.

DiscountDayOfMonth Integer False

If the payment is made by this day of the month, then DiscountPct applies.

DiscountPct Double False

If the payment is received by DiscountDayOfMonth, then this discount will apply to the payment. DiscountPct must be between 0 and 100.

EditSequence String True 16

A string indicating the revision of the date driven term.

TimeCreated Datetime True

The time the date driven term was created.

TimeModified Datetime True

The time the date driven term was last modified.



DepositLineItems

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

Table Specific Information

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

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

Select

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

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

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

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

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

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

INSERT INTO DepositLineItems#TEMP (DepositToAccount, ItemAccount, ItemAmount) VALUES ('Checking', 'Savings', 155.35)

INSERT INTO DepositLineItems (DepositToAccount, ItemAccount, ItemAmount) SELECT DepositToAccount, ItemAccount, ItemAmount FROM DepositLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format DepositId|ItemLineId.

DepositId String False

Deposits.ID

255

The deposit identifier. Set this value when inserting values to an existing deposit, or leave it blank to add a new deposit.

TxnNumber Integer True

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

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

CashBackAccount String False

Accounts.FullName

1000

Account reference to the bank or credit card company.

CashBackAccountId String False

Accounts.ID

255

Account reference to the bank or credit card company.

CashBackAmount Decimal False

Cash-back amount.

CashBackId String True 255

Id of the cash back transaction.

CashBackMemo String False 5000

Additional info for the cash back transaction.

DepositToAccount String False

Accounts.FullName

1000

Account to deposit funds to.

DepositToAccountId String False

Accounts.ID

255

Account to deposit funds to.

Memo String False 5000

Memo to appear on internal reports only.

TotalDeposit Double True

The total of the deposit.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

ItemLineId String True 255

The line item identifier.

ItemAccount String False

Accounts.FullName

1000

A reference to the account funds are being deposited to.

ItemAccountId String False

Accounts.ID

255

A reference to the account funds are being deposited to.

ItemAmount Decimal False

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

ItemCheckNumber String False 11

The check number for this deposit line item.

ItemClass String False

Class.FullName

1000

Specifies the class of the deposit line item.

ItemClassId String False

Class.ID

255

Specifies the class of the deposit line item.

ItemEntityName String False 209

An entity name for this deposit line item.

ItemEntityId String False 255

An entity Id for this deposit line item.

ItemMemo String False 5000

Memo for this deposit line item.

ItemPaymentMethod String False

PaymentMethods.Name

31

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

ItemPaymentMethodId String False

PaymentMethods.ID

255

The payment method Id for this deposit line item

ItemPaymentId String False 255

The payment transaction Id for this deposit line item. A TxnID returned from a request can be used to refer to the transaction in subsequent requests. For example ReceivePayments.Id.

ItemPaymentLineId String False 255

The payment transaction line id for this deposit line item.

ItemRefId String True 255

Identification number of the transaction associated with this deposit line.

ItemTxnType String True 100

Type of the transaction associated with this deposit line.

CurrencyName String False

Currency.Name

64

The name of the currency for this deposit. A minimum QBXML Version of 8.0 is required for this feature.

CurrencyId String False

Currency.ID

255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

TimeModified Datetime True

When the deposit was last modified.

TimeCreated Datetime True

When the deposit was created.

Payee String False

Vendors.Name

1000

The name of the payee for the Check.

PayeeId String False

Vendors.ID

255

The Id of the payee for the Check.

Pseudo-Columns

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

Name Type Description
ItemPriceLevel String

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



Deposits

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO Deposits (DepositToAccount, ItemAggregate) 

VALUES ('Checking', '<DepositLineItems>

<Row><ItemAccount>Undeposited Funds</ItemAccount><ItemAmount>12.25</ItemAmount></Row>

<Row><ItemAccount>Savings</ItemAccount><ItemAmount>155.35</ItemAmount></Row>

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

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

TxnNumber Integer True

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

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

CashBackAccount String False

Accounts.FullName

1000

Account reference to the bank or credit card company.

CashBackAccountId String False

Accounts.ID

255

Account reference to the bank or credit card company.

CashBackAmount Decimal False

Cash back amount.

CashBackId String True 255

Id of the cash back transaction.

CashBackMemo String False 5000

Additional info for the cash back transaction.

DepositToAccount String False

Accounts.FullName

1000

Account to deposit funds to.

DepositToAccountId String False

Accounts.ID

255

Account to deposit funds to.

Memo String False 5000

Memo to appear on internal reports only.

TotalDeposit Double True

The total of the deposit.

ItemCount Integer True

The count of line items.

ItemAggregate String False 5000

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

CurrencyName String False

Currency.Name

64

The name of the currency for this deposit. A minimum QBXML Version of 8.0 is required for this feature.

CurrencyId String False

Currency.ID

255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the deposit was last modified.

TimeCreated Datetime True

When the deposit was created.

Payee String False

Vendors.Name

1000

The name of the payee for the Check.

PayeeId String False

Vendors.ID

255

The Id of the payee for the Check.

Pseudo-Columns

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

Name Type Description
Item* String

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



EmployeeEarnings

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

Table Specific Information

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

Select

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

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

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

To add an EmployeeEarnings entry, specify the EmployeeId field in the INSERT statement. If you instead specify the Employee Name, the 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 ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format EmployeeId|EmployeeEarningsId.

Name String True 255

The name of the employee.

PayPeriod String False 255

Indicates how often employees are paid

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

EmployeeId String False

Employees.ID

255

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

EarningsId String True 255

The Id of the employee earnings entry.

EarningsWageName String False 31

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

EarningsWageId String False 255

A reference Id to the wage. Used for payroll.

EarningsRate Double False

Employee earnings rate. Used for payroll.

EarningsRatePercent String False

Employee earnings ratepercent. Used for payroll.

TimeModified Datetime True

When the item was last modified.

TimeCreated Datetime True

When the item was created.



Employees

Create, update, delete, and query QuickBooks Employees.

Table Specific Information

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

Select

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

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

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

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the employee.

Name String False 100

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

Salutation String False 15

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

FirstName String False 25

The first name of the employee.

MiddleInitial String False 25

A middle name or middle initial of the employee.

LastName String False 25

The last name of the employee.

JobTitle String False 41

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

AccountNumber String False 99

The account number for this employee.

SSN String False 11

The social security number of the employee.

EmployeeType String False 13

The type of employee.

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

Gender String False 12

The gender of the employee. Note that after inserting, this value cannot be updated.

The allowed values are Unspecified, Male, Female.

Address String True

Full address returned by QuickBooks.

Line1 String False 500

First line of the address.

Line2 String False 500

Second line of the address.

City String False 255

City name for the address.

State String False 255

State name for the address.

PostalCode String False 30

Postal code for the address.

AlternatePhone String False 21

An alternate phone number for the employee.

Email String False 1023

The email address of the employee.

PrintAs String False 110

How the employee name should be printed.

MobilePhone String False 21

The mobile phone number of this employee.

Pager String False 21

The pager number of this employee.

PagerPIN String False 10

The personal identification number for the pager of this employee.

Fax String False 21

The fax number of this employee.

BirthDate Date False

The date of birth of this employee.

USCitizen String False 10

Indicates whether the Employee is a US Citizen.

The allowed values are Unspecified, Yes, No.

Ethnicity String False 20

The Ethnicity of the Employee.

The allowed values are Unspecified, AmericanIndian, Asian, Black, Hawaiian, Hispanic, White, TwoOrMoreRaces.

Disabled String False 10

Indicates whether the Employee is disabled

The allowed values are Unspecified, Yes, No.

DisabilityDescription String False 25

A description of the disability.

FormOnFile String False 10

Indicates whether the I-9 Form is on file.

The allowed values are Unspecified, Yes, No.

USVeteran String False 10

Indicates whether the Employee is a US Veteran.

The allowed values are Unspecified, Yes, No.

MilitaryStatus String False 10

The current military status of the Employee.

The allowed values are Unspecified, Active, Reserve.

HiredDate Date False

The date the employee was hired.

IsActive Boolean False

This property indicates whether this object is currently enabled for use by QuickBooks.

Notes String False 5000

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

PayPeriod String False 13

Indicates how often employees are paid.

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

PayrollClassName String False

Class.FullName

159

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

PayrollClassId String False

Class.ID

1000

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

Phone String False 21

The phone number of the employee.

ReleasedDate Date False

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

TimeDataForPaychecks String False 18

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

The allowed values are NotSet, UseTimeData, DoNotUseTimeData.

SickTimeAccrualPeriod String False 19

Sick-time hours accrual period.

The allowed values are BeginningOfYear, EveryHourOnPaycheck, EveryPaycheck.

SickTimeAccrualStartDate Date False

Sick-time accrual start date. The minimum QBXMLVersion is 5.0. The standard formatting for dates is YYYY-MM-DD; e.g., September 2, 2002 is formatted as 2002-09-02.

SickTimeAccrued String False 30

Sick-time hours accrued. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported. The integrated application has no permission to access personal data. The QuickBooks administrator can grant permission to access personal data through the Integrated Application preferences.

SickTimeAvailable String False 30

Sick-time hours available. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported. The integrated application has no permission to access personal data. The QuickBooks administrator can grant permission to access personal data through the Integrated Application preferences.

SickTimeMaximum String False 30

Sick-time maximum hours. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported

SickTimeYearlyReset Boolean False

Sick-time hours resets each year. Default false.

SickTimeUsed String False 30

Sick-time hours used. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported. Minimum QBXMLVersion '5.0'.

VacationTimeAccrualPeriod String False 19

Vacation-time hours accrual period.

The allowed values are BeginningOfYear, EveryHourOnPaycheck, EveryPaycheck.

VacationTimeAccrualStartDate Date False

Vacation-time accrual start date. Minimum QBXMLVersion '5.0'. The standard formatting for dates is YYYY-MM-DD; i.e., September 2, 2002 is formatted as 2002-09-02.

VacationTimeAccrued String False 30

Vacation-time hours accrued. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported.

VacationTimeAvailable String False 30

Vacation-time hours available. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported.

VacationTimeMaximum String False 30

Vacation-time maximum hours. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported.

VacationTimeYearlyReset Boolean False

Vacation-time hours resets each year. Default false.

VacationTimeUsed String False 30

Vacation-time hours used. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'. Seconds are not supported. Minimum QBXMLVersion '5.0'.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

A string indicating the revision of the employee record.

TimeModified Datetime True

When the employee record was last modified.

TimeCreated Datetime True

When the employee record was created.

Pseudo-Columns

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

Name Type Description
OpeningBalance String

The opening balance of the account (by default 0). Note that this property is used only when adding new accounts to QuickBooks.

OpeningDate String

The opening balance date of the account. Note that this property is used only when adding new accounts to QuickBooks.



EstimateLineItems

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO EstimateLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Repairs', 1)

INSERT INTO EstimateLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Removal', 2)

INSERT INTO EstimateLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM EstimateLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format EstimateId|ItemLineId.

EstimateId String False

Estimates.ID

255

The unique identifier of the estimate.

ReferenceNumber String False 21

Transaction reference number.

TxnNumber Integer True

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

CustomerName String False

Customers.FullName

1000

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

CustomerId String False

Customers.ID

255

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

Date Date False

Transaction date.

Memo String False 5000

Memo regarding this transaction.

TotalAmount Double True

Total amount for this transaction.

ItemLineID String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item identifier.

ItemGroup String False

Items.FullName

100

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

ItemGroupId String False

Items.ID

255

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

ItemDescription String False 5000

A description of the item.

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemQuantity Double False

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

ItemRate Double False

The unit rate charged for this item.

ItemRatePercent Double False

The rate percent charged for this item.

ItemTaxCode String False

SalesTaxCodes.Name

3

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

ItemTaxCodeId String False

SalesTaxCodes.ID

255

Sales tax Id for this tax item.

ItemAmount Decimal False

Total amount for this item.

ItemClass String False

Class.FullName

1000

The class name of the item.

ItemClassId String False

Class.ID

255

The class name of the item.

ItemInventorySiteId String False

InventorySites.Name

255

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

ItemInventorySiteName String False

InventorySites.ID

31

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

ItemMarkupRate Double False

Item markup rate, to be applied over the base purchase cost.

ItemMarkupRatePercent Double False

Item markup rate percent, to be applied over the base purchase cost.

ItemOther1 String False 29

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

ItemOther2 String False 29

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

ItemCustomFields String False

The custom fields for this line item.

ItemUOMSetFullName String False

UnitOfMeasure.Name

1000

Indicates the price of something as a percent.

ItemUOMSetListID String False

UnitOfMeasure.ID

1000

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup String False 1000

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

Message String False

CustomerMessages.Name

101

Message to the customer.

MessageId String False

CustomerMessages.ID

1000

Message to the customer.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

SalesRep String False

SalesReps.Initial

5

Reference to (initials of) the sales rep.

SalesRepId String False

SalesReps.ID

255

Reference to (initials of) the sales rep.

FOB String False 13

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address.

BillingState String False 255

State name for the billing address.

BillingPostalCode String False 30

Postal code for the billing address.

BillingCountry String False 255

Country for the billing address.

BillingNote String False 41

Note for the billing address.

ShippingAddress String True

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

ShippingLine1 String False 500

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

ShippingLine2 String False 500

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

ShippingLine3 String False 500

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

ShippingLine4 String False 500

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

ShippingLine5 String False 41

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

ShippingCity String False 255

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

ShippingState String False 255

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

ShippingPostalCode String False 30

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

ShippingCountry String False 255

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

ShippingNote String False 41

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

Subtotal Double True

Gross subtotal. This does not include tax/amount already paid.

Tax Double True

Total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

Percentage charged for sales tax.

IsActive Boolean False

Whether or not the estimate is active.

IsToBeEmailed Boolean False

Whether or not this email is to be emailed.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

PONumber String False 25

The purchase order number.

Terms String False 100

A reference to terms of payment, predefined within QuickBooks.

TermsId String False 255

A reference to terms of payment, predefined within QuickBooks.

Template String False

Templates.Name

100

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

TemplateId String False

Templates.ID

255

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

CustomerSalesTaxName String False

SalesTaxCodes.Name

3

Reference to sales tax information for the customer.

CustomerSalesTaxId String False

SalesTaxCodes.ID

255

Reference to sales tax information for the customer.

ExchangeRate Double False

Indicates the exchange rate for the transaction.

DueDate Date True

Date when credit is due.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

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

TimeModified Datetime True

When the credit memo was last modified.

TimeCreated Datetime True

When the credit memo was created.

Pseudo-Columns

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

Name Type Description
ItemPriceLevel String

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

ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



Estimates

Create, update, delete, and query QuickBooks Estimates.

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO Estimates (CustomerName, ItemAggregate) 

VALUES ('Abercrombie, Kristy', 

'<EstimateLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

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

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

ReferenceNumber String False 21

Transaction reference number.

TxnNumber Integer True

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

CustomerName String False

Customers.FullName

1000

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

CustomerId String False

Customers.ID

255

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

Date Date False

Transaction date.

Memo String False 5000

Memo regarding this transaction.

TotalAmount Decimal True

Total amount for this transaction.

Message String False

CustomerMessages.Name

101

Message to the customer.

MessageId String False

CustomerMessages.ID

255

Message to the customer.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

SalesRep String False

SalesReps.Initial

5

Reference to (initials of) the sales rep.

SalesRepId String False

SalesReps.ID

255

Reference to (ID of) the sales rep.

FOB String False 13

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address.

BillingState String False 255

State name for the billing address.

BillingPostalCode String False 30

Postal code for the billing address.

BillingCountry String False 255

Country for the billing address.

BillingNote String False 41

Note for the billing address.

ShippingAddress String True

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

ShippingLine1 String False 500

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

ShippingLine2 String False 500

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

ShippingLine3 String False 500

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

ShippingLine4 String False 500

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

ShippingLine5 String False 41

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

ShippingCity String False 255

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

ShippingState String False 255

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

ShippingPostalCode String False 30

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

ShippingCountry String False 255

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

ShippingNote String False 41

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

Subtotal Decimal True

Gross subtotal. This does not include tax/amount already paid.

Tax Double True

Total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

Percentage charged for sales tax.

IsActive Boolean False

Whether or not the estimate is active.

IsToBeEmailed Boolean False

Whether or not this email is to be emailed.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

PONumber String False 25

The purchase order number.

Terms String False 100

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

TermsId String False 255

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

Template String False

Templates.Name

100

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

TemplateId String False

Templates.ID

255

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

CustomerSalesTaxName String False

SalesTaxCodes.Name

3

Reference to sales tax information for the customer.

CustomerSalesTaxId String False

SalesTaxCodes.ID

255

Reference to sales tax information for the customer.

ExchangeRate Double False

Indicates the exchange rate for the transaction.

DueDate Date True

Date when credit is due.

Other String False 29

Other data associated with the estimate.

ItemCount Integer True

A count of the line items.

ItemAggregate String False 5000

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

TransactionCount Integer True

The count of related transactions to the estimates.

TransactionAggregate String True 5000

An aggregate of the linked transaction data.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

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

TimeModified Datetime True

When the estimate was last modified.

TimeCreated Datetime True

When the estimate was created.

Pseudo-Columns

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

Name Type Description
Item* String

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



InventoryAdjustmentLineItems

Create and query QuickBooks Inventory Adjustment Line Items.

Table Specific Information

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

Select

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

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

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

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

INSERT INTO InventoryAdjustmentLineItems#TEMP (Account, ItemName, ItemNewQuantity) VALUES ('Cost of Good Sold', 'Wood Door:Exterior', 100)

INSERT INTO InventoryAdjustmentLineItems#TEMP (Account, ItemName, ItemNewQuantity) VALUES ('Cost of Good Sold', 'Wood Door:Interior', 200)

INSERT INTO InventoryAdjustmentLineItems (Account, ItemName, ItemNewQuantity) SELECT Account, ItemName, ItemNewQuantity FROM InventoryAdjustmentLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format InventoryAdjustmentId|ItemLineId.

InventoryAdjustmentID String True

InventoryAdjustments.ID

255

The unique identifier for the Inventory Adjustment.

ReferenceNumber String False 21

The transaction reference number.

Account String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Class String False

Class.FullName

1000

A reference to the class for the inventory adjustment.

ClassId String False

Class.ID

255

A reference to the class for the inventory adjustment.

CustomerName String False

Customers.FullName

1000

The name of the customer on the inventory adjustment.

CustomerId String False

Customers.ID

255

The id of the customer on the inventory adjustment.

Memo String False 5000

A memo regarding this transaction.

InventorySite String False

InventorySites.Name

31

The name of the inventory site for the transaction.

InventorySiteId String False

InventorySites.ID

255

The id of the inventory site for the transaction.

Date Date False

The date of the transaction.

ItemLineId String False 255

The line id of the item.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

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

ItemId String False

Items.ID

255

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

ItemNewQuantity Double False

The new quantity for this adjustment. Used on only insert. There is no response value.

ItemNewValue Double False

New value of this adjustment. Used on only insert. There is no response value.

ItemQuantityDiff Double False

The change in quantity for this adjustment.

ItemValueDiff Double False

The change in total value for this adjustment.

ItemLotNumber String False 40

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

ItemSerialNumber String False 4095

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

ItemSerialNumberAddedOrRemoved String False

Whether the serial number for this adjustment was added or removed. This field requires QBXML Version 11.0

The allowed values are Added, Removed.

ItemInventorySiteLocationId String False 255

The site location for this adjustment. This field requires QBXML Version 12.0.

ItemInventorySiteLocationName String False

The site location for this adjustment. This field requires QBXML Version 12.0.

EditSequence String True

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

TimeModified Datetime True

When the inventory adjustment was last modified.

TimeCreated Datetime True

When the inventory adjustment was created.

Pseudo-Columns

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

Name Type Description
LinkToTxnId String

Link this transaction to another transaction. This is available during only inserts and requires a minimum QBXML Version 6.0



InventoryAdjustments

Create, query, and delete QuickBooks Inventory Adjustments.

Table Specific Information

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

Select

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

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

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

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

INSERT INTO InventoryAdjustments (Account, ItemAggregate) 

VALUES ('Cost of Good Sold', '<InventoryAdjustmentLineItems>

<Row><ItemName>Wood Door:Exterior</ItemName><ItemNewQuantity>100</ItemNewQuantity></Row>

<Row><ItemName>Wood Door:Interior</ItemName><ItemNewQuantity>200</ItemNewQuantity></Row>

</InventoryAdjustmentLineItems>')

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

ReferenceNumber String False 21

The transaction reference number.

Account String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Class String False

Class.FullName

1000

A reference to the class for the inventory adjustment.

ClassId String False

Class.ID

255

A reference to the class for the inventory adjustment.

CustomerName String False

Customers.FullName

1000

The name of the customer on the inventory adjustment.

CustomerId String False

Customers.ID

255

The Id of the customer on the inventory adjustment.

Memo String False 5000

A memo regarding this transaction.

InventorySite String False

InventorySites.Name

31

The name of the inventory site for the transaction.

InventorySiteId String False

InventorySites.ID

255

The Id of the inventory site for the transaction.

Date Date False

The date of the transaction.

ItemCount Integer True

The number of line items for the inventory adjustment.

ItemAggregate String False 5000

An aggregate of the Line Item data which can be used for adding an inventory adjustment and its line item data.

EditSequence String True

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

TimeModified Datetime True

When the inventory adjustment was last modified.

TimeCreated Datetime True

When the inventory adjustment was created.

Pseudo-Columns

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

Name Type Description
Item* String

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



InventorySites

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The Id of the inventory site.

Name String False 31

Name of the inventory site.

IsActive Boolean False

Whether or not the inventory site is active.

SiteDesc String False 100

A description of the inventory site.

Contact String False 41

Contact for the inventory site.

Phone String False 21

Phone number for the inventory site.

Fax String False 21

Fax number for the inventory site.

Email String False 1023

Email address for the inventory site.

SiteAddress_Addr1 String False 500

First line of the address.

SiteAddress_Addr2 String False 500

Second line of the address.

SiteAddress_Addr3 String False 500

Third line of the address.

SiteAddress_Addr4 String False 500

Fourth line of the address.

SiteAddress_Addr5 String False 41

Fifth line of the address.

SiteAddress_City String False 255

City portion of the address.

SiteAddress_State String False 255

State portion of the address.

SiteAddress_PostalCode String False 30

Postal Code portion of the address.

SiteAddress_Country String False 255

Country portion of the address.

EditSequence String True 16

A string indicating the revision of the inventory site.

TimeCreated Datetime True

The time the inventory site was created.

TimeModified Datetime True

The time the inventory site was modified.

IsDefaultSite Boolean True

Boolean indicating if the inventory site is the default site for the company.



InvoiceLineItems

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO InvoiceLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Repairs', 1)

INSERT INTO InvoiceLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Abercrombie, Kristy', 'Removal', 2)

INSERT INTO InvoiceLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM InvoiceLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format InvoiceId|ItemLineId.

InvoiceId String False

Invoices.ID

The unique identifier of the Invoice.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

CustomerName String False

Customers.FullName

1000

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

CustomerId String False

Customers.ID

255

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

Account String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ShipMethod String False

ShippingMethods.Name

1000

The shipping method associated with the invoice.

ShipMethodId String False

ShippingMethods.ID

255

The shipping method associated with the invoice.

ShipDate Date False

The shipping date associated with the invoice.

Memo String False 5000

A memo regarding this transaction.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

Amount Decimal True

The total amount for this invoice.

Message String False

CustomerMessages.Name

101

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

MessageId String False

CustomerMessages.ID

255

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

SalesRep String False

SalesReps.Initial

5

A reference to the (initials of) sales rep.

SalesRepId String False

SalesReps.ID

255

A reference to the sales rep.

FOB String False 13

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address.

BillingState String False 255

State name for the billing address.

BillingPostalCode String False 30

Postal code for the billing address.

BillingCountry String False 255

Country for the billing address.

BillingNote String False 41

A note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address.

ShippingState String False 255

State name for the shipping address.

ShippingPostalCode String False 30

Postal code for the shipping address.

ShippingCountry String False 255

Country for the shipping address.

ShippingNote String False 41

A note for the shipping address.

Subtotal Decimal True

The gross subtotal of the invoice. This does not include tax or amount already paid.

Tax Double True

The total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

The percentage charged for sales tax.

PONumber String False 25

The purchase order number.

DueDate Date False

The date when payment is due.

Terms String False 100

The payment terms.

TermsId String False 255

The payment terms.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

ItemLineId String True

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

1000

The item name.

ItemId String False

Items.ID

255

The item identifier.

ItemGroup String False

Items.FullName

100

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

ItemGroupId String False

Items.ID

255

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

ItemDescription String False 5000

A description of the item.

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemQuantity Double False

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

ItemRate Double False

The unit rate charged for this item.

ItemRatePercent Double False

The rate precent charged for this item.

ItemTaxCode String False

SalesTaxCodes.Name

3

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

ItemTaxCodeId String False

SalesTaxCodes.ID

255

Sales tax information for this item.

ItemAmount Decimal False

Total amount for this item.

ItemClass String False

Class.FullName

1000

The class name of the item.

ItemClassId String False

Class.ID

255

The class name of the item.

ItemServiceDate Date False

The service date for the item if the item is a type of service.

ItemInventorySiteId String False

InventorySites.ID

31

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

ItemInventorySiteName String False

InventorySites.Name

255

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

ItemInventorySiteLocationId String False 31

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

ItemInventorySiteLocationName String False 255

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

ItemSerialNumber String False 5000

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

ItemLotNumber String False 40

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

ItemOther1 String False 29

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

ItemOther2 String False 29

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

ItemCustomFields String False

The custom fields for this line item.

ItemUOMSetFullName String False

UnitOfMeasure.Name

1000

Indicates the price of something as a percent.

ItemUOMSetListID String False

UnitOfMeasure.ID

1000

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup String False 1000

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

AppliedAmount Decimal True

The total amount of applied credits and payments.

Balance Decimal False

The unpaid amount for this sale.

CustomerTaxCode String False

SalesTaxCodes.Name

3

The tax code specific to this customer.

CustomerTaxCodeId String False

SalesTaxCodes.ID

255

The tax code specific to this customer.

IsToBePrinted Boolean False

Whether this invoice is to be printed.

IsToBeEmailed Boolean False

Whether this invoice is to be emailed.

IsPaid Boolean True

Whether this invoice has been paid in full.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount.

IsPending Boolean False

The transaction status (whether this transaction has been completed or it is still pending).

IsFinanceCharge String False 16

Whether this invoice includes a finance charge.

The allowed values are NotSet, IsFinanceCharge, NotFinanceCharge.

The default value is NotSet.

Template String False

Templates.Name

100

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

TemplateId String False

Templates.ID

255

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

SuggestedDiscountAmount Decimal False

A suggested discount amount for the invoice.

SuggestedDiscountDate Date False

A suggested discount date for the invoice.

ExchangeRate Double False

Currency exchange rate for this invoice.

BalanceInHomeCurrency Double False

Balance remaining in units of the home currency.

CurrencyName String False

Currency.Name

64

Name of the currency code used for this invoice.

CurrencyId String False

Currency.ID

1000

Id of the currency code used for this invoice.

Other String False 29

Other data associated with the invoice. The QBXMLVersion connection property must be set to 6.0 for this field to be available.

EditSequence String True 16

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

TimeModified Datetime True

When the invoice was last modified.

TimeCreated Datetime True

When the invoice was created.

Pseudo-Columns

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

Name Type Description
LinkToTxnId String

Link this transaction to another transaction. This is only available during inserts and requires a minimum QBXML Version 6.0.

SetCreditAggregate String

Apply multiple credit Memos to this transaction. This is only available during inserts and updates requires a minimum QBXML Version 10.0

ItemLinkToTxnId String

Link this individual line item to another transaction. This is only available during inserts and requires a minimum QBXML Version 6.0

ItemLinkToTxnLineId String

Link this individual line item to another transaction line item. This is only available during inserts and requires a minimum QBXML Version 6.0.

ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



Invoices

Create, update, delete, and query QuickBooks Invoices.

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO Invoices (CustomerName, ItemAggregate) 

VALUES ('Abercrombie, Kristy', '<InvoiceLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

</InvoiceLineItems>')

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

CustomerName String False

Customers.FullName

1000

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

CustomerId String False

Customers.ID

255

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

Account String False

Accounts.FullName

1000

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

AccountId String False

Accounts.ID

255

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

Date Date False

The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ShipMethod String False

ShippingMethods.Name

1000

The shipping method associated with the invoice.

ShipMethodId String False

ShippingMethods.ID

255

The shipping method associated with the invoice.

ShipDate Date False

The shipping date associated with the invoice.

Memo String False 5000

A memo regarding this transaction.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

Amount Decimal True

The total amount for this invoice.

Message String False

CustomerMessages.Name

101

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

MessageId String False

CustomerMessages.ID

255

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

SalesRep String False

SalesReps.Initial

5

A reference to the (initials of) sales rep.

SalesRepId String False

SalesReps.ID

255

A reference to the sales rep.

FOB String False 13

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address.

BillingState String False 255

State name for the billing address.

BillingPostalCode String False 30

Postal code for the billing address.

BillingCountry String False 255

Country for the billing address.

BillingNote String False 41

A note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address.

ShippingState String False 255

State name for the shipping address.

ShippingPostalCode String False 30

Postal code for the shipping address.

ShippingCountry String False 255

Country for the shipping address.

ShippingNote String False 41

A note for the shipping address.

Subtotal Decimal True

The gross subtotal of the invoice. This does not include tax or the amount already paid.

Tax Double True

The total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

The percentage charged for sales tax.

POnumber String False 25

The purchase order number.

DueDate Date False

The date when payment is due.

Terms String False 100

The payment terms.

TermsId String False 255

The payment terms.

ItemCount Integer True

The count of item entries for this transaction.

ItemAggregate String False 5000

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

TransactionCount Integer True

The count of related transactions to the invoice.

TransactionAggregate String True 5000

An aggregate of the linked transaction data.

AppliedAmount Decimal True

The total amount of applied credits and payments.

Balance Decimal False

The unpaid amount for this sale.

CustomerTaxCode String False

SalesTaxCodes.Name

3

The tax code specific to this customer.

CustomerTaxCodeId String False

SalesTaxCodes.ID

255

The tax code specific to this customer.

IsToBePrinted Boolean False

Whether this invoice is to be printed.

IsToBeEmailed Boolean False

Whether this invoice is to be emailed.

IsPaid Boolean True

Whether this invoice has been paid in full.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount.

IsPending Boolean False

The transaction status (whether this transaction has been completed or it is still pending).

IsFinanceCharge String False 16

Whether this invoice includes a finance charge.

The allowed values are NotSet, IsFinanceCharge, NotFinanceCharge.

The default value is NotSet.

Template String False

Templates.Name

100

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

TemplateId String False

Templates.ID

255

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

SuggestedDiscountAmount Decimal False

A suggested discount amount for the invoice.

SuggestedDiscountDate Date False

A suggested discount date for the invoice.

ExchangeRate Double False

Currency exchange rate for this invoice.

BalanceInHomeCurrency Double False

Balance remaining in units of the home currency.

CurrencyName String False

Currency.Name

64

Name of the currency code used for this invoice.

CurrencyId String False

Currency.ID

1000

Id of the currency code used for this invoice.

Other String False 29

Other data associated with the invoice. The QBXMLVersion connection property must be set to 6.0 for this field to be available.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

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

TimeModified Datetime True

When the invoice was last modified.

TimeCreated Datetime True

When the invoice was created.

Pseudo-Columns

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

Name Type Description
Item* String

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

LinkToTxnId String

Link this transaction to another transaction. This is only available during inserts and requires a minimum QBXML Version 6.0

SetCreditAggregate String

Apply multiple credit Memos to this transaction. This is only available during inserts and updates requires a minimum QBXML Version 10.0



ItemLineItems

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

Table Specific Information

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

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

Select

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

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

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

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

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

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

INSERT INTO ItemLineItems#TEMP (Name, Type, LineItemName, LineItemQuantity) VALUES ('MyItemGroup', 'ItemGroup', 'Hardware:Doorknobs Std', 1)

INSERT INTO ItemLineItems#TEMP (Name, Type, LineItemName, LineItemQuantity) VALUES ('MyItemGroup', 'ItemGroup', 'Cabinets', 2)

INSERT INTO ItemLineItems (Name, Type, LineItemName, LineItemQuantity) SELECT Name, Type, LineItemName, LineItemQuantity FROM ItemLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format ItemId|ItemLineNumber.

ItemId String False

Items.ID

255

The unique identifier for the inventory assembly or group item.

Name String False 100

The name of the inventory assembly or group.

FullName String True 1000

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

Type String False 100

The type of item. This is required to have a value when inserting.

The default value is ALL.

Barcode String False

Barcode for the item.

Account String False

Accounts.FullName

1000

Account name the inventory assembly or group is associated with.

AccountId String False

Accounts.ID

255

Account Id the inventory assembly or group is associated with.

COGSAccount String False

Accounts.FullName

1000

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

COGSAccountId String False

Accounts.ID

255

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

AssetAccount String False

Accounts.FullName

1000

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

AssetAccountId String False

Accounts.ID

255

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

LineItemNumber Integer False

The line item number.

LineItemId String False

Items.ID

255

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

LineItemName String False

Items.FullName

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

LineItemQuantity Double False

The line item quantity.

LineItemUnitOfMeasure String False

The line item UnitOfMeasure.

ParentName String False

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

255

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

Description String False 5000

A description of the inventory assembly or group.

Price Double False

The price for the inventory assembly or group.

AverageCost Double True

The average cost of the inventory assembly or group.

IsActive Boolean False

Whether the inventory assembly or group is active or not.

PurchaseCost Double False

Purchase cost for the inventory assembly or group.

PurchaseDescription String False 5000

Purchase description for the inventory assembly or group.

PreferredVendor String False

Vendors.Name

1000

Preferred vendor for the inventory assembly or group.

PreferredVendorId String False

Vendors.ID

255

Preferred vendor for the inventory assembly or group.

TaxCode String False

SalesTaxCodes.Name

3

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

TaxCodeId String False

SalesTaxCodes.ID

255

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

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the inventory assembly or group was last modified.

TimeCreated Datetime True

When the inventory assembly or group was created.



ItemReceiptExpenseItems

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO ItemReceiptExpenseItems#TEMP (VendorName, Date, ExpenseAccount, ExpenseAmount) VALUES ('Patton Hardware Supplies', '1/1/2011', 'Utilities:Telephone', 52.25)

INSERT INTO ItemReceiptExpenseItems#TEMP (VendorName, Date, ExpenseAccount, ExpenseAmount) VALUES ('Patton Hardware Supplies', '1/1/2011', 'Professional Fees:Accounting', 235.87)

INSERT INTO ItemReceiptExpenseItems (VendorName, Date, ExpenseAccount, ExpenseAmount) SELECT VendorName, Date, ExpenseAccount, ExpenseAmount FROM ItemReceiptExpenseItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format ItemReceiptId|ExpenseLineId.

ItemReceiptId String False

ItemReceipts.ID

255

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

VendorName String False

Vendors.Name

1000

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

VendorId String False

Vendors.ID

255

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

Date Date False

The transaction date.

ReferenceNumber String False 21

The transaction reference number.

AccountsPayable String False

Accounts.FullName

1000

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

AccountsPayableId String False

Accounts.ID

255

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

Memo String False 5000

A memo regarding the item receipt.

Amount Decinal True

Total amount of the item receipt.

TxnNumber Integer True

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency. Requires QBXML Version 8.0 or higher.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ExpenseLineId String True 255

The line item identifier.

ExpenseLineNumber String True 255

The expense line number.

ExpenseAccount String False

Accounts.FullName

1000

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

ExpenseAccountId String False

Accounts.ID

255

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

ExpenseAmount Decimal False

The total amount of this expense line.

ExpenseBillableStatus String False 13

The billing status of this expense line.

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

The default value is EMPTY.

ExpenseCustomer String False

Customers.FullName

1000

The customer associated with this expense line.

ExpenseCustomerId String False

Customers.ID

255

The customer associated with this expense line.

ExpenseClass String False

Class.FullName

1000

The class name of this expense.

ExpenseClassId String False

Class.ID

255

The class Id of this expense.

ExpenseTaxCode String False

SalesTaxCodes.Name

3

A reference to the name of the sales tax code associated with this expense item. Only available in QuickBooks UK and CA editions.

ExpenseTaxCodeId String False

SalesTaxCodes.ID

255

A reference to the Id of the sales tax code associated with this expense item. Only available in QuickBooks UK and CA editions.

ExpenseCustomFields String True

The custom fields for this expense item.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

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

TimeModified Datetime True

When the item receipt was last modified.

TimeCreated Datetime True

When the item receipt was created.

Pseudo-Columns

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

Name Type Description
LinkToTxnId String

The id of a transaction to link the new item receipt to. This should be a purchase order Id. Only available on an insert.



ItemReceiptLineItems

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

Table Specific Information

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

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

Select

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

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

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

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

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

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

INSERT INTO ItemReceiptLineItems (VendorName, Date, ItemName, ItemQuantity) SELECT FROM VendorName, Date, ItemName, ItemQuantity ItemReceiptLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format ItemReceiptId|ItemLineId.

ItemReceiptId String False

ItemReceipts.ID

255

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

VendorName String False

Vendors.Name

1000

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

VendorId String False

Vendors.ID

255

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

Date Date False

The transaction date.

ReferenceNumber String False 21

The transaction reference number.

AccountsPayable String False

Accounts.FullName

1000

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

AccountsPayableId String False

Accounts.ID

255

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

Memo String False 5000

A memo regarding the item receipt.

Amount Decimal True

Total amount of the item receipt.

TxnNumber Integer True

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency. Requires QBXML Version 8.0 or higher.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item Id.

ItemGroup String False

Items.FullName

100

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

ItemGroupId String False

Items.ID

255

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

ItemDescription String False 5000

A description of the item.

ItemQuantity Double False

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

ItemTaxCode String False

SalesTaxCodes.Name

3

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

ItemTaxCodeId String False

SalesTaxCodes.ID

255

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

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemInventorySiteId String False

InventorySites.Name

255

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

ItemInventorySiteName String False

InventorySites.ID

31

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

ItemInventorySiteLocationId String False 255

The site location for this item. This field requires QBXML Version 12.0.

ItemInventorySiteLocationName String False

The site location for this item. This field requires QBXML Version 12.0.

ItemSerialNumber String False 255

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

ItemLotNumber String False 40

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

ItemCost Double False

The unit cost for an item.

ItemAmount Decimal False

Total amount for this item.

ItemBillableStatus String False 13

Billing status of the item.

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

The default value is EMPTY.

ItemCustomer String False

Customers.FullName

1000

The name of the customer who ordered the item.

ItemCustomerId String False

Customers.ID

255

The Id of the customer who ordered the item.

ItemClass String False

Class.FullName

1000

The name for the class of the item.

ItemClassId String False

Class.ID

255

The Id for the class of the item.

ItemCustomFields String False

The custom fields for this lineitem.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

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

TimeModified Datetime True

When the item receipt was last modified.

TimeCreated Datetime True

When the item receipt was created.

Pseudo-Columns

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

Name Type Description
LinkToTxnId String

The Id of a transaction to link the new item receipt to. This should be a purchase order Id. Only available on an insert.

ItemLinkToTxnId String

Link this individual line item to another transaction. This is only available during inserts and requires a minimum QBXML Version 6.0

ItemLinkToTxnLineId String

Link this individual line item to another transaction line item. This is only available during inserts and requires a minimum QBXML Version 6.0

ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



ItemReceipts

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO ItemReceipts (VendorName, Date, ItemAggregate) VALUES ('Patton Hardware Supplies', '1/1/2011', 

'<ItemReceiptLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

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

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

VendorName String False

Vendors.Name

1000

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

VendorId String False

Vendors.ID

255

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

Date Date False

The transaction date.

ReferenceNumber String False 21

The transaction reference number.

AccountsPayable String False

Accounts.ID

1000

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

AccountsPayableId String False

Accounts.Name

255

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

Memo String False 5000

A memo regarding the item receipt.

Amount Decimal True

Total amount of the item receipt.

TxnNumber Integer True

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency. Requires QBXML Version 8.0 or higher.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

ItemCount Integer True

The count of line items.

ItemAggregate String False 5000

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

ExpenseItemCount Integer True

The count of expense line items.

ExpenseItemAggregate String False 5000

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

TransactionCount Integer True

The count of related transactions to the estimates.

TransactionAggregate String True 5000

An aggregate of the linked transaction data.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

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

TimeModified Datetime True

When the item receipt was last modified.

TimeCreated Datetime True

When the item receipt was created.

Pseudo-Columns

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

Name Type Description
Item* String

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

Expense* String

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

LinkToTxnId String

The Id of a transaction to link the new item receipt to. This should be a purchase order Id. Only available on an insert.



Items

Create, update, delete, and query QuickBooks Items.

Table Specific Information

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

Select

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

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

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

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

Name String False 31

The name of the item.

FullName String True 159

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

Type String False 100

The type of item. This is required to have a value when inserting.

The allowed values are Unknown, Service, Inventory, NonInventory, Payment, Discount, SalesTax, SubTotal, OtherCharge, InventoryAssembly, Group, SalesTaxGroup, FixedAsset.

The default value is ALL.

Account String False

Accounts.FullName

1000

Account name the item is associated with.

AccountId String False

Accounts.ID

255

Account Id the item is associated with.

COGSAccount String False

Accounts.FullName

1000

Cost of Goods Sold account for the item.

COGSAccountId String False

Accounts.ID

255

Cost of Goods Sold account for the item.

AssetAccount String False

Accounts.FullName

1000

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

AssetAccountId String False

Accounts.ID

255

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

Class String False

Class.FullName

1000

A reference to the class of the item.

ClassId String False

Class.ID

255

A reference to the class of the item.

DateSold Datetime False

Indicates the date an asset was sold. This is required for fixed asset items. It is not used for any other types of items.

PurchaseDate Date False

Indicates date asset was purchased. This field is required for the fixed-asset item type. It is not used by any other item type.

ItemCount Integer False

The number of line items associated with the inventory assembly.

ParentName String False

Items.FullName

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

ParentId String False

Items.ID

255

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

Description String False 5000

A description of the item.

Price Double False

The price for the item.

PricePercent Double False

A price percent for this item (you might use a price percent if, for example, you are a service shop that calculates labor costs as a percentage of parts costs). If you set PricePercent, Price will be set to zero. Not used for payment, sales tax, or subtotal items.

AverageCost Double True

The average cost of the item.

IsActive Boolean False

Whether the item is active or not.

PurchaseCost Double False

Purchase cost for the item.

PurchaseDescription String False 5000

Purchase description for the item.

ExpenseAccount String False

Accounts.FullName

1000

Expense account for the item.

ExpenseAccountId String False

Accounts.ID

255

Expense account for the item.

PreferredVendor String False

Vendors.Name

1000

Preferred vendor for the item.

PreferredVendorId String False

Vendors.ID

255

Preferred vendor for the item.

QuantityOnHand Double True

Quantity in stock for this inventory item.

QuantityOnOrder Double True

The number of these items that have been ordered from vendors, but not received.

QuantityOnSalesOrder Double True

The number of these items that have been ordered by customers, but not delivered.

InventoryDate Date False

The date when the item was converted into an inventory item.

ReorderPoint Double False

Quantity at which the user will be reminded to reorder this inventory item.

Barcode String False 50

Barcode for the item.

TaxCode String False

SalesTaxCodes.Name

3

Reference to a sales tax code predefined within QuickBooks.

TaxCodeId String False

SalesTaxCodes.ID

255

Reference to a sales tax code predefined within QuickBooks.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. Available in only international editions of QuickBooks.

PurchaseTaxCode String False

SalesTaxCodes.Name

3

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

PurchaseTaxCodeId String False

SalesTaxCodes.ID

255

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

PartNumber String False 31

The manufacturer's part number for the item. This property requires QBXML Version 7.0 or higher and is only applicable to inventory and noninventory item types.

PaymentMethodName String False

PaymentMethods.Name

100

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

PaymentMethodId String False

PaymentMethods.ID

255

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

TaxRate Double False

The percentage rate of tax.

TaxVendorName String False

SalesTaxItems.Name

1000

The VENDOR or tax agency to whom taxes are due.

TaxVendorId String False

SalesTaxItems.ID

255

The VENDOR or tax agency to whom taxes are due.

SpecialItemType String False 50

The type of the item when the value of item type is Unknown. Calling Add on such an item will result in an error, however Get or GetByName can get any item without causing an error.

The allowed values are FinanceCharge, ReimbursableExpenseGroup, ReimbursableExpenseSubtotal.

VendorOrPayeeName String False 50

Name of the vendor from whom this asset was purchased.

IsPrintItemsInGroup Boolean False

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

SalesExpense String False

Any expenses that were incurred during the sale of a fixed asset. This is applicable only if the asset has been sold.

AssetAcquiredAs String False 3

Indicates whether this item was new or used when the business acquired it. If AssetAcquiredAs is left blank, it will not be sent in the request.

The allowed values are New, Old.

AssetDescription String False 5000

Description of the asset.

AssetLocation String False 50

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

AssetPONumber String False 30

The purchase order number associated with this asset.

AssetSerialNumber String False 5000

The serial number of the asset.

AssetWarrantyExpires Date False

The date when the warranty for this asset expires.

AssetNotes String False 5000

Additional information about the asset.

AssetNumber String False 10

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

AssetCostBasis Decimal False

The total cost of the fixed asset. This can include the cost of improvements or repairs. This amount is used to figure depreciation.

AssetDepreciation Double False

The amount the fixed asset has lost in value since it was purchased, as of the end of the year.

AssetBookValue Double False

A reasonable estimate of the sales value of the fixed asset, as of the end of the year.

UnitOfMeasure String False

UnitOfMeasure.Name

31

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

UnitOfMeasureId String False

UnitOfMeasure.ID

255

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

Sublevel Integer True

The number of ancestors this item has.

LineAggregate String True 5000

An aggregate of the line item data.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

An identifier for this copy of the object.

TimeModified Datetime True

When the item was last modified.

TimeCreated Datetime True

When the item was created.



JobTypes

Create and query QuickBooks JobTypes.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the jobtype.

Name String False 100

The name of the jobtype.

FullName String True 1000

The full name of the jobtype in the form ParentName|JobTypesName.

IsActive Boolean False

Boolean determining if the jobtype is active.

ParentRef_FullName String False

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

255

Id for the parent of the jobtype. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT statements and not both.

Sublevel Integer True

How many parents the jobtype has.

EditSequence String True 16

A string indicating the revision of the jobtype.

TimeCreated Datetime True

The time the jobtype was created.

TimeModified Datetime True

The last time the jobtype was modified.



JournalEntries

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

Table Specific Information

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

Select

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

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

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

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

INSERT Into JournalEntries 

         (ReferenceNumber, LineAggregate) 

VALUES   ('12345', 

'<JournalEntryLines>

<Row><LineType>Credit</LineType><LineAccount>Retained Earnings</LineAccount><LineAmount>100</LineAmount></Row>

<Row><LineType>Credit</LineType><LineAccount>Note Payable - Bank of Anycity</LineAccount><LineAmount>20</LineAmount></Row>

<Row><LineType>Debit</LineType><LineAccount>Checking</LineAccount><LineAmount>120</LineAmount></Row>

</JournalEntryLines>')

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

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

DELETE From JournalEntries WHERE Id='16336-1450196662'
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier for the journal entry.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Date Date False

The transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

CreditLineCount Integer False

Number of credit lines.

DebitLineCount Integer False

Number of debit lines.

FirstCreditAccount String False

Accounts.FullName

The first credit account associated with the JournalEntry.

FirstCreditAmount Decimal False

The first credit amount associated with the JournalEntry.

FirstCreditMemo String False

The first credit memo associated with the JournalEntry.

FirstCreditEntityName String False

The first credit entity name associated with the JournalEntry.

FirstCreditEntityId String False

The first credit entity id associated with the JournalEntry.

FirstDebitAccount String False

Accounts.FullName

The first debit account associated with the JournalEntry.

FirstDebitAmount Decimal False

The first debit amount associated with the JournalEntry.

FirstDebitMemo String False

The first debit memo associated with the JournalEntry.

FirstDebitEntityName String False

The first debit entity name associated with the JournalEntry.

FirstDebitEntityId String False

The first debit entity id associated with the JournalEntry.

LineAggregate String False 5000

An aggregate of the credit lines and debit ines data which can be used for adding a journal entry and its line item data.

CurrencyName String False

Currency.Name

64

The name of the currency for this customer. A minimum QBXML version of 8.0 is required for this feature.

CurrencyId String False

Currency.ID

255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

IsHomeCurrencyAdjustment Boolean False

Indicates whether the transaction is using a home currency or foreign currency. Setting this field will override the Currency and ExchangeRate fields to use the home currency.

EditSequence String False 16

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

TimeModified Datetime False

When the journal entry was last modified.

TimeCreated Datetime False

When the journal entry was created.

Pseudo-Columns

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

Name Type Description
Line* String

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

LineEntityName String

LineEntityName may be used when filtering the data.

LineEntityId String

LineEntityId may be used when filtering the data.

LineAccount String

LineAccount may be used when filtering the data.

LineAccountId String

LineAccountId may be used when filtering the data.



JournalEntryLines

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

Table Specific Information

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

Select

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

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

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

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

INSERT Into JournalEntryLines#TEMP (ReferenceNumber, LineType, LineAccount, LineAmount) VALUES ('12345', 'Credit', 'Retained Earnings','100')

INSERT Into JournalEntryLines#TEMP (ReferenceNumber, LineType, LineAccount, LineAmount) VALUES ('12345', 'Credit', 'Note Payable - Bank of Anycity','20')

INSERT Into JournalEntryLines#TEMP (ReferenceNumber, LineType, LineAccount, LineAmount) VALUES ('12345', 'Debit', 'Checking', '120')

INSERT Into JournalEntryLines (ReferenceNumber, LineType, LineAccount, LineAmount) SELECT ReferenceNumber, LineType, LineAccount, LineAmount FROM JournalEntryLines#TEMP

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

DELETE From JournalEntries WHERE Id='16336-1450196662'
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format JournalEntryId|ItemLineId.

JournalEntryID String False

JournalEntries.ID

255

The journal entry Id.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Date Date False

The transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

CreditLineCount Integer False

Number of credit lines.

DebitLineCount Integer False

Number of debit lines.

LineId String True 255

The line item identifier.

LineType String False 100

Type of line: credit or debit.

LineAccount String False

Accounts.FullName

1000

Account name of a credit or debit line.

LineAccountId String False

Accounts.ID

255

Account Id of a credit or debit line.

LineAmount Decimal False

Amount of a credit or debit line.

LineEntityName String False 1000

Entity name of a credit or debit line.

LineEntityId String False 255

Entity Id of a credit or debit line.

LineMemo String False 5000

Memo for a credit or debit line.

LineClass String False

Class.FullName

1000

Class name of a credit or debit line.

LineClassId String False

Class.ID

255

Class Id of a credit or debit line.

LineStatus String False 13

Billing status of a credit or debit line.

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

LineTaxItem String False

SalesTaxItems.Name

100

The sales-tax item used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. Available in only CA, UK, and AU versions.

LineTaxItemId String False

SalesTaxItems.ID

255

Id of the sales-tax item used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. Only available in CA, UK, and AU versions.

CurrencyName String False

Currency.Name

64

The name of the currency for this customer. A minimum QBXML version of 8.0 is required for this feature.

CurrencyId String False

Currency.ID

255

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

ExchangeRate Double False

The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.

IsHomeCurrencyAdjustment Boolean False

Indicates whether the transaction is using a home currency or foreign currency. Setting this field will override the Currency and ExchangeRate fields to use the home currency.

EditSequence String False 16

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

TimeModified Datetime False

When the journal entry was last modified.

TimeCreated Datetime False

When the journal entry was created.



OtherNames

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

Name String False 41

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

IsActive Boolean False

Whether or not the other name is active.

CompanyName String False 41

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

Salutation String False 15

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

FirstName String False 25

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

MiddleName String False 25

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

LastName String False 25

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

OtherNameAddress_Addr1 String False 500

First line of the other-name address.

OtherNameAddress_Addr2 String False 500

Second line of the other-name address.

OtherNameAddress_Addr3 String False 500

Third line of the other-name address.

OtherNameAddress_Addr4 String False 500

Fourth line of the other-name address.

OtherNameAddress_Addr5 String False 41

Fifth line of the other-name address.

OtherNameAddress_City String False 255

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

OtherNameAddress_State String False 255

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

OtherNameAddress_PostalCode String False 30

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

OtherNameAddress_Country String False 255

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

OtherNameAddress_Note String False 41

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

Phone String False 21

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

AltPhone String False 41

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

Fax String False 21

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

Email String False 1023

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

Contact String False 41

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

AltContact String False 41

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

AccountNumber String False 99

The account number for the other-name.

Notes String False 5000

Notes on this customer, vendor, employee, or person on the other-names list.

ExternalGUID String False

Allows for the attachment of a user-defined GUID value. Can be used in only inserts and the value must be enclosed in curly brackets. Requires QBXML 8.0 or higher.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeCreated Datetime True

The datetime the other name was made.

TimeModified Datetime True

The last datetime the other name was modified.

EditSequence String True 16

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



PaymentMethods

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the payment method.

Name String False 31

The name of the payment method.

IsActive Boolean False

Boolean determining if the payment method is active.

PaymentMethodType String False 100

The payment method. Requires QBXML 7.0 or higher.

The allowed values are AmericanExpress, Cash, Check, DebitCard, Discover, ECheck, GiftCard, MasterCard, Other, OtherCreditCard, Visa.

EditSequence String True 16

A string indicating the revision of the payment method.

TimeCreated Datetime True

The time the payment method was created.

TimeModified Datetime True

The last time the payment method was modified.



PayrollNonWageItems

Query QuickBooks Non-Wage Payroll Items.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True

The unique identifier.

Name String False

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

IsActive Boolean False

Whether or not the payroll item is active.

NonWageType String False

The type of pay.

The allowed values are Addition, CompanyContribution, Deduction, DirectDeposit, Tax.

ExpenseAccountRef_FullName String False

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.



PayrollWageItems

Create and query QuickBooks Wage Payroll Items.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True

The unique identifier.

Name String False

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

IsActive Boolean False

Whether or not the payroll item is active.

WageType String False

The type of pay.

The allowed values are Bonus, Commission, HourlyOvertime, HourlyRegular, HourlySick, HourlyVacation, SalaryRegular, SalarySick, SalaryVacation.

ExpenseAccountRef_FullName String False

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.



PriceLevelPerItem

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

PriceLevelID String False

PriceLevels.ID

255

The unique identifier of the price level.

Name String False 31

The name of the price level.

PriceLevelType String True 15

The type of price level.

The allowed values are FixedPercentage, PerItem.

IsActive Boolean False

A boolean determining if the price level is active.

PriceLevelPerItemRet_ItemRef_ListID String False

Items.ID

255

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

PriceLevelPerItemRet_ItemRef_FullName String False

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 Decimal False

A fixed amount for the price.

PriceLevelPerItemRet_CustomPricePercent Double False

A fixed discount percentage.

PriceLevelPerItemRet_CurrencyRef_ListID String False

Currency.ID

255

A reference to the currency Id. Requires a minimum QBXML version of 8.0 and multiple currencies enabled for the company file.

PriceLevelPerItemRet_CurrencyRef_FullName String False

Currency.Name

64

A reference to the currency name. Requires a minimum QBXML version of 8.0 and multiple currencies enabled for the company file.

TimeCreated Datetime True

The datetime the transaction was made.

TimeModified Datetime True

The last datetime the transaction was modified.

EditSequence String True 16

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



PriceLevels

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

Name String False 31

The name of the price level.

PriceLevelType String True 15

The type of price level.

The allowed values are FixedPercentage, PerItem.

IsActive Boolean False

A boolean determining if the price level is active.

PriceLevelFixedPercentage Double False

A fixed discount percentage for the price level.

PriceLevelPerItemAggregate String False 5000

An aggregate of the per-item price level data.

PriceLevelPerItemRet_CurrencyRef_ListID String False

Currency.ID

255

A reference to the currency Id. Requires a minimum QBXML version of 8.0 and multiple currencies enabled for the company file.

PriceLevelPerItemRet_CurrencyRef_FullName String False

Currency.Name

64

A reference to the currency name. Requires a minimum QBXML version of 8.0 and multiple currencies enabled for the company file.

TimeCreated Datetime True

The datetime the transaction was made.

TimeModified Datetime True

The last datetime the transaction was modified.

EditSequence String True 16

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



PurchaseOrderLineItems

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO PurchaseOrderLineItems#TEMP (VendorName, ItemName, ItemQuantity) VALUES ('A Cheung Limited', 'Repairs', 1)

INSERT INTO PurchaseOrderLineItems#TEMP (VendorName, ItemName, ItemQuantity) VALUES ('A Cheung Limited', 'Removal', 2)

INSERT INTO PurchaseOrderLineItems (VendorName, ItemName, ItemQuantity) SELECT VendorName, ItemName, ItemQuantity FROM PurchaseOrderLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format PurchaseOrderId|ItemLineId.

PurchaseOrderID String False

PurchaseOrders.ID

255

The unique identifier of the purchase order.

VendorName String False

Vendors.Name

1000

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

VendorId String False

Vendors.ID

255

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

VendorMessage String False 99

Message to appear to vendor.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Date Date False

Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

DueDate Date False

Date when payment is due.

ShipMethod String False

ShippingMethods.Name

1000

Shipping method.

ShipMethodId String False

ShippingMethods.ID

255

Shipping method.

ExpectedDate Date False

Date when the shipment is expected.

Memo String False 5000

Memo regarding this transaction.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

Terms String False 100

Payment terms.

TermsId String False 255

Payment terms.

TotalAmount Decimal True

Total amount for this purchase order.

Template String False

Templates.Name

100

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

TemplateId String False

Templates.ID

255

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

CurrencyName String False

Currency.Name

64

Name of the currency code used for this purchase order. QBXML version must be set to 8.0 or higher to use this field.

CurrencyId String False

Currency.ID

255

Id of the currency code used for this purchaseorder. QBXML version must be set to 8.0 or higher to use this field.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item identifier.

ItemGroup String False

Items.FullName

100

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

ItemGroupId String False

Items.ID

255

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

ItemDescription String False 5000

A description of the item.

ItemCustomer String False

Customers.FullName

1000

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

ItemCustomerId String False

Customers.ID

255

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

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML version 7.0 and above.

ItemQuantity Double False

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

ItemRate Double False

The unit rate charged for this item.

ItemAmount Decimal False

Total amount for this item.

ItemReceivedQuantity Double False

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

ItemClass String False

Class.FullName

1000

The class name of the item.

ItemClassId String False

Class.ID

255

The class name of the item.

ItemInventorySiteLocationId String False 31

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

ItemInventorySiteLocationName String False 255

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

ItemIsManuallyClosed String False 10

Whether or not the item is manually closed.

ItemPartNumber String False

The part number used by the manufacturer of the item.

ItemServiceDate Date False

The date of the Service

ItemOther1 String False 29

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

ItemOther2 String False 29

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

ItemCustomFields String False

The custom fields for this line item.

IsFullyReceived Boolean True

If IsFullyReceived is true, all the items in the purchase order have been received and none were closed manually.

IsManuallyClosed String False 10

Whether or not the purchase order is closed.

IsToBePrinted Boolean False

Whether this transaction is to be printed.

IsToBeEmailed Boolean False

Indicates whether the transaction is to be emailed.

IsTaxIncluded Boolean False

Indicates whether the dollar amounts in the line items include tax or not.

SalesTaxCodeName String False

SalesTaxCodes.Name

3

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

SalesTaxCodeId String False

SalesTaxCodes.ID

255

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

FOB String False 1000

Freight on board: The place to ship from.

VendorAddress String True

Full vendor address returned by QuickBooks.

VendorLine1 String False 500

First line of the vendor address.

VendorLine2 String False 500

Second line of the vendor address.

VendorLine3 String False 500

Third line of the vendor address.

VendorLine4 String False 500

Forth line of the vendor address.

VendorLine5 String False 41

Fifth line of the vendor address.

VendorCity String False 255

City name for the vendor address of the vendor.

VendorState String False 255

State name for the vendor address of the vendor.

VendorPostalCode String False 30

Postal code for the vendor address of the vendor.

VendorCountry String False 255

Country for the vendor address of the vendor.

VendorNote String False 41

Note for the vendor address of the vendor.

ShipToEntityId String False 255

A reference to an entity (a customer, a vendor or an employee) to whom shipment is to be made. This may also be a customer job.

ShipToEntityName String False 1000

A reference to an entity (a customer, a vendor or an employee) to whom shipment is to be made. This may also be a customer job.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address.

ShippingState String False 255

State name for the shipping address.

ShippingPostalCode String False 30

Postal code for the shipping address.

ShippingCountry String False 255

Country for the shipping address.

ShippingNote String False 41

Note for the shipping address.

ExchangeRate Double False

Indicates the exchange rate for the transaction.

Other1 String False 25

Predefined QuickBooks custom field.

Other2 String False 29

Predefined QuickBooks custom field.

EditSequence String True 16

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

TimeModified Datetime True

When the purchase order was last modified.

TimeCreated Datetime True

When the purchase order was created.

Pseudo-Columns

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

Name Type Description
ItemPriceLevel String

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

ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



PurchaseOrders

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO PurchaseOrders (VendorName, ItemAggregate) 

VALUES ('A Cheung Limited', 

'<PurchaseOrderLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

</PurchaseOrderLineItems>')

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format PurchaseOrderId.

VendorName String False

Vendors.Name

1000

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

VendorId String False

Vendors.ID

255

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

VendorMessage String False 99

Message to appear to vendor.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Date Date False

Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

DueDate Date False

Date when payment is due.

ShipMethod String False

ShippingMethods.Name

1000

Shipping method.

ShipMethodId String False

ShippingMethods.ID

255

Shipping method.

ExpectedDate Date False

Date when the shipment is expected.

Memo String False 5000

Memo regarding this transaction.

Class String False

Class.Name

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

Terms String False 100

Payment terms.

TermsId String False 255

Payment terms.

TotalAmount Decimal True

Total amount for this purchase order.

Template String False

Templates.Name

100

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

TemplateId String False

Templates.ID

255

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

CurrencyName String False

Currency.Name

64

Name of the currency code used for this purchase order. QBXML version must be set to 8.0 or higher to use this field.

CurrencyId String False

Currency.ID

255

Id of the currency code used for this purchase order. QBXML version must be set to 8.0 or higher to use this field.

ItemCount Integer True

The number of line items.

ItemAggregate String False 5000

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

IsFullyReceived Boolean True

If IsFullyReceived is true, all the items in the purchase order have been received and none were closed manually.

IsManuallyClosed String False 10

Whether or not the purchase order is closed.

IsToBePrinted Boolean False

Whether this transaction is to be printed.

IsToBeEmailed Boolean False

Indicates whether the transaction is to be emailed.

IsTaxIncluded Boolean False

Indicates whether the dollar amounts in the line items include tax or not.

SalesTaxCodeName String False

SalesTaxCodes.Name

3

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

SalesTaxCodeId String False

SalesTaxCodes.ID

255

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

FOB String False 1000

Freight on board: The place to ship from.

VendorAddress String True

Full vendor address returned by QuickBooks.

VendorLine1 String False 500

First line of the vendor address.

VendorLine2 String False 500

Second line of the vendor address.

VendorLine3 String False 500

Third line of the vendor address.

VendorLine4 String False 500

Fourth line of the vendor address.

VendorLine5 String False 41

Fifth line of the vendor address.

VendorCity String False 255

City name for the vendor address of the vendor.

VendorState String False 255

State name for the vendor address of the vendor.

VendorPostalCode String False 30

Postal code for the vendor address of the vendor.

VendorCountry String False 255

Country for the vendor address of the vendor.

VendorNote String False 41

Note for the vendor address of the vendor.

ShipToEntityName String False 1000

A reference to an entity (a customer, a vendor or an employee) to whom shipment is to be made. This may also be a customer job.

ShipToEntityId String False 255

A reference to an entity (a customer, a vendor or an employee) to whom shipment is to be made. This may also be a customer job.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address.

ShippingState String False 255

State name for the shipping address.

ShippingPostalCode String False 30

Postal code for the shipping address.

ShippingCountry String False 255

Country for the shipping address.

ShippingNote String False 41

Note for the shipping address.

ExchangeRate Double False

Indicates the exchange rate for the transaction.

Other1 String False 25

Predefined QuickBooks custom field.

Other2 String False 29

Predefined QuickBooks custom field.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True

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

TimeModified Datetime True

When the purchase order was last modified.

TimeCreated Datetime True

When the purchase order was created.

Pseudo-Columns

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

Name Type Description
Item* String

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



ReceivePayments

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

Table Specific Information

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

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

Select

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

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

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

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

INSERT INTO ReceivePayments (CustomerName, Amount, AutoApply, AppliedToAggregate) 

VALUES ('Cook, Brian', '300.00', 'Custom', 

'<ReceivePaymentsAppliedTo>

<Row><AppliedToRefId>178C1-1450221347</AppliedToRefId><AppliedToPaymentAmount>200.00</AppliedToPaymentAmount></Row>

<Row><AppliedToRefId>881-933371709</AppliedToRefId><AppliedToPaymentAmount>100.00</AppliedToPaymentAmount></Row>

</ReceivePaymentsAppliedTo>')

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

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

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

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier for the transaction.

ReferenceNumber String False 21

The transaction reference number.

TxnNumber Integer True

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

Date Date False

The date of the transaction.

UnusedPayment Decimal True

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

Amount Decimal False

The amount of the payment received from the Customer.

AccountsReceivableName String False

Accounts.FullName

1000

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

AccountsReceivableId String False

Accounts.ID

255

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

CustomerName String False

Customers.FullName

1000

The name of the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerID does not.

CustomerId String False

Customers.ID

255

The Id of the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerName does not.

DepositToAccountName String False

Accounts.FullName

1000

The account name that the payment should be deposited to.

DepositToAccountId String False

Accounts.ID

255

The account Id that the payment should be deposited to.

PaymentMethodName String False

PaymentMethods.Name

100

Name of the payment method that already exists in QuickBooks.

PaymentMethodId String False

PaymentMethods.ID

255

Id of the payment method that already exists in QuickBooks.

Memo String False 5000

A memo to appear on internal reports.

ExchangeRate Double False

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

TotalAmountInHomeCurrency Decimal False

The total amount in home currency.

AppliedToAggregate String False 5000

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

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the receive payment was last modified.

TimeCreated Datetime True

When the receive payment was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
AutoApply String

How the payment should be applied.

The allowed values are ExistingTransactions, FutureTransactions, Custom.

The default value is ExistingTransactions.



ReceivePaymentsAppliedTo

Create, update, and query QuickBooks Receive Payment AppliedTo aggregates. In a Receive Payment, each AppliedTo aggregate represents the transaction to which this part of the payment is being applied. QBXMLVersion must be set to 6.0 or higher to update a ReceivePayment.

Table Specific Information

ReceivePayments may be inserted, queried, or updated via the ReceivePayments or ReceivePaymentsAppliedTo tables. ReceivePayments may be deleted by using the ReceivePayments table.

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for ReceivePayments are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, DepositToAccountName, and DepositToAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM ReceivePaymentsAppliedTo WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a ReceivePayment, specify the Customer and the Amount. All AppliedTo columns can be used to explicitly identify the transactions the payment is applied to. An AppliedTo entry must at the minimum specify the AppliedToRefId and AppliedToPaymentAmount. Optionally, the INSERT may specify the AutoApply behavior.

For example, the following will insert a new ReceivePayment with two AppliedTo entries:

INSERT INTO ReceivePaymentsAppliedTo#TEMP (CustomerName, AppliedToAmount, AutoApply, AppliedToRefId, AppliedToPaymentAmount) VALUES ('Cook, Brian', '300.00', 'Custom','178C1-1450221347', '200.00')

INSERT INTO ReceivePaymentsAppliedTo#TEMP (CustomerName, AppliedToAmount, AutoApply, AppliedToRefId, AppliedToPaymentAmount) VALUES ('Cook, Brian', '300.00', 'Custom','881-933371709', '100.00')

INSERT INTO ReceivePaymentsAppliedTo (CustomerName, AppliedToAmount, AutoApply, AppliedToRefId, AppliedToPaymentAmount) SELECT CustomerName, AppliedToAmount, AutoApply, AppliedToRefId, AppliedToPaymentAmount FROM ReceivePaymentsAppliedTo#TEMP

If you would like to insert a ReceivePayment and let QuickBooks automatically determine which transaction to apply it to, you can use the AutoApply pseudo column to apply the transaction to an existing transaction. For example:

INSERT INTO ReceivePaymentsAppliedTo (CustomerName, Amount, AutoApply) VALUES ('Cook, Brian', '300.00', 'ExistingTransactions')
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format ReceivePaymentId|AppliedToRefId.

ReceivePaymentId String False

ReceivePayments.ID

255

The Id of the bill-payment transaction.

ReferenceNumber String False 21

The transaction reference number. This may be set to refnumber*, *refnumber, and *refnumber* in the WHERE clause of a SELECT statement to search by StartsWith, EndsWith, and Contains. Refnum1:refnum2, refnum1:, and :refnum1 may also be used to denote a range.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

Date Date False

The date of the transaction.

UnusedPayment Decimal True

This property will contain the amount of the payment that was not applied to existing invoices.

Amount Decimal False

The amount of the payment received from the Customer.

AccountsReceivableName String False

Accounts.FullName

1000

A reference to the name of the accounts-receivable account where the money received from this transaction will be deposited.

AccountsReceivableId String False

Accounts.ID

255

A reference to the Id of the accounts-receivable account where the money received from this transaction will be deposited.

CustomerName String False

Customers.FullName

1000

The name of the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerId is not defined.

CustomerId String False

Customers.ID

255

The Id of the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerName is not defined.

DepositToAccountName String False

Accounts.FullName

1000

The account name that the payment should be deposited to.

DepositToAccountId String False

Accounts.ID

255

The account Id that the payment should be deposited to.

PaymentMethodName String False

PaymentMethods.Name

100

Name of a payment method that already exists in QuickBooks.

PaymentMethodId String False

PaymentMethods.ID

255

Id of a payment method that already exists in QuickBooks.

Memo String False 5000

A memo to appear on internal reports.

ExchangeRate Double False

The exachange rate of the payment currency to the home currency.

TotalAmountInHomeCurrency Decimal False

The total amount in home currency.

AutoApply String False 20

How the payment should be applied.

The allowed values are ExistingTransactions, FutureTransactions, Custom.

The default value is ExistingTransactions.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

AppliedToRefId String False 255

The applied-to reference identifier. This is the Id of an existing transaction that a payment can be applied to such as a JournalEntry, or an Invoice.

AppliedToAmount Decimal True

The amount to be applied.

AppliedToBalanceRemaining Double True

The balance remaining to be applied.

AppliedToCreditAppliedAmount Decimal False

The credit applied amount to be applied.

AppliedToCreditMemoId String False

CreditMemos.ID

255

The credit memo Id to be applied.

AppliedToDiscountAccountName String False

Accounts.FullName

1000

The discount account name to be applied.

AppliedToDiscountAccountId String False

Accounts.ID

255

The discount account Id to be applied.

AppliedToDiscountAmount Decimal False

The discount amount to be applied.

AppliedToPaymentAmount Decimal False

The payment amount to be applied.

AppliedToReferenceNumber String True 21

The ref number to be applied.

AppliedToTxnDate Date True

The transaction date to be applied.

AppliedToTxnType String True 100

The transaction type that was applied.

TimeModified Datetime True

When the receive payment was last modified.

TimeCreated Datetime True

When the receive payment was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
StartTxnDate String

Earliest transaction date to search for.

EndTxnDate String

Latest transaction date to search for.

StartModifiedDate String

Earliest modified date to search for.

EndModifiedDate String

Latest modified date to search for.



SalesOrderLineItems

Create, update, delete, and query QuickBooks Sales Order Line Items.

Table Specific Information

SalesOrders may be inserted, queried, or updated via the SalesOrders or SalesOrderLineItems table. SalesOrders may be deleted by using the SalesOrders table.

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesOrders are Id, Date, TimeModified, ReferenceNumber, CustomerName, and CustomerId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM SalesOrderLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a SalesOrder, specify the Customer and at least one Line Item. All Line Item columns can be used for inserting multiple Line Items for a new SalesOrder transaction. For example, the following will insert a new SalesOrder with two Line Items:

INSERT INTO SalesOrderLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Cook, Brian', 'Repairs', 1)

INSERT INTO SalesOrderLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Cook, Brian', 'Removal', 2)

INSERT INTO SalesOrderLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM SalesOrderLineItems#TEMP
Inserting Into an Existing SalesOrder

To add a SalesOrderLineItem to an existing SalesOrder, specify the SalesOrderId, the Item's name, and the Item's Quanitiy. For example:

INSERT INTO SalesOrderLineItems (SalesOrderId, ItemName, ItemQuantity) VALUES ('SalesOrderId', '01Item1', 1)
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format SalesOrderId|ItemLineId.

SalesOrderId String False

SalesOrders.ID

255

The item identifier.

ReferenceNumber String False 21

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

CustomerName String False

Customers.Name

1000

Customer name this transaction is recorded under. This is required to have a value when inserting.

CustomerId String False

Customers.ID

255

Customer Id this transaction is recorded under.

Date Date False

Transaction date.

ShipMethod String False

ShippingMethods.Name

1000

Shipping method.

ShipMethodId String False

ShippingMethods.ID

255

Shipping method.

ShipDate Date False

Shipping date.

Memo String False 5000

Memo regarding this transaction.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

TotalAmount Decimal False

Total amount for this transaction.

DueDate Date False

Date the payment is due.

Message String False

CustomerMessages.Name

101

Message to the customer.

MessageId String False

CustomerMessages.ID

255

Message to the customer.

SalesRep String False

SalesReps.Initial

5

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

255

Reference to the sales rep.

Template String False

Templates.Name

100

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

255

The Id of an existing template to apply to the transaction.

CurrencyName String False

Currency.Name

64

Name of the currency code used for this sales order.

CurrencyId String False

Currency.ID

255

Id of the currency code used for this sales order.

ExchangeRate Double False

Currency exchange rate for this sales order.

TotalAmountInHomeCurrency Decimal False

Returned for transactions in currencies different from the merchant's home currency.

BillingAddress String True

Full billing address returned by QuickBooks.

FOB String False 13

Freight on board: The place to ship from.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address.

BillingState String False 255

State name for the billing address.

BillingPostalCode String False 30

Postal code for the billing address.

BillingCountry String False 255

Country for the billing address.

BillingNote String False 41

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address.

ShippingState String False 255

State name for the shipping address.

ShippingPostalCode String False 30

Postal code for the shipping address.

ShippingCountry String False 255

Country for the shipping address.

ShippingNote String False 41

Note for the shipping address.

Subtotal Decimal True

Gross subtotal. This does not include tax or the amount already paid.

Tax Double True

Total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

Percentage charged for sales tax.

PONumber String False 41

Purchase order number.

Terms String False 100

Payment terms.

TermsId String False 255

Payment terms.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item identifier.

ItemGroup String False

Items.FullName

100

Item group name. Reference to a group of line items this item is part of.

ItemGroupId String False

Items.ID

255

Item group Id.

ItemDescription String False 5000

A description of the item.

ItemQuantity Double False

The quantity of the item or item group specified in this line.

ItemRate Double False

The unit rate charged for this item.

ItemRatePercent Double False

The rate percent charged for this item.

ItemTaxCode String False

SalesTaxCodes.Name

3

Sales tax information for this item (taxable or nontaxable).

ItemTaxCodeId String False

SalesTaxCodes.ID

255

Sales tax information for this item (taxable or nontaxable).

ItemInvoicedAmount Decimal True

The amount of this sales order line that has been invoiced.

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemAmount Decimal False

Total amount for this item.

ItemClass String False

Class.FullName

1000

The class name of the item.

ItemClassId String False

Class.ID

255

The class Id of the item.

ItemInventorySiteName String False

InventorySites.Name

1000

The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteId String False

InventorySites.ID

255

The inventory site Id of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemSerialNumber String False 5000

The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemLotNumber String False 40

The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemIsManuallyClosed String False 10

Whether this sales order line is manually closed.

ItemOther1 String False 29

The Other1 field of this line item. QBXML version must be set to 6.0 or higher.

ItemOther2 String False 29

The Other2 field of this line item. QBXML version must be set to 6.0 or higher.

ItemCustomFields String False

The custom fields for this line item.

ItemUOMSetFullName String False

UnitOfMeasure.Name

1000

Indicates the price of something as a percent.

ItemUOMSetListID String False

UnitOfMeasure.ID

1000

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup String False 1000

If true, a list of this group's individual items their amounts will appear on printed forms.

CustomerTaxCode String False

SalesTaxCodes.Name

3

The tax code specific to this customer.

CustomerTaxCodeId String False

SalesTaxCodes.ID

255

The tax code specific to this customer.

IsToBePrinted Boolean False

Whether this sales order is to be printed.

IsToBeEmailed Boolean False

When true, if no email address is on file for the customer the transaction will fail.

IsManuallyClosed String False 10

Whether this sales order is manually closed.

IsFullyInvoiced Boolean True

Whether this sales order is fully invoiced.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

An identifier used for versioning for this copy of the object.

TimeModified Datetime True

When the sales order was last modified.

TimeCreated Datetime True

When the sales order was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ItemPriceLevel String

Item price level name. QuickBooks will not return the price level.



SalesOrders

Create, update, delete, and query QuickBooks Sales Orders.

Table Specific Information

SalesOrders may be inserted, queried, or updated via the SalesOrders or SalesOrderLineItems table. SalesOrders may be deleted by using the SalesOrders table.

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesOrders are Id, Date, TimeModified, ReferenceNumber, CustomerName, and CustomerId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM SalesOrders WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a SalesOrder, specify the Customer and at least one Line Item. The ItemAggregate column may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the SalesOrderLineItems tables and it starts with Item. For example, the following will insert a new SalesOrder with two Line Items:

INSERT INTO SalesOrders (CustomerName, ItemAggregate) 

VALUES ('Cook, Brian',

'<SalesOrderLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

</SalesOrderLineItems>')

To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

ReferenceNumber String False 21

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

CustomerName String False

Customers.FullName

1000

Customer name this transaction is recorded under. This is required to have a value when inserting.

CustomerId String False

Customers.ID

255

Customer Id this transaction is recorded under.

Date Date False

Transaction date.

ShipMethod String False

ShippingMethods.Name

1000

Shipping method.

ShipMethodId String False

ShippingMethods.ID

255

Shipping method.

ShipDate Date False

Shipping date.

Memo String False 5000

Memo regarding this transaction.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

TotalAmount Decimal False

Total amount for this transaction.

DueDate Date False

Date the payment is due.

Message String False

CustomerMessages.Name

101

Message to the customer.

MessageId String False

CustomerMessages.ID

255

Message to the customer.

SalesRep String False

SalesReps.Initial

5

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

255

Reference to the sales rep.

Template String False

Templates.Name

100

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

255

The Id of an existing template to apply to the transaction.

CurrencyName String False

Currency.Name

64

Name of the currency code used for this sales order.

CurrencyId String False

Currency.ID

255

Id of the currency code used for this sales order.

ExchangeRate Double False

Currency exchange rate for this sales order.

TotalAmountInHomeCurrency Decimal False

Returned for transactions in currencies different from the merchant's home currency.

FOB String False 13

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address.

BillingState String False 255

State name for the billing address.

BillingPostalCode String False 30

Postal code for the billing address.

BillingCountry String False 255

Country for the billing address.

BillingNote String False 41

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address.

ShippingState String False 255

State name for the shipping address.

ShippingPostalCode String False 30

Postal code for the shipping address.

ShippingCountry String False 255

Country for the shipping address.

ShippingNote String False 41

Note for the shipping address.

Subtotal Decimal True

Gross subtotal. This does not include tax or the amount already paid.

Tax Double True

Total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

Percentage charged for sales tax.

PONumber String False 41

Purchase order number.

Terms String False 100

Payment terms.

TermsId String False 255

Payment terms.

ItemCount Integer True

The count of item entries for this transaction.

ItemAggregate String False 5000

An aggregate of the line item data which can be used for adding a SalesOrders and its Line Item data.

TransactionCount Integer True

The count of related transactions to the bill.

TransactionAggregate String True 5000

An aggregate of the linked transaction data.

CustomerTaxCode String False

SalesTaxCodes.Name

3

The tax code specific to this customer.

CustomerTaxCodeId String False

SalesTaxCodes.ID

255

The tax code specific to this customer.

IsPrinted Boolean True

Whether this invoice is to be printed.

IsManuallyClosed String False 10

Whether this sales order is manually closed.

IsFullyInvoiced Boolean True

Whether this sales order is fully invoiced.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount.

IsToBePrinted Boolean False

Whether this sales order is to be printed.

IsToBeEmailed Boolean False

Whether this sales order is to be emailed.

Other String False 29

A predefined QuickBooks custom field.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

An identifier used for versioning for this copy of the object.

TimeModified Datetime True

When the sales order was last modified.

TimeCreated Datetime True

When the sales order was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
Item* String

All line-item-specific columns may be used in insertions.



SalesReceiptLineItems

Create, update, delete, and query QuickBooks Sales Receipt Line Items.

Table Specific Information

SalesReceipts may be inserted, queried, or updated via the SalesReceipts or SalesReceiptLineItems tables. SalesReceipts may be deleted by using the SalesReceipts table.

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesReceipts are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, DepositAccount, and DepositAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM SalesReceiptLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a SalesReceipt, specify the Customer column and at least one Line Item. All Line Item columns can be used for inserting multiple Line Items for a new SalesReceipt transaction. For example, the following will insert a new SalesReceipt with two Line Items:

INSERT INTO SalesReceiptLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Cook, Brian', 'Repairs', 1)

INSERT INTO SalesReceiptLineItems#TEMP (CustomerName, ItemName, ItemQuantity) VALUES ('Cook, Brian', 'Removal', 2)

INSERT INTO SalesReceiptLineItems (CustomerName, ItemName, ItemQuantity) SELECT CustomerName, ItemName, ItemQuantity FROM SalesReceiptLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format SalesReceiptId|ItemLineId.

SalesReceiptId String False

SalesReceipts.ID

255

The item identifier.

ReferenceNumber String False 21

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, but not the QuickBooks-generated Id.

CustomerName String False

Customers.FullName

1000

Customer name this transaction is recorded under.

CustomerId String False

Customers.ID

255

Customer Id this transaction is recorded under.

Date Date False

Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ShipMethod String False

ShippingMethods.Name

1000

Shipping method.

ShipMethodId String False

ShippingMethods.ID

255

Shipping method.

ShipDate Date False

Shipping date.

Memo String False 5000

Memo regarding this transaction.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

DueDate Date False

The date when payment is due.

TotalAmount Decimal True

Total amount for this transaction.

Message String False

CustomerMessages.Name

101

Message to the customer.

MessageId String False

CustomerMessages.ID

255

Message to the customer.

SalesRep String False

SalesReps.Initial

5

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

255

Reference to the sales rep.

Template String False

Templates.Name

100

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

255

The Id of an existing template to apply to the transaction.

ExchangeRate Double False

Currency exchange rate for this sales receipt.

FOB String False 13

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address.

BillingState String False 255

State name for the billing address.

BillingPostalCode String False 30

Postal code for the billing address.

BillingCountry String False 255

Country for the billing address.

BillingNote String False 41

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address.

ShippingState String False 255

State name for the shipping address.

ShippingPostalCode String False 30

Postal code for the shipping address.

ShippingCountry String False 255

Country for the shipping address.

ShippingNote String False 41

Note for the shipping address.

Subtotal Decimal True

Gross subtotal. This does not include tax or the amount already paid.

Tax Double True

Total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

Percentage charged for sales tax.

IsPending Boolean False

Transaction status (whether this transaction has been completed or it is still pending).

IsToBePrinted Boolean False

Whether this transaction is to be printed.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. This is only available in the UK and CA editions.

IsToBeEmailed Boolean False

When true, if no email address is on file for the customer the transaction will fail.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item identifier.

ItemGroup String False

Items.FullName

100

Item group name. Reference to a group of line items this item is part of.

ItemGroupId String False

Items.ID

255

Item group Id. Reference to a group of line items this item is part of.

ItemDescription String False 5000

A description of the item.

ItemQuantity Double False

The quantity of the item or item group specified in this line.

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemRate Double False

The unit rate charged for this item.

ItemRatePercent Double False

The rate percent charged for this item.

ItemTaxCode String False

SalesTaxCodes.Name

3

Sales tax information for this item (taxable or nontaxable).

ItemTaxCodeId String False

SalesTaxCodes.ID

255

Sales tax information for this item.

ItemAmount Decimal False

Total amount for this item.

ItemInventorySiteName String False

InventorySites.Name

31

The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteId String False

InventorySites.ID

255

The inventory site Id of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemSerialNumber String False 5000

The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemLotNumber String False 40

The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory add-on.

ItemClass String False

Class.FullName

1000

The class name of the item.

ItemClassId String False

Class.ID

255

The class Id of the item.

ItemUOMSetFullName String False

UnitOfMeasure.Name

1000

Indicates the price of something as a percent.

ItemUOMSetListID String False

UnitOfMeasure.ID

1000

Indicates the price of something as a percent.

ItemIsGetPrintItemsInGroup String False 1000

If true, a list of this group's individual items their amounts will appear on printed forms.

CheckNumber String False 25

Check number.

PaymentMethod String False

PaymentMethods.Name

100

Payment method.

PaymentMethodId String False

PaymentMethods.ID

255

Payment method.

DepositAccount String False

Accounts.Name

1000

Account name where this payment is deposited.

DepositAccountId String False

Accounts.ID

255

Account name where this payment is deposited.

CustomerTaxCode String True

SalesTaxCodes.Name

3

The tax code specific to this customer.

CustomerTaxCodeId String True

SalesTaxCodes.ID

255

The tax code specific to this customer.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

An identifier used for versioning for this copy of the object.

TimeModified Datetime True

When the sales receipt was last modified.

TimeCreated Datetime True

When the sales receipt was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ItemPriceLevel String

Item price level name. QuickBooks will not return the price level.

ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



SalesReceipts

Create, update, delete, and query QuickBooks Sales Receipts.

Table Specific Information

SalesReceipts may be inserted, queried, or updated via the SalesReceipts or SalesReceiptLineItems tables. SalesReceipts may be deleted by using the SalesReceipts table.

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesReceipts are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, DepositAccount, and DepositAccountId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM SalesReceipts WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a SalesReceipt, specify the Customer and at least one Line Item. The ItemAggregate columns may be used to specify an XML aggregate of Line Item data. The columns that may be used in these aggregates are defined in the SalesReceiptLineItems table and it starts with Item. For example, the following will insert a new SalesReceipt with two Line Items:

INSERT INTO SalesReceipts (CustomerName, ItemAggregate) 

VALUES ('Cook, Brian', 

'<SalesReceiptLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

</SalesReceiptLineItems>')

To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

ReferenceNumber String False 21

Transaction reference number.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, but not the QuickBooks-generated Id.

CustomerName String False

Customers.FullName

1000

Customer name this transaction is recorded under.

CustomerId String False

Customers.ID

255

Customer Id this transaction is recorded under.

Date Date False

Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

ShipMethod String False

ShippingMethods.Name

1000

Shipping method.

ShipMethodId String False

ShippingMethods.ID

255

Shipping method.

ShipDate Date False

Shipping date.

Memo String False 5000

Memo regarding this transaction.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

DueDate Date False

The date when payment is due.

TotalAmount Decimal True

Total amount for this transaction.

Message String False

CustomerMessages.Name

101

Message to the customer.

MessageId String False

CustomerMessages.ID

255

Message to the customer.

SalesRep String False

SalesReps.Initial

5

Reference to (the initials of) the sales rep.

SalesRepId String False

SalesReps.ID

255

Reference to the sales rep.

Template String False

Templates.Name

100

The name of an existing template to apply to the transaction.

TemplateId String False

Templates.ID

255

The Id of an existing template to apply to the transaction.

ExchangeRate Double False

Currency exchange rate for this sales receipt.

FOB String False 13

Freight on board: The place to ship from.

BillingAddress String True

Full billing address returned by QuickBooks.

BillingLine1 String False 500

First line of the billing address.

BillingLine2 String False 500

Second line of the billing address.

BillingLine3 String False 500

Third line of the billing address.

BillingLine4 String False 500

Fourth line of the billing address.

BillingLine5 String False 41

Fifth line of the billing address.

BillingCity String False 255

City name for the billing address.

BillingState String False 255

State name for the billing address.

BillingPostalCode String False 30

Postal code for the billing address.

BillingCountry String False 255

Country for the billing address.

BillingNote String False 41

Note for the billing address.

ShippingAddress String True

Full shipping address returned by QuickBooks.

ShippingLine1 String False 500

First line of the shipping address.

ShippingLine2 String False 500

Second line of the shipping address.

ShippingLine3 String False 500

Third line of the shipping address.

ShippingLine4 String False 500

Fourth line of the shipping address.

ShippingLine5 String False 41

Fifth line of the shipping address.

ShippingCity String False 255

City name for the shipping address.

ShippingState String False 255

State name for the shipping address.

ShippingPostalCode String False 30

Postal code for the shipping address.

ShippingCountry String False 255

Country for the shipping address.

ShippingNote String False 41

Note for the shipping address.

Subtotal Decimal True

Gross subtotal. This does not include tax or the amount already paid.

Tax Double True

Total sales tax applied to this transaction.

TaxItem String False

SalesTaxItems.Name

100

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxItemId String False

SalesTaxItems.ID

255

A sales tax item refers to a single sales tax that is collected at a specified rate and paid to a single agency.

TaxPercent Double True

Percentage charged for sales tax.

IsPending Boolean False

Transaction status (whether this transaction has been completed or it is still pending).

IsToBePrinted Boolean False

Whether this transaction is to be printed.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount. This is only available in UK and CA editions.

IsToBeEmailed Boolean False

When true, if no email address is on file for the customer the transaction will fail.

ItemCount Integer True

The count of item entries for this transaction.

ItemAggregate String False 5000

An aggregate of the line item data which can be used for adding a sales receipt and its line item data.

CheckNumber String False 25

Check number.

PaymentMethod String False

PaymentMethods.Name

100

Payment method.

PaymentMethodId String False

PaymentMethods.ID

255

Payment method.

DepositAccount String False

Accounts.FullName

1000

Account name where this payment is deposited.

DepositAccountId String False

Accounts.ID

255

Account name where this payment is deposited.

CustomerTaxCode String True

SalesTaxCodes.Name

3

The tax code specific to this customer.

CustomerTaxCodeId String True

SalesTaxCodes.ID

255

The tax code specific to this customer.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

An identifier used for versioning for this copy of the object.

TimeModified Datetime True

When the sales receipt was last modified.

TimeCreated Datetime True

When the sales receipt was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
Item* String

All line-item-specific columns may be used in insertions.



SalesReps

Create, update, delete, and query QuickBooks Sales Rep entities.

Table Specific Information
Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for SalesReps are Id, TimeModified, Initial, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM SalesReps WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Initial LIKE '%12345%'
Insert
To insert a SalesRep, specify the Initial column and an existing SalesRepEntityRef. The SalesRepEntityRef can be taken from an existing entity (Employee, Vendor, or OtherName).
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The Id of the sales rep.

Initial String False 5

The initials of the sales rep. These must be unique for each record.

IsActive Boolean False

Boolean indicating if the sales rep is active.

SalesRepEntityRef_FullName String False 1000

Refers to the sales rep's full name on the employee, vendor, or other-name list. You may specify either SalesRepEntityRef_FullName or SalesRepEntityRef_ListId on insert/update statements, but not both.

SalesRepEntityRef_ListId String False 255

Refers to the sales rep's Id on the employee, vendor, or other-name list. You may specify either SalesRepEntityRef_FullNamee or SalesRepEntityRef_ListId on insert/update statements, but not both.

EditSequence String True 16

A string indicating the revision of the sales rep.

TimeCreated Datetime True

The time the sales rep was created.

TimeModified Datetime True

The time the sales rep was modified.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
MaxResults String

Maximum number of results to return.



SalesTaxCodes

Create, update, delete, and query QuickBooks Sales Tax Codes.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

Name String False 3

The name of the sales tax code.

Description String False 31

The description of the sales tax code.

IsActive Boolean False

Whether or not the other name is active.

IsTaxable Boolean False

Whether or not the other name is taxable.

ItemPurchaseTaxRef_FullName String False 1000

Refers to the purchase tax item. Only available in international versions of QuickBooks.

ItemPurchaseTaxRef_ListId String False 255

Refers to the purchase tax item. Only available in international versions of QuickBooks.

ItemSalesTaxRef_FullName String False

SalesTaxItems.Name

1000

Refers to the sales tax item. Only available in international versions of QuickBooks.

ItemSalesTaxRef_ListId String False

SalesTaxItems.ID

255

Refers to the sales tax item. Only available in international versions of QuickBooks.

TimeCreated Datetime True

The datetime the sales tax code was made.

TimeModified Datetime True

The last datetime the sales tax code was modified.

EditSequence String True 16

An identifier used for versioning for this copy of the object.



SalesTaxItems

Create, update, delete, and query QuickBooks Sales Tax Items.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

Name String False 31

The name of the other name. This is required to have a value when inserting.

IsActive Boolean False

Whether or not the other name is active.

ClassRef_FullName String False

Class.FullName

1000

A reference to the class of the transaction. Requires QBXML version 12.0 or later.

ClassRef_ListID String False

Class.ID

255

A reference to the class of the transaction. Requires QBXML version 12.0 or later.

ItemDesc String False 4096

A description for the sales tax item.

TaxRate Double False

The tax rate. If a nonzero TaxRate is specified, then TaxVendorRef is required.

TaxVendorRef_FullName String False

Vendors.Name

1000

Refers to the tax agency to whom collected taxes are owed. This will be a vendor on the vendor list.

TaxVendorRef_ListID String False

Vendors.ID

255

Refers to the tax agency to whom collected taxes are owed. This will be a vendor on the vendor list.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

An identifier used for versioning for this copy of the object.

TimeModified Datetime True

When the sales tax item was last modified.

TimeCreated Datetime True

When the sales tax item was created.



ShippingMethods

Create, update, delete, and query QuickBooks Shipping Methods.

Table Specific Information
Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for ShippingMethods are Id, TimeModified, Name, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM ShippingMethods WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Name LIKE '%12345%'
Insert
To insert a ShippingMethod, specify the Name column.
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the shipping method.

Name String False 15

The name of the shipping method.

IsActive Boolean False

Boolean determining if the shipping method is active.

EditSequence String True 16

A string indicating the revision of the shipping method.

TimeCreated Datetime True

The time the shipping method was created.

TimeModified Datetime True

The last time the shipping method was modified.



StandardTerms

Create, update, delete, and query QuickBooks Standard Terms.

Table Specific Information
Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for StandardTerms records are Id, TimeModified, Name, and IsActive. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM StandardTerms WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Name LIKE '%12345%'
Insert
To insert a StandardTerm, specify the Name column.
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The Id of the standard term.

Name String False 100

The name of the standard term.

IsActive Boolean False

Boolean indicating if the standard term is active.

StdDueDays Integer False

The number of days until payment is due.

StdDiscountDays Integer False

If payment is received within StdDiscountDays number of the days, then DiscountPct will apply to the payment.

DiscountPct Double False

If payment is received within StdDiscountDays number of days, then this discount will apply to the payment. DiscountPct must be between 0 and 100.

EditSequence String True 16

A string indicating the revision of the standard term.

TimeCreated Datetime True

The time the standard term was created.

TimeModified Datetime True

The time the standard term was modified.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
MaxResults String

Maximum number of results to return.



StatementCharges

Create, update, delete, and query QuickBooks Statement Charges.

Table Specific Information

To add a StatementCharge, specify the CustomerName or CustomerId and the ItemName or ItemId.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for StatementCharges are Id, Date, TimeModified, ReferenceNumber, CustomerName, CustomerId, IsPaid, AccountsReceivable, and AccountsReceivableId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM StatementCharges WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

ReferenceNumber String False

Transaction reference number.

CustomerName String False

Customers.FullName

1000

Customer name this transaction is recorded under. Either CustomerName or CustomerId must have a value when inserting.

CustomerId String False

Customers.ID

255

Customer Id this transaction is recorded under. Either CustomerName or CustomerId must have a value when inserting.

Date Date False

Transaction date.

ItemName String False

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

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

OverrideUnitOfMeasure String False

UnitOfMeasure.Name

100

When you modify a transaction line to change the unit of measure used in that line, you use this to specify the UOM set within which you are choosing an available unit of measure. Only available in QBXML Version 7.0 and above.

OverrideUnitOfMeasureId String False

UnitOfMeasure.ID

When you modify a transaction line to change the unit of measure used in that line, you use this to specify the UOM set within which you are choosing an available unit of measure. Only available in QBXML Version 7.0 and above.

Rate Double False

The unit rate charged for this item.

Amount Decimal False

Amount of the transaction.

Balance Double True

The balance remaining on the transaction.

Description String False

A textual description of the StatementCharge.

AccountsReceivable String False

Accounts.FullName

1000

A reference to the name of the accounts-receivable account where the money received from this transaction will be deposited.

AccountsReceivableId String False

Accounts.ID

A reference to the Id of the accounts-receivable account where the money received from this transaction will be deposited.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

A reference to the class of the transaction.

BilledDate Date False

Date when the customer was billed.

DueDate Date False

Date when the payment is due.

IsPaid Boolean True

Indicates whether this statement charge has been paid.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

An identifier used for versioning for this copy of the object.

TimeModified Datetime True

When the statement charge was last modified.

TimeCreated Datetime True

When the statement charge was created.



TimeTracking

Create, update, delete, and query QuickBooks Time Tracking events.

Table Specific Information

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for TimeTracking entries are Id, TimeModified, Date, EmployeeName, and EmployeeId. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM TimeTracking WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To insert a TimeTracking entry, specify the Employee and Duration columns.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

An Id is an alphanumerical identifier assigned by the server whenever an object is added to QuickBooks. It is guaranteed to be unique across all objects of the same type.

BillableStatus String False 15

The billing status of this line item. If the billing status is empty (that is, if no billing status appears in QuickBooks), then no BillableStatus value will be returned.

The allowed values are Empty, Billable, NotBillable, HasBeenBilled.

Date Date False

The date of the transaction. The standard formatting for dates is YYYY-MM-DD; i.e., September 2, 2002 is formatted as 2002-09-02. When getting the value of a date property, the date will always be in this format. This is required to have a value when inserting.

CustomerName String False

Customers.FullName

1000

The Customer property indicates the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerID is empty and BillableStatus is not NotBillable.

CustomerId String False

Customers.ID

255

The Customer property indicates the customer who has purchased goods or services from the company. This is required to have a value when inserting if CustomerName is empty and BillableStatus is not NotBillable.

Duration String False 50

The duration of time being tracked. Time is represented in hours followed by minutes, with the character ':' (colon) separating them. For instance, two hours and thirty minutes is represented as '2:30'.

EmployeeName String False

Employees.Name

1000

A reference to the employee or subcontractor whose time is being tracked. The person is typically an employee but may be a vendor or defined in an other-name record as well. This is required to have a value when inserting if EmployeeId is empty.

EmployeeId String False

Employees.ID

255

A reference to the employee or subcontractor whose time is being tracked. The person is typically an employee but may be a vendor or defined in an other-name record as well. This is required to have a value when inserting if EmployeeName is empty.

Notes String False 5000

Notes about this transaction.

Class String False

Class.FullName

1000

A reference to the class of the transaction.

ClassId String False

Class.ID

255

A reference to the class of the transaction.

PayrollWageItemName String False

PayrollWageItems.Name

100

A payment scheme, such as Regular Pay, Overtime Pay, etc. This property may only be specified if (1) the employee specified refers to an employee, and not a vendor or subcontractor, and (2) the 'Use time data to create paychecks' option is selected for this employee (from within the QuickBooks UI.)

PayrollWageItemId String False

PayrollWageItems.ID

255

A payment scheme, such as Regular Pay, Overtime Pay, etc. This property may only be specified if (1) the employee specified refers to an employee, and not a vendor or subcontractor, and (2) the 'Use time data to create paychecks' option is selected for this employee from within the QuickBooks UI.

ServiceItemName String False

Items.Name

1000

The type of work being performed. If a Customer is not specified, ServiceItem is not needed. If BillableStatus is set to Billable, then both ServiceItem and Customer are required. This is required to have a value when inserting if ServiceItemID is empty.

ServiceItemId String False

Items.ID

255

The type of work being performed. If a Customer is not specified, ServiceItem is not needed. If BillableStatus is set to Billable, then both ServiceItem and Customer are required. This is required to have a value when inserting if ServiceItemName is empty.

EditSequence String True 16

An identifier used for versioning for this copy of the object.

TimeModified Datetime True

When the time-tracking event was last modified.

TimeCreated Datetime True

When the time-tracking event was created.



ToDo

Create, update, delete, and query QuickBooks To Do entries.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the vendor type.

Notes String False

Notes on this to do entry.

IsActive Boolean False

Boolean determining if the vendor type is active.

Type String False

Type of this to do entry. Requires QBXML Version 13.0 or higher.

Priority String False

Priority of this to do entry. Requires QBXML Version 13.0 or higher.

IsDone Boolean False

Whether or not this to do entry is complete.

ReminderDate Datetime False

Reminder date for this to do entry.

ReminderTime String False

Reminder time for this to do entry. Requires QBXML Version 13.0 or higher.

EditSequence String True 16

A string indicating the revision of the payment method.

TimeCreated Datetime True

The time the vendor type was created.

TimeModified Datetime True

The last time the vendor type was modified.



TransferInventory

Query and delete QuickBooks Transfer Inventory transactions. Transfer Inventory is available in only QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on.

Table Specific Information

TransferInventory transactions may be queried via the TransferInventory or TransferInventoryLineItems tables. TransferInventory transactions may be added by using the TransferInventoryLineItems table. TransferInventory transactions may be deleted by using the TransferInventory table. Updates to existing TransferInventory transactions are not supported at this time.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the TransferInventory table are Id, TimeModified, TxnDate, and RefNumber. TimeModified and TxnDate may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. RefNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM TransferInventoryLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND RefNumber LIKE '%12345%'

To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

TxnDate Date False

The date of the transaction.

TxnNumber Integer True

An identifying number for this transaction.

RefNumber String False 21

The transaction reference number.

FromInventorySiteRef_ListID String False

InventorySites.ID

255

The site inventory was transfered from.

FromInventorySiteRef_FullName String False

InventorySites.Name

31

The site inventory was transfered from.

ToInventorySiteRef_ListID String False

InventorySites.ID

255

The site inventory was transfered to.

ToInventorySiteRef_FullName String False

InventorySites.Name

31

The site inventory was transfered to.

Memo String False 5000

Additional information about the transaction.

ExternalGUID String False

Allows for the attachment of a user defined GUID value.

TransferInventoryLineAggregate String False 5000

An aggregate of the line item data which can be used for adding a transfer inventory and its line item data.

TimeCreated Datetime True

The datetime the transaction was made.

TimeModified Datetime True

The last datetime the transaction was modified.

EditSequence String True 16

An identifier used for versioning for this copy of the object.



TransferInventoryLineItems

Create and query QuickBooks Transfer Inventory Line Items. Transfer Inventory is available in only QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on.

Table Specific Information

TransferInventory transactions may be queried via the TransferInventory or TransferInventoryLineItems tables. TransferInventory transactions may be added by using the TransferInventoryLineItems table. Transfer-inventory transactions may be deleted by using the TransferInventory table. Updates to existing TransferInventory transactions are not supported at this time.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the TransferInventory table are Id, TxnDate, TimeModified, and RefNumber. TimeModified and TxnDate may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. RefNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM TransferInventoryLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND RefNumber LIKE '%12345%'
Insert

To add a TransferInventory transaction, specify a FromInventorySite, ToInventorySite, and at least one Line Item. All Line Item columns can be used for inserting multiple Line Items for a new TransferInventory transaction. For example, the following will insert a new TransferInventory transaction with one Line Items:

INSERT INTO TransferInventoryLineItems#TEMP (FromInventorySiteRef_FullName, ToInventorySiteRef_FullName, ItemRef_FullName,QuantityToTransfer) VALUES ('Site A', 'Site B', 'Cabinets', 10)

INSERT INTO TransferInventoryLineItems#TEMP (FromInventorySiteRef_FullName, ToInventorySiteRef_FullName, ItemRef_FullName,QuantityToTransfer) VALUES ('Site A', 'Site B', 'Door Knobs', 12)

INSERT INTO TransferInventoryLineItems (FromInventorySiteRef_FullName, ToInventorySiteRef_FullName, ItemRef_FullName,QuantityToTransfer ) SELECT FromInventorySiteRef_FullName, ToInventorySiteRef_FullName, ItemRef_FullName,QuantityToTransfer  FROM TransferInventoryLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format TransferInventoryId|TransferInventoryLineRet_TxnLineID.

TransferInventoryId String False 255

The item identifier.

TxnDate Date False

The date of the transaction.

TxnNumber Integer True

An identifying number for this transaction.

RefNumber String False 21

The transaction reference number.

FromInventorySiteRef_ListID String False

InventorySites.ID

255

The site inventory was transfered from.

FromInventorySiteRef_FullName String False

InventorySites.Name

31

The site inventory was transfered from.

ToInventorySiteRef_ListID String False

InventorySites.ID

255

The site inventory was transfered to.

ToInventorySiteRef_FullName String False

InventorySites.Name

31

The site inventory was transfered to.

Memo String False 5000

Additional information about the transaction.

ExternalGUID String False

Allows for the attachment of a user-defined GUID value.

TransferInventoryLineRet_TxnLineID String True 255

Identifying number for the transaction line.

TransferInventoryLineRet_ItemRef_ListID String False

Items.ID

255

A reference to the item that was transfered.

TransferInventoryLineRet_ItemRef_FullName String False

Items.FullName

Name of the item that was transfered.

TransferInventoryLineRet_FromInventorySiteLocationRef_ListID String False 255

A reference to the location to transfer from.

TransferInventoryLineRet_FromInventorySiteLocationRef_FullName String False

Name of the location to transfer from.

TransferInventoryLineRet_ToInventorySiteLocationRef_ListID String False 255

A reference to the location to transfer to.

TransferInventoryLineRet_ToInventorySiteLocationRef_FullName String False

Name of the location to transfer to.

TransferInventoryLineRet_QuantityToTransfer Double False

Quantity of items to transfer. This is an input only. Check the TransferInventoryLineRet_QuantityTransferred for the response.

TransferInventoryLineRet_QuantityTransferred Double True

Quantity of items that were transfered. This is an output only.

TransferInventoryLineRet_SerialNumber String False 5000

The serial number of the asset.

TransferInventoryLineRet_LotNumber String False 40

A lot number the item is stored on.

TimeCreated Datetime True

The datetime the transaction was made.

TimeModified Datetime True

The last datetime the transaction was modified.

EditSequence String True 16

An identifier used for versioning for this copy of the object.



Transfers

Create, update, and query QuickBooks transfers. Requires QBXML version 12.0 or higher.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

TxnNumber String True 21

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

TxnDate Date False

The date of the transaction.

TransferFromAccountRef_ListID String False

Accounts.ID

255

The Id for the account from which the funds will be transfered.

TransferFromAccountRef_FullName String False

Accounts.FullName

1000

The account from which the funds will be transfered.

FromAccountBalance Double True

The balance of the account from which the funds will be transfered.

TransferToAccountRef_ListID String False

Accounts.ID

255

The Id for the account to which the funds will be transfered.

TransferToAccountRef_FullName String False

Accounts.FullName

1000

The account to which the funds will be transfered.

ToAccountBalance Double True

The balance of the account to which the funds will be transfered.

ClassRef_ListID String False

Class.ID

255

A reference to the class of the transaction.

ClassRef_FullName String False

Class.FullName

1000

A reference to the class of the transaction.

Amount Decimal False

The total amount for this transfer.

Memo String False 5000

Memo for the transaction.

TimeCreated Datetime True

The datetime the other name was made.

TimeModified Datetime True

The last datetime the other name was modified.

EditSequence String True 16

An identifier used for versioning for this copy of the object.



UnitOfMeasure

Create, update, delete, and query QuickBooks units of measure. QuickBooks requires QBXML version 7.0 or higher to use this table.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the unit of measure.

Name String False 31

The name of the unit of measure.

IsActive Boolean False

Boolean determining if the unit of measure is active.

UnitOfMeasureType String False 1000

The type of the unit of measure such as Count.

BaseUnit_Name String False 31

The name of the base unit of measure.

BaseUnit_Abbreviation String False 31

The abbreviation for the base unit of measure.

RelatedUnitAggregate String False 5000

An XML aggregate containing the related units of measure.

DefaultUnitAggregate String False 5000

An XML aggregate containing the default units of measure.

EditSequence String True 16

A string indicating the revision of the unit of measure entity.

TimeCreated Datetime True

The time the unit of measure entity was created.

TimeModified Datetime True

The last time the unit of measure entity was modified.



UnitOfMeasureDefaultUnits

Create and query QuickBooks unit-of-measure default units. QuickBooks requires QBXML version 7.0 or higher to use this table.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the unit-of-measure default unit.

UnitOfMeasureSetId String False

UnitOfMeasure.ID

255

The item identifier of the unit of measure.

Name String False 31

The name of the unit of measure.

IsActive Boolean False

Boolean determining if the unit of measure is active.

UnitOfMeasureType String False 1000

The type of unit of measure, such as Count.

BaseUnit_Name String False 31

The name of the base unit of measure.

BaseUnit_Abbreviation String False 31

The abbreviation for the base unit of measure.

DefaultUnit_UnitUsedFor String False 100

What the default unit is used for.

DefaultUnit_Unit String False 31

The default unit.

EditSequence String True 16

A string indicating the revision of the record.

TimeCreated Datetime True

The time the record was created.

TimeModified Datetime True

The last time the record was modified.



UnitOfMeasureRelatedUnits

Create and query QuickBooks unit-of-measure related units. QuickBooks requires QBXML version 7.0 or higher to use this table.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the unit-of-measure related unit.

UnitOfMeasureSetId String False

UnitOfMeasure.ID

255

The item identifier of the unit of measure.

Name String False 31

The name of the unit of measure.

IsActive Boolean False

Boolean determining if the unit of measure is active.

UnitOfMeasureType String False 1000

The type of unit of measure, such as Count.

BaseUnit_Name String False 31

The name of the base unit of measure.

BaseUnit_Abbreviation String False 31

The abbreviation for the base unit of measure.

RelatedUnit_Name String False 31

The name of the related unit of measure.

RelatedUnit_Abbreviation String False 31

The abbreviation of the related unit of measure.

RelatedUnit_ConversionRatio String False 5000

The conversion ratio of the related unit of measure.

EditSequence String True 16

A string indicating the revision of the record.

TimeCreated Datetime True

The time the record was created.

TimeModified Datetime True

The last time the record was modified.



VehicleMileage

Create, update, delete, and query QuickBooks Vehicle Mileage entities. QuickBooks requires QBXML version 6.0 or higher to use this table.

Table Specific Information
Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the VehicleMileage table are Id, Name, and TimeModified. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM VehicleMileage WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Name LIKE '%12345%'
Insert
To insert a VehicleMileage entry, specify an existing VehicleRef and either TotalMiles or both OdometerStart and OdometerEnd.
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The Id of the vehicle mileage.

VehicleRef_FullName String False 100

The vehicle for use in vehicle mileage transactions. Each vehicle name must be unique.

VehicleRef_ListID String False 255

The reference Id for the vehicle mileage transaction.

CustomerRef_FullName String False

Customers.FullName

1000

The full name of a referenced customer in QuickBooks. You may specify only CustomerRef_FullName or CustomerRef_ListId on insert/update statements and not both.

CustomerRef_ListID String False

Customers.ID

255

The Id of the referenced customer in QuickBooks. You may specify only CustomerRef_FullName or CustomerRef_ListId on insert/update statements and not both.

ItemRef_FullName String False

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

255

A reference to the Id of an item in QuickBooks. You may specify only ItemRef_FullName or ItemRef_ListId on insert/update statements and not both.

ClassRef_FullName String False

Class.FullName

1000

A reference to the full name of a class in QuickBooks. You may specify only ClassRef_FullName or ClassRef_ListId on insert/update statements and not both.

ClassRef_ListID String False

Class.ID

255

A reference to the Id of a class in QuickBooks. You may specify only ClassRef_FullName or ClassRef_ListId on insert/update statements and not both.

TripStartDate String False

Date the trip began. If left blank on an insert, the current date at the time of the transaction will be used.

TripEndDate String False

The date the trip ended. If left blank on an insert, the current date at the time of the transaction will be used.

OdometerStart Integer False

Odometer reading at the start of the trip. If TotalMiles is specified, you cannot specify OdometerStart and OdometerEnd.

OdometerEnd Integer False

Odometer reading at the end of the trip. If TotalMiles is specified, you cannot specify OdometerStart and OdometerEnd.

TotalMiles Double False

Total trip miles. If TotalMiles is specified, you cannot specify OdometerStart and OdometerEnd.

Notes String False 5000

Additional information.

BillableStatus String False 13

The billig status of the vehicle mileage.

The allowed values are Billable, NotBillable, HasBeenBilled.

StandardMileageRate Double False

The mileage rate currently allowed by the tax authority for vehicle expenses.

StandardMileageTotalAmount Double False

Amount calculated by multiplying the total trip miles in the current vehicle mileage transaction by the standard mileage rate currently in use.

BillableRate Double False

In a billable vehicle mileage transaction, refers to the rate being used to charge mileage to a customer. The rate is specified in the service item or the other charge item that is referenced in the ItemRef columns.

BillableAmount Decimal False

In a billable vehicle mileage transaction, this refers to the total charge that QuickBooks calculates by by multiplying the trip total mileage by the rate specified in the item referenced by the ItemRef columns.

EditSequence String True 16

A string indicating the revision of the vehicle mileage transaction.

TimeCreated Datetime True

When the vehicle mileage was last modified.

TimeModified Datetime True

When the vehicle mileage was created.



VendorCreditExpenseItems

Create, update, delete, and query QuickBooks Vendor Credit Expense Line Items.

Table Specific Information

VendorCredits may be inserted, updated, or queried via the VendorCredits, VendorCreditExpenseItems, or VendorCreditLineItems tables. VendorCredits may be deleted by using the VendorCredits table.

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the VendorCredits table are Id, Date, TimeModified, VendorName, VendorId, AccountsPayableId, and AccountsPayableName. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM VendorCreditExpenseItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a VendorCredit, specify the Vendor and at least one Expense or Line Item. All Expense Line Item columns can be used for inserting multiple Expense Line Items for a new VendorCredit transaction. For example, the following will insert a new VendorCredit with two Expense Line Items:

INSERT INTO VendorCreditExpenseItems#TEMP (VendorName, ExpenseAccount, ExpenseAmount) VALUES ('A Cheung Limited', 'Utilities:Telephone', 52.25)

INSERT INTO VendorCreditExpenseItems#TEMP (VendorName, ExpenseAccount, ExpenseAmount) VALUES ('A Cheung Limited', 'Professional Fees:Accounting', 235.87)

INSERT INTO VendorCreditExpenseItems (VendorName, ExpenseAccount, ExpenseAmount) SELECT VendorName, ExpenseAccount, ExpenseAmount FROM VendorCreditExpenseItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format VendorCreditId|ExpenseLineId.

VendorCreditId String False

VendorCredits.ID

255

The Id of the VendorCredit transaction.

VendorName String False

Vendors.Name

1000

Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.

VendorId String False

Vendors.ID

255

Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

ReferenceNumber String False 21

Reference number for the transaction.

AccountsPayable String False

Accounts.FullName

1000

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

255

Reference to the accounts-payable account.

Amount Decimal True

Amount of the transaction.

Memo String False 5000

Memo for the transaction.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount.

TaxCode String False

SalesTaxCodes.Name

3

The type of sales tax that will be charged for this vendor credit.

TaxCodeId String False

SalesTaxCodes.ID

255

The type of sales tax that will be charged for this vendor credit.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

ExchangeRate String False

Indicates the exchange rate for the transaction.

ExpenseLineId String True 255

The line item identifier.

ExpenseLineNumber String True 255

The expense line number.

ExpenseAccount String False

Accounts.FullName

1000

The account name for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAccountId String False

Accounts.ID

255

The account Id for this expense line. ExpenseAccount or ExpenseAccountId must have a value when inserting.

ExpenseAmount Decimal False

The total amount of this expense line.

ExpenseBillableStatus String False 13

The billing status of this expense line.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

The default value is EMPTY.

ExpenseCustomer String False

Customers.FullName

1000

The customer associated with this expense line.

ExpenseCustomerId String False

Customers.ID

255

The customer associated with this expense line.

ExpenseClass String False

Class.FullName

1000

The class name of this expense.

ExpenseClassId String False

Class.ID

255

The class Id of this expense.

ExpenseTaxCode String False

SalesTaxCodes.Name

3

Sales tax information for this item (taxable or non-taxable).

ExpenseTaxCodeId String False

SalesTaxCodes.ID

255

Sales tax information for this item (taxable or non-taxable).

ExpenseMemo String False 5000

A memo for this expense line.

TimeModified Datetime True

When the inventory assembly was last modified.

TimeCreated Datetime True

When the inventory assembly was created.



VendorCreditLineItems

Create, update, delete, and query QuickBooks Vendor Credit Line Items.

Table Specific Information

VendorCredits may be inserted, updated, or queried via the VendorCredits, VendorCreditExpenseItems, or VendorCreditLineItems tables. VendorCredits may be deleted by using the VendorCredits table.

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the VendorCredits table are Id, Date, TimeModified, VendorName, VendorId, AccountsPayableId, and AccountsPayableName. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM VenderCreditLineItems WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a VendorCredit, specify a Vendor and at least one Expense or Line Item. All Line Item columns can be used for inserting multiple Line Items for a new VendorCredit transaction. For example, the following will insert a new VendorCredit with two Line Items:

INSERT INTO VendorCreditLineItems#TEMP (VendorName, ItemName, ItemQuantity) VALUES ('A Cheung Limited', 'Repairs', 1)

INSERT INTO VendorCreditLineItems#TEMP (VendorName, ItemName, ItemQuantity) VALUES ('A Cheung Limited', 'Removal', 2)

INSERT INTO VendorCreditLineItems (VendorName, ItemName, ItemQuantity) SELECT VendorName, ItemName, ItemQuantity FROM VendorCreditLineItems#TEMP
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier in the format VendorCreditId|ItemLineId.

VendorCreditId String False

VendorCredits.ID

255

The Id of the VendorCredit transaction.

VendorName String False

Vendors.Name

1000

Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.

VendorId String False

Vendors.ID

255

Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

ReferenceNumber String False 21

Reference number for the transaction.

AccountsPayable String False

Accounts.Name

1000

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

255

Reference to the accounts-payable account.

Amount Decimal True

Amount of the transaction.

Memo String False 5000

Memo for the transaction.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount.

TaxCode String False

SalesTaxCodes.Name

3

The type of sales tax that will be charged for this vendor credit.

TaxCodeId String False

SalesTaxCodes.ID

255

The type of sales tax that will be charged for this vendor credit.

ExchangeRate String False

Indicates the exchange rate for the transaction.

ItemLineId String True 255

The line item identifier.

ItemLineNumber String True 255

The line item number.

ItemAmount Decimal False

The total amount of this vendor credit line item. This should be a positive number.

ItemClass String False

Class.FullName

1000

Specifies the class of the vendor credit line item.

ItemClassId String False

Class.ID

255

Specifies the class of the vendor credit line item.

ItemTaxCode String False

SalesTaxCodes.Name

3

Sales tax information for this item (taxable or non-taxable).

ItemTaxCodeId String False

SalesTaxCodes.ID

255

Sales tax information for this item (taxable or non-taxable).

ItemName String False

Items.FullName

The item name.

ItemId String False

Items.ID

255

The item Id.

ItemGroup String False

Items.FullName

100

Item group name. Reference to a group of line items this item is part of.

ItemGroupId String False

Items.ID

255

Item group name. Reference to a group of line items this item is part of.

ItemDescription String False 5000

A description of the item.

ItemQuantity Double False

The quantity of the item or item group specified in this line.

ItemUnitOfMeasure String False

UnitOfMeasure.Name

31

In a transaction line item, the name of the unit of measure is selected from within the item's available units. If the company file is enabled only for single unit of measure per item, this must be the base unit. Only available in QBXML Version 7.0 and above.

ItemCost Double False

The unit cost for an item.

ItemBillableStatus String False 13

Billing status of the item.

The allowed values are EMPTY, BILLABLE, NOTBILLABLE, HASBEENBILLED.

The default value is EMPTY.

ItemCustomer String False

Customers.FullName

1000

The name of the customer who ordered the item.

ItemCustomerId String False

Customers.ID

255

The Id of the customer who ordered the item.

ItemInventorySiteId String False

InventorySites.ID

31

The inventory site Id of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteName String False

InventorySites.Name

255

The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteLocationId String False 31

The inventory site location Id of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

ItemInventorySiteLocationName String False 255

The inventory site location name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory add-on.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

An identifier for this copy of the object.

TimeModified Datetime True

When the vendor credit was last modified.

TimeCreated Datetime True

When the vendor credit was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ItemOverrideAccount String

The Account Name used to override the default Account for the Item. This is only available during inserts and updates.

ItemOverrideAccountId String

The Account Id used to override the default Account for the Item. This is only available during inserts and updates.



VendorCredits

Create, update, delete, and query QuickBooks Vendor Credits.

Table Specific Information

VendorCredits may be inserted, updated, or queried via the VendorCredits, VendorCreditExpenseItems, or VendorCreditLineItems tables. VendorCredits may be deleted by using the VendorCredits table.

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for VendorCredits are Id, Date, TimeModified, VendorName, VendorId, AccountsPayableId, and AccountsPayableName. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM VendorCredits WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Insert

To add a VendorCredit, specify a Vendor and at least one Expense or Line Item. The ItemAggregate and ExpenseAggregate columns may be used to specify an XML aggregate of Line Item or Expense Item data. The columns that may be used in these aggregates are defined in the VendorCreditLineItems and VendorCreditExpenseItems tables and it starts with Item and Expense. For example, the following will insert a new VendorCredit with two Line Items:

INSERT INTO VendorCredits (VendorName, ItemAggregate) 

VALUES ('A Cheung Limited', 

'<VendorCreditLineItems>

<Row><ItemName>Repairs</ItemName><ItemQuantity>1</ItemQuantity></Row>

<Row><ItemName>Removal</ItemName><ItemQuantity>2</ItemQuantity></Row>

</VendorCreditLineItems>')

To insert subitems, set the ItemName field to the FullName of the item; for example, '<Row><ItemName>Subs:Carpet</ItemName><ItemQuantity>0</ItemQuantity></Row>'

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True

The refId of the record.

VendorName String False

Vendors.Name

1000

Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.

VendorId String False

Vendors.ID

255

Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.

Date Date False

Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.

TxnNumber Integer True

The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.

ReferenceNumber String False 21

Reference number for the transaction.

AccountsPayable String False

Accounts.FullName

1000

Reference to the accounts-payable account.

AccountsPayableId String False

Accounts.ID

255

Reference to the accounts-payable account.

Amount Decimal True

Amount of the transaction.

Memo String False 5000

Memo for the transaction.

IsTaxIncluded Boolean False

Determines if tax is included in the transaction amount.

TaxCode String False

SalesTaxCodes.Name

3

The type of sales tax that will be charged for this vendor credit.

TaxCodeId String False

SalesTaxCodes.ID

255

The type of sales tax that will be charged for this vendor credit.

ExchangeRate String False

Indicates the exchange rate for the transaction.

ItemCount Integer True

The count of line items.

ItemAggregate String False 5000

An aggregate of the line item data which can be used for adding a vendor credit and its line item data.

ExpenseItemCount Integer True

The count of expense line items.

ExpenseItemAggregate String False 5000

An aggregate of the line item data which can be used for adding a VendorCredit and its expense item data.

TransactionCount Integer True

The count of related transactions to the bill.

TransactionAggregate String True 5000

An aggregate of the linked transaction data.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

TimeModified Datetime True

When the vendor credit was last modified.

TimeCreated Datetime True

When the vendor credit was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
Item* String

All line-item-specific columns may be used in insertions.

Expense* String

All expense-item-specific columns may be used in insertions.



Vendors

Create, update, delete, and query QuickBooks Vendors.

Table Specific Information

This table has a Custom Fields column. See the Custom Fields page for more information.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or = comparison. The available columns for the Vendors table are Id, TimeModified, Balance, and Name. TimeModified may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. Balance may be used with the >=, <=, or = conditions but cannot be used to specify a range. Name may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM Vendors WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND Name LIKE '%12345%'
Insert
To add a Vendor, specify the Name column.
Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the Vendor.

Name String False 100

The vendor's name. This is required to have a value when inserting.

Salutation String False 15

A salutation, such as Mr., Mrs., etc.

FirstName String False 25

A first name.

MiddleInitial String False 25

The middle initial.

LastName String False 25

A last name.

Company String False 50

The vendor's company name.

Contact String False 1023

The contact's name.

AccountNumber String False 99

The account number for this vendor.

Type String False 1000

The type of vendor, predefined in QuickBooks.

TypeId String False 255

The type of vendor, predefined in QuickBooks.

CreditLimit Double False

The credit limit for this vendor.

TaxIdentity String False 20

String that identifies the vendor to the IRS.

SalesTaxCountry String False 100

Identifies the country collecting applicable sales taxes. Only available in international editons of QuickBooks. QBXML version must be set to 8.0 or higher to use this field.

AlternateContact String False 41

The alternate contact's name.

Phone String False 21

The vendor's telephone number.

Fax String False 21

The vendor's fax number.

AlternatePhone String False 21

The vendor's alternate telephone number.

Email String False 1023

The vendor's email address.

Cc String False 1023

An additional email adress for a vendor.

Notes String False 5000

Notes on this vendor.

Address String True

Full address returned by QuickBooks.

Line1 String False 500

First line of the address.

Line2 String False 500

Second line of the address.

Line3 String False 500

Third line of the address.

Line4 String False 500

Fourth line of the address.

Line5 String False 41

Fifth line of the address.

City String False 255

City name for the address of the vendor.

State String False 255

State name for the address of the vendor.

PostalCode String False 30

Postal code for the address of the vendor.

Country String False 255

Country for the address of the vendor.

Note String False 41

Note for the address of the vendor.

ShippingAddress String True

Full shipping address returned by QuickBooks. Requires QBXML Version 11.0 or higher.

ShippingLine1 String False 500

First line of the shipping address. Requires QBXML Version 11.0 or higher.

ShippingLine2 String False 500

Second line of the shipping address. Requires QBXML Version 11.0 or higher.

ShippingLine3 String False 500

Third line of the shipping address. Requires QBXML Version 11.0 or higher.

ShippingLine4 String False 500

Fourth line of the shipping address. Requires QBXML Version 11.0 or higher.

ShippingLine5 String False 41

Fifth line of the shipping address. Requires QBXML Version 11.0 or higher.

ShippingCity String False 255

City name for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.

ShippingState String False 255

State name for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.

ShippingPostalCode String False 30

Postal code for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.

ShippingCountry String False 255

Country for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.

ShippingNote String False 41

Note for the shipping address of the vendor. Requires QBXML Version 11.0 or higher.

Balance Double True

Open balance for this vendor.

Terms String False 100

A reference to terms of payment for this vendor. A typical example might be '2% 10 Net 60'. This field can be set in inserts but not in updates.

TermsId String False 255

A reference to terms of payment for this vendor.

EligibleFor1099 Boolean False

Whether this vendor is eligible for 1099.

NameOnCheck String False 110

The name to be printed on checks.

CurrencyName String False

Currency.Name

64

Name of the currency code used for this vendor. QBXML version must be set to 8.0 or higher to use this field.

CurrencyId String False

Currency.ID

255

Id of the currency code used for this vendor. QBXML version must be set to 8.0 or higher to use this field.

IsActive Boolean False

Whether or not the vendor is active.

CustomFields String False

Custom fields returned from QuickBooks and formatted into XML.

EditSequence String True 16

An identifier for this copy of the object.

TimeModified Datetime True

When the vendor was last modified.

TimeCreated Datetime True

When the vendor was created.

PrefillAccountId1 String False

Id of an Account Prefill defined for this vendor.

PrefillAccountName1 String False

Name of an Account Prefill defined for this vendor.

PrefillAccountId2 String False

Id of an Account Prefill defined for this vendor.

PrefillAccountName2 String False

Name of an Account Prefill defined for this vendor.

PrefillAccountId3 String False

Id of an Account Prefill defined for this vendor.

PrefillAccountName3 String False

Name of an Account Prefill defined for this vendor.



VendorTypes

Create, update, delete, and query QuickBooks Vendor Types.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier of the vendor type.

Name String False 31

The name of the vendor type.

FullName String False 159

The name of the vendor type.

IsActive Boolean False

Boolean determining if the vendor type is active.

ParentRef_FullName String False

VendorTypes.FullName

Full name of the parent for the vendor type. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT/UPDATE statements and not both.

ParentRef_ListId String False

VendorTypes.ID

255

Id for the parent of the vendor type. You may specify only ParentRef_FullName or ParentRef_ListId on INSERT/UPDATE statements and not both.

Sublevel Integer True

How many parents the vendor type has.

EditSequence String True 16

A string indicating the revision of the payment method.

TimeCreated Datetime True

The time the vendor type was created.

TimeModified Datetime True

The last time the vendor type was modified.



WorkersCompCodeLines

Query QuickBooks Workers Comp Code entries by line. Requires QBXML Version 7.0 or higher.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

WorkersCompCodeId String False 255

The primary key of the workes comp code.

Name String False 13

The name of the workers comp code. This is required to have a value when inserting.

Desc String False 31

The description of the workers comp code.

CurrentRate Double False

Indicates the workers comp insurance premium rate that is currently in effect for the current comp code. If the code doesn't have a current effective date--that is, it has a future date only, then this field is empty.

CurrentEffectiveDate Datetime False

Indicates the date at which the workers' compensation code went into effect. This field contains a value only if the code is currently in effect. If the code has only a future date, then this field is empty.

NextRate Double False

Indicates the workers comp insurance premium rate that will occur after the current rate and effective date.

NextEffectiveDate Datetime False

Indicates the the first effective date that will occur after the current effective date.

RateHistory_Rate Double False

The rate of the workers comp code.

RateHistory_EffectiveDate Datetime False

Specifies the date at which the workers comp code and the related premium goes into effect.

IsActive Boolean False

Whether or not the workers comp code is active.

TimeCreated Datetime True

The datetime the entry was made.

TimeModified Datetime True

The last datetime the entry was modified.

EditSequence String True

An identifier used for versioning for this copy of the object.



WorkersCompCodes

Query QuickBooks Workers Comp Code entries. Requires QBXML Version 7.0 or higher.

Columns

Name Type ReadOnly References ColumnSize Description
ID [KEY] String True 255

The unique identifier.

Name String False 13

The name of the workers comp code. This is required to have a value when inserting.

Desc String False 31

The description of the workers comp code.

CurrentRate Double False

Indicates the workers comp insurance premium rate that is currently in effect for the current comp code. If the code doesn't have a current effective date--that is, it has a future date only, then this field is empty.

CurrentEffectiveDate Datetime False

Indicates the date at which the workers' compensation code went into effect. This field contains a value only if the code is currently in effect. If the code has only a future date, then this field is empty.

NextRate Double False

Indicates the workers comp insurance premium rate that will occur after the current rate and effective date.

NextEffectiveDate Datetime False

Indicates the the first effective date that will occur after the current effective date.

RateHistory String False

The rate of the workers comp code.

IsActive Boolean False

Whether or not the workers comp code is active.

TimeCreated Datetime True

The datetime the entry was made.

TimeModified Datetime True

The last datetime the entry was modified.

EditSequence String True

An identifier used for versioning for this copy of the object.





ViewsBack To Top

  1. BalanceSheetDetail
  2. BalanceSheetStandard
  3. BalanceSheetSummary
  4. BillLinkedTransactions
  5. CompanyInfo
  6. CreditMemoLinkedTransactions
  7. CustomColumns
  8. DeletedEntities
  9. DeletedTransactions
  10. EstimateLinkedTransactions
  11. Host
  12. InvoiceLinkedTransactions
  13. ItemReceiptLinkedTransactions
  14. ItemSites
  15. Preferences
  16. ProfitAndLossDetail
  17. ProfitAndLossStandard
  18. PurchaseOrderLinkedTransactions
  19. SalesOrderLinkedTransactions
  20. StatementChargeLinkedTransactions
  21. Templates
  22. Transactions
  23. VendorCreditLinkedTransactions

BalanceSheetDetail

Balance Sheet Detail Report.

Columns

Name Type References Description
Label String The Label column of the BalanceSheetDetail report.
Type String The Type column of the BalanceSheetDetail report.
Date Date The Date column of the BalanceSheetDetail report.
Num String The Num column of the BalanceSheetDetail report.
Name String The Name column of the BalanceSheetDetail report.
Memo String The Memo column of the BalanceSheetDetail report.
Class String The Class column of the BalanceSheetDetail report.
Clr String The Clr column of the BalanceSheetDetail report.
Split String The Split column of the BalanceSheetDetail report.
Amount Decimal The Amount column of the BalanceSheetDetail report.
Balance Double The Balance column of the BalanceSheetDetail report.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ReportPeriod String Report date range in the format fromdate:todate. Set the todate to get balance as of (e.g., :2017-12-25). Supported date format: yyyy-MM-dd.
ReportDateRangeMacro String A macro that can be specified for the report date range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

The default value is THISMONTHTODATE.

AccountType String The specific type of account to request in the report.

The allowed values are NONE, ACCOUNTSPAYABLE, ACCOUNTSRECEIVABLE, ALLOWEDFOR1099, APANDSALESTAX, APORCREDITCARD, ARANDAP, ASSET, BALANCESHEET, BANK, BANKANDARANDAPANDUF, BANKANDUF, COSTOFSALES, CREDITCARD, CURRENTASSET, CURRENTASSETANDEXPENSE, CURRENTLIABILITY, EQUITY, EQUITYANDINCOMEANDEXPENSE, EXPENSEANDOTHEREXPENSE, FIXEDASSET, INCOMEANDEXPENSE, INCOMEANDOTHERINCOME, LIABILITY, LIABILITYANDEQUITY, LONGTERMLIABILITY, NONPOSTING, ORDINARYEXPENSE, ORDINARYINCOME, ORDINARYINCOMEANDCOGS, ORDINARYINCOMEANDEXPENSE, OTHERASSET, OTHERCURRENTASSET, OTHERCURRENTLIABILITY, OTHEREXPENSE, OTHERINCOME, OTHERINCOMEOREXPENSE.

AccountList String A comma separated list of account names or IDs. Also specify a value for AccountListType if specifying a value for this input.
AccountListType String Allows the user to query for specific list accounts.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

EntityType String The specific type of entity to request in the report.

The allowed values are NONE, CUSTOMER, EMPLOYEE, OTHERNAME, VENDOR.

EntityList String A comma separated list of entity names or IDs. Also specify a value for EntityListType if specifying a value for this input.
EntityListType String Allows the user to query for specific list of entities.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ItemType String The specific type of item to request in the report.

The allowed values are NONE, ALLEXCEPTFIXEDASSET, ASSEMBLY, DISCOUNT, FIXEDASSET, INVENTORY, INVENTORYANDASSEMBLY, NONINVENTORY, OTHERCHARGE, PAYMENT, SALES, SALESTAX, SERVICE.

ItemList String A comma separated list of item names or IDs. Also specify a value for ItemListType if specifying a value for this input.
ItemListType String Allows the user to query for specific list of items.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ClassList String A comma separated list of class names or IDs. Also specify a value for ClassListType if specifying a value for this input.
ClassListType String Allows the user to query for specific list of classes.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

TransactionTypes String A comma separated list of the transaction types you want the report to cover. Values include ALL,ARREFUNDCREDITCARD,BILL,BILLPAYMENTCHECK,BILLPAYMENTCREDITCARD,BUILDASSEMBLY,CHARGE,CHECK,CREDITCARDCHARGE,CREDITCARDCREDIT,CREDITMEMO,DEPOSIT,ESTIMATE,INVENTORYADJUSTMENT,INVOICE,ITEMRECEIPT,JOURNALENTRY,LIABILITYADJUSTMENT,PAYCHECK,PAYROLLLIABILITYCHECK,PURCHASEORDER,RECEIVEPAYMENT,SALESORDER,SALESRECEIPT,SALESTAXPAYMENTCHECK,TRANSFER,VENDORCREDIT,YTDADJUSTMENT.
ModifiedDateRange String Date modified range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2009-12-25:). Supported date format: yyyy-MM-dd.
ModifiedDateRangeMacro String A predefined date modified range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

DetailLevel String The level of detail to include in the report.

The allowed values are ALL, ALLEXCEPTSUMMARY, SUMMARYONLY.

The default value is ALL.

PostingStatus String Allows you to query for posting reports, nonposting reports, or reports that are either one.

The allowed values are EITHER, NONPOSTING, POSTING.

The default value is POSTING.

IncludeAccounts String Indicates whether this report should include all accounts or just those that are currently in use.

The allowed values are ALL, INUSE.

ReportBasis String If reportbasis is Cash, the report bases income and expenses on the dates when money changed hands. If Accrual, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered. If None, the report uses the default report basis, which is either the QuickBooks preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns None for reports that do not support a report basis. (The 1099 report, for example, has its own basis for generation.)
SummarizeRowsBy String Determines along with includecolumnlist, in most cases, what data is calculated for this report and controls how the rows are organized and labeled. For example, if you set the value to Account, the reports row labels might be Checking, Savings, and so on.

The allowed values are NONE, ACCOUNT, BALANCESHEET, CLASS, CUSTOMER, CUSTOMERTYPE, DAY, EMPLOYEE, FOURWEEK, HALFMONTH, INCOMESTATEMENT, ITEMDETAIL, ITEMTYPE, MONTH, PAYEE, PAYMENTMETHOD, PAYROLLITEMDETAIL, QUARTER, SALESREP, SALESTAXCODE, SHIPMETHOD, TAXLINE, TERMS, TOTALONLY, TWOWEEK, VENDOR, VENDORTYPE, WEEK, YEAR.



BalanceSheetStandard

Balance Sheet Standard Report.

Columns

Name Type References Description
Label String The Label column of the BalanceSheetStandard report.
Total Double The Total column of the BalanceSheetStandard report.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ReportPeriod String Report date range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2009-12-25:). Supported date format: yyyy-MM-dd.
ReportDateRangeMacro String A macro that can be specified for the report date range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

AccountType String The specific type of account to request in the report.

The allowed values are NONE, ACCOUNTSPAYABLE, ACCOUNTSRECEIVABLE, ALLOWEDFOR1099, APANDSALESTAX, APORCREDITCARD, ARANDAP, ASSET, BALANCESHEET, BANK, BANKANDARANDAPANDUF, BANKANDUF, COSTOFSALES, CREDITCARD, CURRENTASSET, CURRENTASSETANDEXPENSE, CURRENTLIABILITY, EQUITY, EQUITYANDINCOMEANDEXPENSE, EXPENSEANDOTHEREXPENSE, FIXEDASSET, INCOMEANDEXPENSE, INCOMEANDOTHERINCOME, LIABILITY, LIABILITYANDEQUITY, LONGTERMLIABILITY, NONPOSTING, ORDINARYEXPENSE, ORDINARYINCOME, ORDINARYINCOMEANDCOGS, ORDINARYINCOMEANDEXPENSE, OTHERASSET, OTHERCURRENTASSET, OTHERCURRENTLIABILITY, OTHEREXPENSE, OTHERINCOME, OTHERINCOMEOREXPENSE.

AccountList String A comma separated list of account names or IDs. Also specify a value for AccountListType if specifying a value for this input.
AccountListType String Allows the user to query for specific list accounts.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

EntityType String The specific type of entity to request in the report.

The allowed values are NONE, CUSTOMER, EMPLOYEE, OTHERNAME, VENDOR.

EntityList String A comma separated list of entity names or IDs. Also specify a value for EntityListType if specifying a value for this input.
EntityListType String Allows the user to query for specific list of entities.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ItemType String The specific type of item to request in the report.

The allowed values are NONE, ALLEXCEPTFIXEDASSET, ASSEMBLY, DISCOUNT, FIXEDASSET, INVENTORY, INVENTORYANDASSEMBLY, NONINVENTORY, OTHERCHARGE, PAYMENT, SALES, SALESTAX, SERVICE.

ItemList String A comma separated list of item names or IDs. Also specify a value for ItemListType if specifying a value for this input.
ItemListType String Allows the user to query for specific list of items.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ClassList String A comma separated list of class names or IDs. Also specify a value for ClassListType if specifying a value for this input.
ClassListType String Allows the user to query for specific list of classes.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

TransactionTypes String A comma separated list of the transaction types you want the report to cover. Values include ALL,ARREFUNDCREDITCARD,BILL,BILLPAYMENTCHECK,BILLPAYMENTCREDITCARD,BUILDASSEMBLY,CHARGE,CHECK,CREDITCARDCHARGE,CREDITCARDCREDIT,CREDITMEMO,DEPOSIT,ESTIMATE,INVENTORYADJUSTMENT,INVOICE,ITEMRECEIPT,JOURNALENTRY,LIABILITYADJUSTMENT,PAYCHECK,PAYROLLLIABILITYCHECK,PURCHASEORDER,RECEIVEPAYMENT,SALESORDER,SALESRECEIPT,SALESTAXPAYMENTCHECK,TRANSFER,VENDORCREDIT,YTDADJUSTMENT.
ModifiedDateRange String Date modified range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2009-12-25:). Supported date format: yyyy-MM-dd.
ModifiedDateRangeMacro String A predefined date modified range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

DetailLevel String The level of detail to include in the report.

The allowed values are ALL, ALLEXCEPTSUMMARY, SUMMARYONLY.

PostingStatus String Allows you to query for posting reports, nonposting reports, or reports that are either one.

The allowed values are EITHER, NONPOSTING, POSTING.

ReportAsOf String The report will return open balance information up to the reportopenbalanceasof date.

The allowed values are REPORTENDDATE, TODAY.

ReportBasis String If reportbasis is Cash, the report bases income and expenses on the dates when money changed hands. If Accrual, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered. If None, the report uses the default report basis, which is either the QuickBooks preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns None for reports that do not support a report basis. (The 1099 report, for example, has its own basis for generation.)
ReportCalendar String Specifies the type of year that will be used for this report.

The allowed values are NONE, CALENDARYEAR, FISCALYEAR, TAXYEAR.



BalanceSheetSummary

Balance Sheet Summary Report.

Columns

Name Type References Description
Account String The Account column of the BalanceSheetSummary report.
Total Double The Total column of the BalanceSheetSummary report.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ReportPeriod String Report date range in the format fromdate:todate. Set the todate to get balance as of (e.g., :2017-12-25). Supported date format: yyyy-MM-dd.
ReportDateRangeMacro String A macro that can be specified for the report date range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

The default value is THISYEARTODATE.

AccountType String The specific type of account to request in the report.

The allowed values are NONE, ACCOUNTSPAYABLE, ACCOUNTSRECEIVABLE, ALLOWEDFOR1099, APANDSALESTAX, APORCREDITCARD, ARANDAP, ASSET, BALANCESHEET, BANK, BANKANDARANDAPANDUF, BANKANDUF, COSTOFSALES, CREDITCARD, CURRENTASSET, CURRENTASSETANDEXPENSE, CURRENTLIABILITY, EQUITY, EQUITYANDINCOMEANDEXPENSE, EXPENSEANDOTHEREXPENSE, FIXEDASSET, INCOMEANDEXPENSE, INCOMEANDOTHERINCOME, LIABILITY, LIABILITYANDEQUITY, LONGTERMLIABILITY, NONPOSTING, ORDINARYEXPENSE, ORDINARYINCOME, ORDINARYINCOMEANDCOGS, ORDINARYINCOMEANDEXPENSE, OTHERASSET, OTHERCURRENTASSET, OTHERCURRENTLIABILITY, OTHEREXPENSE, OTHERINCOME, OTHERINCOMEOREXPENSE.

AccountList String A comma separated list of account names or IDs. Also specify a value for AccountListType if specifying a value for this input.
AccountListType String Allows the user to query for specific list accounts.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

EntityType String The specific type of entity to request in the report.

The allowed values are NONE, CUSTOMER, EMPLOYEE, OTHERNAME, VENDOR.

EntityList String A comma separated list of entity names or IDs. Also specify a value for EntityListType if specifying a value for this input.
EntityListType String Allows the user to query for specific list of entities.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ItemType String The specific type of item to request in the report.

The allowed values are NONE, ALLEXCEPTFIXEDASSET, ASSEMBLY, DISCOUNT, FIXEDASSET, INVENTORY, INVENTORYANDASSEMBLY, NONINVENTORY, OTHERCHARGE, PAYMENT, SALES, SALESTAX, SERVICE.

ItemList String A comma separated list of item names or IDs. Also specify a value for ItemListType if specifying a value for this input.
ItemListType String Allows the user to query for specific list of items.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ClassList String A comma separated list of class names or IDs. Also specify a value for ClassListType if specifying a value for this input.
ClassListType String Allows the user to query for specific list of classes.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

TransactionTypes String A comma separated list of the transaction types you want the report to cover. Values include ALL,ARREFUNDCREDITCARD,BILL,BILLPAYMENTCHECK,BILLPAYMENTCREDITCARD,BUILDASSEMBLY,CHARGE,CHECK,CREDITCARDCHARGE,CREDITCARDCREDIT,CREDITMEMO,DEPOSIT,ESTIMATE,INVENTORYADJUSTMENT,INVOICE,ITEMRECEIPT,JOURNALENTRY,LIABILITYADJUSTMENT,PAYCHECK,PAYROLLLIABILITYCHECK,PURCHASEORDER,RECEIVEPAYMENT,SALESORDER,SALESRECEIPT,SALESTAXPAYMENTCHECK,TRANSFER,VENDORCREDIT,YTDADJUSTMENT.

The default value is ALL.

ModifiedDateRange String Date modified range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2017-12-25:). Supported date format: yyyy-MM-dd.
ModifiedDateRangeMacro String A predefined date modified range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

DetailLevel String The level of detail to include in the report.

The allowed values are ALL, ALLEXCEPTSUMMARY, SUMMARYONLY.

The default value is ALL.

PostingStatus String Allows you to query for posting reports, nonposting reports, or reports that are either one.

The allowed values are EITHER, NONPOSTING, POSTING.

The default value is POSTING.

ReportBasis String If reportbasis is Cash, the report bases income and expenses on the dates when money changed hands. If Accrual, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered. If None, the report uses the default report basis, which is either the QuickBooks preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns None for reports that do not support a report basis. (The 1099 report, for example, has its own basis for generation.)
ReturnColumns String Specifies whether you want the report to include only columns with active information, only columns with nonzero values, or all columns regardless of their content or active status.

The allowed values are NONE, ACTIVEONLY, NONZERO, All.

The default value is ACTIVEONLY.

ReturnRows String Specifies whether you want the report to include only rows with active information, only rows with nonzero values, or all rows regardless of their content or active status.

The allowed values are NONE, ACTIVEONLY, NONZERO, All.

The default value is NONZERO.

ReportCalendar String Specifies the type of year that will be used for this report.

The allowed values are NONE, CALENDARYEAR, FISCALYEAR, TAXYEAR.

The default value is FISCALYEAR.



BillLinkedTransactions

Query QuickBooks Bill Linked Transactions.

Table Specific Information

Linked transactions are transactions that have been associated with the Bill specified by the BillId column.

Select

By default, SupportEnhancedSQL is set to true, and the following will be honored if present. Other filters will be executed client side. If SupportEnhancedSQL is set to false, only the following filters will be honored.

QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can typically be used with only the equals or = comparison. The available columns for Bills are Id, Date, ReferenceNumber, VendorName, VendorId, AccountsPayable, AccountsPayableId, IsPaid, and TimeModified. TimeModified and Date may be used with the >, >=, <, <=, or = conditions and may be used twice to specify a range. ReferenceNumber may be used with the = or LIKE conditions to establish a starts-with, ends-with, or contains syntax. For example:

SELECT * FROM Bills WHERE TimeModified > '1/1/2011' AND TimeModified < '2/1/2011' AND ReferenceNumber LIKE '%12345%'
Columns

Name Type References Description
ID [KEY] String The unique identifier in the format BillId|ItemLineId.
BillId String

Bills.ID

The item identifier.
TransactionId String The Id of the linked transaction.
TransactionAmount Decimal The amount of the linked transaction.
TransactionDate Date The date of the linked transaction.
TransactionReferenceNumber String The reference number of the linked transaction.
TransactionType String The type of linked transaction.
TransactionLinkType String The link type between the bill and the linked transaction.
TimeModified Datetime When the bill was last modified.
TimeCreated Datetime When the bill was created.



CompanyInfo

Query the company information from QuickBooks.

Columns

Name Type References Description
ID [KEY] String The employer identification number of the company.
Name String The company name.
Type String The type of company.
Address String Full address returned by QuickBooks.
Line1 String First line of the address.
Line2 String Second line of the address.
Line3 String Third line of the address.
Line4 String Fourth line of the address.
Line5 String Fifth line of the address.
City String City name for the address of the company.
State String State name for the address of the company.
PostalCode String Postal code for the address of the company.
Country String Country for the address of the company.
Note String Note for the address of the company.
Email String Company email address.
Phone String Company phone number.
Fax String Company fax number.
SSN String The SSN of the company.
Taxform String The tax form used by the company.
Website String Company website URL.
FirstMonthFiscal String The first month in the fiscal year for the company.
FirstMonthTax String The first month in the taxable year for the company.
LegalAddress String Full legal address of the company.
LegalCity String Legal city name for the company.
LegalCountry String Legal country name for the company.
LegalState String Legal state name for the company.
LegalZip String Legal zip code for the company.
LegalName String Legal company name.
ShippingAddress String Full shipping address returned by QuickBooks.
ShippingLine1 String First line of the shipping address.
ShippingLine2 String Second line of the shipping address.
ShippingLine3 String Third line of the shipping address.
ShippingLine4 String Fourth line of the shipping address.
ShippingLine5 String Fifth line of the shipping address.
ShippingCity String City name for the shipping address of the company.
ShippingState String State name for the shipping address of the company.
ShippingPostalCode String Postal code for the shipping address of the company.
ShippingCountry String Country for the shipping address of the company.
ShippingNote String Note for the shipping address of the company.
OpenedCompanyFile String The path to the currently opened company file in QuickBooks.



CreditMemoLinkedTransactions

Query QuickBooks Credit Memo Linked Transactions.

Table Specific Information

Linked transactions are transactions that have been associated with the CreditMemo specified by the CreditMemoId column.

Columns

Name Type References Description
ID [KEY] String The unique identifier in the format CreditMemoId|ItemLineId.
CreditMemoId String

CreditMemos.ID

The credit memo identifier.
ReferenceNumber String The transaction reference number.
TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
Date Date The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
CustomerId String

Customers.ID

The id of the customer on the credit memo.
CustomerName String

Customers.FullName

The name of the customer on the credit memo.
TransactionId String The Id of the linked transaction.
TransactionAmount Decimal The amount of the linked transaction.
TransactionDate Date The date of the linked transaction.
TransactionReferenceNumber String The reference number of the linked transaction.
TransactionType String The type of linked transaction.
TransactionLinkType String The link type between the credit memo and linked transaction.
TimeModified Datetime When the credit memo was last modified.
TimeCreated Datetime When the credit memo was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ItemPriceLevel String Item price level name. QuickBooks will not return the price level.



CustomColumns

Query QuickBooks Custom Columns.

Columns

Name Type References Description
DataExtID [KEY] String The Id of a data extension.
OwnerID String The owner of a data extension.
DataExtName String The name of the data extension.
DataExtType String The field's data type.
AssignToObject String The object associated with the result.
DataExtListRequire Boolean
DataExtTxnRequire Boolean
DataExtFormatString String



DeletedEntities

Query deleted Entities.

Columns

Name Type References Description
ListID [KEY] String The unique identifier.
ListDelType String The entity type. Valid values are Account, BillingRate, Class, Currency, Customer, CustomerMsg, CustomerType, DateDrivenTerms, Employee, InventorySite, ItemDiscount, ItemFixedAsset, ItemGroup, ItemInventory, ItemInventoryAssembly, ItemNonInventory, ItemOtherCharge, ItemPayment, ItemSalesTax, ItemSalesTaxGroup, ItemService, ItemSubtotal, JobType, OtherName, PaymentMethod, PayrollItemNonWage, PayrollItemWage, PriceLevel, SalesRep, SalesTaxCode, ShipMethod, StandardTerms, ToDo, UnitOfMeasureSet, Vehicle, Vendor, VendorType, WorkersCompCode
FullName String The entity full name.
TimeCreated Datetime The time the object was created.
TimeDeleted Datetime The time the object was deleted.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
TimeModified String The modified date to search for.



DeletedTransactions

Query deleted Transactions.

Columns

Name Type References Description
TxnID [KEY] String The unique identifier.
TxnDelType String The transaction type. Valid values are ARRefundCreditCard, Bill, BillPaymentCheck, BillPaymentCreditCard, BuildAssembly, Charge, Check, CreditCardCharge, CreditCardCredit, CreditMemo, Deposit, Estimate, InventoryAdjustment, Invoice, ItemReceipt, JournalEntry, PurchaseOrder, ReceivePayment, SalesOrder, SalesReceipt, SalesTaxPaymentCheck, TimeTracking, TransferInventory, VehicleMileage, VendorCredit
RefNumber String The transaction's reference number.
TimeCreated Datetime The time the object was created.
TimeDeleted Datetime The time the object was deleted.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
TimeModified String The modified date to search for.



EstimateLinkedTransactions

Query QuickBooks Estimate Linked transactions.

Table Specific Information

Linked transactions are transactions that have been associated with the Estimate specified by the EstimateId column.

Columns

Name Type References Description
ID [KEY] String The unique identifier in the format EstimateId|ItemLineId.
EstimateId String

Estimates.ID

The estimate identifier.
ReferenceNumber String Transaction reference number.
TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
CustomerName String

Customers.FullName

Customer name this transaction is recorded under.
CustomerId String

Customers.ID

Customer Id this transaction is recorded under.
Date Date Transaction date.
TransactionId String The Id of the linked transaction.
TransactionAmount Decimal The amount of the linked transaction.
TransactionDate Date The date of the linked transaction.
TransactionReferenceNumber String The reference number of the linked transaction.
TransactionType String The type of linked transaction.
TransactionLinkType String The link type between the estimate and linked transaction.
TimeModified Datetime When the credit memo was last modified.
TimeCreated Datetime When the credit memo was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ItemPriceLevel String Item price level name. QuickBooks will not return the price level.



Host

Query the QuickBooks host process. The Host represents information about the QuickBooks process currently being executed.

Columns

Name Type References Description
ProductName [KEY] String The name of the QuickBooks version being used.
MajorVersion String The major version of QuickBooks.
MinorVersion String The minor version of QuickBooks.
Country String Country the QuickBooks edition was designed for.
SupportedQBXMLVersion String A comma separated list of QBXML versions supported by the version of QuickBooks.
IsAutomaticLogin Boolean A boolean indicating if the currently running .exe for QuickBooks is using automatic login. If true, this means that the QuickBooks UI is currently closed and the QuickBooks .exe was launched in the background to interact with the company file.
QBFileMode String The company file mode currently in use. For instance, SingleUser or MultiUser.



InvoiceLinkedTransactions

Query QuickBooks Invoice Linked Transactions.

Table Specific Information

Linked transactions are transactions that have been associated with the Invoice specified by the InvoiceId column.

Columns

Name Type References Description
ID [KEY] String The unique identifier in the format InvoiceId|ItemLineId.
InvoiceId String

Invoices.ID

The invoice identifier.
ReferenceNumber String The transaction reference number.
TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
CustomerName String

Customers.FullName

The name of the customer on the invoice. Either CustomerName or CustomerId must have a value when inserting.
CustomerId String

Customers.ID

The Id of the customer on the invoice. Alternatively give this field a value when inserting instead of CustomerName.
Account String

Accounts.FullName

A reference to the accounts-receivable account where the money received from this transaction will be deposited.
AccountId String

Accounts.ID

A reference to the accounts-receivable account where the money received from this transaction will be deposited.
Date Date The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
TransactionId String The Id of the linked transaction.
TransactionAmount Decimal The amount of the linked transaction.
TransactionDate Date The date of the linked transaction.
TransactionReferenceNumber String The reference number of the linked transaction.
TransactionType String The type of linked transaction.
TransactionLinkType String The link type between the invoice and linked transaction.
TimeModified Datetime When the invoice was last modified.
TimeCreated Datetime When the invoice was created.



ItemReceiptLinkedTransactions

Query QuickBooks Item Receipt Linked Transactions.

Table Specific Information

Linked transactions are transactions that have been associated with the ItemReceipts specified by the ItemReceiptId column.

Columns

Name Type References Description
ID [KEY] String The unique identifier in the format ItemReceiptId|ItemReceiptLineId.
ItemReceiptId String

ItemReceipts.ID

The item identifier for the item receipt. This is obtained from the ItemReceipts table.
VendorName String

Vendors.Name

The name of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
VendorId String

Vendors.ID

The unique Id of the vendor. Either VendorName or VendorId must be specified when inserting an item receipt.
Date Date The transaction date.
ReferenceNumber String The transaction reference number.
AccountsPayable String

Accounts.FullName

A reference to the name of the account the item receipt is payable to.
AccountsPayableId String

Accounts.ID

A reference to the unique Id of the account the item receipt is payable to.
Memo String A memo regarding the item receipt.
Amount Decimal Total amount of the item receipt.
TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
ExchangeRate Double The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency. Requires QBXML Version 8.0 or higher.
TransactionId String

PurchaseOrders.ID

The Id of the linked transaction.
TransactionAmount Decimal The amount of the linked transaction.
TransactionDate Date The date of the linked transaction.
TransactionReferenceNumber String The reference number of the linked transaction.
TransactionType String The type of linked transaction.
TransactionLinkType String The link type between the item receipt and linked transaction.
CustomFields String Custom fields returned from QuickBooks and formatted into XML.
EditSequence String An identifier used for versioning for this copy of the object.
TimeModified Datetime When the item receipt was last modified.
TimeCreated Datetime When the item receipt was created.



ItemSites

Create, update, delete, and query QuickBooks Item Sites. Item sites are only available in QuickBooks Enterprise 2010 and above, and only with the Advanced Inventory add-on. This table requires a minimum of QBXML version 10.0.

Columns

Name Type References Description
ID [KEY] String The Id of the inventory site.
ItemInventoryAssemblyRef_ListID String

Items.ID

Reference to the Id of an inventory assembly located on the item site. Either an inventory assembly or an inventory item will be specified, but not both.
ItemInventoryAssemblyRef_FullName String

Items.FullName

Reference to the full name of an inventory assembly located on the item site. Either an inventory assembly or an inventory item will be specified, but not both.
ItemInventoryRef_ListID String

Items.ID

Reference to the Id of an inventory item located on the item site. Either an inventory assembly or an inventory item will be specified, but not both.
ItemInventoryRef_FullName String

Items.FullName

Reference to the full name of an inventory item located on the item Site. Either an inventory assembly or an Inventory Item will be specified, but not both.
InventorySiteRef_ListID String

InventorySites.ID

Reference to the Id of an inventory site.
InventorySiteRef_FullName String

InventorySites.Name

Reference to the full name of an inventory site.
InventorySiteLocationRef_ListID String Reference to the Id of an inventory site location. This field requires QBXML version 12.0 or higher.
InventorySiteLocationRef_FullName String Reference to the full name of an inventory site location. This field requires QBXML version 12.0 or higher.
ReorderLevel Double The quantity at which to reorder the inventory assembly or inventory item.
QuantityOnHand Double The total quantity of the inventory assemblies or inventory items in the inventory.
QuantityOnPurchaseOrders Double The quantity of the inventory assemblies or inventory items currently on open purchase orders.
QuantityOnSalesOrders Double The quantity of the inventory assemblies or inventory items currently on open sales orders.
QuantityToBeBuiltByPendingBuildTxns Double The quantity of the inventory assemblies or inventory items are in use by pending Build Assembly transactions.
QuantityRequiredByPendingBuildTxns Double The quantity of the inventory assemblies or inventory items that are required to complete remaining build assembly transactions.
QuantityOnPendingTransfers Double The quantity of the inventory assemblies or inventory items that are currently on pending transfer inventory transactions.
AssemblyBuildPoint Double The quantity of the inventory assemblies or inventory items remaining before creating a new Assembly.
EditSequence String A string indicating the revision of the inventory site.
TimeCreated Datetime The time the inventory site was created.
TimeModified Datetime The time the inventory site was modified.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ItemType String The type of item. Can be specified as a criteria for the table.



Preferences

Query information about many of the preferences the QuickBooks user has set in the company file.

Columns

Name Type References Description
ID [KEY] String Key for the table.

The default value is 1.

AccountingPreferences_IsUsingAccountNumbers Boolean If true, an account number can be recorded for new accounts. If you include an account numnber in the AccountAdd object when this preference is false, the account number will be set but will not be visible in the user interface.
AccountingPreferences_IsRequiringAccounts Boolean If true, a transaction cannot be recorded in the user interface unless it is assigned to an account. (However, transactions affected by this preference always require an account to be specified when added through the SDK).
AccountingPreferences_IsUsingClassTracking Boolean If true, QuickBooks will include a class field on all transactions.
AccountingPreferences_AssignClassTo String What classes should be assigned to be default. Requires QBXML version 12.0 or higher.
AccountingPreferences_IsUsingAuditTrail Boolean If true, QuickBooks will log all transaction changes in the audit trail report. if false, QuickBooks logs only the most recent versions of each transaction.
AccountingPreferences_IsAssigningJournalEntryNumbers Boolean If true, QuickBooks will automatically assign a number to each journal entry.
AccountingPreferences_ClosingDate Date The company closing date set within the company file. (The QuickBooks admin can assign a password restricting access to transactions that occurred before this date).
FinanceChargePreferences_AnnualInterestRate Double The interest rate, set by the QuickBooks user, that QuickBooks will use to calculate finance charges. The default is 0.
FinanceChargePreferences_MinFinanceCharge Decimal The minimum finance charge that will be applied regardless of the amount overdue. MinFinanceCharge is set by the QuickBooks user, and has a default value (within QuickBooks) of 0.
FinanceChargePreferences_GracePeriod Integer The number of days before finance charges apply to customers' overdue invoices. GracePeriod is set by the QuickBooks user and has a default value (within QuickBooks) of 0.
FinanceChargePreferences_FinanceChargeAccountRef_ListID String

Accounts.ID

Refers to the Id of the account used to track finance charges that the customers pay. This is usually an income account. In a request, if a FinanceChargeAccountRef aggregate includes both FullName and ListId, FullName will be ignored.
FinanceChargePreferences_FinanceChargeAccountRef_FullName String

Accounts.FullName

Refers to the full name of the account used to track finance charges that the customers pay. This is usually an income account. In a request, if a FinanceChargeAccountRef aggregate includes both FullName and ListId, FullName will be ignored.
FinanceChargePreferences_IsAssessingForOverdueCharges Boolean If true, finance charges are assessed on overdue finance charges. This preference is set by the QuickBooks user, and has a default value (within QuickBooks) of false. (Note that laws vary about whether a company can charge interest on overdue interest payments.)
FinanceChargePreferences_CalculateChargesFrom String This preference is set by the QuickBooks user. Unless they change the value within QuickBooks, it will be DueDate. If set to DueDate, finance charges are assessed from the day the invoice or statement is due. If set to InvoiceOrBilledDate, finance charges are assessed from the transaction dates.

The allowed values are DueDate, InvoiceOrBilledDate.

FinanceChargePreferences_IsMarkedToBePrinted Boolean If true, all newly created finance charge invoices will be marked to be printed. (This makes it easier for the QuickBooks user to print a selection of invoices all at once.) This preference is set by the QuickBooks user and has a default value within QuickBooks of false.
JobsAndEstimatesPreferences_IsUsingEstimates Boolean If true, this user is set up to create estimates for jobs.
JobsAndEstimatesPreferences_IsUsingProgressInvoicing Boolean If true, this QuickBooks user can create an invoice for only a portion of an estimate.
JobsAndEstimatesPreferences_IsPrintingItemsWithZeroAmounts Boolean If true, line items with an amount of 0 will print on progress invoices. (IsPrintingItemsWithZeroAmounts is not relevant unless IsUsingProgressInvoices is true).
MultiCurrencyPreferences_IsMultiCurrencyOn Boolean Indicates whether the multicurrency feature is turned on for this company file. A value of true means it is to be turned on, and a value of false means is not turned on. Currently, once multicurrency is turned on for a company file, it cannot be turned off. Requires QBXML version 8.0 or higher.
MultiCurrencyPreferences_HomeCurrencyRef_ListID String

Currency.ID

Reference to the Id of the currency that is listed as the home currency. The home currency is normally the curency of the country where the business is located. Requires QBXML version 8.0 or higher.
MultiCurrencyPreferences_HomeCurrencyRef_FullName String

Currency.Name

Reference to the full name of the currency that is listed as the home currency. The home currency is normally the curency of the country where the business is located. Requires QBXML version 8.0 or higher.
MultiLocationInventoryPreferences_IsMultiLocationInventoryAvailable Boolean Boolean indicating if multiple inventory locations are available. Requires QBXML version 10.0 or higher.
MultiLocationInventoryPreferences_IsMultiLocationInventoryEnabled Boolean Boolean indicating if multiple inventory locations are enabled.
PurchasesAndVendorsPreferences_IsUsingInventory Boolean If true, the inventory-related features of QuickBooks are available.
PurchasesAndVendorsPreferences_DaysBillsAreDue Integer By default, bills are due this many days after receipt.
PurchasesAndVendorsPreferences_IsAutomaticallyUsingDiscounts Boolean If true, QuickBooks will automatically apply available vendor discounts or credits to a bill that is being paid.
PurchasesAndVendorsPreferences_DefaultDiscountAccountRef_ListID String

Accounts.ID

Id of the account where vendor discounts are tracked. In a request, if a DefaultDiscountAccountRef aggregate includes both FullName and ListId, FullName will be ignored.
PurchasesAndVendorsPreferences_DefaultDiscountAccountRef_FullName String

Accounts.FullName

Full name of the account where vendor discounts are tracked. In a request, if a DefaultDiscountAccountRef aggregate includes both FullName and ListId, FullName will be ignored.
ReportsPreferences_AgingReportBasis String AgeFromDueDate means that the overdue days shown in these reports will begin with the due date on the invoice. AgeFromTransactionDate means that the overdue days shown in these reports will begin with the date the transaction was created.

The allowed values are AgeFromDueDate, AgeFromTransactionDate.

ReportsPreferences_SummaryReportBasis String Indicates whether summary reports are cash-basis or accrual-basis bookkeeping.

The allowed values are Accrual, Cash.

SalesAndCustomersPreferences_DefaultShipMethodRef_ListID String

ShippingMethods.ID

Id that references to a ship method that will be used as the default value in all ShipVia fields.
SalesAndCustomersPreferences_DefaultShipMethodRef_FullName String

ShippingMethods.Name

Full name of a ship method that will be used as the default value in all ShipVia fields.
SalesAndCustomersPreferences_DefaultFOB String Default FOB (freight on board: the site from which invoiced products are shipped).
SalesAndCustomersPreferences_DefaultMarkup Double Default percentage that an inventory item will be marked up from its cost.
SalesAndCustomersPreferences_IsTrackingReimbursedExpensesAsIncome Boolean If true, an expense and the customers reimbursement for that expense can be tracked in separate accounts.
SalesAndCustomersPreferences_IsAutoApplyingPayments Boolean If true, a customers' payment will automatically be applied to the outstanding invoices for that customer, beginning with the oldest invoice.
SalesAndCustomersPreferences_PriceLevels_IsUsingPriceLevels Boolean If true, price levels have been turned on for the company file (under Sales and Customers preferences), which enables the creation and use of price levels.
SalesAndCustomersPreferences_PriceLevels_IsRoundingSalesPriceUp Boolean If true, amounts are rounded up to the nearest whole dollar for fixed percentage price levels (not for per-item price levels).
SalesTaxPreferences_DefaultItemSalesTaxRef_ListID String

SalesTaxItems.ID

Id reference to the default tax code for sales. (Refers to a sales tax code on the SalesTaxCode list).
SalesTaxPreferences_DefaultItemSalesTaxRef_FullName String

SalesTaxItems.Name

Full name for the default tax code for sales. (Refers to a sales tax code on the SalesTaxCode list).
SalesTaxPreferences_PaySalesTax String The frequency of sales tax reports.

The allowed values are Monthly, Quarterly, Annually.

SalesTaxPreferences_DefaultTaxableSalesTaxCodeRef_ListID String

SalesTaxCodes.ID

Id reference to the default tax code for taxable sales. (Refers to a sales tax code in the SalesTaxCode list).
SalesTaxPreferences_DefaultTaxableSalesTaxCodeRef_FullName String

SalesTaxCodes.Name

Full name of a default tax code for taxable sales. (Refers to a sales tax code in the SalesTaxCode list).
SalesTaxPreferences_DefaultNonTaxableSalesTaxCodeRef_ListID String

SalesTaxCodes.ID

Id reference to the default tax code for nontaxable sales. (Refers to a sales tax code in the SalesTaxCode list).
SalesTaxPreferences_DefaultNonTaxableSalesTaxCodeRef_FullName String

SalesTaxCodes.Name

Full name of a default tax code for nontaxable sales. (Refers to a sales tax code in the SalesTaxCode list).
SalesTaxPreferences_IsUsingVendorTaxCode Boolean Boolean indicating if the vendor's tax codes are being used.
SalesTaxPreferences_IsUsingCustomerTaxCode Boolean Boolean indicating if the customer's tax codes are being used.
SalesTaxPreferences_IsUsingAmountsIncludeTax Boolean Boolean indicating if total amounts include sales tax.
TimeTrackingPreferences_FirstDayOfWeek String The first day of a weekly timesheet period.

The allowed values are Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.

CurrentAppAccessRights_IsAutomaticLoginAllowed Boolean If true, then applications can use autologin to access this QuickBooks company file.
CurrentAppAccessRights_AutomaticLoginUserName String If autologin is allowed for this QuickBooks company file, then this field gives the username that is allowed to use autologin.
CurrentAppAccessRights_IsPersonalDataAccessAllowed Boolean If true, then access is allowed to sensitive (personal) data in this QuickBooks company file.
ItemsAndInventoryPreferences_EnhancedInventoryReceivingEnabled Boolean Boolean indicating if enhanced inventory receiving is enabled. Requires QBXML version 11.0.
ItemsAndInventoryPreferences_IsTrackingSerialOrLotNumber String Indicates if tracking is done based on serial or lot number. Requires QBXML version 11.0.
ItemsAndInventoryPreferences_IsTrackingOnSalesTransactionsEnabled Boolean Boolean indicating if tracking is enabled on sales transactions. Requires QBXML version 11.0.
ItemsAndInventoryPreferences_IsTrackingOnPurchaseTransactionsEnabled Boolean Boolean indicating if tracking is enabled on purchase transactions. Requires QBXML version 11.0.
ItemsAndInventoryPreferences_IsTrackingOnInventoryAdjustmentEnabled Boolean Boolean indicating if tracking is enabled on inventory adjustments. Requires QBXML version 11.0.
ItemsAndInventoryPreferences_IsTrackingOnBuildAssemblyEnabled Boolean Boolean indicating if tracking is enabled on build assemblies. Requires QBXML version 11.0.
ItemsAndInventoryPreferences_FIFOEnabled Boolean Boolean indicating if FIFO is enabled. Requires QBXML version 11.0.
ItemsAndInventoryPreferences_FIFOEffectiveDate Date FIFO effective date. Requires QBXML version 11.0.
ItemsAndInventoryPreferences_IsRSBEnabled Boolean Boolean indicating if RSB is enabled. Requires QBXML version 12.0.
ItemsAndInventoryPreferences_IsBarcodeEnabled Boolean Boolean indicating if bar codes are enabled. Requires QBXML version 12.0.



ProfitAndLossDetail

Profit & Loss Prev Year Comparison Report.

Columns

Name Type References Description
Label String The Label column of the ProfitAndLossDetail report.
Type String The Type column of the ProfitAndLossDetail report.
Date Date The Date column of the ProfitAndLossDetail report.
Num String The Num column of the ProfitAndLossDetail report.
Name String The Name column of the ProfitAndLossDetail report.
Memo String The Memo column of the ProfitAndLossDetail report.
Class String The Class column of the ProfitAndLossDetail report.
Clr String The Clr column of the ProfitAndLossDetail report.
Split String The Split column of the ProfitAndLossDetail report.
Amount Double The Amount column of the ProfitAndLossDetail report.
Balance Double The Balance column of the ProfitAndLossDetail report.
RowType String The type of data in the row. For example, Text, Data, Subtotal, or Total.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ReportPeriod String Report date range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2009-12-25:). Supported date format: yyyy-MM-dd.
ReportDateRangeMacro String A macro that can be specified for the report date range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

AccountType String The specific type of account to request in the report.

The allowed values are NONE, ACCOUNTSPAYABLE, ACCOUNTSRECEIVABLE, ALLOWEDFOR1099, APANDSALESTAX, APORCREDITCARD, ARANDAP, ASSET, BALANCESHEET, BANK, BANKANDARANDAPANDUF, BANKANDUF, COSTOFSALES, CREDITCARD, CURRENTASSET, CURRENTASSETANDEXPENSE, CURRENTLIABILITY, EQUITY, EQUITYANDINCOMEANDEXPENSE, EXPENSEANDOTHEREXPENSE, FIXEDASSET, INCOMEANDEXPENSE, INCOMEANDOTHERINCOME, LIABILITY, LIABILITYANDEQUITY, LONGTERMLIABILITY, NONPOSTING, ORDINARYEXPENSE, ORDINARYINCOME, ORDINARYINCOMEANDCOGS, ORDINARYINCOMEANDEXPENSE, OTHERASSET, OTHERCURRENTASSET, OTHERCURRENTLIABILITY, OTHEREXPENSE, OTHERINCOME, OTHERINCOMEOREXPENSE.

AccountList String A comma separated list of account names or IDs. Also specify a value for AccountListType if specifying a value for this input.
AccountListType String Allows the user to query for specific list accounts.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

EntityType String The specific type of entity to request in the report.

The allowed values are NONE, CUSTOMER, EMPLOYEE, OTHERNAME, VENDOR.

EntityList String A comma separated list of entity names or IDs. Also specify a value for EntityListType if specifying a value for this input.
EntityListType String Allows the user to query for specific list of entities.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ItemType String The specific type of item to request in the report.

The allowed values are NONE, ALLEXCEPTFIXEDASSET, ASSEMBLY, DISCOUNT, FIXEDASSET, INVENTORY, INVENTORYANDASSEMBLY, NONINVENTORY, OTHERCHARGE, PAYMENT, SALES, SALESTAX, SERVICE.

ItemList String A comma separated list of item names or IDs. Also specify a value for ItemListType if specifying a value for this input.
ItemListType String Allows the user to query for specific list of items.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ClassList String A comma separated list of class names or IDs. Also specify a value for ClassListType if specifying a value for this input.
ClassListType String Allows the user to query for specific list of classes.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

TransactionTypes String A comma separated list of the transaction types you want the report to cover. Values include ALL,ARREFUNDCREDITCARD,BILL,BILLPAYMENTCHECK,BILLPAYMENTCREDITCARD,BUILDASSEMBLY,CHARGE,CHECK,CREDITCARDCHARGE,CREDITCARDCREDIT,CREDITMEMO,DEPOSIT,ESTIMATE,INVENTORYADJUSTMENT,INVOICE,ITEMRECEIPT,JOURNALENTRY,LIABILITYADJUSTMENT,PAYCHECK,PAYROLLLIABILITYCHECK,PURCHASEORDER,RECEIVEPAYMENT,SALESORDER,SALESRECEIPT,SALESTAXPAYMENTCHECK,TRANSFER,VENDORCREDIT,YTDADJUSTMENT.
ModifiedDateRange String Date modified range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2009-12-25:). Supported date format: yyyy-MM-dd.
ModifiedDateRangeMacro String A predefined date modified range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

DetailLevel String The level of detail to include in the report.

The allowed values are ALL, ALLEXCEPTSUMMARY, SUMMARYONLY.

PostingStatus String Allows you to query for posting reports, nonposting reports, or reports that are either one.

The allowed values are EITHER, NONPOSTING, POSTING.

ReportAsOf String The report will return open balance information up to the reportopenbalanceasof date.

The allowed values are REPORTENDDATE, TODAY.

IncludeAccounts String Indicates whether this report should include all accounts or just those that are currently in use.

The allowed values are ALL, INUSE.

ReportBasis String If reportbasis is Cash, the report bases income and expenses on the dates when money changed hands. If Accrual, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered. If None, the report uses the default report basis, which is either the QuickBooks preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns None for reports that do not support a report basis. (The 1099 report, for example, has its own basis for generation.)
IncludeColumns String A comma separated list of columns to include. Supported values include ACCOUNT,AGING,AMOUNT,AMOUNTDIFFERENCE,AVERAGECOST,BILLEDDATE,BILLINGSTATUS,CALCULATEDAMOUNT,CLASS,CLEAREDSTATUS,COSTPRICE,CREDIT,CURRENCY,DATE,DEBIT,DELIVERYDATE,DUEDATE,ESTIMATEACTIVE,EXCHANGERATE,FOB,INCOMESUBJECTTOTAX,INVOICED,ITEM,ITEMDESC,LASTMODIFIEDBY,LATESTORPRIORSTATE,MEMO,MODIFIEDTIME,NAME,NAMEACCOUNTNUMBER,NAMEADDRESS,NAMECITY,NAMECONTACT,NAMEEMAIL,NAMEFAX,NAMEPHONE,NAMESTATE,NAMEZIP,OPENBALANCE,ORIGINALAMOUNT,PAIDAMOUNT,PAIDSTATUS,PAIDTHROUGHDATE,PAYMENTMETHOD,PAYROLLITEM,PONUMBER,PRINTSTATUS,PROGRESSAMOUNT,PROGRESSPERCENT,QUANTITY,QUANTITYAVAILABLE,QUANTITYONHAND,QUANTITYONSALESORDER,RECEIVEDQUANTITY,REFNUMBER,RUNNINGBALANCE,SALESREP,SALESTAXCODE,SHIPDATE,SHIPMETHOD,SOURCENAME,SPLITACCOUNT,SSNORTAXID,TAXLINE,TAXTABLEVERSION,TERMS,TXNID,TXNNUMBER,TXNTYPE,UNITPRICE,USEREDIT,VALUEONHAND,WAGEBASE,WAGEBASETIPS
SummarizeRowsBy String Determines along with includecolumnlist, in most cases, what data is calculated for this report and controls how the rows are organized and labeled. For example, if you set the value to Account, the reports row labels might be Checking, Savings, and so on.

The allowed values are NONE, ACCOUNT, BALANCESHEET, CLASS, CUSTOMER, CUSTOMERTYPE, DAY, EMPLOYEE, FOURWEEK, HALFMONTH, INCOMESTATEMENT, ITEMDETAIL, ITEMTYPE, MONTH, PAYEE, PAYMENTMETHOD, PAYROLLITEMDETAIL, QUARTER, SALESREP, SALESTAXCODE, SHIPMETHOD, TAXLINE, TERMS, TOTALONLY, TWOWEEK, VENDOR, VENDORTYPE, WEEK, YEAR.



ProfitAndLossStandard

Profit & Loss YTD Comparison Report.

Columns

Name Type References Description
Label String The Label column of the ProfitAndLossStandard report.
Amount Double The Amount column of the ProfitAndLossStandard report.
RowType String The type of data in the row. For example, Text, Data, Subtotal, or Total.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ReportPeriod String Report date range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2009-12-25:). Supported date format: yyyy-MM-dd.
ReportDateRangeMacro String A macro that can be specified for the report date range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

AccountType String The specific type of account to request in the report.

The allowed values are NONE, ACCOUNTSPAYABLE, ACCOUNTSRECEIVABLE, ALLOWEDFOR1099, APANDSALESTAX, APORCREDITCARD, ARANDAP, ASSET, BALANCESHEET, BANK, BANKANDARANDAPANDUF, BANKANDUF, COSTOFSALES, CREDITCARD, CURRENTASSET, CURRENTASSETANDEXPENSE, CURRENTLIABILITY, EQUITY, EQUITYANDINCOMEANDEXPENSE, EXPENSEANDOTHEREXPENSE, FIXEDASSET, INCOMEANDEXPENSE, INCOMEANDOTHERINCOME, LIABILITY, LIABILITYANDEQUITY, LONGTERMLIABILITY, NONPOSTING, ORDINARYEXPENSE, ORDINARYINCOME, ORDINARYINCOMEANDCOGS, ORDINARYINCOMEANDEXPENSE, OTHERASSET, OTHERCURRENTASSET, OTHERCURRENTLIABILITY, OTHEREXPENSE, OTHERINCOME, OTHERINCOMEOREXPENSE.

AccountList String A comma separated list of account names or IDs. Also specify a value for AccountListType if specifying a value for this input.
AccountListType String Allows the user to query for specific list accounts.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

EntityType String The specific type of entity to request in the report.

The allowed values are NONE, CUSTOMER, EMPLOYEE, OTHERNAME, VENDOR.

EntityList String A comma separated list of entity names or IDs. Also specify a value for EntityListType if specifying a value for this input.
EntityListType String Allows the user to query for specific list of entities.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ItemType String The specific type of item to request in the report.

The allowed values are NONE, ALLEXCEPTFIXEDASSET, ASSEMBLY, DISCOUNT, FIXEDASSET, INVENTORY, INVENTORYANDASSEMBLY, NONINVENTORY, OTHERCHARGE, PAYMENT, SALES, SALESTAX, SERVICE.

ItemList String A comma separated list of item names or IDs. Also specify a value for ItemListType if specifying a value for this input.
ItemListType String Allows the user to query for specific list of items.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

ClassList String A comma separated list of class names or IDs. Also specify a value for ClassListType if specifying a value for this input.
ClassListType String Allows the user to query for specific list of classes.

The allowed values are LISTID, FULLNAME, LISTIDWITHCHILDREN, FULLNAMEWITHCHILDREN.

TransactionTypes String A comma separated list of the transaction types you want the report to cover. Values include ALL,ARREFUNDCREDITCARD,BILL,BILLPAYMENTCHECK,BILLPAYMENTCREDITCARD,BUILDASSEMBLY,CHARGE,CHECK,CREDITCARDCHARGE,CREDITCARDCREDIT,CREDITMEMO,DEPOSIT,ESTIMATE,INVENTORYADJUSTMENT,INVOICE,ITEMRECEIPT,JOURNALENTRY,LIABILITYADJUSTMENT,PAYCHECK,PAYROLLLIABILITYCHECK,PURCHASEORDER,RECEIVEPAYMENT,SALESORDER,SALESRECEIPT,SALESTAXPAYMENTCHECK,TRANSFER,VENDORCREDIT,YTDADJUSTMENT.
ModifiedDateRange String Date modified range in the format fromdate:todate where either value may be omitted for an open-ended range (e.g., 2009-12-25:). Supported date format: yyyy-MM-dd.
ModifiedDateRangeMacro String A predefined date modified range.

The allowed values are ALL, TODAY, THISWEEK, THISWEEKTODATE, THISMONTH, THISMONTHTODATE, THISQUARTER, THISQUARTERTODATE, THISYEAR, THISYEARTODATE, YESTERDAY, LASTWEEK, LASTWEEKTODATE, LASTMONTH, LASTMONTHTODATE, LASTQUARTER, LASTQUARTERTODATE, LASTYEAR, LASTYEARTODATE, NEXTWEEK, NEXTFOURWEEKS, NEXTMONTH, NEXTQUARTER, NEXTYEAR.

DetailLevel String The level of detail to include in the report.

The allowed values are ALL, ALLEXCEPTSUMMARY, SUMMARYONLY.

PostingStatus String Allows you to query for posting reports, nonposting reports, or reports that are either one.

The allowed values are EITHER, NONPOSTING, POSTING.

ReportAsOf String The report will return open balance information up to the reportopenbalanceasof date.

The allowed values are REPORTENDDATE, TODAY.

SummarizeColumnsBy String Determines which data the report calculates and how the columns will be labeled across the top of the report.

The allowed values are NONE, ACCOUNT, BALANCESHEET, CLASS, CUSTOMER, CUSTOMERTYPE, DAY, EMPLOYEE, FOURWEEK, HALFMONTH, INCOMESTATEMENT, ITEMDETAIL, ITEMTYPE, MONTH, PAYEE, PAYMENTMETHOD, PAYROLLITEMDETAIL, QUARTER, SALESREP, SALESTAXCODE, SHIPMETHOD, TERMS, TOTALONLY, TWOWEEK, VENDOR, VENDORTYPE, WEEK, YEAR.

IncludeSubColumns String A boolean indicating if subcolumns should be included.
ReportBasis String If reportbasis is Cash, the report bases income and expenses on the dates when money changed hands. If Accrual, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered. If None, the report uses the default report basis, which is either the QuickBooks preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns None for reports that do not support a report basis. (The 1099 report, for example, has its own basis for generation.)
ReturnColumns String Specifies whether you want the report to include only columns with active information, only columns with nonzero values, or all columns regardless of their content or active status.

The allowed values are NONE, ACTIVEONLY, NONZERO, All.

ReturnRows String Specifies whether you want the report to include only rows with active information, only rows with nonzero values, or all rows regardless of their content or active status.

The allowed values are NONE, ACTIVEONLY, NONZERO, All.

ReportCalendar String Specifies the type of year that will be used for this report.

The allowed values are NONE, CALENDARYEAR, FISCALYEAR, TAXYEAR.



PurchaseOrderLinkedTransactions

Query QuickBooks Purchase Order Linked Transactions.

Table Specific Information

Linked transactions are transactions that have been associated with the PurchaseOrder specified by the PurchaseOrderId column.

Columns

Name Type References Description
ID [KEY] String The unique identifier in the format PurchaseOrderId|ItemLineId.
PurchaseOrderId String

PurchaseOrders.ID

The purchase order identifier.
VendorName String

Vendors.Name

Vendor name this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.
VendorId String

Vendors.ID

Vendor Id this purchase order is issued to. Either VendorName or VendorId must have a value when inserting.
VendorMessage String Message to appear to vendor.
ReferenceNumber String The transaction reference number.
TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
Date Date Transaction date. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
TransactionId String The Id of the linked transaction.
TransactionAmount Decimal The amount of the linked transaction.
TransactionDate Date The date of the linked transaction.
TransactionReferenceNumber String The reference number of the linked transaction.
TransactionType String The type of linked transaction.
TransactionLinkType String The link type between the purchase order and linked transaction.
TimeModified Datetime When the purchase order was last modified.
TimeCreated Datetime When the purchase order was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ItemPriceLevel String Item price level name. QuickBooks will not return the price level.



SalesOrderLinkedTransactions

Query QuickBooks Sales Order Linked Transactions.

Table Specific Information

Linked transactions are transactions that have been associated with the SalesOrder specified by the SalesOrderId column.

Columns

Name Type References Description
ID [KEY] String The unique identifier in the format SalesOrderId|ItemLineId.
SalesOrderId String

SalesOrders.ID

The item identifier.
ReferenceNumber String Transaction reference number.
TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
CustomerName String

Customers.FullName

Customer name this transaction is recorded under.
CustomerId String

Customers.ID

Customer Id this transaction is recorded under.
Date Date Transaction date.
TransactionId String

Invoices.ID

The Id of the linked transaction.
TransactionAmount Decimal The amount of the linked transaction.
TransactionDate Date The date of the linked transaction.
TransactionReferenceNumber String The reference number of the linked transaction.
TransactionType String The type of linked transaction.
TransactionLinkType String The link type between the sales order and linked transaction.
TimeModified Datetime When the sales order was last modified.
TimeCreated Datetime When the sales order was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ItemPriceLevel String Item price level name. QuickBooks will not return the price level.



StatementChargeLinkedTransactions

Query QuickBooks Statement Charge Linked Transactions.

Table Specific Information

Linked transactions are transactions that have been associated with the StatementCharge specified by the StatementChargeId column.

Columns

Name Type References Description
ID [KEY] String The unique identifier in the format StatementChargeId|TransactionLineId.
StatementChargeId String

StatementCharges.ID

The item identifier.
ReferenceNumber String Transaction reference number.
TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
CustomerName String

Customers.FullName

Customer name this transaction is recorded under.
CustomerId String

Customers.ID

Customer Id this transaction is recorded under.
Date Date Transaction date.
TransactionId String The Id of the linked transaction.
TransactionAmount Decimal The amount of the linked transaction.
TransactionDate Date The date of the linked transaction.
TransactionReferenceNumber String The reference number of the linked transaction.
TransactionType String The type of linked transaction.
TransactionLinkType String The link type between the statement charge and linked transaction.
TimeModified Datetime When the statement charge was last modified.
TimeCreated Datetime When the statement charge was created.



Templates

Query QuickBooks templates.

Columns

Name Type References Description
ID [KEY] String The unique identifier of the template.
Name String The name of the template.
IsActive Boolean Boolean determining if the template is active.
TemplateType String The type of template. This may be BuildAssembly, CreditMemo, Estimate, Invoice, PurchaseOrder, SalesOrder, or SalesReceipt.
EditSequence String A string indicating the revision of the template.
TimeCreated Datetime The time the template was created.
TimeModified Datetime The last time the template was modified.



Transactions

Query QuickBooks transactions. You may search the Transactions using a number of values including Type, Entity, Account, ReferenceNumber, Item, Class, Date, and TimeModified.

Columns

Name Type References Description
ID [KEY] String The unique identifier of the transaction.
TxnLineId String The id of the individual line item.
Type String The transaction type of the result.
Date Date The date of the transaction.
Entity String The name of the entity associated with the transaction. For example, the name of a customer, vendor, employee, or other name.
EntityId String The Id of the entity associated with the transaction. For example, the name of a customer, vendor, employee, or other name.
AccountName String

Accounts.Name

The name of the account associated with the transaction.
AccountId String

Accounts.ID

The Id of the account associated with the transaction.
ReferenceNumber String The reference number of the transaction, if applicable.
Amount Decimal The amount of the transaction.
CurrencyName String

Currency.Name

The name of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
CurrencyId String

Currency.ID

The unique Id of the currency for this customer. A minimum QBXML Version of 8.0 is required for this feature.
ExchangeRate Double The market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the home currency.
AmountInHomeCurrency Decimal The amount of the transaction in units of the home currency.
Memo String The memo appearing on the transaction.
TimeModified Datetime When the transaction was last modified.
TimeCreated Datetime When the transaction was created.

Pseudo-Columns

Pseudo Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
ItemName String The item name appearing in the transaction.
ItemId String The item Id appearing in the transaction.
ClassName String The class name applied to the transaction.
ClassId String The class Id applied to the transaction.
PostingStatus String The posting status of transactions to return.

The allowed values are Either, NonPosting, Posting.

The default value is Either.

PaidStatus String The paid status of transactions to return. Enter either true or false.
DetailLevel String The level of detail to use when filtering objects.

The allowed values are All, AllExceptSummary, SummaryOnly.

The default value is SummaryOnly.



VendorCreditLinkedTransactions

Query QuickBooks Vendor Credit Linked Transactions.

Table Specific Information

Linked transactions are transactions that have been associated with the VendorCredit specified by the VendorCreditId column.

Columns

Name Type References Description
ID [KEY] String The unique identifier in the format VendorCreditId|ItemLineId.
VendorCreditId String

VendorCredits.ID

The Id of the VendorCredit transaction.
VendorName String

Vendors.Name

Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
VendorId String

Vendors.ID

Vendor for this transaction. Either VendorName or VendorId is required to have a value when inserting.
Date Date Date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo columns StartDate and EndDate are overwritten with the value.
TxnNumber Integer The transaction number. An identifying number for the transaction, different from the QuickBooks-generated Id.
ReferenceNumber String Reference number for the transaction.
TransactionId String

Bills.ID

The Id of the linked transaction.
TransactionAmount Decimal The amount of the linked transaction.
TransactionDate Date The date of the linked transaction.
TransactionReferenceNumber String The reference number of the linked transaction.
TransactionType String The type of linked transaction.
TransactionLinkType String The link type between the vendor credit and linked transaction.
TimeModified Datetime When the vendor credit was last modified.
TimeCreated Datetime When the vendor credit was created.