# Common Issues

## Connection Issues

<details>

<summary>401 Authorization Error — "AuthorizationFault"</summary>

The OAuth token has expired or been revoked. QuickBooks tokens expire periodically, and any changes to your Intuit account credentials can also invalidate them.

**Fix:**

1. Go to your Coupler.io data flow settings.
2. Click the source connection and select **Reconnect**.
3. Sign in again with your Intuit/QuickBooks credentials and re-authorize.

If the Reconnect option doesn't appear, remove the existing QuickBooks connection from **Settings → Connections** and create a new one.

</details>

<details>

<summary>QuickBooks Desktop is not supported</summary>

Coupler.io connects to the QuickBooks Online API only. If you have QuickBooks Desktop (including Desktop Enterprise), the integration will not work.

**Fix:** You would need to migrate your data to QuickBooks Online, or use a third-party sync tool that bridges QuickBooks Desktop to an online-accessible format.

</details>

<details>

<summary>Connection works but data flow fails on subsequent runs</summary>

This usually means the OAuth token refreshed successfully but QuickBooks returned an API error. Check the error details in the data flow run history.

**Fix:** Open the data flow, click on the failed run, and expand the error details. Common causes include changed permissions, a deleted entity, or API rate limits.

</details>

## Missing Data

<details>

<summary>Only active records are returned (missing inactive vendors, customers, etc.)</summary>

By default, QuickBooks API queries return only active records. Inactive vendors, customers, or items won't appear unless you explicitly request them.

**Fix:** Add `Active IN (false, true)` to the **Where** parameter to include both active and inactive records.

</details>

<details>

<summary>Budget entity returns metadata but no line-item amounts</summary>

The QuickBooks Budget entity returns budget-level metadata (name, fiscal year, type) but the detailed line items (monthly amounts per account) come in a nested format that isn't broken out into columns automatically.

**Fix:** There is currently no built-in way to fully flatten budget line items in Coupler.io. As a workaround, export the Budget entity and process the nested fields in your destination using formulas or a transformation step.

</details>

<details>

<summary>P&#x26;L report returns data for wrong date range</summary>

Some users set a custom report period (e.g., starting January 2021) but only receive data from a more recent period.

**Fix:** Make sure you select **Custom** as the Report period and then enter both the **Start date** and **End date** explicitly. Also check that your QuickBooks company file actually contains data for the requested period.

</details>

<details>

<summary>Invoice or transaction data is missing line-item detail</summary>

When exporting invoices or other entities with multiple line items, each record may appear as a single row with aggregated data.

**Fix:** Set the **Split by** parameter to `Line`. This splits multi-line documents into separate rows — one row per line item.

</details>

## Permission Errors

<details>

<summary>"Access denied" or missing entities</summary>

Some QuickBooks entities require specific subscription tiers or features to be enabled (e.g., Classes require QuickBooks Plus or Advanced, Budget requires Plus or Advanced).

**Fix:** Verify your QuickBooks Online subscription tier supports the entity you're trying to export. Also ensure the connected account has Admin or Accountant-level access.

</details>

## Data Discrepancies

<details>

<summary>Reports show Cash basis instead of Accrual (or vice versa)</summary>

QuickBooks Reports default to the accounting method set in your company preferences. If you're getting Cash-basis data when you expect Accrual, the report is inheriting the default.

**Fix:** Add the query parameter `accounting_method: Accrual` (or `Cash`) in the **Query parameters** field. This overrides the company default for that specific report.

</details>

<details>

<summary>Report totals don't match QuickBooks Online</summary>

Small differences between Coupler.io exports and the QuickBooks UI can occur when the report covers a different date range, uses a different accounting method, or includes/excludes certain transaction types.

**Fix:**

1. Confirm the **report period** and **start/end dates** match exactly.
2. Check the **accounting\_method** parameter.
3. Verify **Display columns by** is set the same way (Total vs. Month can affect how subtotals appear).
4. For multicurrency accounts, check whether the report includes or excludes currency conversion adjustments (`adjusted_gain_loss` parameter).

</details>

<details>

<summary>General Ledger doesn't show split transaction detail</summary>

The General Ledger Detail report may show "Split" in the Split column instead of the actual accounts involved when a transaction is split across multiple accounts.

**Fix:** Use the **Transaction List with Splits** report instead. This report outputs each split as a separate row, showing the actual GL account or class for each portion of the transaction.

</details>

<details>

<summary>Line items are concatenated in one column and row</summary>

When exporting Invoices, Bills, or other entities with multiple line items with the **Split by** parameter empty, you will get one row per invoice, bill (or whichever entity is selected), and will have the line items concatenated together like so:

<figure><img src="https://1055512216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOFxU2LUkJMCfvbE2re5C%2Fuploads%2FdAz5LNK2OJV3gxsSGfTS%2Fimage.png?alt=media&#x26;token=df63654e-767a-4c39-bad8-a6d0640630b2" alt=""><figcaption></figcaption></figure>

To unnest or flatten this to give you one row per line item, set the **Split by** parameter to `Line` :

<figure><img src="https://1055512216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOFxU2LUkJMCfvbE2re5C%2Fuploads%2FCa20e27XHh1skmujeiED%2Fimage.png?alt=media&#x26;token=0a62b5f0-cfa1-4205-8d63-bc389ae9a1d3" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1055512216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOFxU2LUkJMCfvbE2re5C%2Fuploads%2FPfkMk3jiSne0aeCtVoCe%2Fimage.png?alt=media&#x26;token=197b2f89-6685-4cb5-b208-1fe6e99ea83a" alt=""><figcaption></figcaption></figure>

</details>

## Rate Limits and API Errors

<details>

<summary>400,000-cell limit error — report data is truncated</summary>

The QuickBooks Reports API enforces a hard limit of 400,000 cells (rows × columns). When a report exceeds this, QuickBooks truncates the response or injects an error message like "Unable to generate report."

**Fix:**

* Narrow the date range (e.g., pull monthly instead of yearly).
* Reduce the number of columns selected.
* Filter by class, department, or customer to reduce the data volume.
* Split the report across multiple data flows with non-overlapping date ranges.

</details>

{% hint style="danger" %}
The 400,000-cell limit is a QuickBooks API limitation, not a Coupler.io limitation. There is no way to increase it. If your General Ledger or Transaction List consistently hits this limit, you must split your exports into smaller time ranges.
{% endhint %}

<details>

<summary>Data type mismatch errors when exporting to BigQuery</summary>

BigQuery requires consistent data types within a column. If QuickBooks returns mixed types (e.g., a "Num" column that contains both integers and strings like "JL07"), the import fails.

**Fix:** Use the **Columns** selector in Coupler.io to exclude problematic columns, or use a transformation step to standardize the data types before export.

</details>

<details>

<summary>Power BI error: "Key should not be null or empty"</summary>

This occurs when a column in the exported data has a blank or "Untitled" header. Power BI cannot parse columns without proper names.

**Fix:**

1. Open the data flow in Coupler.io.
2. Go to the **Transform** step.
3. Rename any blank or "Untitled" column headers.
4. Re-run the data flow and refresh the Power BI connection.

</details>
