Skip to content

Connectors · Accounting & finance

QuickBooks Online MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to QuickBooks Online and the rest of your systems. It gives your agent 217 QuickBooks Online actions (105 reads, 90 writes and 22 that wait for a confirmation) and holds the QuickBooks Online credential itself, so the agent never does. It paces QuickBooks Online's limits and records every call. Connecting QuickBooks Online needs your own QuickBooks Online OAuth app and one admin sign-in.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "quickbooks.purchases.query",  intent: "check which QuickBooks Online account is connected"}# Query QuickBooks purchases · read · 1 upstream call
  • 217actionsin one signed file
  • 105readlook, never change
  • 90writecreate and update
  • 22wait for a yesdestructive, confirmed first

Set up

Connect QuickBooks Online in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect QuickBooks Online.

    OAuth 2.0, authorization code with PKCE. You register your own OAuth app with QuickBooks Online, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.

    Before the first sign-in, QuickBooks Online needs an OAuth app of your own, registered in its developer portal. actionlake has no QuickBooks Online app to lend you.

    • access_tokenAccess token from one sign-in with your own OAuth app
    • refresh_tokenRefresh token from the same sign-in; the access token is renewed from it
    • client_idIntuit app client id
    • client_secretIntuit app client secret
    • realm_idYour QuickBooks Online realm id
    account { op: "connections.requirements", service: "quickbooks" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "quickbooks.purchases.query" }# query quickbooks purchases · read · 1 upstream callcheck { action: "quickbooks.invoices.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

QuickBooks Online at a glance

Sign-in
OAuth 2.0, authorization code with PKCE. You register your own OAuth app with QuickBooks Online, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.
You provide
access_tokenrefresh_tokenclient_idclient_secret
Setup fields
realm_id
Limits we pace to
500 calls a minute, per connection
API covered
QuickBooks Online API 3quickbooks.api.intuit.com/v3
Built from
QuickBooks Online's documentation, read 14 September 2026developer.intuit.com
Service file
Version 2.0.0, signed (Ed25519)
Cached reads
105 of 105 reads, for up to an hour; a write clears what it affects
Ready-made plans
9 in the store
Shared entities
12, so ask can line QuickBooks Online up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in QuickBooks Online.

217 actions in 13 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 105readlook, never change
  • 90writecreate and update
  • 22destructivewait for a confirmation
  1. Receivables

    61

    22 read · 29 write · 10 destructive

    Query QuickBooks credit memos · Create a QuickBooks invoice · Create a QuickBooks sales receipt · Create a QuickBooks payment

  2. Ledger

    32

    14 read · 17 write · 1 destructive

    Create a QuickBooks account · Get one QuickBooks account · Query QuickBooks accounts · Partially update a QuickBooks account

  3. Payables

    32

    10 read · 16 write · 6 destructive

    Query QuickBooks purchases · Create a QuickBooks bill payment · Create a QuickBooks purchase order · Create a QuickBooks purchase

  4. Reporting

    29

    29 read · 0 write · 0 destructive

    QuickBooks account list report · QuickBooks aged payables detail report · QuickBooks aged payables summary report · QuickBooks aged receivables detail report

  5. Banking

    12

    4 read · 5 write · 3 destructive

    Create a QuickBooks deposit · Create a QuickBooks transfer · Query QuickBooks transfers · Get one QuickBooks deposit

  6. Contacts

    12

    6 read · 6 write · 0 destructive

    Create a QuickBooks customer · Create a QuickBooks vendor · Get one QuickBooks customer · Get one QuickBooks vendor

  7. Attachments

    7

    2 read · 4 write · 1 destructive

    Query QuickBooks attachments · Partially update a QuickBooks attachment · Update a QuickBooks attachment · Get one QuickBooks attachment

  8. Tax

    7

    6 read · 1 write · 0 destructive

    Query QuickBooks tax rates · Get one QuickBooks tax rate · Query QuickBooks tax agencies · Query QuickBooks tax codes

5 more areas · 25 actions
  • Company 6
  • Time 6
  • People 5
  • Catalogue 5
  • Accounting 3

Intuit's own MCP server

Intuit's MCP server, or actionlake?

Intuit publishes an open-source QuickBooks Online MCP server that runs on your own machine, signed in through an app you register with Intuit.

Use Intuit's server when one person wants to work in QuickBooks Online through a server they run on their own machine. Use actionlake when you also want QuickBooks Online behind the same endpoint as your other systems: a key per agent with allowed actions and a spending cap, a named person's approval before destructive actions, a sealed record of every call, and one ask across QuickBooks Online and another system.

Source: Intuit's documentation, checked 22 October 2026.

Top actions

The QuickBooks Online API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 128 of QuickBooks Online's 130 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
quickbooks.purchases.queryQuery QuickBooks purchasesRead purchases from the connected company file with a SQL-like filter, e.g. WHERE Active = true.readfinance.expense.list40 connectors
quickbooks.credit_memos.queryQuery QuickBooks credit memosRead credit memos from the connected company file with a SQL-like filter, e.g. WHERE Active = true.readfinance.credit_note.list33 connectors
quickbooks.invoices.createCreate a QuickBooks invoiceCreate one invoice in the connected company file.writefinance.invoice.create74 connectors
quickbooks.sales_receipts.createCreate a QuickBooks sales receiptCreate one sales receipt in the connected company file.writefinance.invoice.create74 connectors
quickbooks.payments.createCreate a QuickBooks paymentCreate one payment in the connected company file.writefinance.payment.create67 connectors
quickbooks.bill_payments.createCreate a QuickBooks bill paymentCreate one bill payment in the connected company file.writefinance.payment.create67 connectors
quickbooks.estimates.createCreate a QuickBooks estimateCreate one estimate in the connected company file.writefinance.quote.create52 connectors
quickbooks.purchase_orders.createCreate a QuickBooks purchase orderCreate one purchase order in the connected company file.writefinance.purchase_order.create43 connectors
quickbooks.purchases.createCreate a QuickBooks purchaseCreate one purchase in the connected company file.writefinance.expense.create36 connectors
quickbooks.vendors.createCreate a QuickBooks vendorCreate one vendor in the connected company file.writecrm.company.create142 connectors
quickbooks.customers.createCreate a QuickBooks customerCreate one customer in the connected company file.writecrm.company.create142 connectors
quickbooks.invoices.deleteDelete a QuickBooks invoiceDelete one invoice from the company file.destructivefinance.invoice.delete56 connectors

Try it

Prompts to paste into Claude.

Each one names the QuickBooks Online actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which QuickBooks Online invoices are more than 30 days overdue? Group them by customer with the total owed.

    callsquickbooks.invoices.query

  2. Planread

    Review income and balances per customer in QuickBooks Online.

    callsquickbooks.reports.customer_incomequickbooks.reports.customer_salesquickbooks.reports.customer_balance_detailquickbooks.customers.queryquickbooks.customers.get

  3. Planread

    Report stock value and refresh low item counts in QuickBooks Online.

    callsquickbooks.reports.inventory_valuation_summaryquickbooks.reports.inventory_valuation_detailquickbooks.reports.item_salesquickbooks.items.queryquickbooks.items.get

  4. Writewrite

    Create a QuickBooks invoice in QuickBooks Online. Show me exactly what you will send before you save it.

    callsquickbooks.invoices.create

  5. Across systemsread

    For each customer, how many invoices are in QuickBooks Online and how many tickets in ConnectWise PSA?

    callsquickbooks.invoices.queryconnectwise_manage.tickets.list

Across your systems

QuickBooks Online, joined to the rest of your business.

One ask fetches from QuickBooks Online and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

  • For each customer, how many invoices are in QuickBooks Online and how many tickets in ConnectWise PSA?

    quickbooks.invoices.query + connectwise_manage.tickets.list, on crm.company · ConnectWise PSA

  • For each customer, how many invoices are in QuickBooks Online and how many tickets in HubSpot CRM?

    quickbooks.invoices.query + hubspot_crm.tickets.list, on crm.company · HubSpot CRM

Also mapped by other connectorscrm.company 227finance.invoice 91hr.employee 63finance.payment 53finance.quote 45work.time_entry 40finance.purchase_order 35finance.ledger_account 32
ask
ask {  intent: "for each customer, how many invoices are in QuickBooks Online and how many tickets in ConnectWise PSA",  steps: [    { action: "quickbooks.invoices.query", as: "inv", input: {}, limit: 100, max_pages: 5 },    { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 },    { join: {        left: "inv",        right: "tix",        on: "crm.company",        group_by: "inv.company_name",        select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

The plan store

Ready-made plans for QuickBooks Online.

9 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.

  1. Review income and balances per customer

    Use it when Someone wants to know which customers earn the most and which owe the most.

    Effect
    read
    Steps
    5 · loops
    Needs
    end date and start date
    Install
    quickbooks-customer-profitability-review
  2. Report stock value and refresh low item counts

    Use it when Someone wants to know what the stock is worth and which items are running low.

    Effect
    read
    Steps
    5 · loops
    Needs
    end date, reorder at and start date
    Install
    quickbooks-inventory-stock-and-value
  3. Assemble the month-end close report pack

    Use it when Someone asks for the month-end or period-end financial statement pack out of QuickBooks.

    Effect
    read
    Steps
    5
    Needs
    end date and start date
    Install
    quickbooks-month-end-close-pack
  4. Chase overdue invoices by email

    Use it when Accounts receivable wants overdue customers chased with a fresh copy of their invoice.

    A person decidesEmail a copy of every overdue invoice listed above to the customer on it.

    Effect
    write
    Steps
    4 · loops
    Needs
    as of
    Install
    quickbooks-chase-overdue-invoices
  5. Run a vendor payment batch for due bills

    Use it when Accounts payable is ready to pay the bills that fall due and wants them settled in one run.

    A person decidesPay every bill listed above from the nominated bank account.

    Effect
    write
    Steps
    4 · loops
    Needs
    bank account id and due by
    Install
    quickbooks-pay-approved-bills
  6. Turn an accepted estimate into an invoice

    Use it when A quote has been accepted and someone wants it converted into a real invoice in QuickBooks.

    A person decidesConvert estimate DocNumber for name into an invoice and send it.

    Effect
    write
    Steps
    5
    Needs
    due date and estimate id
    Install
    quickbooks-estimate-to-invoice
  7. Post a period-end accrual journal

    Use it when An accountant needs an accrual or adjusting journal posted into QuickBooks at period end.

    A person decidesPost the adjusting journal dated txn date: memo

    Effect
    write
    Steps
    5
    Needs
    lines, memo and txn date
    Install
    quickbooks-post-accrual-journal
  8. Onboard a customer and raise their first invoice

    Use it when A new customer has been signed and needs setting up in QuickBooks with their first invoice.

    Effect
    write
    Steps
    6
    Needs
    display name, due date, email and lines
    Install
    quickbooks-new-customer-with-opening-invoice
  9. Void a duplicate invoice and credit the customer

    Use it when An invoice was raised twice or in error and needs voiding with the customer made whole.

    A person decidesVoid invoice DocNumber for name and issue a matching credit memo. Voiding cannot be undone.

    Effect
    destructive
    Steps
    6
    Needs
    invoice id
    Install
    quickbooks-void-duplicate-invoice
install a plan
account { op: "plans.install", slug: "quickbooks-customer-profitability-review" }
# then ask for it by name; a schedule can run it on a timetable

Governance for QuickBooks Online

Destructive actions wait for a yes.

22 QuickBooks Online actions are destructive. These are all of them:

  • Delete a QuickBooks invoicequickbooks.invoices.delete
  • Delete a QuickBooks sales receiptquickbooks.sales_receipts.delete
  • Delete a QuickBooks paymentquickbooks.payments.delete
  • Delete a QuickBooks bill paymentquickbooks.bill_payments.delete
  • Delete a QuickBooks estimatequickbooks.estimates.delete
  • Delete a QuickBooks purchasequickbooks.purchases.delete
  • Delete a QuickBooks purchase orderquickbooks.purchase_orders.delete
  • Void a QuickBooks invoicequickbooks.invoices.void
  • Void a QuickBooks sales receiptquickbooks.sales_receipts.void
  • Delete a QuickBooks billquickbooks.bills.delete
  • Delete a QuickBooks credit memoquickbooks.credit_memos.delete
  • Delete a QuickBooks vendor creditquickbooks.vendor_credits.delete
  • Void a QuickBooks paymentquickbooks.payments.void
  • Void a QuickBooks bill paymentquickbooks.bill_payments.void
  • Create a QuickBooks refund receiptquickbooks.refund_receipts.create
  • Create a QuickBooks transferquickbooks.transfers.create
  • Delete a QuickBooks time activityquickbooks.time_activities.delete
  • Delete a QuickBooks journal entryquickbooks.journal_entries.delete
  • Delete a QuickBooks refund receiptquickbooks.refund_receipts.delete
  • Delete a QuickBooks depositquickbooks.deposits.delete
  • Delete a QuickBooks transferquickbooks.transfers.delete
  • Delete a QuickBooks attachmentquickbooks.attachables.delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

doquickbooks.invoices.deleteconfirm_policy: human

Delete a QuickBooks invoice?

intent: the user asked me to delete a QuickBooks invoice

run suspended · waiting for a named person · key quickbooks-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "quickbooks-agent",  allowed_actions: ["quickbooks.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "quickbooks.invoices.delete", approver: "[email protected]" },    { match: "quickbooks.sales_receipts.delete", approver: "[email protected]" },    { match: "quickbooks.payments.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to QuickBooks Online only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What QuickBooks Online costs on actionlake.

Every QuickBooks Online action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call QuickBooks Online refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 217 QuickBooks Online actions
  • 64actions pageeach page of a long list is one call
  • 105reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every QuickBooks Online action.

217 actions by area: the id your agent calls, what it does, and its effect.

Receivables61
  • quickbooks.credit_memos.createCreate a QuickBooks credit memowrite
  • quickbooks.credit_memos.deleteDelete a QuickBooks credit memodestructive
  • quickbooks.credit_memos.getGet one QuickBooks credit memoread
  • quickbooks.credit_memos.pdfGet a QuickBooks credit memo as a PDFread
  • quickbooks.credit_memos.queryQuery QuickBooks credit memosread
  • quickbooks.credit_memos.sendEmail a QuickBooks credit memowrite
  • quickbooks.credit_memos.sparse_updatePartially update a QuickBooks credit memowrite
  • quickbooks.credit_memos.updateUpdate a QuickBooks credit memowrite
  • quickbooks.estimates.createCreate a QuickBooks estimatewrite
  • quickbooks.estimates.deleteDelete a QuickBooks estimatedestructive
  • quickbooks.estimates.getGet one QuickBooks estimateread
  • quickbooks.estimates.pdfGet a QuickBooks estimate as a PDFread
  • quickbooks.estimates.queryQuery QuickBooks estimatesread
  • quickbooks.estimates.sendEmail a QuickBooks estimatewrite
  • quickbooks.estimates.sparse_updatePartially update a QuickBooks estimatewrite
  • quickbooks.estimates.updateUpdate a QuickBooks estimatewrite
  • quickbooks.invoices.createCreate a QuickBooks invoicewrite
  • quickbooks.invoices.deleteDelete a QuickBooks invoicedestructive
  • quickbooks.invoices.getGet one QuickBooks invoiceread
  • quickbooks.invoices.pdfGet a QuickBooks invoice as a PDFread
  • quickbooks.invoices.queryQuery QuickBooks invoicesread
  • quickbooks.invoices.sendEmail a QuickBooks invoicewrite
  • quickbooks.invoices.sparse_updatePartially update a QuickBooks invoicewrite
  • quickbooks.invoices.updateUpdate a QuickBooks invoicewrite
  • quickbooks.invoices.voidVoid a QuickBooks invoicedestructive
  • quickbooks.payment_methods.createCreate a QuickBooks payment methodwrite
  • quickbooks.payment_methods.getGet one QuickBooks payment methodread
  • quickbooks.payment_methods.queryQuery QuickBooks payment methodsread
  • quickbooks.payment_methods.sparse_updatePartially update a QuickBooks payment methodwrite
  • quickbooks.payment_methods.updateUpdate a QuickBooks payment methodwrite
  • quickbooks.payments.createCreate a QuickBooks paymentwrite
  • quickbooks.payments.deleteDelete a QuickBooks paymentdestructive
  • quickbooks.payments.getGet one QuickBooks paymentread
  • quickbooks.payments.pdfGet a QuickBooks payment as a PDFread
  • quickbooks.payments.queryQuery QuickBooks paymentsread
  • quickbooks.payments.sendEmail a QuickBooks paymentwrite
  • quickbooks.payments.sparse_updatePartially update a QuickBooks paymentwrite
  • quickbooks.payments.updateUpdate a QuickBooks paymentwrite
  • quickbooks.payments.voidVoid a QuickBooks paymentdestructive
  • quickbooks.refund_receipts.createCreate a QuickBooks refund receiptdestructive
  • quickbooks.refund_receipts.deleteDelete a QuickBooks refund receiptdestructive
  • quickbooks.refund_receipts.getGet one QuickBooks refund receiptread
  • quickbooks.refund_receipts.pdfGet a QuickBooks refund receipt as a PDFread
  • quickbooks.refund_receipts.queryQuery QuickBooks refund receiptsread
  • quickbooks.refund_receipts.sendEmail a QuickBooks refund receiptwrite
  • quickbooks.refund_receipts.sparse_updatePartially update a QuickBooks refund receiptwrite
  • quickbooks.refund_receipts.updateUpdate a QuickBooks refund receiptwrite
  • quickbooks.sales_receipts.createCreate a QuickBooks sales receiptwrite
  • quickbooks.sales_receipts.deleteDelete a QuickBooks sales receiptdestructive
  • quickbooks.sales_receipts.getGet one QuickBooks sales receiptread
  • quickbooks.sales_receipts.pdfGet a QuickBooks sales receipt as a PDFread
  • quickbooks.sales_receipts.queryQuery QuickBooks sales receiptsread
  • quickbooks.sales_receipts.sendEmail a QuickBooks sales receiptwrite
  • quickbooks.sales_receipts.sparse_updatePartially update a QuickBooks sales receiptwrite
  • quickbooks.sales_receipts.updateUpdate a QuickBooks sales receiptwrite
  • quickbooks.sales_receipts.voidVoid a QuickBooks sales receiptdestructive
  • quickbooks.terms.createCreate a QuickBooks payment termwrite
  • quickbooks.terms.getGet one QuickBooks payment termread
  • quickbooks.terms.queryQuery QuickBooks payment termsread
  • quickbooks.terms.sparse_updatePartially update a QuickBooks payment termwrite
  • quickbooks.terms.updateUpdate a QuickBooks payment termwrite
Ledger32
  • quickbooks.accounts.createCreate a QuickBooks accountwrite
  • quickbooks.accounts.getGet one QuickBooks accountread
  • quickbooks.accounts.queryQuery QuickBooks accountsread
  • quickbooks.accounts.sparse_updatePartially update a QuickBooks accountwrite
  • quickbooks.accounts.updateUpdate a QuickBooks accountwrite
  • quickbooks.budgets.getGet one QuickBooks budgetread
  • quickbooks.budgets.queryQuery QuickBooks budgetsread
  • quickbooks.classes.createCreate a QuickBooks classwrite
  • quickbooks.classes.getGet one QuickBooks classread
  • quickbooks.classes.queryQuery QuickBooks classesread
  • quickbooks.classes.sparse_updatePartially update a QuickBooks classwrite
  • quickbooks.classes.updateUpdate a QuickBooks classwrite
  • quickbooks.company_currencies.createCreate a QuickBooks company currencywrite
  • quickbooks.company_currencies.getGet one QuickBooks company currencyread
  • quickbooks.company_currencies.queryQuery QuickBooks company currenciesread
  • quickbooks.company_currencies.sparse_updatePartially update a QuickBooks company currencywrite
  • quickbooks.company_currencies.updateUpdate a QuickBooks company currencywrite
  • quickbooks.departments.createCreate a QuickBooks departmentwrite
  • quickbooks.departments.getGet one QuickBooks departmentread
  • quickbooks.departments.queryQuery QuickBooks departmentsread
  • quickbooks.departments.sparse_updatePartially update a QuickBooks departmentwrite
  • quickbooks.departments.updateUpdate a QuickBooks departmentwrite
  • quickbooks.journal_codes.createCreate a QuickBooks journal codewrite
  • quickbooks.journal_codes.getGet one QuickBooks journal coderead
  • quickbooks.journal_codes.queryQuery QuickBooks journal codesread
  • quickbooks.journal_codes.updateUpdate a QuickBooks journal codewrite
  • quickbooks.journal_entries.createCreate a QuickBooks journal entrywrite
  • quickbooks.journal_entries.deleteDelete a QuickBooks journal entrydestructive
  • quickbooks.journal_entries.getGet one QuickBooks journal entryread
  • quickbooks.journal_entries.queryQuery QuickBooks journal entriesread
  • quickbooks.journal_entries.sparse_updatePartially update a QuickBooks journal entrywrite
  • quickbooks.journal_entries.updateUpdate a QuickBooks journal entrywrite
Payables32
  • quickbooks.bill_payments.createCreate a QuickBooks bill paymentwrite
  • quickbooks.bill_payments.deleteDelete a QuickBooks bill paymentdestructive
  • quickbooks.bill_payments.getGet one QuickBooks bill paymentread
  • quickbooks.bill_payments.queryQuery QuickBooks bill paymentsread
  • quickbooks.bill_payments.sparse_updatePartially update a QuickBooks bill paymentwrite
  • quickbooks.bill_payments.updateUpdate a QuickBooks bill paymentwrite
  • quickbooks.bill_payments.voidVoid a QuickBooks bill paymentdestructive
  • quickbooks.bills.createCreate a QuickBooks billwrite
  • quickbooks.bills.deleteDelete a QuickBooks billdestructive
  • quickbooks.bills.getGet one QuickBooks billread
  • quickbooks.bills.queryQuery QuickBooks billsread
  • quickbooks.bills.sparse_updatePartially update a QuickBooks billwrite
  • quickbooks.bills.updateUpdate a QuickBooks billwrite
  • quickbooks.purchase_orders.createCreate a QuickBooks purchase orderwrite
  • quickbooks.purchase_orders.deleteDelete a QuickBooks purchase orderdestructive
  • quickbooks.purchase_orders.getGet one QuickBooks purchase orderread
  • quickbooks.purchase_orders.queryQuery QuickBooks purchase ordersread
  • quickbooks.purchase_orders.sendEmail a QuickBooks purchase orderwrite
  • quickbooks.purchase_orders.sparse_updatePartially update a QuickBooks purchase orderwrite
  • quickbooks.purchase_orders.updateUpdate a QuickBooks purchase orderwrite
  • quickbooks.purchases.createCreate a QuickBooks purchasewrite
  • quickbooks.purchases.deleteDelete a QuickBooks purchasedestructive
  • quickbooks.purchases.getGet one QuickBooks purchaseread
  • quickbooks.purchases.queryQuery QuickBooks purchasesread
  • quickbooks.purchases.sparse_updatePartially update a QuickBooks purchasewrite
  • quickbooks.purchases.updateUpdate a QuickBooks purchasewrite
  • quickbooks.vendor_credits.createCreate a QuickBooks vendor creditwrite
  • quickbooks.vendor_credits.deleteDelete a QuickBooks vendor creditdestructive
  • quickbooks.vendor_credits.getGet one QuickBooks vendor creditread
  • quickbooks.vendor_credits.queryQuery QuickBooks vendor creditsread
  • quickbooks.vendor_credits.sparse_updatePartially update a QuickBooks vendor creditwrite
  • quickbooks.vendor_credits.updateUpdate a QuickBooks vendor creditwrite
Reporting29
  • quickbooks.reports.account_listQuickBooks account list reportread
  • quickbooks.reports.aged_payable_detailQuickBooks aged payables detail reportread
  • quickbooks.reports.aged_payablesQuickBooks aged payables summary reportread
  • quickbooks.reports.aged_receivable_detailQuickBooks aged receivables detail reportread
  • quickbooks.reports.aged_receivablesQuickBooks aged receivables summary reportread
  • quickbooks.reports.balance_sheetQuickBooks balance sheet reportread
  • quickbooks.reports.cash_flowQuickBooks statement of cash flows reportread
  • quickbooks.reports.class_salesQuickBooks sales by class reportread
  • quickbooks.reports.customer_balanceQuickBooks customer balance summary reportread
  • quickbooks.reports.customer_balance_detailQuickBooks customer balance detail reportread
  • quickbooks.reports.customer_incomeQuickBooks income by customer summary reportread
  • quickbooks.reports.customer_salesQuickBooks sales by customer reportread
  • quickbooks.reports.department_salesQuickBooks sales by department reportread
  • quickbooks.reports.general_ledgerQuickBooks general ledger reportread
  • quickbooks.reports.general_ledger_detailQuickBooks general ledger detail reportread
  • quickbooks.reports.inventory_valuation_detailQuickBooks inventory valuation detail reportread
  • quickbooks.reports.inventory_valuation_summaryQuickBooks inventory valuation summary reportread
  • quickbooks.reports.item_salesQuickBooks sales by product or service reportread
  • quickbooks.reports.journal_reportQuickBooks journal report reportread
  • quickbooks.reports.profit_and_lossQuickBooks profit and loss reportread
  • quickbooks.reports.profit_and_loss_detailQuickBooks profit and loss detail reportread
  • quickbooks.reports.tax_summaryQuickBooks sales tax summary reportread
  • quickbooks.reports.transaction_listQuickBooks transaction list reportread
  • quickbooks.reports.transaction_list_by_customerQuickBooks transaction list by customer reportread
  • quickbooks.reports.transaction_list_by_vendorQuickBooks transaction list by vendor reportread
  • quickbooks.reports.trial_balanceQuickBooks trial balance reportread
  • quickbooks.reports.vendor_balanceQuickBooks vendor balance summary reportread
  • quickbooks.reports.vendor_balance_detailQuickBooks vendor balance detail reportread
  • quickbooks.reports.vendor_expensesQuickBooks expenses by vendor summary reportread
Banking12
  • quickbooks.deposits.createCreate a QuickBooks depositwrite
  • quickbooks.deposits.deleteDelete a QuickBooks depositdestructive
  • quickbooks.deposits.getGet one QuickBooks depositread
  • quickbooks.deposits.queryQuery QuickBooks depositsread
  • quickbooks.deposits.sparse_updatePartially update a QuickBooks depositwrite
  • quickbooks.deposits.updateUpdate a QuickBooks depositwrite
  • quickbooks.transfers.createCreate a QuickBooks transferdestructive
  • quickbooks.transfers.deleteDelete a QuickBooks transferdestructive
  • quickbooks.transfers.getGet one QuickBooks transferread
  • quickbooks.transfers.queryQuery QuickBooks transfersread
  • quickbooks.transfers.sparse_updatePartially update a QuickBooks transferwrite
  • quickbooks.transfers.updateUpdate a QuickBooks transferwrite
Contacts12
  • quickbooks.customer_types.getGet one QuickBooks customer typeread
  • quickbooks.customer_types.queryQuery QuickBooks customer typesread
  • quickbooks.customers.createCreate a QuickBooks customerwrite
  • quickbooks.customers.getGet one QuickBooks customerread
  • quickbooks.customers.queryQuery QuickBooks customersread
  • quickbooks.customers.sparse_updatePartially update a QuickBooks customerwrite
  • quickbooks.customers.updateUpdate a QuickBooks customerwrite
  • quickbooks.vendors.createCreate a QuickBooks vendorwrite
  • quickbooks.vendors.getGet one QuickBooks vendorread
  • quickbooks.vendors.queryQuery QuickBooks vendorsread
  • quickbooks.vendors.sparse_updatePartially update a QuickBooks vendorwrite
  • quickbooks.vendors.updateUpdate a QuickBooks vendorwrite
Attachments7
  • quickbooks.attachables.createCreate a QuickBooks attachmentwrite
  • quickbooks.attachables.deleteDelete a QuickBooks attachmentdestructive
  • quickbooks.attachables.getGet one QuickBooks attachmentread
  • quickbooks.attachables.queryQuery QuickBooks attachmentsread
  • quickbooks.attachables.sparse_updatePartially update a QuickBooks attachmentwrite
  • quickbooks.attachables.updateUpdate a QuickBooks attachmentwrite
  • quickbooks.attachables.uploadUpload a QuickBooks attachmentwrite
Tax7
  • quickbooks.tax_agencies.createCreate a QuickBooks tax agencywrite
  • quickbooks.tax_agencies.getGet one QuickBooks tax agencyread
  • quickbooks.tax_agencies.queryQuery QuickBooks tax agenciesread
  • quickbooks.tax_codes.getGet one QuickBooks tax coderead
  • quickbooks.tax_codes.queryQuery QuickBooks tax codesread
  • quickbooks.tax_rates.getGet one QuickBooks tax rateread
  • quickbooks.tax_rates.queryQuery QuickBooks tax ratesread
Company6
  • quickbooks.company_info.getGet one QuickBooks company informationread
  • quickbooks.company_info.queryQuery QuickBooks company informationread
  • quickbooks.company_info.updateUpdate a QuickBooks company informationwrite
  • quickbooks.preferences.getGet one QuickBooks preferencesread
  • quickbooks.preferences.queryQuery QuickBooks preferencesread
  • quickbooks.preferences.updateUpdate a QuickBooks preferenceswrite
Time6
  • quickbooks.time_activities.createCreate a QuickBooks time activitywrite
  • quickbooks.time_activities.deleteDelete a QuickBooks time activitydestructive
  • quickbooks.time_activities.getGet one QuickBooks time activityread
  • quickbooks.time_activities.queryQuery QuickBooks time activitiesread
  • quickbooks.time_activities.sparse_updatePartially update a QuickBooks time activitywrite
  • quickbooks.time_activities.updateUpdate a QuickBooks time activitywrite
People5
  • quickbooks.employees.createCreate a QuickBooks employeewrite
  • quickbooks.employees.getGet one QuickBooks employeeread
  • quickbooks.employees.queryQuery QuickBooks employeesread
  • quickbooks.employees.sparse_updatePartially update a QuickBooks employeewrite
  • quickbooks.employees.updateUpdate a QuickBooks employeewrite
Catalogue5
  • quickbooks.items.createCreate a QuickBooks itemwrite
  • quickbooks.items.getGet one QuickBooks itemread
  • quickbooks.items.queryQuery QuickBooks itemsread
  • quickbooks.items.sparse_updatePartially update a QuickBooks itemwrite
  • quickbooks.items.updateUpdate a QuickBooks itemwrite
Accounting3
  • quickbooks.batch.runRun a QuickBooks batchwrite
  • quickbooks.cdc.changesGet QuickBooks changes since a timestampread
  • quickbooks.query.runRun a raw QuickBooks queryread

Questions

The QuickBooks Online MCP server, answered.

Is there a QuickBooks Online MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 217 QuickBooks Online actions across receivables, ledger, payables and reporting, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Intuit.

Does Intuit have its own MCP server?

Intuit publishes an open-source QuickBooks Online MCP server that runs on your own machine, signed in through an app you register with Intuit. (Intuit's documentation, checked 22 October 2026.) Use Intuit's server when one person wants to work in QuickBooks Online through a server they run on their own machine. Use actionlake when you also want QuickBooks Online behind the same endpoint as your other systems: a key per agent with allowed actions and a spending cap, a named person's approval before destructive actions, a sealed record of every call, and one ask across QuickBooks Online and another system.

What do I need to connect QuickBooks Online?

Your own QuickBooks Online OAuth app, registered with QuickBooks Online (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no QuickBooks Online app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. Plus your realm id. The free call account { op: "connections.requirements", service: "quickbooks" } lists exactly what to paste.

Can an AI agent delete or change things in QuickBooks Online?

Only if its key allows it, and only with an explicit confirmation. 22 QuickBooks Online actions are destructive, including delete a QuickBooks invoice, delete a QuickBooks sales receipt and delete a QuickBooks payment. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my QuickBooks Online API limit?

actionlake paces every call to the limits in the QuickBooks Online service file: 500 calls a minute per connection. Repeated reads are answered from cache (105 QuickBooks Online actions can be), which never reaches QuickBooks Online.

What does a QuickBooks Online action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (64 QuickBooks Online actions page). Cache hits, searches, dry runs and calls QuickBooks Online refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which QuickBooks Online API does it cover?

The QuickBooks Online API 3 at quickbooks.api.intuit.com/v3. It is built from QuickBooks Online's documentation as read on 14 September 2026. 217 actions in 13 areas, each one in the signed service file (version 2.0.0).

Can I combine QuickBooks Online with my other systems?

Yes. ask joins QuickBooks Online to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. QuickBooks Online maps crm.company, which 227 other connectors also map.

Does actionlake keep my QuickBooks Online data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your QuickBooks Online credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent QuickBooks Online today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.