The QuickBooks Online integration syncs your daily POS close data to QuickBooks as journal entries. This article covers the one-time connection setup and ongoing configuration: choosing a sync mode, picking a memo template, and switching between Sandbox and Production environments.

> **Permissions:** All QuickBooks settings are admin-only. You need the `quickbooks_config` permission and access to the store you're configuring.

***

## Where to find it

From any admin page, open **QuickBooks** in the left sidebar and click **Settings**. Direct URL: `/admin/{typeNum}/quickbooks/settings`.

***

## Step 1 — Connect to QuickBooks Online

1. On the Settings page, find the **Connection** card at the top.
2. If you're not connected yet you'll see a red dot and a `Connect to QuickBooks` button. Click it.
3. You'll be redirected to Intuit's OAuth screen. Sign in with the bookkeeping account, choose the company file, and click **Connect**.
4. You'll come back to the Settings page automatically. The Connection card now shows a green dot, the company name, and your QBO Realm ID.

> **Tip:** The same Intuit account can be connected to multiple BuyerKiosk stores. Each store keeps its own tokens and its own sync settings.

If you ever need to reconnect (because Intuit invalidated tokens, or you swapped company files), use `Reconnect` next to the green dot. To unlink entirely, use `Disconnect` — note that disconnecting does **not** delete prior journal entries from QBO.

***

## Step 2 — Choose a sync mode

The **Sync Mode** controls how journal entries reach QuickBooks. There are three options:

| Mode | What happens each night |
| ---- | ---------------------- |
| **Manual Approval** *(default)* | The system stages a journal entry for the day and waits for you to review it in the Approval Queue. Nothing posts to QBO until you click `Approve`. |
| **Automatic** | Entries post directly to QBO every night with no review step. |
| **Disabled** | The nightly job skips this store entirely. No staging, no posting. |

> **Recommendation:** Start in `Manual Approval` for the first 30 days. Once you've confirmed the entries look right and your variance is consistent, switch to `Automatic` if you want hands-off operation.

> **Warning:** You cannot switch to `Automatic` while there are pending entries in the Approval Queue. Approve or reject them first.

***

## Step 3 — Set the reminder cadence

Under Sync Configuration, two settings control reminders for pending approvals:

- **Reminder Cadence** — how often the system can email/notify you about pending approvals. Options: Daily, Weekly, Monthly, On Demand.
- **Pending Reminder Threshold** — only send a reminder once an entry has been pending for this many days. Default: 3 days.

If you tend to approve daily, set the threshold to 1. If you batch-approve weekly, set it to 7.

***

## Step 4 — Configure re-sync behavior

The **Re-Sync Behavior** dropdown controls what happens when the close data changes for a date you already synced:

- **Require Manual Decision** *(default)* — flag the day for review; you decide whether to void & repost, edit, or accept the change.
- **Void & Repost Automatically** — automatically void the prior JE and post a new one.
- **Update In Place** — overwrite the existing JE without voiding (advanced; only safe in some accounting workflows).

When in doubt, leave on `Require Manual Decision`.

***

## Step 5 — Customize the memo template

Every journal entry posted to QBO gets a memo (PrivateNote in the Intuit API). The default template is:

```
Daily Sales - {companyName} ({typeNum}) - {date}
```

You can customize it with these placeholders:

| Placeholder | Resolves to |
| ----------- | ----------- |
| `{typeNum}` | Store identifier (e.g. `pc00`) |
| `{date}` | Sync date in `YYYY-MM-DD` |
| `{companyName}` | The store's display name |
| `{syncType}` | `daily_close`, `manual`, or `retry` |

The preview under the memo field shows what the next entry will look like. Memos are limited to 200 characters.

***

## Sandbox vs. Production

Every QuickBooks page shows a yellow `SANDBOX MODE` banner at the top when you're connected to a sandbox company. This is your safety check.

- **Sandbox** is Intuit's test environment. Transactions posted here do **not** affect real books. Perfect for trying things out.
- **Production** is your live QBO company file. Transactions here are real journal entries against real accounts.

The environment is determined by the OAuth credentials issued when you connect. To switch from Sandbox to Production:

1. Click `Disconnect`.
2. Click `Connect to QuickBooks` again.
3. Sign in with your **production** Intuit credentials and pick the live company.

> **Warning:** Always verify the environment badge in the Settings page header before approving entries. The Approval Queue will also show the sandbox banner — if you don't see the banner and you expected sandbox, stop and check before approving.

***

## What's next

- [Mapping POS fields to QBO accounts](/support/articles/quickbooks-account-mapping) — required setup before your first sync.
- [Daily approval workflow](/support/articles/quickbooks-daily-approval-workflow) — how to review and approve the staged entries.
- [Reconciliation & audit](/support/articles/quickbooks-reconciliation-and-audit) — verifying QBO matches your POS totals.
