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

# QuickBooks Online API

> Search invoices, customers, payments and reports in your QuickBooks Online books, and create, update, void or email records as you allow

The QuickBooks Online API tool gives Neo agents access to your QuickBooks company through the Intuit Accounting API. The common use is a client's billing question on a ticket: the agent finds the client's customer record, searches their invoices, and answers with the invoice's status, balance, due date and payment link.

<Info>
  Automatically enabled when you configure QuickBooks Online permissions in your agent workflow.
</Info>

## What It Does

* Search invoices by number, customer, date, due date or balance, with the QuickBooks query language
* Read a customer's open balance, payments, credit memos and estimates
* Read reports: aged receivables and payables, customer balances, profit and loss, transaction lists
* Read what changed since a time across several record types (the change feed)
* Create and update customers, invoices, estimates, payments, bills, products and time activities
* Void or delete a transaction, and make a customer, vendor or product inactive
* Email an invoice, estimate, credit memo, receipt or purchase order from your QuickBooks

## Permission Groups

| Group | Covers |
| - | - |
| **Customers** | Customers and sub-customers (jobs and projects) |
| **Sales & Invoices** | Invoices, estimates, credit memos, sales receipts, refund receipts and customer payments |
| **Emails to Customers & Vendors** | Emailing a sales record to the customer, or a purchase order to the vendor |
| **Vendors & Purchases** | Vendors, bills, bill payments, purchase orders, expenses and vendor credits |
| **Accounts, Journals & Banking** | The chart of accounts, journal entries, deposits, transfers, credit card payments, budgets, recurring templates and tax payments |
| **Products, Tax & Lists** | Products and services, inventory adjustments, classes, locations, terms, payment methods, tax codes, rates and agencies, currencies and exchange rates |
| **Employees & Time** | Employees and time activities |
| **Attachments & Notes** | Notes and the details of attached files |
| **Company Settings** | Company details and preferences |
| **Reports** | Every QuickBooks report the API serves |

Each group has an access level: **Disabled**, **Read Only**, or **Read/Write**. Reports offers only Disabled and Read Only; Emails to Customers & Vendors only Disabled and Read/Write.

## Access Profiles

<AccordionGroup>
  <Accordion title="Read Only">
    Every readable group Read Only, emails Disabled. The agent searches invoices, customers, payments and reports, and never changes anything.
  </Accordion>

  <Accordion title="Helpdesk">
    Customers and Employees & Time at Read/Write, everything else Read Only, emails Disabled. Every write in those two groups requires technician approval.
  </Accordion>

  <Accordion title="IT Admin">
    Every writable group at Read/Write. The agent creates and updates customers, invoices, payments, bills, products and time autonomously. Emails to Customers & Vendors, Accounts, Journals & Banking, and Company Settings writes require technician approval.
  </Accordion>

  <Accordion title="Full Automation">
    Every supported write runs autonomously, emails included.
  </Accordion>
</AccordionGroup>

## Safety Controls

| Control | Behavior |
| - | - |
| **Technician-in-the-Loop** | Require human approval for writes, configurable per group |
| **Searches are checked by record type** | A search names one record type after `FROM`, and Neo checks the group of that type. A change feed or a batch of searches needs every group it reads |
| **Batches carry searches only** | A batch request runs up to 30 searches. Each create, update, delete or void goes as its own request, with its own permission check, and its own approval when its group requires one |
| **Named records** | A delete or void must name the record's `Id` and `SyncToken`, so when its group requires approval, the approval shows the exact record |
| **Emails are separate** | Writing an invoice never emails it; emailing needs Emails to Customers & Vendors |
| **Documented operations only** | Every call must match an operation in Intuit's Accounting API reference with its own method, and any other is refused |
| **Files** | PDF downloads, attachment downloads and file uploads are refused, and attachment download links are removed from every answer |

## How to Configure

<Steps>
  <Step title="Connect QuickBooks Online">
    Save your Intuit app's Client ID and Client Secret, a refresh token and your company's Realm ID in the Neo Dashboard under the **Accounting** integrations category. See [Connecting QuickBooks Online to Neo](/integrations/quickbooks-online/connecting-to-neo).
  </Step>

  <Step title="Configure permissions">
    In your agent workflow's **Integrations** tab, choose an access profile or customize each permission group.
  </Step>

  <Step title="Set approval requirements">
    Decide per permission group whether writes need a technician.
  </Step>
</Steps>

<Tip>
  To answer clients' invoice questions, **Read Only** is enough: it covers Customers, Sales & Invoices and Reports.
</Tip>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.