Collect QuickBooks journal entries in Databricks
Load QuickBooks journal entries and the chart of accounts into your own Databricks workspace with a custom OWOX connector. Manual adjustments become rows you can audit, join and run models on.
QuickBooks Endpoints
26 QuickBooks endpoints you can import. Each lands in its own table in your data warehouse.
A/P Aging Summary report
A/P Aging Summary as of report_date (window end): one row per vendor with aging buckets.
11 fieldsTime seriesA/R Aging Summary report
A/R Aging Summary as of report_date (window end): one row per customer with Current, 1-30, 31-60, 61-90, 91+ and Total columns.
11 fieldsTime seriesAccounts
Chart of accounts, active and inactive.
20 fieldsBalance Sheet report
Balance Sheet as of the run window end (Assets, Liabilities, Equity by account).
12 fieldsTime seriesBill payments
Payments against vendor bills; joins to Bill through Line[].LinkedTxn.
23 fieldsBills
Vendor bills (payables).
25 fieldsCash Flow report
Statement of Cash Flows for the run window.
12 fieldsTime seriesCompany info
One row per company: names, country, fiscal-year start.
15 fieldsCredit memos
Credits issued to customers (reduce receivables; negative revenue in reconciliations).
23 fieldsCustomers
Customers, including inactive ones and sub-customers, with open balance and a flattened billing address.
28 fieldsDeposits
Bank deposits, including the ones that group undeposited customer payments.
21 fieldsGeneral Ledger Detail report
General Ledger: every posting line per account for the run window, with opening balance and totals.
12 fieldsTime seriesInvoice changes (CDC, incl. deletes)
Change data capture for Invoice: every invoice created, updated or deleted since the run window start, full payload, deleted ones with status = Deleted.
9 fieldsTime seriesInvoices
Invoices with header amounts, customer and Line[] as JSON (SalesItemLineDetail.ItemRef, Qty, UnitPrice, Amount).
36 fieldsItems
Products and services with price, purchase cost and the three account links.
25 fieldsJournal entries
Manual and adjusting journal entries; the postings the transaction tables miss.
15 fieldsPayments
Customer payments.
21 fieldsPreferences
One row per company: home currency, multi-currency flag, fiscal-year and tracking settings.
17 fieldsProfit and Loss report
Profit and Loss per run window, one column per month (summarize_column_by=Month), rows nested by account group.
12 fieldsTime seriesPurchases
Expenses paid directly (cash, check, card) without a bill.
26 fieldsRefund receipts
Money refunded to customers.
26 fieldsSales by Customer report
Sales by Customer Summary for the run window.
12 fieldsTime seriesSales receipts
Sales paid at the time of sale (no receivable).
27 fieldsTransfers
Money moved between balance-sheet accounts.
16 fieldsVendor Expenses report
Expenses by Vendor for the run window.
12 fieldsTime seriesVendors
Vendors, including inactive ones, with open payable balance.
19 fields
Why bring journal entries into the same place as the rest
Journal entries are where the books are adjusted by hand, which is why they matter at the close and why they are hard to see in reports. Loading them with the accounts into a warehouse lets you read every adjustment against the account it touched.
- Audit manual adjustments by date and by account
- Join entries to the chart of accounts in SQL
- Feed forecasting or anomaly models from the same tables
Step 1: Connect QuickBooks and pick the fields
Create a Data Mart, choose QuickBooks as the source and authorize QuickBooks Online with OAuth. Add the company (realm) id, open an endpoint and tick only the fields you need.
- Journal entries sits beside Accounts among the 26 endpoints
- A custom connector: the credential and company id are yours
Step 2: Load QuickBooks into Databricks
Each endpoint becomes its own table, and refresh settings are set in the Data Mart. Run it and the first load lands as a table in a schema of the main catalog in Databricks. The location is pre-filled from your storage, and you can change it.
- Journal entries land in their own table in the main catalog
- Every run is logged in Run History
Step 3: Get a business-friendly QuickBooks output schema
After the first run you get the output schema: every field with its type. total_amt is documented as the sum of one side of the entry, and the debit and credit lines stay as JSON.
- The line array holds PostingType, Debit or Credit, to unnest in SQL
- private_note keeps the preparer's remark
Step 4: Keep the QuickBooks tables linked
Company info, accounts and journal entries stay separate tables that share realm_id as the company key; a journal line reaches its account through AccountRef. Together they become the adjustments part of one QuickBooks model.
- Entries and accounts both carry the company id
- Account references inside the lines join to Accounts.id
Step 5: Schedule the QuickBooks refresh and backfill history
Set it once. A daily scheduled refresh keeps the tables current, and a manual backfill loads earlier periods.
- Daily runs with no pipeline to maintain
- Backfill entries for the periods under review
Step 6: Reuse the same QuickBooks table everywhere
One table feeds your model, , , assistants and scheduled insights in Slack or email.
- Define an adjustment once
- Every report reads the same table
- 0.41.0Rotating a warehouse key is one change: Storages share reusable Credentials
- 0.41.0Dates from Google Sheets arrive as dates, not text
- 0.41.0Shared SQL logic stays in one place: build a Data Mart on top of another
- 0.41.0Rotating a connector key is one change: Sources share reusable Credentials
- 0.40.0Connecting a plan from Google Sheets takes fewer guesses
Why OWOX for QuickBooks in Databricks
Journal entries rarely reach analytics. OWOX loads them into your own Databricks workspace beside everything else you model.
- You own the data. It lands in your own data warehouse, in tables you control.
- Adjustments you can audit. Every entry is a row with its date, amount and note.
- Notebook-ready. Tables in Databricks are ready for the models your data team already runs.
- One place to fix. When QuickBooks's API changes, you publish one new connector version.
You are booked. The invitation is on its way to , with the calendar invite and the meeting link.