Connectors · Accounting & finance
FreshBooks MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to FreshBooks and the rest of your systems. It gives your agent 184 FreshBooks actions (94 reads, 66 writes and 24 that wait for a confirmation) and holds the FreshBooks credential itself, so the agent never does. It paces FreshBooks's limits and records every call. Connecting FreshBooks needs your own FreshBooks 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/mcpdo { action: "freshbooks.invoices.list", intent: "check which FreshBooks account is connected"}# List invoices · read · 1 upstream call- 184actionsin one signed file
- 94readlook, never change
- 66writecreate and update
- 24wait for a yesdestructive, confirmed first
Set up
Connect FreshBooks in three steps.
- 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 - 02
Connect FreshBooks.
OAuth 2.0, authorization code. You register your own OAuth app with FreshBooks, 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, FreshBooks needs an OAuth app of your own, registered in its developer portal. actionlake has no FreshBooks app to lend you.
access_tokenAccess token from one sign-in with your own OAuth apprefresh_tokenRefresh token from the same sign-in; the access token is renewed from itclient_idFreshBooks app client idclient_secretFreshBooks app client secret
Found for you at connect: account id, business id, business uuid and identity id.
account { op: "connections.requirements", service: "freshbooks" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "freshbooks.invoices.list" }# list invoices · read · 1 upstream callcheck { action: "freshbooks.invoices.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
FreshBooks at a glance
- Sign-in
- OAuth 2.0, authorization code. You register your own OAuth app with FreshBooks, 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- Found for you
- account id, business id, business uuid and identity id
- Limits we pace to
- 100 calls a minute, per connection
- API covered
- FreshBooks API alpha
api.freshbooks.com - Built from
- FreshBooks's documentation, read 19 September 2026freshbooks.comdocumenter.getpostman.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 94 of 94 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 8 in the store
- Shared entities
- 14, so ask can line FreshBooks up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in FreshBooks.
184 actions in 19 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 94readlook, never change
- 66writecreate and update
- 24destructivewait for a confirmation
Reporting
2222 read · 0 write · 0 destructive
Run the time entry details report · List account entry details · Run a client account statement · Run the accounts aging report
Invoicing
198 read · 8 write · 3 destructive
List invoices · List credit notes · Create an invoice · Get one invoice
Payments
166 read · 7 write · 3 destructive
List payments · Record a payment on an invoice · Get one payment · Update a payment
Payables
155 read · 7 write · 3 destructive
List bills · Create a bill · Get one bill · List bill payments
Catalogue
147 read · 6 write · 1 destructive
List items · Create an item · Get one item · Update an item
Users
128 read · 3 write · 1 destructive
List team members · List business users · List staff · Get the authenticated identity
Ledger
128 read · 4 write · 0 destructive
List journal entry accounts · List journal entry details · List ledger accounts · Create a ledger account
Expenses
106 read · 3 write · 1 destructive
List expenses · Create an expense · Get one expense · Update an expense
11 more areas · 64 actions
- Projects 9
- Time 8
- Contacts 7
- Quoting 7
- Income 6
- Contracts 5
- Tax 5
- Webhooks 5
- Tasks 5
- Settings 4
- Developer 3
Top actions
The FreshBooks API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 116 of FreshBooks's 116 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
freshbooks.invoices.listList invoices | List invoices from FreshBooks. Paged; each page is one billed upstream call. | read | finance.invoice.list101 connectors |
freshbooks.payments.listList payments | List payments from FreshBooks. Paged; each page is one billed upstream call. | read | finance.payment.list75 connectors |
freshbooks.estimates.listList estimates | List estimates from FreshBooks. Paged; each page is one billed upstream call. | read | finance.quote.list52 connectors |
freshbooks.expenses.listList expenses | List expenses from FreshBooks. Paged; each page is one billed upstream call. | read | finance.expense.list40 connectors |
freshbooks.credit_notes.listList credit notes | List credit notes from FreshBooks. Paged; each page is one billed upstream call. | read | finance.credit_note.list33 connectors |
freshbooks.bills.listList bills | List bills from FreshBooks. Paged; each page is one billed upstream call. | read | finance.bill.list31 connectors |
freshbooks.projects.listList projects | List projects from FreshBooks. Paged; each page is one billed upstream call. | read | work.project.list109 connectors |
freshbooks.items.listList items | List items from FreshBooks. Paged; each page is one billed upstream call. | read | finance.billing_item.list24 connectors |
freshbooks.invoices.createCreate an invoice | Create an invoice in FreshBooks. | write | finance.invoice.create74 connectors |
freshbooks.payments.createRecord a payment on an invoice | Record a payment on an invoice in FreshBooks. | write | finance.payment.create67 connectors |
freshbooks.estimates.createCreate an estimate | Create an estimate in FreshBooks. | write | finance.quote.create52 connectors |
freshbooks.invoices.deleteDelete an invoice | Delete an invoice in FreshBooks. | destructive | finance.invoice.delete56 connectors |
Try it
Prompts to paste into Claude.
Each one names the FreshBooks actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which FreshBooks invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
freshbooks.invoices.list - Planwrite
Invoice a client for unbilled time in FreshBooks. Ask me before anything is sent or changed.
calls
freshbooks.time_entries.listfreshbooks.clients.getfreshbooks.invoices.createfreshbooks.time_entries.updatefreshbooks.invoices.mark_sent - Planwrite
Turn an accepted estimate into a sent invoice in FreshBooks. Ask me before anything is sent or changed.
calls
freshbooks.estimates.getfreshbooks.estimates.acceptfreshbooks.invoices.createfreshbooks.invoices.sendfreshbooks.invoices.share_link - Writewrite
Create an invoice in FreshBooks. Show me exactly what you will send before you save it.
calls
freshbooks.invoices.create - Across systemsread
For each customer, how many invoices are in FreshBooks and how many tickets in ConnectWise PSA?
calls
freshbooks.invoices.listconnectwise_manage.tickets.list
Across your systems
FreshBooks, joined to the rest of your business.
One ask fetches from FreshBooks 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 FreshBooks and how many tickets in ConnectWise PSA?
freshbooks.invoices.list+connectwise_manage.tickets.list, oncrm.company· ConnectWise PSAFor each customer, how many invoices are in FreshBooks and how many tickets in HubSpot CRM?
freshbooks.invoices.list+hubspot_crm.tickets.list, oncrm.company· HubSpot CRM
identity.user 517crm.company 227work.project 116finance.invoice 91finance.payment 53finance.quote 45work.time_entry 40finance.ledger_account 32ask { intent: "for each customer, how many invoices are in FreshBooks and how many tickets in ConnectWise PSA", steps: [ { action: "freshbooks.invoices.list", 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"] } } ]}The plan store
Ready-made plans for FreshBooks.
8 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.
Pull the month-end finance report pack
Use it when You need the month-end numbers for a FreshBooks business in one go.
Review a quarter's tax and expense position
Use it when A quarter is closing and you want the tax summary alongside what the expenses were spent on.
Chase overdue invoices with a resend
Use it when A client ledger has slipped and you want to re-send every overdue invoice in one pass.
A person decides
Re-send count overdue FreshBooks invoices to recipient.
Onboard a client with a project and retainer
Use it when A new client has signed and needs a record, a project and a recurring retainer set up.
A person decides
Create client organization with a frequency retainer of fee starting start date.
Record a payment and confirm the invoice balance
Use it when A client payment has landed and you want it posted against the right FreshBooks invoice.
A person decides
Invoice invoice number already reads as paid — post another amount against it?
Invoice a client for unbilled time
Use it when A client has logged billable hours that have not been invoiced and you want them billed and closed off.
A person decides
Invoice organization for number of items unbilled time entries.
Turn an accepted estimate into a sent invoice
Use it when A client has verbally agreed to an estimate and you want it accepted and invoiced in one pass.
A person decides
Accept estimate estimate number and invoice the client for it.
Pay a vendor bill and archive it
Use it when A supplier bill is due and you want it paid, checked and archived in one pass.
A person decides
Pay amount against bill bill number by payment type.
account { op: "plans.install", slug: "freshbooks-month-end-finance-pack" }
# then ask for it by name; a schedule can run it on a timetableGovernance for FreshBooks
Destructive actions wait for a yes.
24 FreshBooks actions are destructive. These are all of them:
- Delete an invoice
freshbooks.invoices.delete - Delete a payment
freshbooks.payments.delete - Delete an estimate
freshbooks.estimates.delete - Delete an expense
freshbooks.expenses.delete - Delete a project
freshbooks.projects.delete - Delete a bill
freshbooks.bills.delete - Delete a credit note
freshbooks.credit_notes.delete - Delete an item
freshbooks.items.delete - Delete a task
freshbooks.tasks.delete - Delete a time entry
freshbooks.time_entries.delete - Delete a client
freshbooks.clients.delete - Delete an other income entry
freshbooks.other_income.delete - Delete a bill payment
freshbooks.bill_payments.delete - Hard-delete an other income entry
freshbooks.other_income.delete_hard - Delete a staff member
freshbooks.staff.delete - Delete a tax
freshbooks.taxes.delete - Delete a recurring invoice profile
freshbooks.invoice_profiles.delete - Delete a bill vendor
freshbooks.bill_vendors.delete - Delete a payment gateway
freshbooks.gateways.delete - Delete a secondary contact
freshbooks.contacts.delete - Delete a checkout link
freshbooks.checkout_links.delete - Delete a webhook callback
freshbooks.callbacks.delete - Deactivate a retainer
freshbooks.retainers.delete - Delete a business
freshbooks.businesses.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.
Delete an invoice?
intent: the user asked me to delete an invoice
account { op: "keys.create", name: "freshbooks-agent", allowed_actions: ["freshbooks.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "freshbooks.invoices.delete", approver: "[email protected]" }, { match: "freshbooks.payments.delete", approver: "[email protected]" }, { match: "freshbooks.estimates.delete", approver: "[email protected]" } ]}Cost
What FreshBooks costs on actionlake.
Every FreshBooks action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call FreshBooks 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 184 FreshBooks actions
- 184actions pageeach page of a long list is one call
- 94reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every FreshBooks action.
184 actions by area: the id your agent calls, what it does, and its effect.
Reporting22
freshbooks.reports.account_entry_detailsList account entry detailsreadfreshbooks.reports.account_statementRun a client account statementreadfreshbooks.reports.accounts_agingRun the accounts aging reportreadfreshbooks.reports.balance_sheetRun the balance sheet reportreadfreshbooks.reports.balance_sheet_classicRun the classic balance sheet reportreadfreshbooks.reports.bank_reconciliation_summaryRun the bank reconciliation summary reportreadfreshbooks.reports.cash_flowRun the cash flow reportreadfreshbooks.reports.chart_of_accountsRun the chart of accounts reportreadfreshbooks.reports.expense_detailsRun the expense details reportreadfreshbooks.reports.expense_details_classicRun the classic expense details reportreadfreshbooks.reports.general_ledgerRun the general ledger reportreadfreshbooks.reports.invoice_detailsRun the invoice details reportreadfreshbooks.reports.item_salesRun the item sales reportreadfreshbooks.reports.manual_journal_entryRun the manual journal entry reportreadfreshbooks.reports.payments_collectedRun the payments collected reportreadfreshbooks.reports.profit_and_lossRun the profit and loss reportreadfreshbooks.reports.profitloss_entityRun the classic profit and loss reportreadfreshbooks.reports.revenue_by_clientRun the revenue by client reportreadfreshbooks.reports.tax_summaryRun the sales tax summary reportreadfreshbooks.reports.time_entry_detailsRun the time entry details reportreadfreshbooks.reports.trial_balanceRun the trial balance reportreadfreshbooks.reports.trial_balance_classicRun the classic trial balance reportread
Invoicing19
freshbooks.credit_notes.createCreate a credit notewritefreshbooks.credit_notes.deleteDelete a credit notedestructivefreshbooks.credit_notes.getGet one credit notereadfreshbooks.credit_notes.listList credit notesreadfreshbooks.credit_notes.updateUpdate a credit notewritefreshbooks.invoice_profiles.createCreate a recurring invoice profilewritefreshbooks.invoice_profiles.deleteDelete a recurring invoice profiledestructivefreshbooks.invoice_profiles.getGet one recurring invoice profilereadfreshbooks.invoice_profiles.listList recurring invoice profilesreadfreshbooks.invoice_profiles.updateUpdate a recurring invoice profilewritefreshbooks.invoices.createCreate an invoicewritefreshbooks.invoices.deleteDelete an invoicedestructivefreshbooks.invoices.getGet one invoicereadfreshbooks.invoices.listList invoicesreadfreshbooks.invoices.mark_sentMark an invoice as sentwritefreshbooks.invoices.presentationsGet default invoice presentation stylesreadfreshbooks.invoices.sendSend an invoice by emailwritefreshbooks.invoices.share_linkGet an invoice share linkreadfreshbooks.invoices.updateUpdate an invoicewrite
Payments16
freshbooks.checkout_link_options.createSet a checkout link's payment gatewaywritefreshbooks.checkout_links.createCreate a checkout linkwritefreshbooks.checkout_links.deleteDelete a checkout linkdestructivefreshbooks.checkout_links.updateUpdate a checkout linkwritefreshbooks.gateways.deleteDelete a payment gatewaydestructivefreshbooks.gateways.listList payment gatewaysreadfreshbooks.payment_gateway.getGet the payment gateway detailsreadfreshbooks.payment_options.create_invoiceEnable online payments on an invoicewritefreshbooks.payment_options.create_profileEnable online payments on a recurring profilewritefreshbooks.payment_options.get_defaultGet default invoice payment optionsreadfreshbooks.payment_options.get_invoiceGet an invoice's payment optionsreadfreshbooks.payments.createRecord a payment on an invoicewritefreshbooks.payments.deleteDelete a paymentdestructivefreshbooks.payments.getGet one paymentreadfreshbooks.payments.listList paymentsreadfreshbooks.payments.updateUpdate a paymentwrite
Payables15
freshbooks.bill_payments.createRecord a payment against a billwritefreshbooks.bill_payments.deleteDelete a bill paymentdestructivefreshbooks.bill_payments.getGet one bill paymentreadfreshbooks.bill_payments.listList bill paymentsreadfreshbooks.bill_payments.updateUpdate a bill paymentwritefreshbooks.bill_vendors.createCreate a bill vendorwritefreshbooks.bill_vendors.deleteDelete a bill vendordestructivefreshbooks.bill_vendors.listList bill vendorsreadfreshbooks.bill_vendors.updateUpdate a bill vendorwritefreshbooks.bills.archiveArchive a billwritefreshbooks.bills.createCreate a billwritefreshbooks.bills.deleteDelete a billdestructivefreshbooks.bills.getGet one billreadfreshbooks.bills.listList billsreadfreshbooks.bills.updateUpdate a billwrite
Catalogue14
freshbooks.billable_items.createCreate a billable service itemwritefreshbooks.billable_items.getGet one billable service itemreadfreshbooks.items.createCreate an itemwritefreshbooks.items.deleteDelete an itemdestructivefreshbooks.items.getGet one itemreadfreshbooks.items.listList itemsreadfreshbooks.items.updateUpdate an itemwritefreshbooks.service_rates.createCreate a service ratewritefreshbooks.service_rates.getGet one service ratereadfreshbooks.service_rates.listList service ratesreadfreshbooks.service_rates.updateUpdate a service ratewritefreshbooks.services.createCreate a servicewritefreshbooks.services.getGet one servicereadfreshbooks.services.listList servicesread
Users12
freshbooks.business_users.listList business usersreadfreshbooks.identity.getGet the authenticated identityreadfreshbooks.invitation_rates.listList invitation ratesreadfreshbooks.invitations.createInvite a team memberwritefreshbooks.staff.deleteDelete a staff memberdestructivefreshbooks.staff.getGet one staff memberreadfreshbooks.staff.listList staffreadfreshbooks.staff.updateUpdate a staff memberwritefreshbooks.team_member_rates.listList team member ratesreadfreshbooks.team_member_rates.updateUpdate a team member ratewritefreshbooks.team_members.getGet one team memberreadfreshbooks.team_members.listList team membersread
Ledger12
freshbooks.journal_entries.createCreate a journal entrywritefreshbooks.journal_entries.listList journal entriesreadfreshbooks.journal_entries.updateUpdate a journal entrywritefreshbooks.journal_entry_accounts.listList journal entry accountsreadfreshbooks.journal_entry_details.listList journal entry detailsreadfreshbooks.ledger_account_sub_types.getGet one ledger account sub typereadfreshbooks.ledger_account_sub_types.listList ledger account sub typesreadfreshbooks.ledger_account_types.listList ledger account typesreadfreshbooks.ledger_accounts.createCreate a ledger accountwritefreshbooks.ledger_accounts.getGet one ledger accountreadfreshbooks.ledger_accounts.listList ledger accountsreadfreshbooks.ledger_accounts.updateUpdate a ledger accountwrite
Expenses10
freshbooks.expense_categories.getGet one expense categoryreadfreshbooks.expense_categories.listList expense categoriesreadfreshbooks.expense_profiles.createCreate a recurring expense profilewritefreshbooks.expenses.createCreate an expensewritefreshbooks.expenses.deleteDelete an expensedestructivefreshbooks.expenses.getGet one expensereadfreshbooks.expenses.listList expensesreadfreshbooks.expenses.summariesGet expense summariesreadfreshbooks.expenses.updateUpdate an expensewritefreshbooks.expenses.vendorsList expense vendor namesread
Projects9
freshbooks.project_service_rates.updateUpdate a project service ratewritefreshbooks.project_threads.createPost a project discussion messagewritefreshbooks.project_threads.listList project discussion messagesreadfreshbooks.projects.createCreate a projectwritefreshbooks.projects.deleteDelete a projectdestructivefreshbooks.projects.getGet one projectreadfreshbooks.projects.listList projectsreadfreshbooks.projects.updateUpdate a projectwritefreshbooks.thread_comments.createAdd a comment to a discussion messagewrite
Time8
freshbooks.time_entries.createCreate a time entrywritefreshbooks.time_entries.deleteDelete a time entrydestructivefreshbooks.time_entries.getGet one time entryreadfreshbooks.time_entries.listList time entriesreadfreshbooks.time_entries.searchSearch time entriesreadfreshbooks.time_entries.updateUpdate a time entrywritefreshbooks.timers.getGet one timerreadfreshbooks.timers.listList running timersread
Contacts7
freshbooks.clients.createCreate a clientwritefreshbooks.clients.deleteDelete a clientdestructivefreshbooks.clients.getGet one clientreadfreshbooks.clients.listList clientsreadfreshbooks.clients.updateUpdate a clientwritefreshbooks.contacts.deleteDelete a secondary contactdestructivefreshbooks.contacts.updateUpdate a secondary contactwrite
Quoting7
freshbooks.estimates.acceptAccept an estimate on the client's behalfwritefreshbooks.estimates.createCreate an estimatewritefreshbooks.estimates.deleteDelete an estimatedestructivefreshbooks.estimates.getGet one estimatereadfreshbooks.estimates.listList estimatesreadfreshbooks.estimates.sendSend an estimate by emailwritefreshbooks.estimates.updateUpdate an estimatewrite
Income6
freshbooks.other_income.createCreate an other income entrywritefreshbooks.other_income.deleteDelete an other income entrydestructivefreshbooks.other_income.delete_hardHard-delete an other income entrydestructivefreshbooks.other_income.getGet one other income entryreadfreshbooks.other_income.listList other income entriesreadfreshbooks.other_income.updateUpdate an other income entrywrite
Contracts5
freshbooks.retainers.createCreate a retainerwritefreshbooks.retainers.deleteDeactivate a retainerdestructivefreshbooks.retainers.getGet one retainerreadfreshbooks.retainers.listList retainersreadfreshbooks.retainers.updateUpdate a retainerwrite
Tax5
freshbooks.taxes.createCreate a taxwritefreshbooks.taxes.deleteDelete a taxdestructivefreshbooks.taxes.getGet one taxreadfreshbooks.taxes.listList taxesreadfreshbooks.taxes.updateUpdate a taxwrite
Webhooks5
freshbooks.callbacks.createRegister a webhook callbackwritefreshbooks.callbacks.deleteDelete a webhook callbackdestructivefreshbooks.callbacks.listList webhook callbacksreadfreshbooks.callbacks.resendResend a webhook verification codewritefreshbooks.callbacks.verifyVerify a webhook callbackwrite
Tasks5
freshbooks.tasks.createCreate a taskwritefreshbooks.tasks.deleteDelete a taskdestructivefreshbooks.tasks.getGet one taskreadfreshbooks.tasks.listList tasksreadfreshbooks.tasks.updateUpdate a taskwrite
Settings4
freshbooks.abilities.listList account abilitiesreadfreshbooks.businesses.createCreate a businesswritefreshbooks.businesses.deleteDelete a businessdestructivefreshbooks.systems.getGet a systemread
Developer3
freshbooks.applications.createCreate a developer applicationwritefreshbooks.applications.listList developer applicationsreadfreshbooks.applications.updateUpdate a developer applicationwrite
Questions
The FreshBooks MCP server, answered.
Is there a FreshBooks MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 184 FreshBooks actions across reporting, invoicing, payments and payables, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by FreshBooks.
What do I need to connect FreshBooks?
Your own FreshBooks OAuth app, registered with FreshBooks (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no FreshBooks app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. actionlake finds account id, business id, business uuid and identity id for you when you connect. The free call account { op: "connections.requirements", service: "freshbooks" } lists exactly what to paste.
Can an AI agent delete or change things in FreshBooks?
Only if its key allows it, and only with an explicit confirmation. 24 FreshBooks actions are destructive, including delete an invoice, delete a payment and delete an estimate. 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 FreshBooks API limit?
actionlake paces every call to the limits in the FreshBooks service file: 100 calls a minute per connection. Repeated reads are answered from cache (94 FreshBooks actions can be), which never reaches FreshBooks.
What does a FreshBooks action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (184 FreshBooks actions page). Cache hits, searches, dry runs and calls FreshBooks 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 FreshBooks API does it cover?
The FreshBooks API alpha at api.freshbooks.com. It is built from FreshBooks's documentation as read on 19 September 2026. 184 actions in 19 areas, each one in the signed service file (version 1.0.0).
Can I combine FreshBooks with my other systems?
Yes. ask joins FreshBooks to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. FreshBooks maps crm.company, which 227 other connectors also map.
Does actionlake keep my FreshBooks 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 FreshBooks 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 FreshBooks today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.