Build on QuickBooks without limits. Sync all your QuickBooks data to your Postgres database in real-time. Query your Accounts, Customers, Invoices, and Payments with SQL or your ORM. Get all API events in a hosted Kafka cluster. And
delete QuickBooks records in both QuickBooks and your database simultaneously.
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
In the Sequin console, click Add sync and select QuickBooks.
Click Add new credential then Connect to QuickBooks.
This will bring you to QuickBooks. If you are not already logged in, you will be prompted to log in.
You will be asked to authorize Sequin to access your QuickBooks data. Click Connect.
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:
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
Sequin uses the internal
_sync_cdc table to maintain your sync.
Example of querying the
company_name = 'Acme Corp';
Which returns a row like:
-[ RECORD 1 ]+---------------------------
id | qbk_cust1234567
display_name | Acme Corporation
company_name | Acme Corp
email | email@example.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:
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
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.