freshbooks_create_ billCreate a bill (money owed to a vendor).
Draft and email invoices, log expenses and time against projects, record payments, and pull an aging or profit-and-loss report straight from the ledger.
PopMCPFreshBooks
Search every read, write and webhook trigger: clients, invoices, bills, projects, time entries, taxes and the financial reports.
freshbooks_create_ billCreate a bill (money owed to a vendor).
freshbooks_create_ bill_ vendorCreate a bill vendor (supplier; beta).
freshbooks_list_ bill_ vendorsList bill vendors (the suppliers bills are owed to; beta resource).
freshbooks_list_ billsList bills (accounts-payable records owed to vendors) for an account.
freshbooks_create_ projectCreate a project under a business.
freshbooks_list_ projectsList all projects for a business.
freshbooks_report_ accounts_ agingClassic accounting report (Accounts/AR Aging).
freshbooks_report_ balance_ sheetLedger-based business report.
freshbooks_report_ profit_ and_ lossLedger-based business report.
freshbooks_create_ paymentRecord a new manual payment against an invoice (Accounting API; DOUBLED payments/payments segment).
freshbooks_list_ paymentsList manual payments recorded against invoices for an account (Accounting API).
freshbooks_create_ invoiceCreate a new invoice.
freshbooks_email_ invoiceEmail an invoice to its recipients.
freshbooks_get_ invoiceRetrieve a single invoice by id.
freshbooks_list_ invoicesList invoices for an account.
freshbooks_mark_ invoice_ sentMark an invoice as sent (transition from draft to sent status).
freshbooks_update_ invoiceUpdate an existing invoice.
freshbooks_create_ estimateCreate a new estimate.
freshbooks_create_ expenseCreate an expense.
freshbooks_list_ estimatesList estimates for an account.
freshbooks_list_ expense_ categoriesList expense categories (the sibling resource that supplies categoryid for expenses).
freshbooks_list_ expensesList expenses for an account.
freshbooks_create_ clientCreate a new client (customer).
freshbooks_get_ clientRetrieve a single client by id.
freshbooks_list_ clientsList all clients (customers) for the account.
freshbooks_update_ clientUpdate an existing client.
freshbooks_create_ itemCreate a new billable/catalog item.
freshbooks_create_ time_ entryCreate a time entry under a business in the TimeTracking API.
freshbooks_list_ invoice_ profilesList recurring-invoice profiles (autobills) for an account.
freshbooks_list_ itemsList billable/catalog items for an account (items stored from invoice lines to speed up future invoicing).
freshbooks_list_ taxesList all tax rates defined on a FreshBooks account.
freshbooks_list_ time_ entriesList time entries for a business in the TimeTracking API.
freshbooks_get_ current_ user_ meGet the authenticated user's identity/profile — the canonical bootstrap call to DISCOVER which accounts/businesses the token can access (resolve {accountId} for accounting calls and {businessId} for projects/timetracking/ledger calls).
freshbooks_get_ systemGet the system (account-level business/system settings) record for a FreshBooks account.
freshbooks_archive_ billArchive a bill by PUT-ing the {"bill": {"vis_state": 2}} envelope to the single-bill path.
freshbooks_create_ bill_ paymentCreate a bill payment recording money paid against a bill (beta).
freshbooks_delete_ billSoft-delete a bill.
freshbooks_delete_ bill_ paymentSoft-delete a bill payment (beta).
freshbooks_delete_ bill_ vendorSoft-delete a bill vendor (beta).
freshbooks_get_ billRetrieve a single bill by id.
freshbooks_get_ bill_ paymentRetrieve a single bill payment by id (beta).
freshbooks_get_ bill_ vendorRetrieve a single bill vendor by id (beta).
freshbooks_list_ bill_ paymentsList bill payments (payments applied to bills; beta resource).
freshbooks_update_ billUpdate an existing bill.
freshbooks_update_ bill_ paymentUpdate an existing bill payment (beta).
freshbooks_update_ bill_ vendorUpdate an existing bill vendor (beta).
freshbooks_create_ serviceCreate a service for a business.
freshbooks_create_ service_ rateSet/add the hourly rate for a service.
freshbooks_delete_ projectDelete a project permanently.
freshbooks_get_ projectGet a single project by id.
freshbooks_get_ serviceGet a single service by id.
freshbooks_get_ service_ rateGet the hourly rate for a service.
freshbooks_list_ servicesList services for a business.
freshbooks_report_ cash_ flowCash Flow report for the connected business.
freshbooks_report_ expense_ detailsLedger-based business report (Expense Details / Expense Report).
freshbooks_report_ general_ ledgerLedger-based business report.
freshbooks_report_ invoice_ detailsClassic accounting report.
freshbooks_report_ manual_ journal_ entryLedger-based business report.
freshbooks_report_ payments_ collectedClassic accounting report.
freshbooks_report_ tax_ summaryClassic accounting report.
freshbooks_report_ trial_ balanceLedger-based business report.
freshbooks_update_ projectUpdate an existing project.
freshbooks_update_ service_ rateUpdate the hourly rate for a service.
freshbooks_add_ invoice_ payment_ optionEnable an online payment option (gateway) on a specific invoice so the client can pay online.
freshbooks_create_ journal_ entryCLASSIC accounting API: create an adjustment journal entry.
freshbooks_create_ ledger_ accountMODERN businesses API: create a new account in the chart of accounts (a ledger account).
freshbooks_create_ manual_ journal_ entryMODERN 2023-09-25 businesses API (send header x-api-version: 2023-09-25): create an adjustment/manual journal entry.
freshbooks_delete_ gatewayDisconnect/remove a payment gateway from an account (Accounting API).
freshbooks_delete_ paymentSoft-delete a manual payment.
freshbooks_get_ account_ entry_ details_ reportMODERN 2023-09-25 businesses API: general-ledger detail for a single account.
freshbooks_get_ chart_ of_ accounts_ reportCLASSIC accounting API: Chart of Accounts report.
freshbooks_get_ default_ payment_ optionsGet the account's DEFAULT online payment options for new invoices.
freshbooks_get_ invoice_ payment_ optionsRetrieve the online payment options currently configured on a specific invoice.
freshbooks_get_ ledger_ accountMODERN businesses API: get a single chart-of-accounts / ledger account by UUID.
freshbooks_get_ paymentRetrieve a single manual payment by id (Accounting API; note the DOUBLED payments/payments segment).
freshbooks_list_ gatewaysList the payment gateways connected to an account (Accounting API).
freshbooks_list_ journal_ entry_ accountsCLASSIC accounting API: get the chart of accounts as the list of journal entry accounts (ledger accounts).
freshbooks_list_ journal_ entry_ detailsCLASSIC accounting API: list the individual ledger line items (journal entry details) for the account.
freshbooks_list_ manual_ journal_ entriesMODERN 2023-09-25 businesses API (header x-api-version: 2023-09-25): list manual/adjustment journal entries.
freshbooks_report_ chart_ of_ accountsMODERN 2023-09-25 businesses API: Chart of Accounts report (business-uuid variant).
freshbooks_update_ paymentUpdate an existing manual payment (Accounting API; DOUBLED payments/payments segment).
freshbooks_delete_ invoiceHard-delete an invoice via HTTP DELETE on the invoice path.
freshbooks_soft_ delete_ invoiceSoft-delete (archive) an invoice by setting vis_state=1 via the standard invoice PUT update.
freshbooks_delete_ estimateSoft-delete an estimate.
freshbooks_delete_ expenseSoft-delete an expense.
freshbooks_get_ estimateRetrieve a single estimate by id.
freshbooks_get_ expenseRetrieve a single expense by id.
freshbooks_get_ expense_ categoryRetrieve a single expense category by id.
freshbooks_mark_ estimate_ as_ sentMark an estimate as sent without emailing it (e.g.
freshbooks_send_ estimate_ by_ emailEmail an estimate to the client.
freshbooks_update_ estimateUpdate an existing estimate (also the mechanism for sending and soft-deleting).
freshbooks_update_ expenseUpdate an existing expense.
freshbooks_create_ webhook_ callbackRegister a new webhook callback.
freshbooks_delete_ clientSoft-delete (archive) a client.
freshbooks_delete_ webhook_ callbackPermanently delete (unregister) a webhook callback by id so FreshBooks stops POSTing its events.
freshbooks_get_ webhook_ callbackRetrieve a single webhook callback by its id.
freshbooks_list_ webhook_ callbacksList all webhook (event) callbacks registered on a FreshBooks account.
freshbooks_resend_ webhook_ callback_ verificationRe-trigger delivery of a fresh verification code for a still-unverified webhook callback.
freshbooks_update_ client_ contactsManage a client's secondary contacts.
freshbooks_verify_ webhook_ callbackConfirm a webhook callback by echoing back the verifier token FreshBooks delivered to the callback uri when it was created (or re-sent).
freshbooks_create_ credit_ noteCreate a new credit note (credit) for a client.
freshbooks_create_ invoice_ profileCreate a recurring-invoice profile (autobill).
freshbooks_create_ other_ incomeCreate a new Other Income entry.
freshbooks_create_ taskCreate a billable task.
freshbooks_create_ taxCreate a new tax rate.
freshbooks_delete_ credit_ noteSoft-delete a credit note (credit).
freshbooks_delete_ invoice_ profileSoft-delete (archive) a recurring-invoice profile.
freshbooks_delete_ itemSoft-delete a billable/catalog item.
freshbooks_delete_ other_ incomeDelete an Other Income entry by income id.
freshbooks_delete_ taskSoft-delete a billable task.
freshbooks_delete_ taxPermanently delete a tax rate by its numeric id from the doubled taxes/taxes path.
freshbooks_delete_ time_ entryDelete a time entry in the TimeTracking API.
freshbooks_get_ credit_ noteRetrieve a single credit note (credit) by its credit id.
freshbooks_get_ invoice_ profileRetrieve a single recurring-invoice profile by id.
freshbooks_get_ itemFetch a single billable/catalog item by id.
freshbooks_get_ other_ incomeRetrieve a single Other Income entry by its income id.
freshbooks_get_ taskRetrieve a single billable task by id.
freshbooks_get_ taxRetrieve a single tax rate by its numeric id from the taxes/taxes resource (note the doubled segment).
freshbooks_get_ time_ entryRetrieve a single time entry by id from the TimeTracking API.
freshbooks_list_ credit_ notesList all credit notes (credits) for an account.
freshbooks_list_ other_ incomesList all Other Income entries for an account.
freshbooks_list_ tasksList billable tasks (reusable billable line items applied to invoices, distinct from project Services) for an account.
freshbooks_update_ credit_ noteUpdate an existing credit note (credit) by credit id.
freshbooks_update_ invoice_ profileUpdate an existing recurring-invoice profile.
freshbooks_update_ itemUpdate an existing billable/catalog item by id.
freshbooks_update_ other_ incomeUpdate an existing Other Income entry by income id.
freshbooks_update_ taskUpdate an existing billable task.
freshbooks_update_ taxUpdate an existing tax rate by its numeric id (doubled taxes/taxes path).
freshbooks_update_ time_ entryUpdate an existing time entry in the TimeTracking API.
freshbooks_get_ staffGet a single staff (team member) by id.
freshbooks_get_ team_ memberRetrieve a single team member of the connected business by UUID.
freshbooks_list_ staffList staff (team members) for a FreshBooks account.
freshbooks_list_ team_ membersList the team members of the connected business.
Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the FreshBooks side.
Paste the Client ID and Client secret from your own FreshBooks OAuth app, then authorize in your browser. No password is shared, and the connection is locked to the single business you approve.
your-freshbooks-valueyour app's Client ID••••••••••••3f7aRead-only keeps the agent on reports and lookups. On full access, require approval for writes so emailing an invoice, recording a payment or deleting a bill waits for you. Turn on the full catalog for the rest.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your FreshBooks credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Show me every client over 60 days overdue and what they owe
freshbooks_report_accounts_agingok
Then just ask for the work
“Show me every client over 60 days overdue and what they owe”
“Mark every draft invoice from last week as sent and email it to the client”
“Add Northwind as a client and draft their first invoice for the March retainer”
“Compare unbilled time on the Q3 rebuild project with what we've invoiced”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting FreshBooks behind an AI client.
Yes. The connect form asks for the Client ID and Client secret of a FreshBooks OAuth app you own, alongside an optional Auth type field. You then authorize once in your browser, so no FreshBooks password is ever shared with PopMCP, and the resulting connection is tied to one business.
Reads and writes run across the full API: clients, invoices, recurring profiles, estimates, expenses, items, other income, payments, credit notes, taxes, bills and vendors, journal entries, the chart of accounts, staff and the financial reports, plus Projects, services and time tracking. Webhook callbacks are covered too, so invoice, payment, estimate, expense and client events can start a workflow. Anything your OAuth authorization does not cover stays out of reach.
FreshBooks uses two different identifiers, and mixing them up is the usual reason a call fails. get_current_user_me is the bootstrap call that discovers which accounts and businesses the token can access, resolving the account id for accounting calls such as invoices and payments, and the business id for Projects, time tracking and ledger calls. Expect the agent to make that call first in a fresh session.
Bills is the largest module here, with 16 operations covering list, retrieve, create, archive and soft-delete. Several of the surrounding resources are marked beta, including create_bill_vendor, list_bill_vendors, delete_bill_vendor, create_bill_payment and delete_bill_payment. They work, but treat them as beta behavior rather than settled API surface.
The bill deletes are soft-deletes, both delete_bill and delete_bill_payment, and archive_bill only flips a bill's visibility state. The riskier moves are usually the ones that reach a client or a ledger, such as email_invoice, mark_invoice_sent or create_payment. Set the connection to read-only, or keep approval-required-for-writes on, so those pause for a human.
The integration covers 133 operations across 20 API modules, split roughly evenly at 66 read and 67 write. Only 34 load by default to keep your client's tool list manageable; the rest stay searchable and can be pulled in with the full-catalog toggle. There are also 25 triggers PopMCP can watch.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 133 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 34-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 133 here. A trigger is something PopMCP watches for you: 25 FreshBooks events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into FreshBooks.
Launch a hosted MCP endpoint for FreshBooks, keep tool access under control, and start testing real workflow prompts right away.