Supported objects

Collection NameReadWrite
Account
AccountListDetail
APAgingDetail
APAgingSummary
ARAgingDetail
ARAgingSummary
Attachable
BalanceSheet
Batch
Bill
BillPayment
Budget
CashFlow
ChangeDataCapture
Class
CompanyCurrency
CompanyInfo
CreditMemo
CreditCardPayment
Customer
CustomerBalance
CustomerBalanceDetail
CustomerIncome
FECReport
CustomerType
Department
Deposit
Employee
Entitlements
Estimate
Exchangerate
GeneralLedger
GeneralLedgerFR
InventoryValuationSummary
Invoice
Item
JournalCode
JournalEntry
JournalReport
JournalReportFR
Payment
PaymentMethod
Preferences
ProfitAndLoss
ProfitAndLossDetail
Purchase
PurchaseOrder
RecurringTransaction
RefundReceipt
ReimburseCharge
SalesByClassSummary
SalesByCustomer
SalesByDepartment
SalesByProduct
SalesReceipt
TaxClassification
TaxCode
TaxPayment
TaxRate
TaxService
TaxSummary
TaxAgency
Term
TimeActivity
TransactionList
TransactionListByVendor
TransactionListByCustomer
TransactionListWithSplits
Transfer
TrialBalance
Vendor
VendorBalance
VendorBalanceDetail
VendorCredit
VendorExpenses

For a detailed exploration of these entities and the data model, please refer to the QuickBooks API Explorer.

Setup & installation

Sequin uses OAuth to connect with your QuickBooks account.

Connecting to QuickBooks

Steps:

  1. In the Sequin console, click Add sync and select QuickBooks.
  2. Click Add new credential then Connect to QuickBooks.
  3. This will bring you to QuickBooks. If you are not already logged in, you will be prompted to log in.
  4. You will be asked to authorize Sequin to access your QuickBooks data. Click Connect.
  5. You will be redirected back to the Sequin console once installation is complete.

After QuickBooks and Sequin are connected, you can follow the steps to configure your Sync.

The syncing process

We first backfill your database with all your QuickBooks data. Backfilling typically completes in a few minutes. For larger QuickBook accounts this can take longer - if you have an account with millions of objects this may take up to an hour. We’ll email you when your backfill is complete and Sequin has loaded all your data into your database.

After the initial backfill, we’ll rely on QuickBooks webhooks to monitor changes. Webhooks allow Sequin to instantly capture changes to your QuickBooks data. We backstop webhooks with an occasional polling process to ensure we don’t miss any events. This means changes on QuickBooks should propagate to your database in just a few seconds.

Learn more about our syncing process.

Read and write QuickBooks data using SQL

After synchronization, access your QuickBooks data using SQL through Sequin’s Postgres Proxy.

Here’s how QuickBooks data may appear in your database:

db7hea89oah3tas=> \dt

                 List of relations
 Schema |         Name              | Type  |  Owner
--------+---------------------------+-------+----------
 public | _sync_cdc                 | table | sequin
 public | customer                  | table | sequin
 public | invoice                   | table | sequin
 public | payment                   | table | sequin
 public | vendor                    | table | sequin
 public | employee                  | table | sequin
 public | item                      | table | sequin
 public | bill_payment              | table | sequin
 public | purchase_order            | table | sequin
(9 rows)

Sequin uses the internal _sync_cdc table to maintain your sync.

Querying Customers

Example of querying the customer table:

select
    id,
    display_name,
    company_name,
    email,
    phone,
    balance,
    created_at,
    updated_at
from
    customer
where
    company_name = 'Acme Corp';

Which returns a row like:

-[ RECORD 1 ]+---------------------------
id            | qbk_cust1234567
display_name  | Acme Corporation
company_name  | Acme Corp
email         | contact@acmecorp.com
phone         | 123-456-7890
balance       | 1500.00
created_at    | 2023-11-01T10:00:00.000Z
updated_at    | 2023-11-03T15:30:00.000Z

Updating an Invoice

To update a customer’s display_name:

update customer
set display_name = 'Acme Corporation'
where id = 'qbk_cust1234567';

Sequin reflects this change in QuickBooks and your database immediately.

If a write to QuickBooks through Sequin fails, Sequin returns the error as a Postgres error and rolls back the transaction. For example, if you try to update an invoice that doesn’t exist, Sequin returns the following error:

db7hea89oah3tas=> update customer set display_name = 'Acme Corporation' where id = 'qbk_cust1234567';
ERROR:  [QuickBooks] Customer `qbk_cust1234567` not found

Next steps

Your QuickBooks tables are now available as fully readable and writeable tables in your database. You can query for all your data using SQL, and mutate data thanks to Sequin’s Postgres Proxy. To build on this foundation, here are some next steps:

  • Setup your ORM to work with your synced tables.
  • Edit the QuickBooks objects and properties you’re syncing at any time.
  • Create views on your QuickBooks data to tailor your schema to your needs.
  • Invite your team to your Sequin account and start building!

If you need assistance setting up your sync, just send us a note. We’re around and eager to help.