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 a bill, journal entry, etc. you need to provide values in JSON format for the Lines field of the corresponding main table - Bill, JournalEntry, etc. For example, to import bills from a CSV files to QuickBooks, you need to specify bill lines in the JSON format in one of the CSV file columns, and import this file to the Bill table. You need to map the Lines field of the Bill table to this column of the CSV file.

However, for the Invoices table, you can use our Nested Objects mapping feature in Import packages. For this, you need to select the Use new runtime check box in your package, then select the Nested Objects check box in package. Then, in the mapping settings, you can map the fields of invoice line items. For more information, please see the following tutorials:

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. Сlick Connection in the menu on the left to open the Select Connector page.
  3. In the opened pane, select QuickBooks.
  4. In the Connection Editor page, specify a connection name that will be used to identify the connection.
  5. Specify QuickBooks environment type, which can be Production or Sandbox.

    Connection Editor window

  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 now link. 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 Connect to QuickBooks.
  8. In the opened window, enter your QuickBooks credentials and click the Sign In button.

    QuickBooks Sign In window

  9. Select a company to query data from (click the link with the corresponding company name) and proceed further.
  10. Wait until the token is generated and then click Create Connection to create the connection.

    Connection Editor window

Supported Actions and Actions Specifics

QuickBooks connector supports the following actions: