# QuickBooks MCP connector

The QuickBooks connector lets Claude, ChatGPT, Cursor, or any MCP client read and record bills, bill payments, credit memos, items, vendors, accounts, and tax rates in QuickBooks, with each person acting under their own QuickBooks access and every change logged.

Source: https://elaichi.ai/connectors/quickbooks/

## Facts

| | |
| --- | --- |
| Application | QuickBooks |
| Category | Accounting |
| AI tools | 132 |
| Authentication | Connects over OAuth |
| Needs your own OAuth app | Yes |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 132 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once QuickBooks is connected

- Which QuickBooks bills are unpaid past their due date?
- Summarize this month's QuickBooks credit memos by customer.
- List QuickBooks bill payments over 10,000 this quarter.

## Connect QuickBooks in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick QuickBooks.
2. Optionally set Share with, then press Connect.
3. Supply your own QuickBooks app, then approve. QuickBooks needs an OAuth app you register yourself, so bring its client ID and secret. One person does this once for the organization.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which QuickBooks tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect QuickBooks to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect QuickBooks to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect QuickBooks to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect QuickBooks to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a QuickBooks tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with QuickBooks through Elaichi

### Log a vendor bill as it arrives

Accounts payable. Read out the vendor, amount, due date, and what it was for, and the bill is created in QuickBooks against the right account and class without anyone retyping it.

### Record the payment once a bill is settled

Accounts payable. When a bill has been paid from the bank, ask for the payment to be recorded against it in QuickBooks so the bill stops showing as open.

### See what is owed to vendors this week

Finance. Ask which QuickBooks bills fall due in the next seven days, grouped by vendor, and get a plain list you can take into the cash planning meeting.

### Issue a credit memo for a return

Bookkeeping. When a customer sends goods back, describe the return and a credit memo is created in QuickBooks with the right items and amounts.

### Add a new product or service item

Operations. Give the name, price, and income account, and the item is created in QuickBooks so it can be used on bills and memos straight away.

### Look up the right account, class, or tax rate

Bookkeeping. Ask which expense account a purchase belongs to, what a class is used for, or what the current tax rate is, and get the answer from the live QuickBooks company file.

## Frequently asked questions

### How do I connect QuickBooks to Claude?

Connect QuickBooks in Elaichi first, then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. QuickBooks connects over OAuth, but it needs an OAuth application that your company registers inside QuickBooks itself, so one person brings a client ID and secret across once when setting up the connection. After that, everyone signs in to QuickBooks with their own Intuit login and nobody else touches the client ID or secret.

### Does QuickBooks work with ChatGPT and Cursor as well as Claude?

Yes. Once QuickBooks is connected in Elaichi, the same address, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect QuickBooks once and use it from whichever client you are in.

### What can an AI agent actually do with my QuickBooks data?

Through Elaichi, an AI agent can look up and create bills, record bill payments, create credit memos, add items, and read your QuickBooks vendors, accounts, classes, tax rates, and the list of available reports. It cannot delete anything in QuickBooks through this connector. QuickBooks has a large set of actions, so short, concrete asks like "create a bill for Acme for 1,200 due Friday" work better than long paragraphs.

### Does connecting QuickBooks give the AI access to my whole company file?

No. Every request runs as the person who signed in to QuickBooks, so the AI sees only the bills, vendors, accounts, and reports that person can already see in QuickBooks. Elaichi can narrow that further by team or by action, and it can never grant anything QuickBooks itself has not already given that person.

### Can my team share one QuickBooks connection?

Yes. One person connects QuickBooks in Elaichi and shares it with the finance or accounts payable team, and nobody else handles the client ID or secret. Each teammate still signs in as themselves, so the audit log shows which person created a bill or recorded a payment in QuickBooks.

### Can I stop an agent from changing things in QuickBooks?

Yes. In Elaichi, restrictions on QuickBooks work per action, so you can allow reading bills and vendors while blocking the creation of bills, bill payments, or credit memos. A blocked action is never shown to Claude, ChatGPT, or Cursor at all, so no prompt can reach it.

### What happens to a QuickBooks connection when someone leaves?

Offboarding a person in Elaichi ends their access to QuickBooks through every AI client at once. A shared QuickBooks connection keeps working for everyone else on the team. If you disconnect QuickBooks in Elaichi, it disappears from Claude, ChatGPT, Cursor, and every other client in one step.

## All 132 QuickBooks tools

Every tool below is callable through https://api.elaichi.ai/mcp once QuickBooks is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all QuickBooks accounts** (List). List QuickBooks accounts using a SQL-like query (select * from Account). Returns: Name, domain, FullyQualifiedName, Classification, AccountSubType, CurrencyRef, CurrentBalanceWithSubAccounts, sparse, MetaData, AccountType, CurrentBalance, Active, SyncToken, Id, SubAccount, Description, AcctNum, TaxCodeRef, ParentRef. Required: realm_id.
- **Get single QuickBooks account by ID** (Get). This endpoint retrieves detailed information for a specific account within a QuickBooks company. The returned data includes key attributes such as the fully qualified name, classification, account type and subtype, current balance details, currency information, metadata (creation and last updated times), and the account's active status. It is typically used to display or manage account details in financial applications or validate account attributes.
- **Create a QuickBooks account** (Create). Create a new QuickBooks account in the chart of accounts. Pass properties at the TOP LEVEL of the arguments using exact case-sensitive PascalCase names (Name, AccountType, AccountSubType) — do not nest them under a body key and do not use lowercase/snake_case: QuickBooks silently ignores unrecognized properties and then fails with error 2170 ("Either an Account.AccountType or an Account.AccountSubType must be specified"). Required: Name, plus either AccountType or AccountSubType. The realmId is resolved automatically from the connected company. Returns the created Account object including Id, Name, AccountType, Classification, AccountSubType, CurrentBalance, Active, CurrencyRef, MetaData, FullyQualifiedName and SyncToken.
- **List all QuickBooks bills** (List). List QuickBooks bills using a SQL-style query. Returns bill records including Id, VendorRef, TxnDate, TotalAmt, Balance, Line, DueDate, MetaData, and CurrencyRef. Optional where and order_by parameters control filtering and sorting.
- **Get single QuickBooks bill by ID** (Get). Get a single QuickBooks bill by id. Returns the full bill object including Id, VendorRef, TxnDate, TotalAmt, Balance, Line, DueDate, MetaData, CurrencyRef, and APAccountRef. Required: id.
- **Create a QuickBooks bill** (Create). Create a bill in QuickBooks Online. Returns the created bill with Id, SyncToken, VendorRef, Line, TotalAmt, Balance, DueDate, and MetaData. Required: realm_id, VendorRef, Line. CurrencyRef is required when multicurrency is enabled for the company.
- **Update a QuickBooks bill by ID** (Update). Full update an existing bill in QuickBooks Online. Writable fields omitted from the request body are set to null. Returns the updated bill with Id, SyncToken, VendorRef, Line, TotalAmt, Balance, DueDate, and MetaData. Required: realm_id, Id, SyncToken, VendorRef, Line.
- **List all QuickBooks credit memos** (List). List QuickBooks credit memos using a SQL-style query. Returns: Id, DocNumber, TxnDate, domain, PrintStatus, TotalAmt, RemainingCredit, Line, ApplyTaxAfterDiscount, sparse, CustomerMemo, ProjectRef, Balance, CustomerRef, TxnTaxDetail, SyncToken, CustomField, ShipAddr, EmailStatus, BillAddr, MetaData, BillEmail. Required: realm_id.
- **Get single QuickBooks credit memo by ID** (Get). Retrieves a specific credit memo by its unique ID from a QuickBooks company. A credit memo represents a refund or credit issued for goods or services sold. The response includes details such as transaction date, total amount, line items with sales details, customer information, billing/shipping addresses, and metadata. This endpoint is useful for viewing detailed customer credit transactions.
- **Create a QuickBooks credit memo** (Create). Create a new QuickBooks credit memo for a customer. Returns the created credit memo including Id, DocNumber, TxnDate, TotalAmt, Balance, CustomerRef, Line, SyncToken, RemainingCredit, MetaData. Required: realm_id, Line, CustomerRef.
- **List all QuickBooks reports** (List). Get a QuickBooks Online report by report name. Returns the report object including Header (with ReportName, Option, StartPeriod, EndPeriod, Currency, Time), Rows (with ColData entries), and Columns (with ColType and ColTitle). Required: report_name. Available reports include CashFlow, JournalReport, ProfitAndLoss, BalanceSheet, GeneralLedger, TrialBalance, and others; supported query parameters…
- **List all QuickBooks refund receipts** (List). List QuickBooks refund receipts using a SQL-style query against the RefundReceipt entity. Returns each receipt with Id, DocNumber, TxnDate, TotalAmt, Balance, CustomerRef, Line items, MetaData, and more. Optional: where (SQL WHERE clause filter), order_by (sort field, defaults to Id).
- **Get single QuickBooks refund receipt by ID** (Get). Get a single QuickBooks refund receipt by id. Returns the full RefundReceipt object including Id, DocNumber, TxnDate, TotalAmt, Balance, CustomerRef, DepositToAccountRef, Line items, BillAddr, ShipAddr, MetaData, and more. Required: id.
- **List all QuickBooks bill payments** (List). List QuickBooks bill payments using a SQL-style query. Returns each bill payment with Id, VendorRef, TotalAmt, PayType, TxnDate, Line, CheckPayment or CreditCardPayment, and MetaData.
- **Get single QuickBooks bill payment by ID** (Get). Get a single QuickBooks bill payment by id. Returns the full bill payment object including Id, VendorRef, TotalAmt, PayType, TxnDate, Line, CheckPayment or CreditCardPayment, and MetaData. Required: id.
- **Create a QuickBooks bill payment** (Create). Create a new QuickBooks bill payment. Returns the created bill payment including Id, SyncToken, VendorRef, TotalAmt, PayType, Line, CheckPayment, and MetaData. Required: realm_id, VendorRef, TotalAmt, Line, and PayType. CurrencyRef is required if multicurrency is enabled; CheckPayment is required when PayType is Check; CreditCardPayment is required when PayType is CreditCard.
- **List all QuickBooks items** (List). List QuickBooks Online items via a SQL query (select * from Item). Returns each item with Id, Name, Type, Active, FullyQualifiedName, UnitPrice, QtyOnHand, IncomeAccountRef, ExpenseAccountRef, MetaData, and additional fields depending on item type. Required: realmId.
- **Get single QuickBooks item by ID** (Get). Get a single QuickBooks Online item by id. Returns the full item object including Id, Name, Type, Active, FullyQualifiedName, UnitPrice, QtyOnHand, IncomeAccountRef, ExpenseAccountRef, AssetAccountRef, MetaData, and additional fields depending on item type. Required: id, realmId.
- **Create a QuickBooks item** (Create). Create a new QuickBooks Online item such as a product, service, inventory item, or category. Returns the created item including Id, Name, Type, SyncToken, Active, MetaData, IncomeAccountRef, and account references. Required: Name.
- **List all QuickBooks tax rates** (List). List QuickBooks tax rates via a SQL-like query (Select * From TaxRate). Returns: Id, SyncToken, RateValue, Name, AgencyRef, SpecialTaxType, EffectiveTaxRate, DisplayType, TaxReturnLineRef, Active, MetaData, OriginalTaxRate, Description, domain, sparse. Optional where and order_by parameters allow filtering and sorting.
- **Get single QuickBooks tax rate by ID** (Get). Get a single QuickBooks tax rate by id. Returns: Id, SyncToken, RateValue, Name, AgencyRef, SpecialTaxType, EffectiveTaxRate, DisplayType, TaxReturnLineRef, Active, MetaData, OriginalTaxRate, Description, domain, sparse. Required: id.
- **List all QuickBooks classes** (List). List QuickBooks Online classes using a SQL-like select query. Returns each class with Id, Name, FullyQualifiedName, Active, SubClass, SyncToken, and MetaData. Optional: where (SQL WHERE fragment for filtering), order_by (sort field, defaults to Id).
- **Get single QuickBooks class by ID** (Get). Get a single QuickBooks Online class by id. Returns the full class object including Id, Name, FullyQualifiedName, Active, SubClass, SyncToken, MetaData, and ParentRef (for subclasses). Required: id.
- **List all QuickBooks vendors** (List). List QuickBooks vendors using a SQL-style query. Returns: Id, SyncToken, Title, GivenName, MiddleName, Suffix, FamilyName, PrimaryEmailAddr, DisplayName, OtherContactInfo, TermRef, Source, T4AEligible, Fax, CurrencyRef, Mobile, PrimaryPhone, Active, AlternatePhone, MetaData, Vendor1099, CostRate, BillRate, WebAddr, T5018Eligible, CompanyName, VendorPaymentBankDetail, TaxIdentifier, AcctNum,…
- **Get single QuickBooks vendor by ID** (Get). Get a single QuickBooks vendor by id. Returns: Id, SyncToken, Title, GivenName, Suffix, FamilyName, PrimaryEmailAddr, DisplayName, CurrencyRef, Mobile, PrimaryPhone, Active, MetaData, Vendor1099, WebAddr, CompanyName, TaxIdentifier, AcctNum, PrintOnCheckName, BillAddr, Balance, domain, sparse. Required: realmId, id.
- **Create a QuickBooks vendor** (Create). Create a vendor in QuickBooks. Returns the created Vendor object including Id, DisplayName, Balance, SyncToken, Active, BillAddr, and MetaData. Required: realm_id. Either DisplayName or at least one of Title, GivenName, MiddleName, FamilyName, or Suffix must be supplied.
- **List all QuickBooks customers** (List). List QuickBooks Online customers using the Query API (SELECT * FROM Customer). Returns: Id, SyncToken, domain, sparse, DisplayName, Title, GivenName, MiddleName, FamilyName, Suffix, FullyQualifiedName, CompanyName, PrintOnCheckName, Active, Balance, BalanceWithJobs, OpenBalanceDate, Job, BillWithParent, Level, IsProject, Taxable, TaxExemptionReasonId, PrimaryTaxIdentifier, SecondaryTaxIdentifier,…
- **Get single QuickBooks customer by ID** (Get). Get a single QuickBooks customer by id. Returns the full Customer object including Id, DisplayName, Balance, Active, PrimaryEmailAddr, BillAddr, SyncToken, and MetaData. Required: realm_id, id.
- **Create a QuickBooks customer** (Create). Create a new customer in QuickBooks Online. Returns the created Customer object including Id, DisplayName, Active, Balance, SyncToken, MetaData, BillAddr, and PrimaryEmailAddr. Required: realm_id. Either DisplayName or at least one name component (Title, GivenName, MiddleName, FamilyName, or Suffix) is required.
- **Update a QuickBooks customer by ID** (Update). Update an existing QuickBooks Online customer. Supports full update (all writable fields must be included; omitted fields are set to NULL) or sparse update (set sparse=true to update only specified fields). Returns: Id, SyncToken, domain, sparse, DisplayName, Title, GivenName, MiddleName, Suffix, FamilyName, PrimaryEmailAddr, ResaleNum, SecondaryTaxIdentifier, DefaultTaxCodeRef,…
- **List all QuickBooks purchases** (List). List QuickBooks purchases using SQL-style query with optional WHERE filtering and ORDER BY sorting. Returns: Id, SyncToken, domain, sparse, PaymentType, AccountRef, Line, CurrencyRef, TxnDate, PrintStatus, RemitToAddr, TxnSource, LinkedTxn, GlobalTaxCalculation, MetaData, DocNumber, PrivateNote, Credit, TxnTaxDetail, PaymentMethodRef, PurchaseEx, ExchangeRate, DepartmentRef, EntityRef,…
- **Get single QuickBooks purchase by ID** (Get). Retrieves details for a specific Purchase from your QuickBooks company. A Purchase represents an expense transaction (cash, check, or credit card) made to a vendor. The response includes key fields such as the transaction date, total amount, payment type, account reference, and detailed line items.
- **Create a QuickBooks purchase** (Create). Create a new QuickBooks purchase (Cash, Check, or CreditCard expense). You must specify an AccountRef for all purchases, and TotalAmt must add up to the sum of Line.Amount values. Returns: Id, SyncToken, domain, sparse, PaymentType, AccountRef, Line, CurrencyRef, TxnDate, PrintStatus, RemitToAddr, TxnSource, LinkedTxn, GlobalTaxCalculation, MetaData, DocNumber, PrivateNote, Credit, TxnTaxDetail,…
- **List all QuickBooks journals** (List). List QuickBooks journal entries using a SQL-style query against the JournalEntry entity. Returns: Id, SyncToken, domain, TxnDate, sparse, Line, Adjustment, TxnTaxDetail, MetaData, DocNumber, PrivateNote, status, CurrencyRef, GlobalTaxCalculation, ExchangeRate, TaxRateRef, RecurDataRef, TotalAmt, HomeTotalAmt. Required: realmId.
- **Get single QuickBooks journal by ID** (Get). Get a single QuickBooks journal entry by id. Returns: Id, SyncToken, domain, TxnDate, sparse, Line, Adjustment, TxnTaxDetail, MetaData, DocNumber, PrivateNote, status, CurrencyRef, GlobalTaxCalculation, ExchangeRate, TaxRateRef, RecurDataRef, TotalAmt, HomeTotalAmt. Required: realmId, id.
- **Create a QuickBooks journal** (Create). Create a QuickBooks journal entry. A minimum of two Line elements are required: one with PostingType Debit and one with PostingType Credit that balance each other. Returns: Id, SyncToken, domain, TxnDate, sparse, Line, Adjustment, TxnTaxDetail, MetaData, DocNumber, PrivateNote, status, CurrencyRef, GlobalTaxCalculation, ExchangeRate, TaxRateRef, RecurDataRef, TotalAmt, HomeTotalAmt. Required:…
- **List all QuickBooks payments** (List). This endpoint executes a SQL-like query to retrieve Payment records from QuickBooks Online. It leverages the provided query statement to filter and sort Payment objects based on specific criteria (such as update time, customer, or amount). Use this method to get detailed information about payments, including metadata, customer references, deposit details, and any linked transactions. The response encapsulates the results in a QueryResponse object that includes a list of Payment records along with pagination details.
- **Get single QuickBooks payment by ID** (Get). Get a single QuickBooks payment by id. Returns the full Payment object including Id, TotalAmt, CustomerRef, TxnDate, UnappliedAmt, Line, DepositToAccountRef, and MetaData. Required: id.
- **Create a QuickBooks payment** (Create). Creates a new Payment transaction in QuickBooks Online. This endpoint records a payment against a customer or job and requires at least the total amount (TotalAmt) and a customer reference (CustomerRef). Optionally, you can include a ProjectRef for project-related payments (available in minorVersion: 69 and above) and a CurrencyRef if multicurrency is enabled for the company. This method is ideal for recording payments received, ensuring that the transaction is properly linked to the corresponding customer.
- **List all QuickBooks vendor credits** (List). Executes a SQL-like query to retrieve VendorCredit records from QuickBooks Online. This endpoint returns vendor credit transactions that match the specified filtering criteria. By using the optional where condition, you can narrow down the results based on criteria such as transaction date or total amount. The response is encapsulated within a QueryResponse object that includes pagination details (like startPosition and totalCount) and an array of VendorCredit objects. This method is useful for retrieving detailed vendor credit data for reporting or integration purposes.
- **Get single QuickBooks vendor credit by ID** (Get). Retrieves the details of a previously created VendorCredit object in QuickBooks Online. This endpoint allows you to fetch all the information associated with a specific vendor credit transaction, including vendor reference, transaction date, total amount, and detailed line items. Use this method to view or verify the contents of a vendor credit after it has been recorded.
- **List all QuickBooks attachables** (List). Executes a SQL-like query to retrieve attachable records from QuickBooks Online. This endpoint returns metadata for attachments—files, notes, or both—that are linked to a specific transaction or item object. By constructing a query that filters based on AttachableRef.EntityRef.Type and AttachableRef.EntityRef.value, you can fetch the IDs and details of attachments associated with a particular object. This is particularly useful for integration scenarios where you need to display or manage attachments linked to QuickBooks transactions.
- **Get single QuickBooks attachable by ID** (Get). Get a single QuickBooks attachable by id. Returns the full attachable object including Id, SyncToken, Note, AttachableRef, MetaData, and file-specific fields such as FileName, Size, and FileAccessUri. Required: id.
- **List all QuickBooks deposits** (List). Executes a SQL-like query to retrieve Deposit records from QuickBooks Online. Deposits represent transactions that record either a customer payment—originally held in the Undeposited Funds account and then moved to an Asset Account via linked transactions—or a direct deposit specified with deposit line details. This endpoint returns deposit data including the deposit account, transaction date, total amount, and detailed line items. Note: There is a known issue where queries with filters may return incorrect data.
- **Get single QuickBooks deposit by ID** (Get). Retrieves the complete details of a previously created Deposit object in QuickBooks Online. This endpoint returns all relevant information about the deposit transaction, including the deposit account, transaction date, total amount, and detailed line items such as any linked payment transactions. It is ideal for reviewing or verifying deposit data once it has been recorded.
- **List all QuickBooks invoices** (List). List QuickBooks invoices using a SQL-style query with optional filtering and sorting. Returns each invoice with Id, DocNumber, TxnDate, TotalAmt, Balance, CustomerRef, Line, BillAddr, ShipAddr, TxnTaxDetail, and MetaData.

EMAILSTATUS IS READABLE BUT NOT FILTERABLE. Each invoice carries EmailStatus (NotSet, NeedToSend or EmailSent), but QuickBooks rejects it in a WHERE clause with "QueryValidationError: property 'EmailStatus' is not queryable". To find sent invoices, list them and filter on EmailStatus client-side. Note also that only invoices.send moves an invoice to EmailSent - creating one never does.
- **Get single QuickBooks invoice by ID** (Get). Retrieves the complete details of an invoice that has been previously created in QuickBooks Online. This endpoint returns a full invoice object including transaction date, customer reference, line items (sales items, subtotals, etc.), billing and shipping addresses, tax details, custom fields, and more. It is ideal for reviewing or verifying invoice information for auditing, reporting, or integration purposes.
- **Create a QuickBooks invoice** (Create). Creates a new Invoice in QuickBooks Online. An Invoice represents a sales form where a customer is billed for products or services to be paid at a later date. The invoice must include at least one line item—either a sales item or an inline subtotal—and a populated CustomerRef element. If shipping or billing addresses are omitted, the corresponding addresses from the referenced Customer are used automatically. Additional optional fields, such as ProjectRef and CurrencyRef, are available for enhanced tracking and multicurrency support. This endpoint is ideal for recording new sales transactions in your QuickBooks Online company.

CREATING AN INVOICE DOES NOT SEND IT. QuickBooks only sets EmailStatus to NeedToSend when a BillEmail address is present; no email leaves until you call invoices.send with the returned Id. Set BillEmail.Address here so the send has a recipient.
- **Update a QuickBooks invoice by ID** (Update). Full update a QuickBooks Online invoice — the request body must include all writable fields of the existing object; writable fields omitted are set to NULL. Set sparse=true for a partial (sparse) update where only specified fields change. Returns the updated invoice including Id, SyncToken, DocNumber, TotalAmt, Balance, and Line. Required: realm_id, Id, SyncToken, Line, CustomerRef.
- **QuickBooks invoices send** (Send). Email an existing QuickBooks Online invoice to the customer. This is the operation that actually dispatches mail - creating an invoice with invoices.create does NOT send anything, it only sets EmailStatus to NeedToSend.

RECIPIENT: QuickBooks sends to the invoice's own BillEmail.Address. Set that when you create or update the invoice; if it is empty the send fails. This method does not accept a recipient override.

On success the invoice is returned with EmailStatus flipped to EmailSent and DeliveryInfo populated with the dispatch time. The send mutates the record, so SyncToken increments - use the returned value for any later update.

Sends a real email to a real customer. There is no draft or preview mode. Required: invoice_id.
- **List all QuickBooks estimates** (List). List QuickBooks estimates using a SQL-style query. Returns each estimate with Id, DocNumber, TxnDate, TotalAmt, TxnStatus, CustomerRef, Line, and MetaData. Supports optional WHERE clause filtering and ORDER BY sorting.
- **Get single QuickBooks estimate by ID** (Get). Retrieves the complete details of an Estimate that has been previously created in QuickBooks Online. This endpoint returns all relevant information including document number, transaction date, customer details, billing and shipping addresses, line items (with sales item details, subtotals, and discounts), tax information, custom fields, and metadata. It is ideal for reviewing, verifying, or processing an existing estimate.
- **Create a QuickBooks estimate** (Create). Create an estimate (quote) in QuickBooks Online. An estimate is a non-posting proposal of products or services at a stated price - it does not affect the ledger until converted to an invoice.

Line and CustomerRef are required, matching the invoice contract. Set BillEmail.Address here if you intend to email the quote afterwards with estimates.send, which delivers to that address.

TxnStatus controls the quote's state: Pending, Accepted, Closed or Rejected. ExpirationDate sets the validity window. Creating an estimate does NOT send it - use estimates.send for that. Required: Line, CustomerRef.
- **QuickBooks estimates send** (Send). Email an existing QuickBooks Online estimate (quote) to the customer. This is the operation that actually dispatches mail - estimates.create does NOT send anything.

RECIPIENT: QuickBooks sends to the estimate's own BillEmail.Address. Set that on create or update; if it is empty the send fails. This method does not accept a recipient override.

On success the estimate is returned with EmailStatus flipped to EmailSent and DeliveryInfo populated. The send mutates the record, so SyncToken increments.

Sends a real email to a real customer. There is no draft or preview mode. Required: estimate_id.
- **List all QuickBooks purchase orders** (List). List QuickBooks purchase orders using a SQL-style query against the company realm. Returns: Id, SyncToken, domain, DocNumber, TxnDate, TotalAmt, APAccountRef, VendorRef, Line, CustomField, POEmail, CurrencyRef, ShipAddr, VendorAddr, PrivateNote, Memo, POStatus, EmailStatus, sparse, GlobalTaxCalculation, TxnTaxDetail, ShipTo, ShipMethodRef, ClassRef, SalesTermRef, LinkedTxn, DueDate, ExchangeRate,…
- **Get single QuickBooks purchase order by ID** (Get). Retrieves the complete details of a previously created PurchaseOrder in QuickBooks Online. This endpoint returns all relevant information about the purchase order, including document number, vendor and account references, email and shipping addresses, line items, custom fields, and metadata. It is ideal for reviewing or verifying the details of a purchase order for auditing, reporting, or integration purposes.
- **Create a QuickBooks purchase order** (Create). Creates a new Purchase Order in QuickBooks Online—a non-posting transaction used to request goods or services from a vendor. The purchase order requires you to specify an APAccountRef (the liability account for accounts payable) and a VendorRef (the vendor to purchase from), as well as an array of one or more Line items. Each line must use a valid line type, such as ItemBasedExpenseLineDetail, which includes details like the item reference, quantity, unit price, and optional tax, project, or customer references. Optionally, you can include a ShipTo reference for shipping details. This endpoint is ideal for automating the procurement process by programmatically creating purchase orders.
- **Update a QuickBooks purchase order by ID** (Update). Full update an existing QuickBooks purchase order. The request body must include all writable fields of the existing object; omitted writable fields are set to NULL. Returns the updated purchase order including Id, DocNumber, VendorRef, APAccountRef, POStatus, TotalAmt, Line, and MetaData. Required: realm_id, Id, SyncToken, APAccountRef, VendorRef, and Line. CurrencyRef is conditionally required…
- **List all QuickBooks companies** (List). List QuickBooks Online company information records by querying the CompanyInfo entity via SQL. Returns: Id, SyncToken, domain, CompanyName, CompanyAddr, LegalAddr, CustomerCommunicationAddr, SupportedLanguages, Country, Email, WebAddr, NameValue, FiscalYearStartMonth, PrimaryPhone, LegalName, EmployerId, MetaData, CompanyStartDate, sparse. Required: realmId.
- **Get single QuickBooks company by ID** (Get). Get a single QuickBooks Online company information record by id. Returns: Id, SyncToken, domain, CompanyName, CompanyAddr, LegalAddr, CustomerCommunicationAddr, SupportedLanguages, Country, Email, WebAddr, NameValue, FiscalYearStartMonth, PrimaryPhone, LegalName, EmployerId, MetaData, CompanyStartDate, sparse. Required: id, realmId.
- **List all QuickBooks payment methods** (List). List QuickBooks payment methods using a SQL-style query with optional filtering and sorting. Returns: Id, Name, SyncToken, Active, Type, domain, sparse, MetaData. Required: realm_id.
- **Get single QuickBooks payment method by ID** (Get). Retrieves the complete details of a PaymentMethod object that has been previously created in QuickBooks Online. The response includes core attributes such as the payment method's name, type (e.g., CREDIT_CARD or NON_CREDIT_CARD), active status, and metadata (including sync token and timestamps). This endpoint is useful for verifying or displaying the properties of a specific payment method.
- **List all QuickBooks balance sheet** (List). Executes a query to retrieve the BalanceSheet report from the QuickBooks Online Report Service. The report aggregates financial data such as assets, liabilities, and equity. You can customize the report by specifying query parameters to filter by customers, vendors, departments, or classes; set date ranges using explicit dates or predefined macros; and control other options like the accounting method or sort order. This endpoint is ideal for generating financial reports for auditing, analysis, and decision-making purposes.
- **List all QuickBooks cashflow statement** (List). Executes a query to retrieve the CashFlow report from the QuickBooks Online Report Service. This report provides a detailed view of cash inflows and outflows over a specified period. You can customize the report by filtering for specific customers, vendors, classes, items, or departments; setting a date range using explicit dates (start_date and end_date) or a predefined range (date_macro); and controlling the sort order and grouping of data. This endpoint is ideal for financial analysis, budgeting, and cash management.
- **List all QuickBooks profit and loss** (List). Query a QuickBooks Online profit and loss report for a company. Returns the report object with Header (metadata such as ReportName, ReportBasis, StartPeriod, EndPeriod, Currency, SummarizeColumnsBy), Rows (nested income/expense section rows with ColData, type, group, and Summary totals), and Columns (column definitions with ColType, ColTitle, and MetaData). Required: realmId. Supports optional…
- **List all QuickBooks transfer** (List). List QuickBooks transfer transactions using a SQL-like query. Returns each transfer with Id, Amount, TxnDate, FromAccountRef, ToAccountRef, SyncToken, domain, sparse, and MetaData. Optional filters can be supplied via the where and order_by parameters.
- **Get single QuickBooks transfer by ID** (Get). Retrieves the complete details of a previously created Transfer in QuickBooks Online. The response includes key information such as the transaction date, amount, source account (FromAccountRef), destination account (ToAccountRef), and metadata (including sync token and timestamps). This endpoint is ideal for auditing, reconciling, or reviewing fund movements between company accounts.
- **Create a QuickBooks transfer** (Create). Creates a new Transfer transaction in QuickBooks Online, moving funds between two asset accounts in the company's chart of accounts. You must provide the total transfer amount, the destination asset account (ToAccountRef) where funds are deposited, and the source asset account (FromAccountRef) from which funds are withdrawn. This endpoint is ideal for recording internal fund transfers for cash management or reconciliation purposes.
- **List all QuickBooks transaction** (List). Executes a query to retrieve the TransactionList report from QuickBooks Online. This report provides a detailed view of transactions—such as invoices, payments, credit memos, and more—over a specified date range. You can customize the report by filtering data using parameters like start_date, end_date, date_macro, payment_method, transaction_type, and others. Additionally, you can group results by fields such as Customer, Vendor, or Department to better analyze transaction trends and financial performance.
- **List all QuickBooks currencies** (List). Executes a SQL-like query to retrieve CompanyCurrency objects from QuickBooks Online. Applicable only for companies with multicurrency enabled, each CompanyCurrency object defines an active currency in the company (as displayed in the Currency Center). This endpoint is useful for retrieving the list of currencies supported by the company along with their status, code, and metadata.
- **Get single QuickBooks currency by ID** (Get). Get a single QuickBooks company currency by id. Returns: Id, SyncToken, Code, Name, Active, domain, sparse, CustomField, MetaData. Required: id.
- **Create a QuickBooks currency** (Create). Creates a new CompanyCurrency object in QuickBooks Online. This object defines an active currency for a multicurrency-enabled company. The request requires the ISO 4217 currency code (e.g., USD, AUD, EUR) as its minimum input. This endpoint is useful for adding additional currencies that your company supports.
- **Update a QuickBooks currency by ID** (Update). Update a company currency in QuickBooks. Returns: Id, SyncToken, Code, Name, Active, sparse, domain, MetaData. Required: realm_id. The request body must include all writable fields of the existing object as returned in a read response; omitted writable fields are set to NULL, and the Id of the object to update is specified in the request body.
- **List all QuickBooks customer type** (List). List QuickBooks customer types via a SQL query. Returns each customer type with Id, Name, Active, SyncToken, domain, sparse, and MetaData (CreateTime, LastUpdatedTime). Optional: where (SQL WHERE clause to filter results), order_by (field to sort by, defaults to Id).
- **Get single QuickBooks customer type by ID** (Get). Retrieves the complete details of a CustomerType object from QuickBooks Online. This object includes key attributes such as the customer type’s name, active status, sync token, and metadata (creation and last updated timestamps). It is useful for verifying or displaying details of a specific customer categorization used for segmentation and reporting.
- **List all QuickBooks employees** (List). Executes a SQL-like query to retrieve Employee records from QuickBooks Online. An Employee object represents a person working for the company, containing attributes like DisplayName, GivenName, FamilyName, MiddleName, and PrimaryEmailAddress. This endpoint is useful for fetching employee details for reporting, auditing, or integration purposes. Special validation rules apply to name fields and email formats, and certain fields may be restricted when QuickBooks Payroll is enabled.
- **Get single QuickBooks employee by ID** (Get). Get a single QuickBooks employee by id. Returns the full Employee object including Id, DisplayName, GivenName, FamilyName, Active, SSN, PrimaryAddr, PrimaryPhone, and MetaData. Required: realmId, id.
- **Create a QuickBooks employee** (Create). Creates a new Employee record in QuickBooks Online. An Employee represents a person working for the company. Essential details include the employee’s GivenName, FamilyName, and contact information. Additionally, you can supply a PrimaryAddr (physical address) and PrimaryPhone. Note that if QuickBooks Payroll is enabled, certain attributes such as Title, Suffix, PrintOnCheckName, and BillRate are restricted. The SSN provided in the request will be masked in responses. This endpoint is used to add new employee data for HR, payroll, and integration purposes.
- **Update a QuickBooks employee by ID** (Update). Full update an existing employee in QuickBooks. The request body must include all writable fields; writable fields omitted from the request body are set to NULL. Returns the updated Employee object including Id, SyncToken, DisplayName, GivenName, FamilyName, Active, PrimaryAddr, and MetaData. Required: realm_id, Id, SyncToken.
- **List all QuickBooks recurring transactions** (List). Executes a SQL-like query to retrieve RecurringTransaction records from QuickBooks Online. A RecurringTransaction object schedules the creation of transactions by setting up reminders and creating transaction templates for later use. This feature is available in QuickBooks Essentials and Plus SKU. The endpoint returns recurring transactions along with their associated transaction details (such as recurring invoices or bills), recurrence schedule, and metadata. It is useful for managing automated or reminder-based transactions.
- **Get single QuickBooks recurring transaction by ID** (Get). Get a single recurring transaction by id in QuickBooks Online. Returns the RecurringTransaction wrapper keyed by entity type (Bill, Invoice, etc.) containing Id, RecurringInfo, SyncToken, RecurDataRef, MetaData, and the underlying transaction fields. Required: id.
- **Create a QuickBooks recurring transaction** (Create). Create a recurring transaction in QuickBooks Online by wrapping a supported entity (e.g., Invoice) with RecurringInfo for scheduling. Returns the created recurring transaction keyed by entity type (e.g., Invoice). Required: Invoice. The entity must include at least one Line describing an item and a DepositToAccountRef; TaxCode.CustomSalesTax cannot be used as TxnTaxCodeRef.
- **Delete a QuickBooks recurring transaction by ID** (Delete). Deletes an existing RecurringTransaction in QuickBooks Online by marking it as deleted. This operation requires a minimum of the object's Id and its current SyncToken for concurrency control. Important: Ensure that any linked transactions are unlinked before deleting the recurring transaction, as the deletion process cannot handle linked records.
- **List all QuickBooks budgets** (List). Executes a SQL-like query to retrieve Budget records from QuickBooks Online. Budgets are used to set measurable expense or revenue goals for specific accounts or customers over a defined period (monthly, quarterly, or annual). This endpoint returns details such as the budget name, date range, budget type (e.g., ProfitAndLoss), and the budget details (including amounts assigned to accounts on specific dates). This is useful for monitoring planned versus actual financial performance.
- **Get single QuickBooks budget by ID** (Get). Retrieves the complete details of a previously created Budget in QuickBooks Online. The Budget object contains information such as the start and end dates, budget type (e.g., ProfitAndLoss), the entry frequency (Monthly, Quarterly, etc.), the budget name, active status, and detailed budget entries for each period, including the amount assigned to specific accounts. This endpoint is useful for reviewing budget setups and verifying planned expense or revenue targets.
- **Update a QuickBooks budget by ID** (Update). Performs a complete update of an existing Budget in QuickBooks Online. When updating a Budget, you must include all writable fields from the original read response; any omitted writable fields will be set to NULL. This update requires the Budget’s unique Id and its current SyncToken for concurrency control. Key fields include the budget period (StartDate and EndDate), the type of budget entry (e.g., Monthly, Quarterly), the user-defined name, and the detailed budget items (BudgetDetail) for each period. This operation is useful for modifying planned expense or revenue targets.
- **List all QuickBooks credit card payment** (List). Executes a SQL-like query to retrieve CreditCardPaymentTxn records from QuickBooks Online. A CreditCardPayment represents a transaction that records a payment from a Bank account to a Credit Card account, effectively reducing the credit card balance. This operation only supports home currency transactions. The response includes details such as the transaction date, amount, credit card account reference, bank account reference, and metadata.
- **Get single QuickBooks credit card payment by ID** (Get). Retrieves the complete details of a previously created CreditCardPayment object in QuickBooks Online. This object records a payment made from a Bank account to reduce the balance on a Credit Card account. The response includes attributes such as the transaction date, amount, currency, credit card and bank account references, sync token, and metadata (creation and last updated timestamps). This endpoint is useful for reconciliation, auditing, and financial reporting purposes.
- **Create a QuickBooks credit card payment** (Create). Creates a new CreditCardPayment object in QuickBooks Online to record a payment made from a Bank account to reduce the balance on a Credit Card account. This transaction only supports home currency transfers. The minimum required fields include the transaction date (TxnDate), total payment amount (Amount), a reference to the bank account (BankAccountRef), and a reference to the credit card account (CreditCardAccountRef). Optionally, you can add a PrivateNote to capture additional memo details.
- **Update a QuickBooks credit card payment by ID** (Update). Update an existing credit card payment in QuickBooks. The request body must include all writable fields of the existing object; omitted writable fields are set to NULL. Returns the updated CreditCardPayment object including Id, Amount, TxnDate, CreditCardAccountRef, BankAccountRef, SyncToken, and MetaData. Required: Id, SyncToken, CreditCardAccountRef, Amount, BankAccountRef.
- **Delete a QuickBooks credit card payment by ID** (Delete). This operation deletes an existing CreditCardPayment object by marking it as deleted. Instead of being permanently removed, the object is flagged as deleted. To perform the delete operation, you must supply the full payload of the CreditCardPayment object as returned in a read response. This includes the unique Id, current SyncToken, and key attributes such as CreditCardAccountRef, Amount, and BankAccountRef. Additionally, optional fields like TxnDate, PrivateNote, and VendorRef can be included. Ensure that any linked transactions or dependencies are managed before performing the delete.
- **Create a QuickBooks batch** (Create). The Batch endpoint enables you to perform multiple operations in a single request, reducing network round trips and improving throughput. In a batch request, each individual operation is represented as a BatchItemRequest object. You can mix various operations—such as create, update, delete, or query—across different resource types (e.g., Customer, Invoice, Account) within a single batch request. Note that:

A maximum of 30 payloads is allowed per batch request.

Up to 40 batch requests per minute per realmID are permitted.

The execution order of the operations is not guaranteed.

Batch operations are independent; one operation cannot depend on another within the same batch.
- **List all QuickBooks department** (List). List QuickBooks departments using a SQL-like query ordered by Id. Returns each department with Id, Name, Active, FullyQualifiedName, SubDepartment, SyncToken, and MetaData. If no WHERE filter is supplied, all departments up to the maximum number are returned.
- **Get single QuickBooks department by ID** (Get). Retrieves the complete details of a previously created Department object in QuickBooks Online. The response includes key information such as the department's fully qualified name, name, active status, sync token, and metadata (creation and last updated timestamps). This endpoint is useful for auditing, reporting, or integrating departmental information into your application.
- **Create a QuickBooks department** (Create). Creates a new Department in QuickBooks Online. A Department is used to track transactions based on physical locations, regions, or other organizational units. The minimum required attribute is Name, which is the user-recognizable name for the department. If the department is a subdepartment, the ParentRef is required to specify its immediate parent. This endpoint is used for organizational tracking and reporting purposes.
- **Update a QuickBooks department by ID** (Update). Full update an existing QuickBooks department. The request body must include all writable fields of the existing object; writable fields omitted from the request body are set to NULL. Returns the updated department with Id, Name, Active, FullyQualifiedName, SubDepartment, SyncToken, and MetaData. Required: Id, SyncToken, Name.
- **List all QuickBooks entitlements** (List). Retrieves the entitlement details for a QuickBooks Online company, which indicate the features available based on the company’s setup and user permissions. The response includes high-level company settings (e.g., whether it’s a QBO company, plan name, and user limits) as well as a list of individual entitlements and their current terms (e.g., On/Off). Note that this resource requires an application/xml accept header rather than application/json.
- **List all QuickBooks exchange rate** (List). Executes a SQL-like query to retrieve ExchangeRate records from QuickBooks Online. Applicable only for companies with multicurrency enabled, this resource provides the ability to query and manage exchange rates that convert one currency to the home currency. The response includes details such as the effective date (AsOfDate), source currency code, target currency code, and the exchange rate. This endpoint is useful for retrieving current or historical exchange rates based on specific criteria.
- **Create a QuickBooks exchange rate** (Create). Create an exchange rate in QuickBooks Online. Returns the created exchangerate object including SyncToken, domain, AsOfDate, SourceCurrencyCode, Rate, sparse, TargetCurrencyCode, and MetaData. Required: realm_id, SourceCurrencyCode, Rate, AsOfDate. Only available for companies with multicurrency enabled; TargetCurrencyCode defaults to home currency if not supplied.
- **List all QuickBooks journal code** (List). List QuickBooks journal codes using a SQL-style query. Returns each journal code with Id, Name, Active, SyncToken, sparse, domain, and MetaData. The optional where parameter accepts a WHERE clause fragment to filter results.
- **Get single QuickBooks journal code by ID** (Get). Retrieves the complete details of a previously created JournalCode object in QuickBooks Online. This object categorizes journal entries for reporting and auditing purposes and includes attributes such as Name, Type, Description, Active status, SyncToken, and metadata (creation and last updated timestamps).
- **Create a QuickBooks journal code** (Create). Creates a new JournalCode in QuickBooks Online, which is used to categorize journal entries for reporting and auditing purposes. The minimal payload requires the Name (between 2 and 20 characters) and optionally a Type (e.g., "Sales"). Upon creation, the response includes details such as the sync token, metadata, and active status.
- **Update a QuickBooks journal code by ID** (Update). Performs a full update of an existing JournalCode object in QuickBooks Online. This operation replaces all writable fields with the values provided in the request payload. Every writable field that was returned in a read response must be included; any omitted writable field will be set to NULL. The update requires the object's unique Id and its current SyncToken for concurrency control. Key fields include the Name (which must be between 2 and 20 characters), an optional Description, and optionally custom fields. The Type field, which indicates the journal code category (e.g., Sales, Expenses, Bank, etc.), cannot be modified once the object is created.
- **List all QuickBooks reimburse charges** (List). List QuickBooks Online ReimburseCharge objects (billable expenses marked for customer invoicing) using a SQL-style query. Returns: Id, SyncToken, domain, sparse, TxnDate, Amount, HasBeenInvoiced, CustomerRef, CurrencyRef, ExchangeRate, HomeTotalAmt, PrivateNote, Line, LinkedTxn, MetaData. Required: realmId.
- **Get single QuickBooks reimburse charge by ID** (Get). Get a single QuickBooks Online ReimburseCharge by id. Returns: Id, SyncToken, domain, sparse, TxnDate, Amount, HasBeenInvoiced, CustomerRef, CurrencyRef, ExchangeRate, HomeTotalAmt, PrivateNote, Line, LinkedTxn, MetaData. Required: id.
- **List all QuickBooks preferences** (List). Executes a SQL-like query to retrieve the company preferences from QuickBooks Online. The Preferences resource aggregates various settings that control the application behavior, such as email message templates, report preferences, accounting information, sales forms preferences, and more. Although many fields are read-only (as they control UI behavior), a limited subset is writable via update operations. This query returns the entire preferences object since there is no separate object ID for Preferences.


- **Update a QuickBooks preference by ID** (Update). Update writable QuickBooks Online company preferences. The request body must include all writable fields of the existing object; omitted writable fields are set to NULL or reverted to defaults. Returns: Id, SyncToken, sparse, ProductAndServicesPrefs, SalesFormsPrefs. Required: realm_id, Id, SyncToken.
- **List all QuickBooks sales receipt** (List). List QuickBooks sales receipts using a SQL-like query. Returns sales receipt records including Id, DocNumber, TxnDate, TotalAmt, Balance, Line, CustomerRef, MetaData, and PrintStatus. Required: realmId.
- **Get single QuickBooks sales receipt by ID** (Get). Get a single QuickBooks sales receipt by id. Returns: Id, domain, status. Required: id.
- **Create a QuickBooks sales receipt** (Create). Create a QuickBooks sales receipt. A sales receipt must have at least one line describing an item and an amount. Returns the created sales receipt including Id, DocNumber, TxnDate, TotalAmt, Balance, Line, CustomerRef, MetaData, and PrintStatus. Required: Line, CustomerRef.
- **Update a QuickBooks sales receipt by ID** (Update). Update an existing QuickBooks sales receipt identified by Id and SyncToken in the request body. Supports full update (all writable fields must be included; omitted fields are set to null) or sparse update by setting sparse:true to patch only specified fields. Returns the updated sales receipt object including Id, DocNumber, SyncToken, TotalAmt, Line, Balance, TxnDate, and MetaData. Required:…
- **Delete a QuickBooks sales receipt by ID** (Delete). Delete a QuickBooks sales receipt by id. Returns the deletion confirmation with status, domain, and Id. Required: id.
- **List all QuickBooks tax classification** (List). List QuickBooks tax classifications, optionally filtered by level. Returns: id, name, code, description, level, applicableTo, ParentRef. Required: realmId.
- **Get single QuickBooks tax classification by ID** (Get). Retrieves the complete details of a previously created TaxClassification object in QuickBooks Online. This endpoint returns attributes such as the tax classification code, name, description, applicable levels, and parent reference details. Use this endpoint to obtain detailed tax classification information for reporting, tax calculations, or integration purposes.
- **List all QuickBooks tax code** (List). List QuickBooks tax codes using a SQL query. Returns: Id, Name, SyncToken, domain, sparse, TaxGroup, Taxable, Active, Description, Hidden, TaxCodeConfigType, MetaData, PurchaseTaxRateList, SalesTaxRateList. The optional where parameter supplies a WHERE clause for filtering results.
- **Get single QuickBooks tax code by ID** (Get). Retrieves the complete details of a previously created TaxCode object in QuickBooks Online. The response includes attributes such as the tax code's name, description, whether it's a tax group, its taxable status, associated sales and purchase tax rate details, sync token, and metadata (creation and last updated timestamps). This endpoint is useful for obtaining detailed tax configuration information for reporting or integration purposes.
- **List all QuickBooks tax payment** (List). List QuickBooks tax payments using a SQL query. Returns: Id, Refund, SyncToken, domain, PaymentAccountRef, PaymentAmount, PaymentDate, sparse, Description, MetaData. Required: realmId. Tax payments are applicable for AU, CA, and UK locales only.
- **Get single QuickBooks tax payment by ID** (Get). Get a single QuickBooks tax payment by id. Returns: Id, Refund, SyncToken, domain, PaymentAccountRef, PaymentAmount, PaymentDate, sparse, Description, MetaData. Required: id, realmId. Tax payments are applicable for AU, CA, and UK locales only.
- **Create a QuickBooks tax service** (Create). Create a tax code in QuickBooks via the TaxService API with one or more tax rate specifications. Returns the created taxservice object including TaxCode, TaxCodeId, and TaxRateDetails (each rate includes RateValue, TaxRateId, TaxApplicableOn, TaxAgencyId, TaxRateName). Required: realm_id, TaxCode, TaxRateDetails. TaxCode has a maximum of 100 characters.
- **List all QuickBooks tax agency** (List). Executes a SQL-like query to retrieve TaxAgency records from QuickBooks Online. A TaxAgency object is associated with tax rates and identifies the agency responsible for collecting those taxes (e.g., state or federal tax authorities). In the US, these agencies are system-created and only display associated tax rates that are visible in the QuickBooks UI. This endpoint is useful for retrieving tax agency details for reporting, tax compliance, or integration purposes.
- **Get single QuickBooks tax agency by ID** (Get). Retrieves the complete details of a previously created TaxAgency object in QuickBooks Online. A TaxAgency object is associated with tax rates and identifies the agency responsible for collecting those taxes (e.g., Arizona Dept. of Revenue). The response includes key attributes such as DisplayName, whether the agency tracks tax on sales or purchases, its SyncToken, Id, and metadata including creation and last updated timestamps. This endpoint is useful for auditing tax configurations and integrating tax compliance data into your application.
- **Create a QuickBooks tax agency** (Create). Create a QuickBooks tax agency. A TaxAgency object must have a DisplayName attribute. Returns the created TaxAgency object including Id, DisplayName, SyncToken, TaxTrackedOnSales, TaxTrackedOnPurchases, MetaData, domain, sparse. Required: DisplayName (max 100 chars).
- **List all QuickBooks term** (List). List QuickBooks payment terms via SQL query. Returns each term with Id, Name, Type, DueDays, DiscountDays, DiscountPercent, Active, SyncToken, domain, sparse, and MetaData. DATE_DRIVEN terms may also include DayOfMonthDue, DiscountDayOfMonth, and DueNextMonthDays.
- **Get single QuickBooks term by ID** (Get). Retrieves the complete details of a previously created Term object in QuickBooks Online. A Term defines the payment conditions under which a sale is made, such as "Net 60" (payment due in 60 days) or "2%/15 Net 60" (2% discount if paid within 15 days, otherwise due in 60 days). The response includes key details like the term's name, due days, discount percent, discount days, type (e.g., STANDARD or DATE_DRIVEN), and metadata (creation and last updated timestamps).
- **Create a QuickBooks term** (Create). Creates a new Term object in QuickBooks Online that defines the payment terms for a sale. A Term specifies when a payment is due and may include either an absolute due date (via DayOfMonthDue) or a number of days after delivery (via DueDays). The minimal payload requires a user-recognizable Name (e.g., "Net 30") and either DueDays or DayOfMonthDue.
- **Update a QuickBooks term by ID** (Update). Update an existing QuickBooks term. The request body must include all writable fields of the existing object; omitted writable fields are set to null. Returns the updated term object including Id, Name, Type, DueDays, DiscountDays, DiscountPercent, Active, SyncToken, domain, sparse, and MetaData. Required: Id, SyncToken, Name.
- **List all QuickBooks time activity** (List). List QuickBooks time activities using a SQL query. Returns: Id, SyncToken, NameOf, TxnDate, domain, Description, ItemRef, Minutes, ProjectRef, Hours, BillableStatus, sparse, HourlyRate, Taxable, EmployeeRef, VendorRef, CustomerRef, StartTime, EndTime, BreakHours, BreakMinutes, ClassRef, CostRate, PayrollItemRef, DepartmentRef, MetaData. Required: realmId.
- **Get single QuickBooks time activity by ID** (Get). Get a single QuickBooks time activity by id. Returns: Id, domain, status. Required: realmId, id.
- **Create a QuickBooks time activity** (Create). Create a new QuickBooks time activity. Returns: Id, NameOf, TxnDate, domain, ItemRef, EmployeeRef, CustomerRef, StartTime, EndTime, status. Required: NameOf. NameOf must be paired with EmployeeRef (if Employee) or VendorRef (if Vendor); time is specified via Hours/Minutes or StartTime/EndTime.
- **Update a QuickBooks time activity by ID** (Update). Update an existing QuickBooks TimeActivity via a full update — all writable fields must be included; omitted writable fields are set to NULL. Returns the updated TimeActivity including Id, NameOf, TxnDate, Hours, SyncToken, EmployeeRef, MetaData, BillableStatus, and CustomerRef. Required: realm_id, Id, SyncToken, NameOf.
- **Delete a QuickBooks time activity by ID** (Delete). Delete a QuickBooks TimeActivity by id. The request body must include a minimum of Id and SyncToken. Returns: status, domain, Id. Required: realm_id, id, SyncToken.
- **List all QuickBooks transaction journal** (List). List QuickBooks transaction journal entries via the General Ledger report. Returns: Header, Rows, Columns. Required: realm_id.
