We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
For SaaS teams whose customers keep their books in QuickBooks Desktop or Enterprise. QuBe Sync reads the company file through the Web Connector and sends your app the customers, items, invoices, payments, reports, and whatever else you ask for as JSON. Tell us what you need from QuickBooks, and we’ll build the import in a free account.
Try real requests
How often you need it, and where it’s going determines the setup.
Your product shows or works on QuickBooks data regularly.
The first run imports every record of the types you ask for. After that, your app passes the time of its last run, and the workflow only sends what changed since then, including what was deleted.
You’re onboarding a new customer, or moving one off Desktop for good.
Import every record you need, a page at a time.
You run the business or keep its books, and want the data in Excel.
QuBe Sync is an API for software teams, so it’s more than you need. QuickBooks Desktop already exports to Excel: every report has an Excel button, and the customer, vendor and item lists export from their own windows.
Exporting many company files, or the same data every month? Tell us about it
107 read operations, each one a JSON request with QuickBooks’ own filters: by name, by date modified, by customer, by date range. These are the ones most apps start with.
How reads and paging workPushing records to QuickBooks too? The same connection creates and updates them
Your customer connects once, from a link you send them. After that your app asks for what it needs, and QuBe Sync calls your webhook with each page of results as QuickBooks answers. No SOAP server, no qbXML, nothing to poll or manage.
The import and sync workflowsYour app starts the import
POST /api/v2/connections/:id/workflow-runs
{ "workflow": "pull_changes", "input": { "lists": [ "customer", "item_service", "item_inventory" ], "transactions": [ "invoice", "receive_payment" ], "include_line_items": true }, "webhook_url": "https://yourapp.example/webhooks/qube" }
QuBe Sync calls your webhook
Some QuickBooks Desktop APIs try to answer on the same call (your request waits or times out while a PC in your customer’s office does the work). That might suit simple, manual requests, but leads to unexpected failures your code has to handle. Reliably syncing a company’s data is a different job.
The call fails or times out, and your code decides when to try again.
The request stays queued and is answered when QuickBooks is back. Your app is told if the connection stalls.
Your app holds the cursor and asks for each page in turn, one request at a time.
One request. Every page comes to your webhook, in order.
Your code writes the date filter for each kind of record, and asks for the deletions separately.
Your app keeps one date, the time of its last run. A workflow sends you what changed since then, as well as what was deleted.
The call that was waiting is gone, and the read starts over.
The delivery is retried, and you’re emailed if it never lands.
For getting data out in bulk, and keeping it current, delivery is what holds up.
The data lives in a file on your customer’s PC, behind a program that has to be open, signed in and on the right company. We’ve been reading it for 16 years.
How we handle errorsWhat a read runs into
QuickBooks hands over customers, vendors, items and transactions a page at a time. Your app gets 200 records per webhook, in order, and never one answer too large to take.
QuickBooks keeps a paged read only for the session that began it. The workflow starts again from the first page and marks the repeat, so your app can take a page twice without harm.
A query never returns what’s gone. A sync given the time of your last run also asks QuickBooks for what was deleted since then, which it keeps for 90 days.
Each connection remembers its company file. Nothing is read from another one, and your customer is told to open the right file.
The read stays queued until QuickBooks is open again, and your customer is told, once, in words they can act on.
The same connection can create or update any record QuickBooks allows. Push customers and items, add invoices and record payments, with 144 create and update operations and workflows that reconcile first, so nothing is created twice.
No separate price for exports or imports: a connection costs the same whether your app reads from it once or all day.
Try real requests
Questions first? Write to support@qubesync.com and a real human will answer.
Rather build it yourself? Create a free account