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 usUse Cases
Why integrate with QuickBooks
Common scenarios for SaaS companies building QuickBooks integrations for their customers.
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.
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.
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.
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.
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.
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.
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.
Expense push with receipt attachments
Push Purchases or Bills into QuickBooks with full categorization and attach PDF receipts via Attachables for audit-ready compliance.
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.
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.
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_quick_books_accounts
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_quick_books_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_quick_books_account
Create a new QuickBooks account in the chart of accounts. Returns the created account object including Id, Name, AccountType, Classification, AccountSubType, CurrentBalance, Active, CurrencyRef, MetaData, SubAccount, FullyQualifiedName, SyncToken, domain, sparse. Required: realm_id, Name. Either AccountType or AccountSubType must be specified.
list_all_quick_books_bills
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_quick_books_bill_by_id
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_quick_books_bill
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_quick_books_bill_by_id
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_quick_books_credit_memos
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_quick_books_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_quick_books_credit_memo
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_quick_books_reports
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_quick_books_refund_receipts
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_quick_books_refund_receipt_by_id
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_quick_books_bill_payments
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_quick_books_bill_payment_by_id
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_quick_books_bill_payment
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_quick_books_items
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_quick_books_item_by_id
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_quick_books_item
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_quick_books_tax_rates
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_quick_books_tax_rate_by_id
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_quick_books_classes
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_quick_books_class_by_id
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_quick_books_vendors
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_quick_books_vendor_by_id
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_quick_books_vendor
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_quick_books_customers
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_quick_books_customer_by_id
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_quick_books_customer
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_quick_books_customer_by_id
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_quick_books_purchases
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_quick_books_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_quick_books_purchase
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_quick_books_journals
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_quick_books_journal_by_id
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_quick_books_journal
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_quick_books_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_quick_books_payment_by_id
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_quick_books_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_quick_books_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_quick_books_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_quick_books_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_quick_books_attachable_by_id
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_quick_books_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_quick_books_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_quick_books_invoices
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.
get_single_quick_books_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_quick_books_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_quick_books_invoice_by_id
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.
list_all_quick_books_estimates
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_quick_books_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_quick_books_purchase_orders
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_quick_books_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_quick_books_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_quick_books_purchase_order_by_id
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_quick_books_companies
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_quick_books_company_by_id
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_quick_books_payment_methods
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_quick_books_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_quick_books_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_quick_books_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_quick_books_profit_and_loss
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_quick_books_transfer
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_quick_books_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_quick_books_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_quick_books_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_quick_books_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_quick_books_currency_by_id
Get a single QuickBooks company currency by id. Returns: Id, SyncToken, Code, Name, Active, domain, sparse, CustomField, MetaData. Required: id.
create_a_quick_books_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_quick_books_currency_by_id
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_quick_books_customer_type
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_quick_books_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_quick_books_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_quick_books_employee_by_id
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_quick_books_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_quick_books_employee_by_id
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_quick_books_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_quick_books_recurring_transaction_by_id
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_quick_books_recurring_transaction
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_quick_books_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_quick_books_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_quick_books_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_quick_books_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_quick_books_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_quick_books_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_quick_books_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_quick_books_credit_card_payment_by_id
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_quick_books_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_quick_books_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_quick_books_department
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_quick_books_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_quick_books_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_quick_books_department_by_id
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_quick_books_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_quick_books_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_quick_books_exchange_rate
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_quick_books_journal_code
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_quick_books_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_quick_books_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_quick_books_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_quick_books_reimburse_charges
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_quick_books_reimburse_charge_by_id
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_quick_books_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_quick_books_preference_by_id
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_quick_books_sales_receipt
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_quick_books_sales_receipt_by_id
Get a single QuickBooks sales receipt by id. Returns: Id, domain, status. Required: id.
create_a_quick_books_sales_receipt
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_quick_books_sales_receipt_by_id
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_quick_books_sales_receipt_by_id
Delete a QuickBooks sales receipt by id. Returns the deletion confirmation with status, domain, and Id. Required: id.
list_all_quick_books_tax_classification
List QuickBooks tax classifications, optionally filtered by level. Returns: id, name, code, description, level, applicableTo, ParentRef. Required: realmId.
get_single_quick_books_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_quick_books_tax_code
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_quick_books_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_quick_books_tax_payment
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_quick_books_tax_payment_by_id
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_quick_books_tax_service
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_quick_books_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_quick_books_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_quick_books_tax_agency
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_quick_books_term
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_quick_books_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_quick_books_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_quick_books_term_by_id
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_quick_books_time_activity
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_quick_books_time_activity_by_id
Get a single QuickBooks time activity by id. Returns: Id, domain, status. Required: realmId, id.
create_a_quick_books_time_activity
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_quick_books_time_activity_by_id
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_quick_books_time_activity_by_id
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_quick_books_transaction_journal
List QuickBooks transaction journal entries via the General Ledger report. Returns: Header, Rows, Columns. Required: realm_id.
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 650+ integrations.
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.
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.
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.
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.
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.
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
Attachments
Attachment represents the company's attachment
Budgets
Budget represents the budgets set for a company
Company Info
Company Info represents the company's information
Contact Groups
ContactGroup represents the groupings used by the company for their contacts
Contacts
Contacts represents the company's vendor or a customer
Credit Notes
Credit Notes represents the credit notes of the company
Currencies
Currency represents the currencies used by the company
Employees
Employee represents an employee of the company
Expenses
Expenses represents the expenses of the company
Invoices
Invoices represents the invoices of the company
Items
Items represents the items of the company
Journal Entries
Journal Entries represents the journal entries of the company
Payment Method
Payment method represents the payment methods of the company
Payments
Payments represents the payments of the company
Purchase Orders
Purchase Orders represents the purchase orders of the company
Repeating Transactions
RepeatingTransaction represents the repeating transactions of the company
Reports
Report gets you the various reports available in the accounting software
Tax Rates
TaxRates represents the tax rates of the company
Tracking Categories
TrackingCategories represents the tracking categories of the company
Transactions
Transactions represents the transactions of the company
Vendor Credits
VendorCredits represents the vendor credits of the company
How It Works
From zero to integrated
Go live with QuickBooks in under an hour. No boilerplate, no maintenance burden.
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.
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.
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.
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.
From the Blog
QuickBooks integration guides
Deep dives, architecture guides, and practical tutorials for building QuickBooks integrations.
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.