> ## Documentation Index
> Fetch the complete documentation index at: https://docs.salesbricks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Connect Salesbricks to QuickBooks Online to sync customers, invoices, payments, credit memos, and refunds into your accounting ledger.

export const ConsecutiveImageGap = () => <>
    <div style={{
  height: '1rem'
}}></div>
  </>;

<Tip>
  Ready to connect your QuickBooks company to Salesbricks? Follow our [Setup
  guide](/integrations/quickbooks/setup) to get integrated within minutes.
</Tip>

## Overview

Linking Salesbricks to your QuickBooks Online company automatically pushes customers, invoices, payments, credit memos, and refunds from Salesbricks into QuickBooks, and reads payment activity back out of QuickBooks to reconcile your Salesbricks invoices.

Salesbricks is the source of truth for customers, invoices, and payments. The integration writes that data into QuickBooks, and reads payment updates in QuickBooks for any invoice that originated in Salesbricks.

If a customer pays their Salesbricks invoice through Stripe, or checks out directly through Stripe, Salesbricks pushes the invoice and payment details into QuickBooks.

If an invoice is paid outside of the Salesbricks paywall (for example, the customer pays by check or wire and you record the payment in QuickBooks), the payment syncs from QuickBooks back to Salesbricks and the invoice is auto-reconciled. See [Payment sync](#payment-sync-from-quickbooks) below.

<Note>
  Salesbricks connects to one finance system at a time. If Xero is already connected, disconnect it
  before connecting QuickBooks.
</Note>

## What syncs to QuickBooks

### Customers

A Salesbricks customer syncs as a QuickBooks **customer**, created when a new subscription is closed.

* **Display name**: the customer's legal name, suffixed with `(via Salesbricks)`. QuickBooks requires display names to be unique across customers, vendors, and employees, so the suffix keeps Salesbricks-created records from colliding with your existing ones. Characters QuickBooks does not accept in a name are stripped, and colons become spaces.
* **Company name**: the customer's legal name, without the suffix.
* **Email**: the accounts payable email the buyer enters when signing the order form.
* **Address**: the customer's billing address, written to the QuickBooks billing address so it appears on invoices.
* **Currency**: on multi-currency companies, set from the invoice driving the sync. QuickBooks fixes a customer's currency at creation, so it is never changed on later syncs.

If a QuickBooks customer with the same display name already exists and is active, Salesbricks links to it instead of creating a second one.

Editing a customer's name, legal name, or billing address in Salesbricks re-syncs the QuickBooks customer, so the two stay aligned without a manual push.

To point an order at a QuickBooks customer you already have, use the **Finance system** field under **Third-party integrations** when closing the order. Reach out to Salesbricks Support if you need existing orders linked in bulk.

### Invoices

A Salesbricks invoice syncs as a QuickBooks **invoice**.

* **Invoice date** and **due date** come from the Salesbricks invoice. The billing terms are matched to a QuickBooks term named `Net <days>` when one exists in your company file.
* **Invoice number**: with **Override invoice number** on, the QuickBooks document number is the Salesbricks invoice number instead of QuickBooks' own sequence.
* **Bill email** and **billing address** are written onto the invoice itself, not just the customer, so a re-sync never depends on the customer record being current.
* **Line items** are pushed one per billed brick, with quantity, unit price, and a service date taken from the line's contract period. Lines map to QuickBooks items by SKU code, or by an item mapping when Salesbricks Support has configured one.
* **Discounts** are pushed as a single **Total Discount** line rather than being netted into each line, so a negotiated concession stays visible. Line-level discounts stay on each line when your invoice display settings put them there.
* **Sales tax**: with **Override invoice sales tax** on, Salesbricks pushes its own calculated tax and sends line amounts tax-exclusive. With it off, line amounts include tax and QuickBooks calculates its own.
* **Custom fields**: accounts payable email, purchase order number, and the buyer's external ID can be written to QuickBooks custom fields. QuickBooks caps custom field values at 30 characters, so longer values are truncated. Reach out to Salesbricks Support to set this up.

### Payments

A payment recorded in Salesbricks is pushed to QuickBooks and applied against the synced invoice, depositing to the account mapped for that payment method.

<Note>
  A payment larger than the invoice's open balance in QuickBooks is not pushed. QuickBooks would
  silently turn it into an unapplied credit that cannot be reconciled, so Salesbricks marks the
  payment for manual review instead. Payments of \$0 are not pushed either, since the QuickBooks API
  rejects them.
</Note>

### Credits and adjustments

Invoice credits and adjustments sync as QuickBooks **credit memos** and are applied against the original invoice, so the invoice balance drops without touching a cash account. Each type is configured independently under [Credit memos](#credit-memos).

With credit memos turned off, an invoice adjustment is folded into the invoice's discount line instead.

### Refunds

A Stripe refund is recorded in QuickBooks as a **refund receipt**, posted to the same account the original payment deposited to, with the invoice's lines scaled to the refunded amount.

### Voids

Voiding an invoice in Salesbricks voids the corresponding QuickBooks invoice. Salesbricks then stops syncing that invoice, while leaving it in place in QuickBooks for your records.

Terminating a subscription voids the invoices scheduled after the termination date. Reinstating that subscription unvoids them and recreates them in QuickBooks.

## Payment sync from QuickBooks

Payments and credits recorded in QuickBooks are reconciled against unpaid Salesbricks invoices, which reduces manual effort and keeps both ledgers accurate.

### How it works

A background scan rechecks each connected company at least every four hours, reading back the invoices that are still unpaid in Salesbricks to pick up their payments and applied credit memos.

QuickBooks can also notify Salesbricks the moment an invoice or a payment changes, which reconciles the payment without waiting for the next scan.

<Note>
  Real-time change notifications are enabled per account. Reach out to Salesbricks Support to have
  them turned on. Without them, the four-hour scan is the only path.
</Note>

Both paths require **Auto-matching enabled** in your QuickBooks configuration.

<Info>
  Only payments applied to invoices that originated in Salesbricks are processed. Salesbricks cannot
  reconcile payments for invoices that exist only in QuickBooks.
</Info>

A payment recorded in QuickBooks but never applied to the synced invoice is invisible to this path. Link those with [manual payment matching](/integrations/quickbooks/payment-matching).

## Configuration

From **Settings** -> **Integrations** -> **QuickBooks Online** -> **Manage**, open the actions menu on the QuickBooks card and choose **Update config**.

### Sync settings

| Setting                         | What it does                                                                                |
| ------------------------------- | ------------------------------------------------------------------------------------------- |
| **Auto-create customers**       | Creates a QuickBooks customer when a Salesbricks customer doesn't exist in QuickBooks yet.  |
| **Auto-create invoices**        | Creates new invoices in QuickBooks.                                                         |
| **Auto-create payments**        | Creates new payments in QuickBooks.                                                         |
| **Auto-create default account** | Creates a default account in QuickBooks, `Unallocated via Salesbricks`, for unmapped items. |

### Payment matching

| Setting                   | What it does                                                                                                 |
| ------------------------- | ------------------------------------------------------------------------------------------------------------ |
| **Auto-matching enabled** | Automatically matches payments recorded in QuickBooks back to the corresponding unpaid Salesbricks invoices. |

This setting governs automatic matching only. Linking a payment yourself is covered in [Manual payment matching](/integrations/quickbooks/payment-matching).

### Invoice options

| Setting                        | What it does                                                                                            |
| ------------------------------ | ------------------------------------------------------------------------------------------------------- |
| **Override invoice number**    | Uses Salesbricks invoice numbers instead of QuickBooks' auto-generated numbers.                         |
| **Override invoice sales tax** | Uses the sales tax Salesbricks calculated instead of QuickBooks' own tax calculation.                   |
| **Sync muted invoices**        | When off, invoices excluded from Salesbricks invoice and collections emails are not sent to QuickBooks. |

### Line item settings

| Setting                                      | What it does                                                                                                                                |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| **Date range description for usage lines**   | For usage-based lines, replaces the line description with the billing period date range. Applies only to lines mapped to a QuickBooks item. |
| **Date range description for ramping lines** | The same, for ramping lines.                                                                                                                |

### Credit memos

| Setting                                                 | What it does                                                                                                    |
| ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| **Create credit memos for adjustments**                 | Syncs invoice adjustments as credit memos instead of payments, so they don't hit cash accounts.                 |
| **QuickBooks item for adjustment credit memos**         | The item whose income account adjustment credit memos are booked against. Leave unset to let QuickBooks choose. |
| **Create credit memos for credits**                     | Syncs credit applications as credit memos instead of payments.                                                  |
| **QuickBooks item for credit application credit memos** | The item whose income account credit applications are booked against. Leave unset to let QuickBooks choose.     |

### Account representative tracking

| Setting                   | What it does                                                                                                                                                                                             |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Enable class tracking** | Tags invoice transactions with the order's account representative as a QuickBooks class. Matches an existing class by the team member's full name, or creates one named `<full name> (via Salesbricks)`. |

<Note>
  Class tracking is enabled per account. Reach out to Salesbricks Support if you don't see this
  section.
</Note>

### Account mapping

Choose **Update account mapping** on the QuickBooks card to map transaction types to specific QuickBooks accounts, so different kinds of transactions land in the right place in your ledger.

| Mapping                   | What it does                                     |
| ------------------------- | ------------------------------------------------ |
| **Discount**              | The account an invoice's discount line posts to. |
| **Payment - ACH**         | The account ACH payments deposit to.             |
| **Payment - Credit Card** | The account credit card payments deposit to.     |
| **Payment - Check**       | The account check payments deposit to.           |
| **Payment - Wire**        | The account wire payments deposit to.            |
| **Payment - Adjustment**  | The account payment adjustments post to.         |

Payment mappings offer your bank and other payment accounts; the discount mapping offers your income and discount accounts. Anything left unmapped falls back to the default account, and then to QuickBooks' own default.

<Note>
  Account mapping is enabled per account. Reach out to Salesbricks Support if you don't see this
  option.
</Note>

## Controlling what syncs

<AccordionGroup>
  <Accordion title="Skip an entire order">
    When closing an order, check **Don't sync invoices for this order to the finance system**. None
    of that order's invoices will be pushed to QuickBooks.
  </Accordion>

  <Accordion title="Turn off sync for a single invoice">
    On the invoice's billing statement page, open the actions menu and choose **Disable syncing**. The
    invoice will no longer be pushed to QuickBooks, existing data in QuickBooks is unchanged, and you
    can re-enable it later from the same menu.
  </Accordion>

  <Accordion title="Sync an invoice on demand">
    On the invoice's billing statement page, choose **Sync transactions to finance system** to push
    the invoice and its payments and adjustments to QuickBooks immediately. This also overrides the
    **Sync muted invoices** setting for that run.
  </Accordion>
</AccordionGroup>


## Related topics

- [Overview](/integrations/stripe/overview.md)
