Connecting to QuickBooks

QuickBooks Online is a cloud-based accounting solution that allows designing and sending marketing emails.

Data integration: Skyvia supports importing data to and from QuickBooks Online, exporting QuickBooks Online data to CSV files, replicating QuickBooks Online data to relational databases, and synchronizing QuickBooks Online data with other cloud apps and relational databases.

Backup: Skyvia Backup supports QuickBooks Online backup.

Query: Skyvia Query supports QuickBooks Online.

QuickBooks-Specific Features and Limitations

Skyvia has the following limitations for QuickBooks:

  • Synchronization and Replication with Incremental Updates enabled are not supported for objects without MetaData_CreateTime or MetaData_LastUpdatedTime fields. Both fields must be present for this functionality.
  • Skyvia does not support custom QuickBooks fields having double quotation marks in their names.

Some of the QuickBooks tables store complex structured data. These are the following tables: Invoice, Estimate, Bill, BillPayment, CreditMemo, JournalEntry, Payment, Purchase, PurchaseOrder, RefundReceipt, SalesReceipt, VendorCredit. For example, an invoice or bill can have several lines. Skyvia represents this information in such tables as a JSON field Lines. Here is an example of the Lines field value from the Invoice table:

[
  {
    "Id": "1",
    "LineNum": 1.0,
    "Description": "Weekly Gardening Service",
    "Amount": 140.0,
    "DetailType": "SalesItemLineDetail",
    "SalesItemLineDetail_ItemRefId": "6",
    "SalesItemLineDetail_ItemRefName": "Gardening",
    "SalesItemLineDetail_UnitPrice": 35.0,
    "SalesItemLineDetail_Qty": 4.0,
    "SalesItemLineDetail_TaxCodeRefId": "NON"
  },
  {
    "Id": "2",
    "LineNum": 2.0,
    "Description": "Pest Control Services",
    "Amount": 35.0,
    "DetailType": "SalesItemLineDetail",
    "SalesItemLineDetail_ItemRefId": "10",
    "SalesItemLineDetail_ItemRefName": "Pest Control",
    "SalesItemLineDetail_UnitPrice": 35.0,
    "SalesItemLineDetail_Qty": 1.0,
    "SalesItemLineDetail_TaxCodeRefId": "NON"
  },
  {
    "Amount": 175.0,
    "DetailType": "SubTotalLineDetail"
  }
] 

For user convenience, lines of these objects are also available as separate records via read-only tables with names containing LineItem suffix, like InvoiceLineItem, BillLineItem, etc. They allow you to view these lines in a tabular form, with Query, export them to CSV with Export, import them from QuickBooks to a cloud application or database, where these lines should be stored in a separate table, etc.

Since these tables (that have the LineItem suffix in their name) are read-only, they are not available in Import packages as a target or in Synchronization packages. To modify lines of an invoice, bill, etc. you need to provide values in JSON format for the Lines field of the corresponding main table - Invoice, Bill, etc. For example, to import invoices from a CSV files to QuickBooks, you need to specify invoice lines in the JSON format, as in the example above, in one of the CSV file columns, and import this file to the Invoice table. You need to map the Lines field of the Invoice table to this column of the CSV file.

The tables with the LineItem suffix in their name are available in backup packages, but you cannot restore data to these tables, because they are read-only. Since they store the same information as the Lines field of the corresponding main tables, you don’t actually need to backup them. All the information in *LineItem tables is present in the corresponding main tables, and you can backup and restore data in the main table only.

QuickBooks Connections

When creating a QuickBooks connection, you simply log in with QuickBooks. The OAuth authentication token is stored on the Skyvia server. Your QuickBooks account login and password are not stored on the Skyvia server.

To create a QuickBooks connection, perform the following steps:

  1. Click +NEW in the top menu.
  2. Open the Select Connector page by clicking Connection in the menu on the left.
  3. In the opened pane, click QuickBooks.
  4. In the Connection Editor page, specify a connection name that will be used to identify the connection.

    Connection Editor window

  5. Specify QuickBooks environment type, which can be Production or Sandbox.

  6. Optionally, change the Metadata Cache parameter value. This parameter determines for how long the cached metadata for the connection are considered valid. By default, Skyvia caches metadata of available objects in cloud sources. Whenever necessary, you can reset metadata cache for a connection manually in the Connection Editor by clicking the Clear Cache button. The following values are available for this parameter:

    • Disabled — metadata cache is not created; metadata are queried automatically whenever required.
    • One Hour — metadata cache expires one hour after the last refresh.
    • One Day — metadata cache expires one day after the last refresh.
    • One Week — metadata cache expires one week after the last refresh.
    • One Month — metadata cache expires one month after the last refresh.
    • Infinite — cache never expires/resets automatically. Default value.
  7. Click Log In with QuickBooks.
  8. In the opened window, enter your QuickBooks credentials and click the Log In button.

    QuickBooks Sign In window

  9. Select a company to query data from (click the link with the corresponding company name).

    QuickBooks Sign In window

  10. Click Connect.

    QuickBooks Authorization window

  11. Wait until the necessary data are transmitted and then click Create Connection to create the connection.

    Connection Editor window 2