# Data Overview

Coupler.io provides two separate QuickBooks data sources, each designed for different use cases. **QuickBooks** gives you raw entity data (invoices, customers, bills, etc.), while **QuickBooks Reports** gives you pre-built financial reports (P\&L, Balance Sheet, General Ledger, etc.).

## QuickBooks (Entity Data)

This source pulls structured records directly from your QuickBooks Online account. Select one entity per data flow.

#### Available entities

| Entity            | Description                       | Typical use case                      |
| ----------------- | --------------------------------- | ------------------------------------- |
| **Invoice**       | Customer invoices with line items | Revenue tracking, accounts receivable |
| **Customer**      | Customer records and contact info | Customer lists, contact management    |
| **Bill**          | Vendor bills (accounts payable)   | Expense tracking, AP aging            |
| **Payment**       | Customer payments received        | Cash flow tracking                    |
| **Vendor**        | Vendor/supplier records           | Vendor management, AP reporting       |
| **Employee**      | Employee records                  | Payroll, HR reporting                 |
| **Estimate**      | Quotes and estimates              | Sales pipeline tracking               |
| **Purchase**      | Purchases and expenses            | Expense analysis                      |
| **PurchaseOrder** | Purchase orders                   | Procurement tracking                  |
| **SalesReceipt**  | Point-of-sale receipts            | Retail and cash sales                 |
| **CreditMemo**    | Credit memos issued               | Refund and credit tracking            |
| **Deposit**       | Bank deposits                     | Cash flow, deposit reconciliation     |
| **Transfer**      | Bank-to-bank transfers            | Cash management                       |
| **JournalEntry**  | Manual journal entries            | Adjustments, accruals                 |
| **Account**       | Chart of accounts                 | Account structure and balances        |
| **Item**          | Products and services             | Inventory, catalog management         |
| **Budget**        | Budget records                    | Budget vs. actual analysis            |
| **TimeActivity**  | Time tracking entries             | Billable hours, payroll hours         |

Additional entities: Attachable, BillPayment, Class, CompanyInfo, Department, ExchangeRate, JournalCode, PaymentMethod, Preferences, RefundReceipt, TaxAgency, TaxCode, TaxRate, Term, VendorCredit.

#### Entity parameters

| Parameter    | Purpose                                                                    | Example                 |
| ------------ | -------------------------------------------------------------------------- | ----------------------- |
| **Where**    | Filter records using QuickBooks query syntax                               | `TxnDate>='2025-01-01'` |
| **Order**    | Sort results by a field (ascending by default; append DESC for descending) | `EmailAddress DESC`     |
| **Split by** | Split multi-line values (e.g., invoice line items) into separate rows      | `Line`                  |

{% hint style="info" %}
The Where parameter accepts standard date strings in `YYYY-MM-DD` format. See the [Where parameter guide](https://help.coupler.io/article/250-how-to-use-where-parameter-in-quickbooks) for full syntax and field-by-field examples.
{% endhint %}

## QuickBooks Reports (Financial Reports)

This source pulls formatted financial reports from QuickBooks Online. Each report has its own set of columns and query parameters.

#### Summary reports

| Report                          | What it shows                               | Key parameters                             |
| ------------------------------- | ------------------------------------------- | ------------------------------------------ |
| **Profit and Loss Summary**     | Revenue and expenses by account             | `accounting_method`, `class`, `department` |
| **Balance Sheet**               | Assets, liabilities, and equity snapshot    | `accounting_method`, `adjusted_gain_loss`  |
| **Cash Flow**                   | Cash inflows and outflows                   | `class`, `department`, `customer`          |
| **Trial Balance**               | Debit/credit balances for all accounts      | `accounting_method`                        |
| **Expenses by Vendor**          | Expense totals grouped by vendor            | `accounting_method`, `class`               |
| **Sales by Customer**           | Sales totals grouped by customer            | `accounting_method`, `class`               |
| **Sales by Product**            | Sales totals grouped by product/service     | `accounting_method`, `department`          |
| **Sales by Class Summary**      | Sales totals grouped by class               | `accounting_method`                        |
| **Sales by Department**         | Sales totals grouped by department/location | `accounting_method`                        |
| **Tax Summary**                 | Tax collected and owed                      | —                                          |
| **Inventory Valuation Summary** | Inventory quantities and values             | —                                          |

#### Detail reports

| Report                           | What it shows                                    | Key columns                            |
| -------------------------------- | ------------------------------------------------ | -------------------------------------- |
| **Profit and Loss Detail**       | Individual transactions behind P\&L line items   | Date, Type, Name, Amount, Balance      |
| **General Ledger Detail**        | All transactions by account with running balance | Date, Account, Debit, Credit, Balance  |
| **Transaction List**             | All transactions in a flat list                  | Date, Type, Account, Amount            |
| **Transaction List by Customer** | Transactions grouped by customer                 | Date, Type, Customer, Amount           |
| **Transaction List by Vendor**   | Transactions grouped by vendor                   | Date, Type, Vendor/Supplier, Amount    |
| **Transaction List with Splits** | Transactions showing all split lines             | Date, Account, Amount, Product/Service |
| **Journal Report**               | Journal entries with debit/credit detail         | Date, Account, Debit, Credit           |

#### Aging and balance reports

| Report                        | What it shows                                 |
| ----------------------------- | --------------------------------------------- |
| **AP Aging Detail / Summary** | Outstanding vendor bills by aging period      |
| **AR Aging Detail / Summary** | Outstanding customer invoices by aging period |
| **Customer Balance / Detail** | Customer balances and underlying transactions |
| **Vendor Balance / Detail**   | Vendor balances and underlying transactions   |
| **Customer Income**           | Income by customer                            |
| **Account List Detail**       | Chart of accounts with balances               |

#### Report configuration options

| Option                 | Purpose                                                                      | Available for                        |
| ---------------------- | ---------------------------------------------------------------------------- | ------------------------------------ |
| **Report period**      | Preset time range (This Month, Last Fiscal Year, Custom, etc.)               | All reports                          |
| **Start/End date**     | Custom date range (when Report period = Custom)                              | All reports                          |
| **Display columns by** | Group data into columns by time period or dimension                          | Summary reports, Transaction Lists   |
| **Report structure**   | Choose between QuickBooks-style (hierarchical) or Flat structure             | Detail reports, some summary reports |
| **Query parameters**   | Additional filters (accounting\_method, class, department, customer, vendor) | Varies by report                     |
| **Columns**            | Select specific columns to include                                           | Detail reports                       |

## Common metric combinations

| Goal                      | Source                          | Configuration                                     |
| ------------------------- | ------------------------------- | ------------------------------------------------- |
| Monthly P\&L dashboard    | QuickBooks Reports              | Profit and Loss Summary, Display columns by Month |
| Accounts receivable aging | QuickBooks Reports              | AR Aging Detail with customer and term filters    |
| Invoice line-item export  | QuickBooks                      | Invoice entity, Split by = `Line`                 |
| Filtered vendor expenses  | QuickBooks Reports              | Expenses by Vendor, filter by class or department |
| Budget vs. actual         | QuickBooks + QuickBooks Reports | Budget entity + Profit and Loss Summary           |

## Use cases by role

{% tabs %}
{% tab title="Finance / Accounting" %}
Automate P\&L, Balance Sheet, and General Ledger exports to Google Sheets or BigQuery. Combine with budgets for variance analysis. Use the `accounting_method` parameter to ensure consistent Cash or Accrual reporting across all data flows.
{% endtab %}

{% tab title="Business Owners" %}
Build monthly revenue and expense dashboards in Looker Studio or Power BI without waiting for accountant reports. Start with Profit and Loss Summary by Month and AR/AP Aging Summary for a real-time snapshot of your business health.
{% endtab %}

{% tab title="Operations" %}
Track AP/AR aging, vendor balances, and purchase orders to manage cash flow proactively. Use the Customer Balance Detail and Vendor Balance Detail reports to stay on top of outstanding receivables and payables.
{% endtab %}

{% tab title="Bookkeepers" %}
Export transaction lists and journal entries for audit preparation and reconciliation. The General Ledger Detail and Transaction List with Splits reports give you the granular, row-level data needed for month-end close and audit trails.
{% endtab %}
{% endtabs %}

## Platform-specific notes

* **QuickBooks Online only** — Coupler.io connects to the QuickBooks Online API. QuickBooks Desktop is not supported.
* **Accounting method** — Reports default to the accounting method set in your QuickBooks company preferences. To override, use the `accounting_method` query parameter with value `Cash` or `Accrual`.
* **400,000-cell limit** — The QuickBooks Reports API has a hard limit of 400,000 cells (rows × columns) per report. If your report exceeds this, QuickBooks truncates the data. Narrow your date range or filters to stay under the limit.
* **Budget entity limitations** — The Budget entity returns budget metadata (name, type, dates) but budget line-item details (monthly amounts by account) are returned in a nested format that requires additional processing.
* **Inactive records** — By default, the QuickBooks entity source returns only active records. To include inactive records (e.g., inactive vendors), add `Active IN (false, true)` to the Where parameter.
* **Class and Department filtering** — To filter reports by Class or Department, you must use the `class` or `department` query parameters with the entity IDs (not names). Find these IDs by first exporting the Class or Department entity.
* **Date fields** — Both the Where parameter (entities) and the Start/End date fields (reports) accept dates in `YYYY-MM-DD` format. Use the date picker for report Start/End dates.
