Skip to content

Accounting

QuickBooks
API integration

Ship Accounting features without building the integration. Full QuickBooks API access via Proxy, normalized data through Unified APIs, and 120+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
QuickBooks

Use Cases

Why integrate with QuickBooks

Common scenarios for SaaS companies building QuickBooks integrations for their customers.

01

Automate invoice and payment syncing for billing platforms

SaaS companies that handle billing, subscriptions, or e-commerce can automatically create QuickBooks customers, push invoices, and record payments — eliminating double data entry for their end users and keeping their books audit-ready.

02

Sync expense and purchase data for spend management tools

Spend management and AP automation platforms can pull the user's Chart of Accounts, Classes, and Departments to let users categorize transactions in-app, then push Purchases, Bills, and Bill Payments directly into QuickBooks with receipt attachments.

03

Ingest financial reports for FP&A and analytics products

Financial planning tools can pull Balance Sheets, Cash Flow Statements, Transactions, and Budgets from QuickBooks to build real-time runway projections, variance analysis, and cash flow forecasts without requiring users to export CSVs.

04

Record payroll journal entries from HR and payroll systems

Payroll and HRIS platforms can push consolidated, balanced Journal Entries into QuickBooks after each pay run, mapping debits and credits to the user's exact GL accounts without conflicting with Intuit's native payroll module.

05

Sync billable time from project management and field service apps

PSA and field service platforms can push Time Activity records into QuickBooks, enabling end users to convert tracked billable hours into invoices or payroll entries directly within their accounting workflow.

What You Can Build

Ship these features with Truto + QuickBooks

Concrete product features your team can ship faster by leveraging Truto’s QuickBooks integration instead of building from scratch.

01

GL account and category mapper

Pull your users' QuickBooks Accounts, Classes, Departments, and Items so they can map your product's categories to their exact Chart of Accounts — a prerequisite for any write operation.

02

Automated invoice-to-payment pipeline

Create Customers, generate Invoices with line-item detail, and record Payments when funds are captured — keeping Accounts Receivable in QuickBooks perfectly in sync with your billing system.

03

Expense push with receipt attachments

Push Purchases or Bills into QuickBooks with full categorization and attach PDF receipts via Attachables for audit-ready compliance.

04

Real-time financial reporting dashboard

Ingest Balance Sheets, Cash Flow Statements, Transactions, and Budgets from QuickBooks to power live financial dashboards, budget-vs-actual comparisons, and forecasting models.

05

Vendor and bill management sync

Create and retrieve Vendors, push Bills and Vendor Credits, and record Bill Payments to automate the full procure-to-pay lifecycle from your platform into QuickBooks.

06

Payroll journal entry sync

After each payroll run, push a balanced Journal Entry into QuickBooks with debits and credits mapped to the user's configured liability and expense accounts.

SuperAI

QuickBooks AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_quickbooks_accounts

This endpoint retrieves a list of account details from a specified QuickBooks company by executing a SQL-like query. You can obtain comprehensive account information, including the account name, type, currency, balance details, and metadata (such as creation and last update times). This API is useful for financial reporting, auditing, or tracking account changes over time. This method is typically used to display all or a filtered set of accounts on a financial dashboard or within an accounting application.

get_single_quickbooks_account_by_id

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

Creates a new account in a QuickBooks company's chart-of-accounts. A unique account name (max 100 characters, without double quotes or colons) is required. Optionally, you can provide an account number (AcctNum) without colons. For France locales, AcctNum must be 6–20 alphanumeric characters starting with a master category number and TaxCodeRef becomes mandatory. Either AccountType or AccountSubType must be provided.

list_all_quickbooks_bills

Retrieves a list of vendor bills—AP transactions for goods or services rendered. Use a SQL-like query (e.g., "select * from bill maxresults 2") to filter or limit results. This endpoint is useful for reviewing pending bills and managing vendor payments.

get_single_quickbooks_bill_by_id

Retrieves detailed information for a specific bill, an accounts payable transaction representing a vendor's request for payment. The response includes vendor details, transaction dates, total amount, due date, line items, and related metadata. This endpoint is useful for viewing or verifying individual bill details for processing payments.

create_a_quickbooks_bill

Creates a new bill (an accounts payable transaction) in QuickBooks. A bill represents a vendor’s request for payment for goods or services. You must specify the vendor (VendorRef) and include at least one line item (Line). Optionally, if multicurrency is enabled, include CurrencyRef.

update_a_quickbooks_bill_by_id

Updates an existing bill by replacing all writable fields with those provided in the request body. The request must include the bill’s unique ID, current SyncToken, VendorRef, and at least one line item. Omitted writable fields will be set to NULL, so the complete set of desired values must be sent. This operation is used to modify bill details such as transaction date, due date, department, and any other editable field.

list_all_quickbooks_credit_memos

Retrieves a list of credit memos using a SQL-like query. Credit memos represent refunds or credits issued for goods or services sold. This endpoint is ideal for reviewing customer credits, processing refunds, or integrating credit memo data into financial reports.

get_single_quickbooks_credit_memo_by_id

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

Creates a new credit memo in QuickBooks to record a refund or credit for goods or services sold. At a minimum, you must include at least one line item (SalesItemLine or GroupLine) and a reference to the customer (CustomerRef). Optionally, include ProjectRef (for minorVersion 69 and above) and CurrencyRef if multicurrency is enabled.

list_all_quickbooks_refund_receipts

Retrieves a list of refund receipts from a QuickBooks company. A RefundReceipt object represents a refund issued to a customer for a product or service provided. Use a SQL-like query (e.g., "select * from RefundReceipt where Id='66'") to filter and fetch the desired refund records. This endpoint is useful for auditing customer refunds, processing returns, or integrating refund data into financial systems.

get_single_quickbooks_refund_receipt_by_id

Retrieves detailed information for a specific refund receipt from QuickBooks. A Refund Receipt represents a refund issued to a customer for goods or services provided. The response includes key details such as document number, payment method, addresses, transaction date, total amount, customer information, line items with sales item details, and metadata. This endpoint is used to view or verify individual refund transactions.

list_all_quickbooks_bill_payments

This endpoint retrieves a list of BillPayment objects from QuickBooks based on a SQL-like query. Bill Payment objects represent vendor payment transactions (via check or credit card) for bills, vendor credits, or journal entries. The response includes key details such as vendor reference, transaction date, total amount, payment type, and payment line details. This method is typically used for reconciling vendor payments or generating financial reports by filtering transactions (e.g., by last updated time) and paginating the results.

get_single_quickbooks_bill_payment_by_id

Retrieves detailed information for a specific Bill Payment, which represents a vendor payment transaction for goods or services purchased. The response includes vendor reference, transaction date, total payment amount (with any overpayment treated as credit), payment type (e.g., Check or Credit Card), payment line details linking to bills, and additional check payment information if applicable.

create_a_quickbooks_bill_payment

Creates a new Bill Payment in QuickBooks to record a vendor payment for bills, vendor credits, or journal entries. Required fields include the vendor reference, total payment amount, payment type, and at least one line item linking to the associated transactions. Depending on the payment type—Check or CreditCard—additional payment details are required. Optionally, if multicurrency is enabled, include a CurrencyRef.

list_all_quickbooks_items

Retrieves a list of items from your QuickBooks company. Items include products, services, inventory, non-inventory, and categories used in invoices and sales forms. Use this endpoint to build your item catalog, filter by specific item types or attributes using a "where" clause, and control the number of results returned with pagination.

get_single_quickbooks_item_by_id

Retrieves detailed information for a specific item from your QuickBooks company. An item may represent an inventory product, service, or non-inventory good. The response includes key details like item name, type, pricing, inventory tracking, and account references used for income, expenses, and assets.

create_a_quickbooks_item

Creates a new item in your QuickBooks company. An item can be a product, service, or inventory product used in sales and purchase transactions. The response returns details such as the item’s name, type, inventory tracking info, and related account references. Use this endpoint to build or update your product/service catalog.

list_all_quickbooks_tax_rates

Retrieves a list of Tax Rate objects from your QuickBooks company. A Tax Rate represents the rate used to calculate tax liability and is part of the global tax model. Use this endpoint to review your tax configurations, populate tax options in forms, or support tax reporting.

get_single_quickbooks_tax_rate_by_id

Retrieves detailed information for a specific Tax Rate from your QuickBooks company. A Tax Rate object is used to calculate tax liability and is part of the global tax model. The response includes the tax rate value, agency reference, name, and other metadata. Use this endpoint to review or verify individual tax rate configurations.

list_all_quickbooks_classes

Retrieves a list of Class objects from your QuickBooks company. Classes are used to segment your business by categorizing income and expenses (e.g., by department, region, or business unit). This endpoint is ideal for filtering and reporting based on these segments.

get_single_quickbooks_class_by_id

Retrieves detailed information for a specific Class from your QuickBooks company. Classes are used to categorize transactions (such as by department, region, or business unit) for better reporting and segmentation. This endpoint is ideal for verifying class configurations and details.

list_all_quickbooks_vendors

Retrieves a list of vendors from your QuickBooks company. A vendor represents a seller from whom you purchase goods or services. The response returns key details such as DisplayName, contact information, and addresses. Use this endpoint to build a vendor directory, filter by update time, or reconcile vendor balances.

get_single_quickbooks_vendor_by_id

Retrieves detailed information for a specific vendor from your QuickBooks company. The Vendor object contains key contact and account details such as email, address, phone number, and display name. Use this endpoint to view or verify vendor information when managing vendor relationships or processing payments.

create_a_quickbooks_vendor

Creates a new Vendor in QuickBooks. A vendor represents the seller from whom your company purchases services or products. You must provide either a unique DisplayName or at least one of the following: Title, GivenName, MiddleName, FamilyName, or Suffix. This endpoint is used to build your vendor directory with contact details, addresses, and other identifying information.

list_all_quickbooks_customers

Retrieves a list of Customer objects from your QuickBooks company. Customers can be parent customers, sub-customers, or jobs. Use this endpoint to build your customer directory, filter updated records, and generate reports.

get_single_quickbooks_customer_by_id

Retrieves detailed information for a specific customer from your QuickBooks company. The response includes key customer details such as name, contact info, billing address, and account balances. Use this endpoint to view or verify customer information.

create_a_quickbooks_customer

Creates a new Customer in QuickBooks. A customer is a consumer of your service or product and may represent an individual, business, or job. You must supply either a unique DisplayName or at least one of the following: Title, GivenName, MiddleName, FamilyName, or Suffix. The response returns the customer’s details, including contact info, billing address, and other identifiers. This endpoint can be used to build and manage your customer directory.

update_a_quickbooks_customer_by_id

Updates an existing Customer in QuickBooks. This operation replaces all writable fields with the values supplied in the request body; any omitted fields will be set to NULL. The update must include the customer’s unique ID and current SyncToken. To update the AR account on historical transactions (from the soft close date onward) with the new ARAccountRef, add the query parameters include=updateaccountontxns. Use this endpoint to modify customer details such as name, contact info, addresses, and billing preferences.

list_all_quickbooks_purchases

Retrieves a list of Purchase objects from your QuickBooks company. A Purchase represents an expense transaction, such as a purchase from a vendor. It includes details like vendor, transaction date, total amount, payment type (Cash, Check, Credit Card), and individual line items.

get_single_quickbooks_purchase_by_id

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

Creates a new Purchase record in QuickBooks to represent an expense incurred when buying goods or services. A Purchase must include an AccountRef (specifying the payment account, e.g., bank for Check, credit card for CreditCard, or cash account for Cash) and one or more line items detailing the expense. The total of all line item amounts must equal the Purchase’s TotalAmt. Use this endpoint to record vendor expenses.

list_all_quickbooks_journals

Retrieves a list of Journal Entry objects from your QuickBooks company. Journal entries record paired debit and credit transactions (ensuring total debits equal total credits) and are used to post general journal entries. Use this endpoint to review and reconcile your accounting records, filtering by criteria such as the last updated time or transaction date.

get_single_quickbooks_journal_by_id

Retrieves detailed information for a specific JournalEntry from your QuickBooks company. A JournalEntry records paired debit and credit transactions (ensuring total debits equal total credits) and is used for posting general journal entries. The response includes the transaction date, adjustment flag, detailed line items (with posting type, account references, and associated entities), and metadata such as creation and last updated times.

create_a_quickbooks_journal

Creates a new JournalEntry transaction in QuickBooks Online. This endpoint lets you record a general journal entry—a transaction that includes at least one pair of distribution lines (one debit and one credit) that balance out. Each line must use a JournalEntryLineDetail with a PostingType set to either Debit or Credit and reference an account from the Chart of Accounts. Use the Account resource to retrieve available accounts. This method is ideal for recording internal adjustments and non-sales/bill transactions, which QuickBooks Online labels as JRNL in the register and as General Journal in reports.

list_all_quickbooks_payments

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

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_payment

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

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

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

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

Retrieves the complete details of a previously created attachable item in QuickBooks Online. This endpoint returns all relevant metadata for the attachable, including any linked entities (such as an Invoice), notes, and timestamps. It is useful for reviewing or verifying attachment details that have been added to transactions or items.

list_all_quickbooks_deposits

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

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

Executes a SQL-like query to retrieve Invoice records from QuickBooks Online. An Invoice represents a sales form where the customer pays for a product or service later. This endpoint returns invoice details including transaction date, customer reference, total amount, line items (sales items and subtotals), billing/shipping addresses, and more. It is ideal for retrieving specific invoices for reporting, auditing, or integration purposes.

get_single_quickbooks_invoice_by_id

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

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.

update_a_quickbooks_invoice_by_id

Performs a full update of an existing Invoice in QuickBooks Online. This operation replaces all writable fields of the invoice with the values provided in the request body. Every writable field returned in a read response must be included; any omitted writable field will be set to NULL. This endpoint is used to comprehensively modify an invoice, including its customer reference, line items (which must include at least one SalesItemLine, GroupLine, or inline subtotal via DescriptionOnlyLine), and optional fields such as ProjectRef and CurrencyRef. Make sure to include the invoice ID and the current SyncToken to ensure data consistency.

list_all_quickbooks_estimates

Executes a SQL-like query to retrieve Estimate records from QuickBooks Online. An Estimate represents a sales form used to provide customers with a quote for products or services. This endpoint returns detailed information on estimates—including transaction dates, customer references, line items, tax details, and more—filtered by the specified criteria. It is ideal for extracting estimates based on conditions such as date ranges or specific customer details.

get_single_quickbooks_estimate_by_id

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.

list_all_quickbooks_purchase_orders

Executes a SQL-like query to retrieve PurchaseOrder records from QuickBooks Online. A PurchaseOrder represents a non-posting transaction used to request goods or services from a vendor. This endpoint returns details such as vendor reference, transaction date, total amount, line items, custom fields, and metadata. It is ideal for retrieving specific purchase orders for review, reporting, or integration purposes.

get_single_quickbooks_purchase_order_by_id

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

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

Performs a complete update of an existing Purchase Order in QuickBooks Online. With this operation, you can modify any writable fields of the purchase order. Important: The request body must include every writable field as returned by a read response; any omitted writable field will be set to NULL. The update requires the Purchase Order’s unique ID and the current SyncToken to ensure data consistency and concurrency control.

list_all_quickbooks_companies

Executes a SQL-like query to retrieve basic company information from QuickBooks Online. The CompanyInfo object includes core details such as company name, addresses (legal, company, and customer communication), contact details, and additional attributes stored in the NameValue list. This endpoint is useful for applications that need to display or process the company's foundational data and preferences.

get_single_quickbooks_company_by_id

Retrieves the complete details of the CompanyInfo object from QuickBooks Online. This object includes basic company information such as legal and company addresses, company name, contact details, fiscal year details, and additional attributes (stored in the NameValue list) that may also appear in preferences. This endpoint is useful for applications needing to display or audit the company's foundational data.

list_all_quickbooks_payment_methods

Executes a SQL-like query to retrieve PaymentMethod records from QuickBooks Online. The PaymentMethod resource represents the method of payment for received goods (e.g., Credit Card, Cash, Check). In QuickBooks, deletion is achieved by updating the record and setting its Active attribute to false, rather than permanently deleting it. This endpoint returns both active and inactive payment methods, including metadata such as sync tokens, creation times, and last updated times.

get_single_quickbooks_payment_method_by_id

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

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

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_transfer

Executes a SQL-like query to retrieve Transfer records from QuickBooks Online. A Transfer represents a transaction where funds are moved between two accounts on the company’s QuickBooks chart of accounts. This endpoint returns details such as the transaction date, amount, source account (FromAccountRef), destination account (ToAccountRef), and metadata. Use this method to retrieve all transfers or filter the results based on specific criteria.

get_single_quickbooks_transfer_by_id

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

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

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

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

Retrieves the complete details of a CompanyCurrency object that has been previously created in QuickBooks Online. This object contains information about a specific currency (such as code, name, active status, and metadata) that is active in a multicurrency-enabled company.

create_a_quickbooks_currency

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

Performs a full update on an existing CompanyCurrency object in QuickBooks Online. This operation replaces all writable fields with the values provided in the request body. Important: The request must include every writable field that was returned in a read response; any writable field omitted will be set to NULL. The object to update is identified by its unique Id, and the update requires the current SyncToken to ensure concurrency control. You can update attributes such as the ISO 4217 currency Code, the full Name of the currency, and its Active status. Custom fields may also be included if configured for the company.

list_all_quickbooks_customer_type

Executes a SQL-like query to retrieve CustomerType records from QuickBooks Online. Customer types allow you to categorize customers based on criteria such as industry, geographic location, or marketing source. This information can then be used for targeted reporting and mailings. The endpoint returns details including the customer type’s name, active status, and metadata.

get_single_quickbooks_customer_type_by_id

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

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

Retrieves the complete details of a previously created Employee object in QuickBooks Online. The response includes key attributes such as DisplayName, GivenName, FamilyName, contact information (e.g., PrimaryPhone), address (PrimaryAddr), SSN (masked), and metadata. This endpoint is useful for obtaining employee details for HR, payroll, or integration purposes.

create_a_quickbooks_employee

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

Performs a complete update of an existing Employee object in QuickBooks Online. This operation replaces all writable fields with the values provided in the request body. Important: Every writable field returned in a previous read response must be included; any field omitted will be set to NULL. The update requires the Employee’s unique Id and its current SyncToken for concurrency control. Use this endpoint to modify details such as name components, addresses, contact information, employment details, and other custom attributes.

list_all_quickbooks_recurring_transactions

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

Retrieves the complete details of a previously created RecurringTransaction object in QuickBooks Online. This object schedules the creation of transactions—such as recurring bills or invoices—and includes details like recurrence schedule, transaction type (e.g., Bill, Invoice), and associated metadata. This endpoint is useful for reviewing, auditing, or managing automated transactions.

create_a_quickbooks_recurring_transaction

Creates a new RecurringTransaction in QuickBooks Online. This object schedules the creation of transactions by defining a template and recurrence schedule. A RecurringTransaction must include at least one transaction line (e.g., within an Invoice, Bill, etc.) and key recurring settings under RecurringInfo. In addition, if the transaction type requires it (for example, an invoice), additional elements such as DepositToAccountRef or CustomerRef must be provided. Use this endpoint to automate the generation of periodic transactions such as recurring bills or invoices.

delete_a_quickbooks_recurring_transaction_by_id

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

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

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

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

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

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

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

Performs a complete update on an existing CreditCardPayment object in QuickBooks Online. This operation replaces all writable fields with the values provided in the request body. Important: The request body must include all writable fields as returned in a read response; 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 transaction date (TxnDate), payment amount (Amount), and references for both the bank account (BankAccountRef) and credit card account (CreditCardAccountRef). Optionally, you can include a PrivateNote.

delete_a_quickbooks_credit_card_payment_by_id

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

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

Executes a SQL-like query to retrieve Department records from QuickBooks Online. The Department resource allows you to track transactions based on physical locations such as stores, sales regions, or countries. Deleting a department is performed by updating the record and setting the Active attribute to false; this makes the department inactive without permanently removing it. This endpoint is useful for obtaining department details for reporting, auditing, or integration purposes.

get_single_quickbooks_department_by_id

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

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

Below is a YAML schema that defines the required structure for a full update of a Department object in QuickBooks Online. Remember that all writable fields returned in a prior read response must be included in the update payload; any writable field omitted will be set to NULL.

list_all_quickbooks_entitlements

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

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

This operation updates an existing ExchangeRate object in QuickBooks Online. When performing a full update, you must supply all writable fields as returned in a prior read response; any omitted writable field will be set to NULL. The update requires the current SyncToken (for concurrency control), the effective date (AsOfDate), the SourceCurrencyCode and the new Rate. The TargetCurrencyCode is optional and defaults to the home currency if not supplied. Note that setting an exchange rate for the home currency (i.e., when the source currency equals the home currency) or providing a rate other than 1 in that scenario will result in an error.

list_all_quickbooks_journal_code

Executes a SQL-like query to retrieve JournalCode records from QuickBooks Online. A JournalCode is used to categorize journal entries and reports. This endpoint returns details such as the journal code’s name, type, description, active status, sync token, and metadata (creation and last updated timestamps). This is useful for reporting and auditing journal entries based on different codes.

get_single_quickbooks_journal_code_by_id

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

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

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

Executes a SQL-like query to retrieve ReimburseCharge records from QuickBooks Online. A ReimburseCharge represents a billable expense that has been marked as billable to a customer and is intended to be invoiced later. This endpoint can be used to filter reimburse charges—for example, to retrieve charges that have not yet been invoiced.

get_single_quickbooks_reimburse_charge_by_id

Retrieves the complete details of a previously created ReimburseCharge object from QuickBooks Online. A ReimburseCharge represents a billable expense that is marked for reimbursement, typically linked to a customer for later invoicing. The response includes attributes such as the transaction date, amount, currency, customer reference, linked transactions, detailed line items (including markup details), and metadata.

list_all_quickbooks_preferences

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

The Preferences resource in QuickBooks Online represents a set of company settings that control application behavior. Although most preferences are read-only (since many control UI behavior), a limited subset of preferences are writable. An update operation on Preferences replaces all writable fields with the values provided in the request payload. Any writable fields omitted in the payload will be set to NULL. Note that there is no unique identifier for preferences – the update is applied to the entire preferences set for the company.

list_all_quickbooks_sales_receipt

represents a sale where payment is received immediately and is deposited into a specified account (or the default Undeposited Funds account if not provided). The response includes details such as transaction date, total amount, deposit account, customer details, line items, and more. This endpoint is useful for retrieving specific sales receipts based on criteria like ID, date, or customer.

get_single_quickbooks_sales_receipt_by_id

Retrieves the complete details of a previously created SalesReceipt object in QuickBooks Online. A SalesReceipt represents a sale where payment is received immediately and deposited into a specified account. The response includes details such as the transaction date, total amount, line items, customer and deposit account references, payment method, and metadata.

create_a_quickbooks_sales_receipt

Creates a new SalesReceipt in QuickBooks Online. A SalesReceipt represents a sale in which payment is received at the time of the transaction, and the funds are deposited into a specified account (or the Undeposited Funds account by default). The minimum payload must include at least one line item—typically a SalesItemLine—that describes the sale (item reference, quantity, unit price, and amount). Additional fields such as a customer reference, deposit account, and custom fields may be provided as needed.

update_a_quickbooks_sales_receipt_by_id

Performs a full update on an existing SalesReceipt object in QuickBooks Online. All writable fields returned in a read response must be included in the update payload; any omitted field will be set to NULL. Key fields include the transaction date, an array of line items (with details like SalesItemLineDetail), customer reference, deposit account reference, tax details, and other optional attributes. The SalesReceipt represents a sale in which payment is received immediately and is deposited into a specified account.

delete_a_quickbooks_sales_receipt_by_id

Deletes a SalesReceipt object in QuickBooks Online by marking it as deleted. The SalesReceipt is not permanently removed; instead, it is flagged as deleted, and its references remain intact. To perform this operation, the request must include the SalesReceipt's unique Id and its current SyncToken for concurrency control.

list_all_quickbooks_tax_classification

Retrieves the details of all TaxClassification objects that have been previously created in QuickBooks Online. The response includes information such as the tax classification code, name, description, applicable levels, and any parent reference details. This endpoint is useful for applications that need to display or process tax classification data for items, services, or transactions.

get_single_quickbooks_tax_classification_by_id

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

Executes a SQL-like query to retrieve TaxCode records from QuickBooks Online. The TaxCode resource provides information about various tax codes available, including whether the tax code is taxable, its name, description, and associated metadata. This endpoint is useful for retrieving a list of tax codes for configuration, reporting, or integration purposes.

get_single_quickbooks_tax_code_by_id

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

Executes a SQL-like query to retrieve TaxPayment records from QuickBooks Online. A TaxPayment represents a payment made for taxes, typically relating to VAT or sales tax. The response includes details such as payment amount, payment date, refund status, payment account reference, and metadata. This endpoint is useful for retrieving tax payment transactions for auditing, reporting, or reconciliation purposes

get_single_quickbooks_tax_payment_by_id

Retrieves the complete details of a TaxPayment object in QuickBooks Online. A TaxPayment records the payment or refund made against a filed tax return. The response includes key details such as refund status, payment amount, payment date, the bank account used for the payment, and metadata (creation and last updated timestamps). This endpoint is useful for auditing tax payments or refunds and reconciling filed tax returns.

list_all_quickbooks_tax_agency

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

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

Creates a new TaxAgency object in QuickBooks Online. A TaxAgency represents the agency responsible for collecting taxes (e.g., state or city tax authorities). The minimal payload must include a DisplayName attribute, which is the user-recognizable name for the agency. Upon creation, the response includes details such as the sync token, active status, and metadata.

list_all_quickbooks_term

Executes a SQL-like query to retrieve Term records from QuickBooks Online. A Term object represents the payment terms under which a sale is made, such as "Net 30" or "2%/15 Net 60". Terms define due dates and potential discounts if payment is made within a specified timeframe. This endpoint returns 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). This information is used for invoicing, collections, and financial reporting.

get_single_quickbooks_term_by_id

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

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

Use this operation to update any of the writable fields of an existing Term object. The request body must include all writable fields of the existing object as returned in a read response. Writable fields omitted from the request body are set to NULL. The ID of the object to update is specified in the request body.

list_all_quickbooks_time_activity

Executes a SQL-like query to retrieve TimeActivity records from QuickBooks Online. A TimeActivity object represents a record of time worked by an employee or vendor, including details such as the transaction date, hours worked, minutes (if applicable), hourly rate, billable status, and references to associated customer, employee, item, and project. This endpoint is useful for time tracking, billing, and payroll integration.

get_single_quickbooks_time_activity_by_id

Retrieves the complete details of a previously created TimeActivity object in QuickBooks Online. A TimeActivity represents a record of time worked by an employee or vendor, including details such as the transaction date, hours worked, hourly rate, billable status, and references to the associated customer, employee, item, and project. This endpoint is useful for reviewing individual time entries for payroll, billing, and reporting purposes.

create_a_quickbooks_time_activity

Creates a new TimeActivity record in QuickBooks Online representing a record of time worked by an employee or vendor. The minimal payload requires the NameOf field (indicating whether the time is recorded for an "Employee" or "Vendor"), and time details provided either as a total duration (Hours) or as a start and end time. If you are recording a historical or future time activity, include TxnDate in YYYY-MM-DD format and provide StartTime and EndTime in HH:MM:SS format (without the time zone offset) so that the time activity correctly reflects the intended date. Additionally, reference the employee or vendor via EmployeeRef or VendorRef respectively, and optionally include a ProjectRef if the time is associated with a project.

update_a_quickbooks_time_activity_by_id

This operation performs a complete update on an existing TimeActivity object in QuickBooks Online. All writable fields as returned in a prior read response must be included in the update payload; any omitted writable field will be set to NULL. The update requires the object's unique Id and the current SyncToken for concurrency control. Key fields include the transaction date (TxnDate), type of time activity (NameOf), work duration (either via Hours or a combination of StartTime and EndTime or simply Hours), and references to the employee/vendor, customer, and project, along with optional details like a description and item reference.

delete_a_quickbooks_time_activity_by_id

Executes a SQL-like query to retrieve TimeActivity records from QuickBooks Online. A TimeActivity object represents the record of time worked by an employee or vendor, including details such as the transaction date, hours, minutes, hourly rate, billable status, and references to the associated customer, employee/vendor, item, and project. This endpoint is useful for retrieving time tracking data for payroll, invoicing, or reporting purposes.

Why Truto

Why use Truto’s MCP server for QuickBooks

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 600+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for QuickBooks

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified Accounting API

Accounts

Account represents bank accounts or a general ledger account

View Docs

Attachments

Attachment represents the company's attachment

View Docs

Budgets

Budget represents the budgets set for a company

View Docs

Company Info

Company Info represents the company's information

View Docs

Contact Groups

ContactGroup represents the groupings used by the company for their contacts

View Docs

Contacts

Contacts represents the company's vendor or a customer

View Docs

Credit Notes

Credit Notes represents the credit notes of the company

View Docs

Currencies

Currency represents the currencies used by the company

View Docs

Employees

Employee represents an employee of the company

View Docs

Expenses

Expenses represents the expenses of the company

View Docs

Invoices

Invoices represents the invoices of the company

View Docs

Items

Items represents the items of the company

View Docs

Journal Entries

Journal Entries represents the journal entries of the company

View Docs

Payment Method

Payment method represents the payment methods of the company

View Docs

Payments

Payments represents the payments of the company

View Docs

Purchase Orders

Purchase Orders represents the purchase orders of the company

View Docs

Repeating Transactions

RepeatingTransaction represents the repeating transactions of the company

View Docs

Reports

Report gets you the various reports available in the accounting software

View Docs

Tax Rates

TaxRates represents the tax rates of the company

View Docs

Tracking Categories

TrackingCategories represents the tracking categories of the company

View Docs

Transactions

Transactions represents the transactions of the company

View Docs

Vendor Credits

VendorCredits represents the vendor credits of the company

View Docs

How It Works

From zero to integrated

Go live with QuickBooks in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s QuickBooks account

Use Truto’s frontend SDK to connect your customer’s QuickBooks account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call QuickBooks

Truto’s Proxy API is a 1-to-1 mapping of the QuickBooks API. You call us, we call QuickBooks, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate QuickBooks’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about QuickBooks on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does the QuickBooks integration use?

QuickBooks Online uses OAuth 2.0. Truto handles the full auth flow — token acquisition, refresh, and secure storage — so your team never manages credentials directly.

How does Truto handle QuickBooks' SyncToken requirement for updates?

QuickBooks enforces optimistic concurrency via SyncToken on every update and delete. When you call an update endpoint through Truto (e.g., update_a_quickbooks_invoice_by_id), you need to pass the current SyncToken. Best practice is to read the resource immediately before writing to ensure you have the latest token.

Can I use Truto's Unified Accounting API with QuickBooks?

Yes. QuickBooks is mapped to Truto's Unified Accounting API, which covers Accounts, Invoices, Payments, Contacts, Expenses, Items, Journal Entries, Purchase Orders, Tax Rates, Employees, Vendor Credits, Currencies, Budgets, Attachments, Tracking Categories, and more. You can write once against the unified model and support QuickBooks alongside other accounting platforms.

What QuickBooks data can I read but not write?

Several resources are read-only through the available tools, including Balance Sheets, Cash Flow Statements, Transactions, Deposits, Estimates, Refund Receipts, Vendor Credits, Entitlements, and Reimburse Charges. Write operations are supported for core objects like Invoices, Bills, Payments, Purchases, Journals, Customers, Vendors, Items, and more.

Does the integration support batch operations?

Yes. The create_a_quickbooks_batch tool lets you bundle multiple create, update, or query operations into a single API call, which is useful for high-volume syncs like pushing large invoice runs or bulk-creating vendors.

How do I handle pagination when listing large datasets from QuickBooks?

Truto manages pagination automatically for list endpoints. When you call any list operation (e.g., list_all_quickbooks_invoices), Truto handles QuickBooks' offset-based pagination under the hood so you receive complete result sets without writing pagination logic yourself.

QuickBooks

Get QuickBooks integrated into your app

Our team understands what it takes to make a QuickBooks integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us