# FreshBooks MCP connector

The FreshBooks connector lets Claude, ChatGPT, Cursor, and the Elaichi Agent look up clients, draft and send invoices, record expenses and payments, and post journal entries in FreshBooks, with every action tied to the person who signed in.

Source: https://elaichi.ai/connectors/freshbooks/

## Facts

| | |
| --- | --- |
| Application | FreshBooks |
| Category | Accounting |
| AI tools | 97 |
| Authentication | Connects over OAuth |
| Needs your own OAuth app | Yes |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 97 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once FreshBooks is connected

- Show unbilled expenses for our top ten FreshBooks clients.
- Draft a credit note for client Northwind's duplicate invoice.
- Summarize journal entries logged in FreshBooks last month.

## Connect FreshBooks in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick FreshBooks.
2. Optionally set Share with, then press Connect.
3. Supply your own FreshBooks app, then approve. FreshBooks needs an OAuth app you register yourself, so bring its client ID and secret. One person does this once for the organization.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which FreshBooks tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect FreshBooks to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect FreshBooks to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect FreshBooks to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect FreshBooks to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a FreshBooks tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with FreshBooks through Elaichi

### Send the month's invoices without retyping them

Finance. Ask for a new invoice for a client, check the line items, then have it sent from FreshBooks in one go. The invoice lands in the client's inbox the same way it would if you had clicked send yourself.

### Log expenses the moment receipts arrive

Bookkeeping. Read out a receipt and have the expense created in FreshBooks with the right client, category and amount. Fix a wrong amount later by asking for the update rather than hunting through the list.

### Record payments and close out open invoices

Finance. When a transfer shows up, ask which FreshBooks invoices are still outstanding for that client and record the payment against the right one. Overdue lists shrink without a spreadsheet in between.

### Check what a client owes before the call

Sales. Pull up a client's FreshBooks record along with their open invoices and recent payments so the conversation starts with the facts. Add the new client to FreshBooks straight after the deal is agreed.

### Post month-end journal entries from plain notes

Accounting. Describe the accrual or reclassification and have the journal entry created in FreshBooks, then list the entries for the period to confirm nothing is missing.

### Issue a credit note when a refund is agreed

Customer success. When a client is owed money back, ask for a credit note in FreshBooks against the original invoice and confirm the amount. If it was raised in error, it can be removed just as quickly.

## Frequently asked questions

### How do I connect FreshBooks to Claude?

First connect FreshBooks in Elaichi: FreshBooks asks you to register an app inside your FreshBooks account, so one person brings that client ID and secret once, and after that everyone signs in to FreshBooks through the normal FreshBooks login screen and approves access. Then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude will ask you to sign in to Elaichi, and from there FreshBooks is available in your conversations.

### Does FreshBooks work with ChatGPT and Cursor as well as Claude?

Yes. Once FreshBooks is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect FreshBooks once and every client you use picks it up.

### What can an AI agent actually do with my FreshBooks data?

With FreshBooks connected, an agent can look up or add clients, create and send invoices, record expenses and payments, raise credit notes, post journal entries and check a tax rate, all from a plain request such as "send the March invoice for Harbor Design". FreshBooks is a large connector, so short, concrete asks that name the client or invoice work better than long paragraphs. It can also list what is outstanding and remove a payment, invoice or credit note that was entered by mistake.

### Does connecting FreshBooks give the AI my whole set of books?

No. Every request runs inside the FreshBooks access of the person who signed in, so someone who cannot see payments or journal entries in FreshBooks cannot see them through an agent either. Elaichi can narrow that access further by team or by action, and it never widens what FreshBooks itself allows.

### Can my team share one FreshBooks connection?

Yes. One person connects FreshBooks in Elaichi and shares the connection with a team, and nobody else ever handles the FreshBooks app credentials. Each person still signs in to Elaichi as themselves, so the audit log names who sent an invoice or recorded a payment in FreshBooks, not just which connection was used.

### Can I stop an agent from deleting or changing things in FreshBooks?

Yes. In Elaichi you can allow reading FreshBooks clients and invoices while blocking the actions that delete invoices, payments or credit notes, or blocking anything that creates or edits records at all. A blocked action is never shown to Claude, ChatGPT or any other client, so no prompt, however worded, can reach it.

### What happens to a FreshBooks connection when someone leaves?

When you offboard a person in Elaichi, their access to FreshBooks through every AI client ends at once. If they were sharing a FreshBooks connection with a team, that connection keeps working for everyone else. If you want FreshBooks gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client at the same time.

## All 97 FreshBooks tools

Every tool below is callable through https://api.elaichi.ai/mcp once FreshBooks is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Get single FreshBooks client by ID** (Get). Get a single FreshBooks client by id. Returns the full client object including id, email, organization, fname, lname, currency_code, language, vis_state, uuid, and billing/shipping address fields. Required: account_id, id.
- **List all FreshBooks clients** (List). List FreshBooks clients with optional search filters and includes. Returns: accounting_systemid, allow_email_include_pdf, allow_late_fees, allow_late_notifications, bus_phone, company_industry, company_size, currency_code, direct_link_token, email, exceeds_client_limit, fax, fname, has_retainer, home_phone, id, language, last_activity, last_login, level, lname, mob_phone, note, notified,…
- **Create a FreshBooks client** (Create). Create a new FreshBooks client with contact details, billing/shipping address, currency, language, and optional secondary contacts. Returns the created client object including id, email, organization, fname, lname, currency_code, uuid, and vis_state. Required: account_id.
- **Update a FreshBooks client by ID** (Update). Update a FreshBooks client by id with a partial client object. Returns the updated client including id, email, fname, lname, organization, currency_code, vis_state, uuid, and address fields. Required: account_id, id.
- **List all FreshBooks credit notes** (List). List all FreshBooks credit notes for an account, including goodwill credits and prepayments. Returns each credit note with id, credit_number, credit_type, amount, clientid, status, create_date, payment_status, and billing address fields.
- **Get single FreshBooks credit note by ID** (Get). Get a single FreshBooks credit note by id. Returns: accounting_systemid, amount, city, clientid, code, country, create_date, credit_number, credit_type, creditid, current_organization, description, display_status, dispute_status, ext_archive, fname, id, language, last_order_status, lines, lname, notes, organization, paid, payment_status, province, sentid, status, street, street2, template, terms,…
- **Create a FreshBooks credit note** (Create). Create a FreshBooks credit note or prepayment for a client. Returns the created credit note including id, credit_number, credit_type, amount, clientid, status, create_date, and vis_state. Required: account_id, clientid.
- **Delete a FreshBooks credit note by ID** (Delete). Delete (archive) a FreshBooks credit note by setting its vis_state to 1. Returns the archived credit note object including id, credit_number, clientid, amount, status, and vis_state. Required: account_id, id.
- **List all FreshBooks journal entries** (List). List journal entry details for a FreshBooks account. Returns each entry's entryid, date, description, entry_type, name, total_credit, total_debit, and transactions with sub-account and credit/debit breakdowns. Required: account_id.
- **Create a FreshBooks journal entry** (Create). Create a journal entry in FreshBooks with debit and credit transaction lines. Returns: id, name. Required: account_id.
- **Get single FreshBooks expense by ID** (Get). Get a single FreshBooks expense by id. Returns the full expense object including expenseid, vendor, amount, date, categoryid, staffid, status, notes, and tax details. Required: account_id, id.
- **Create a FreshBooks expense** (Create). Create a new FreshBooks expense. Returns the created expense object including expenseid, vendor, amount, date, categoryid, staffid, status, notes, and tax details. Required: account_id, expense.
- **Update a FreshBooks expense by ID** (Update). Update a FreshBooks expense by id. Returns the full expense object including expenseid, vendor, amount, date, categoryid, status, staffid, and notes. Required: account_id, id. Expense status is not directly modifiable.
- **List all FreshBooks expenses** (List). List FreshBooks expenses for an account, with filters by expense id, client, staff, category, project, date range, amount range, vendor, and more. Returns: account_name, accountid, accounting_systemid, amount, background_jobid, bank_name, bill_matches, billable, categoryid, clientid, compounded_tax, converse_projectid, date, expenseid, ext_accountid, ext_invoiceid, ext_systemid, from_bulk_import,…
- **List all FreshBooks payments** (List). List FreshBooks payments for an account. Returns: accounting_systemid, amount, bulk_paymentid, clientid, creditid, date, from_credit, gateway, id, invoiceid, logid, note, orderid, overpaymentid, send_client_notification, transactionid, type, updated, vis_state. Required: account_id. Supports filtering by date range, amount range, type, clientid, invoiceid, currency, from_credit, and more;…
- **Get single FreshBooks payment by ID** (Get). Get a single FreshBooks payment by id. Returns: accounting_systemid, amount, clientid, creditid, date, from_credit, gateway, id, invoiceid, logid, note, orderid, overpaymentid, transactionid, type, updated, vis_state. Required: account_id, id. Optional include params embed related client, invoice, credit_note, order, or gateway data.
- **Create a FreshBooks payment** (Create). Create a FreshBooks payment on an invoice. The payment body requires invoiceid, amount, date, and type. Returns the created payment including id, invoiceid, amount, date, type, clientid, vis_state, updated, from_credit, and accounting_systemid. Required: account_id.
- **Delete a FreshBooks payment by ID** (Delete). Delete a FreshBooks payment by id (soft-deletes by setting vis_state to 1). Returns the deleted payment including id, invoiceid, amount, date, type, clientid, vis_state, updated, from_credit, and accounting_systemid. Required: account_id, id.
- **List all FreshBooks invoices** (List). List FreshBooks invoices for an account. Returns each invoice's id, invoice_number, amount, status, v3_status, customerid, due_date, outstanding, paid, created_at, organization, currency_code, notes, terms, updated, uuid, and more. Required: account_id.
- **Get single FreshBooks invoice by ID** (Get). Get a single FreshBooks invoice by id. Returns: accountid, accounting_systemid, address, amount, auto_bill, autobill_status, basecampid, city, code, country, create_date, created_at, currency_code, current_organization, customerid, date_paid, deposit_amount, deposit_percentage, deposit_status, description, discount_description, discount_total, discount_value, display_status, dispute_status,…
- **Create a FreshBooks invoice** (Create). Create a single invoice in FreshBooks. Returns the created invoice including id, invoiceid, invoice_number, amount, customerid, status, due_date, and created_at. Required: account_id, customerid.
- **Delete a FreshBooks invoice by ID** (Delete). Delete a FreshBooks invoice by id (soft-delete via vis_state set to 1). Returns the deleted invoice object including id, invoice_number, amount, payment_status, status, v3_status, and vis_state. Required: account_id, id.
- **FreshBooks invoices send** (Send). Email an existing FreshBooks invoice to the customer. FreshBooks sends invoices by updating the invoice with action_email set to true, optionally with email_recipients and a customized subject/body (template tags like ::invoice number:: are supported). Required: invoice_id, and invoice.action_email = true.
- **Get single FreshBooks tax by ID** (Get). Get a single FreshBooks tax by id. Returns: accounting_systemid, updated, name, number, taxid, amount, compound, id. Required: account_id, id.
- **Create a FreshBooks tax** (Create). Create a new FreshBooks tax. Returns the created tax object including id, name, amount, compound, taxid, accounting_systemid, updated, and number. Required: account_id, name.
- **Update a FreshBooks tax by ID** (Update). Update an existing FreshBooks tax by id. Returns the updated tax object including id, name, amount, compound, taxid, accounting_systemid, updated, and number. Required: account_id, id.
- **Delete a FreshBooks tax by ID** (Delete). Delete a FreshBooks tax by id. Returns an empty 204 response on success. Required: account_id, id.
- **List all FreshBooks taxes** (List). List FreshBooks taxes with optional filters by taxid, name, number, compound status, and updated date range. Returns: accounting_systemid, updated, name, number, taxid, amount, compound, id. Required: account_id.
- **Get single FreshBooks user by ID** (Get). Get a FreshBooks identity (user) by ID via the auth service. NOTE: reading identities other than your own requires FreshBooks internal admin-tier access not available to standard OAuth applications — calls typically return 403 forbidden. Use the me endpoint (via custom API path auth/api/v1/users/me) for the authenticated user's own identity instead.
- **Get single FreshBooks staff by ID** (Get). Get a single FreshBooks staff member by id. Returns: fax, rate, num_logins, api_token, id, note, display_name, lname, mob_phone, last_login, home_phone, email, username, updated, p_province, p_city, p_code, p_country, accounting_systemid, bus_phone, signup_date, language, level, userid, p_street2, vis_state, fname, organization, p_street, currency_code. Required: account_id, id. This resource is…
- **Update a FreshBooks staff by ID** (Update). Update a staff member's details in FreshBooks by staff ID. NOTE: this endpoint requires FreshBooks' internal admin:all OAuth scope, which is NOT grantable to standard OAuth applications — calls will return 403 insufficient_scope on normal connections. Only usable if FreshBooks has granted your app admin-tier access.
- **List all FreshBooks staff** (List). List FreshBooks staff members for an account, with optional filters by userid, email, phone, or name. Returns: fax, rate, num_logins, api_token, id, note, display_name, lname, mob_phone, last_login, home_phone, email, username, updated, p_province, p_city, p_code, p_country, accounting_systemid, bus_phone, signup_date, language, level, userid, p_street2, vis_state, fname, organization, p_street,…
- **Get single FreshBooks bill vendor by ID** (Get). Get a single FreshBooks bill vendor by id. Returns: id, accounting_systemid, accountid, vis_state, updated. Required: account_id, id.
- **List all FreshBooks bill vendors** (List). List bill vendors for a FreshBooks accounting account. Returns: id, accounting_systemid, accountid, vis_state, updated. Required: account_id.
- **Create a FreshBooks bill vendor** (Create). Create a new bill vendor in FreshBooks. Returns the created bill vendor including id, accounting_systemid, accountid, vis_state, and updated. Required: account_id, bill_vendor.
- **Delete a FreshBooks bill vendor by ID** (Delete). Delete a FreshBooks bill vendor by id. Soft-deletes the vendor by setting vis_state to 1. Returns the bill vendor object including id, vis_state, accounting_systemid, and updated. Required: account_id, id.
- **List all FreshBooks bills** (List). List bills in a FreshBooks account. Returns: id, vis_state. Required: account_id.
- **Get single FreshBooks bill by ID** (Get). Get a single FreshBooks bill by id. Returns: id, vis_state. Required: account_id, id.
- **Create a FreshBooks bill** (Create). Create a new bill in FreshBooks. Returns: id, vis_state. Required: account_id.
- **Delete a FreshBooks bill by ID** (Delete). Delete a FreshBooks bill by setting its vis_state to deleted. Returns: id, vis_state. Required: account_id, id.
- **List all FreshBooks bill payments** (List). List FreshBooks bill payments for an account. Returns: id, accounting_systemid, amount, billid, bill_vendorid, bulk_paymentid, creditid, date, from_credit, gateway, logid, note, orderid, overpaymentid, send_client_notification, transactionid, type, updated, vis_state. Required: account_id.
- **Get single FreshBooks bill payment by ID** (Get). Get a single FreshBooks bill payment by id. Returns: id, accounting_systemid, amount, billid, bill_vendorid, bulk_paymentid, creditid, date, from_credit, gateway, logid, note, orderid, overpaymentid, send_client_notification, transactionid, type, updated, vis_state. Required: account_id, id.
- **Create a FreshBooks bill payment** (Create). Create a FreshBooks bill payment for an invoice. Returns the created payment object including id, invoiceid, amount, clientid, date, type, vis_state, and updated. Required: account_id.
- **Delete a FreshBooks bill payment by ID** (Delete). Delete a FreshBooks bill payment by id (soft-delete by setting vis_state to 1). Returns the bill payment object including id, invoiceid, amount, clientid, date, type, vis_state, and updated. Required: account_id, id.
- **List all FreshBooks estimates** (List). List FreshBooks estimates for an account, with optional includes and filters by status, client, date range, amount, and more. Returns: id, estimateid, accounting_systemid, accountid, status, ui_status, display_status, amount, discount_total, discount_value, code, description, current_organization, invoiced, ownerid, sentid, created_at, updated, reply_status, estimate_number, customerid,…
- **Get single FreshBooks estimate by ID** (Get). Get a single FreshBooks estimate by id. Returns: id, estimateid, status, ui_status, display_status, estimate_number, customerid, amount, discount_total, discount_value, create_date, created_at, updated, currency_code, language, template, ownerid, sentid, invoiced, reply_status, terms, notes, description, po_number, code, organization, current_organization, fname, lname, vat_name, vat_number,…
- **Create a FreshBooks estimate** (Create). Create a new FreshBooks estimate for a client. Returns: status, create_date, code, ownerid, vat_number, id, vat_name, ui_status, invoiced, reply_status, country, lname, estimateid, ext_archive, template, vis_state, current_organization, province, updated, terms, description, street2, discount_total, address, estimate_number, customerid, discount_value, accounting_systemid, organization, language,…
- **Update a FreshBooks estimate by ID** (Update). Update an existing FreshBooks estimate by id. Returns: status, create_date, code, ownerid, vat_number, id, vat_name, ui_status, invoiced, reply_status, country, lname, estimateid, ext_archive, template, vis_state, current_organization, province, updated, terms, description, street2, discount_total, address, estimate_number, customerid, discount_value, accounting_systemid, organization, language,…
- **FreshBooks estimates send** (Send). Email an existing FreshBooks estimate (quote) to the client. FreshBooks sends estimates by updating the estimate with action_email set to true — there is no dedicated /send endpoint. Optionally pass email_recipients and a customized subject/body (template tags like ::estimate number:: are supported). Required: estimate_id, and estimate.action_email = true. Note: the estimate's client must have a valid email address or FreshBooks accepts the request without sending.
- **List all FreshBooks items** (List). List FreshBooks billable items stored from invoice lines. Returns: id, itemid, accounting_systemid, description, inventory, name, qty, sku, tax1, tax2, unit_cost, updated, vis_state. Required: account_id. Supports filtering by itemid, sku, description, unit_cost, inventory, updated date, and qty.
- **Get single FreshBooks item by ID** (Get). Get a single FreshBooks billable item by id. Returns: id, itemid, accounting_systemid, description, inventory, name, qty, sku, tax1, tax2, unit_cost, updated, vis_state. Required: account_id, id.
- **Create a FreshBooks item** (Create). Create a new FreshBooks billable item. Returns: id, itemid, accounting_systemid, description, inventory, name, qty, sku, tax1, tax2, unit_cost, updated, vis_state. Required: account_id, name.
- **Update a FreshBooks item by ID** (Update). Update a FreshBooks billable item by id. Returns: id, itemid, accounting_systemid, description, inventory, name, qty, sku, tax1, tax2, unit_cost, updated, vis_state. Required: account_id, id.
- **List all FreshBooks tasks** (List). List FreshBooks project tasks for an account, filterable by billable status, rate range, and update date. Returns each task's id, name, rate, billable, updated, and vis_state. Required: account_id.
- **Get single FreshBooks task by ID** (Get). Get a single FreshBooks task by id. Returns: id, taskid, name, description, rate, billable, tax1, tax2, updated, vis_state, tdesc, tname. Required: account_id, id.
- **Create a FreshBooks task** (Create). Create a new FreshBooks task for an account. Returns the created task including id, name, rate, billable, tax1, tax2, updated, and vis_state. Required: account_id, name.
- **Update a FreshBooks task by ID** (Update). Update an existing FreshBooks task by id, including name, rate, billable, and vis_state. Returns the updated task with id, name, rate, billable, updated, and vis_state. Required: account_id, id.
- **List all FreshBooks projects** (List). List FreshBooks projects for a business, optionally filtered by active status, completion, or update date. Returns: id, title, due_date, fixed_price, group, links, description, complete, project_type, budget, updated_at, sample, services, rate, internal, client_id, active, created_at, logged_duration, billing_method. Required: business_id.
- **Get single FreshBooks project by ID** (Get). Get a single FreshBooks project by id. Returns: id, title, due_date, fixed_price, group, links, description, complete, project_type, budget, updated_at, sample, services, rate, internal, client_id, active, created_at, logged_duration, billing_method. Required: business_id, id.
- **Create a FreshBooks project** (Create). Create a new FreshBooks project for a business. Returns the created project including id, title, project_type, client_id, fixed_price, active, created_at, updated_at, group, services, budget, and billing_method. Required: business_id, title, client_id, project_type.
- **Update a FreshBooks project by ID** (Update). Update an existing FreshBooks project by id. Returns the updated project including id, title, project_type, client_id, fixed_price, active, created_at, updated_at, group, services, budget, and billing_method. Required: business_id, id.
- **Delete a FreshBooks project by ID** (Delete). Delete a FreshBooks project by id. Returns an empty 204 response on success. Required: business_id, id.
- **List all FreshBooks time entries** (List). List FreshBooks time entries for a business, optionally filtered by billable status, client, date range, or teammate. Returns: id, note, duration, project_id, client_id, is_logged, started_at, active, timer, billable, billed, internal, service_id, identity_id. Required: business_id.
- **Get single FreshBooks time entry by ID** (Get). Get a single FreshBooks time entry by id. Returns: id, note, duration, project_id, client_id, is_logged, started_at, active, timer, billable, billed, internal, service_id, identity_id. Required: business_id, id.
- **Create a FreshBooks time entry** (Create). Create a new FreshBooks time entry for a business. Returns: id, note, duration, project_id, client_id, is_logged, started_at, active, timer. Required: business_id.
- **Update a FreshBooks time entry by ID** (Update). Update an existing FreshBooks time entry by id. Returns: id, note, duration, project_id, client_id, is_logged, started_at, active, timer. Required: business_id, id.
- **Delete a FreshBooks time entry by ID** (Delete). Delete a FreshBooks time entry by id. Returns an empty 204 response on success. Required: business_id, id.
- **List all FreshBooks other income** (List). List FreshBooks other income entries for an account. Returns: incomeid, amount, category_name, created_at, date, note, payment_type, source, sourceid, taxes, updated_at, userid, vis_state. Required: account_id. Supports filtering by incomeid, category_name, and vis_state.
- **Get single FreshBooks other income by ID** (Get). Get a single FreshBooks other income entry by id. Returns: incomeid, amount, category_name, created_at, date, note, payment_type, source, sourceid, taxes, updated_at, userid, vis_state. Required: account_id, id.
- **Create a FreshBooks other income** (Create). Create a new FreshBooks other income entry for recording non-invoice income from sources like online stores or rentals. Returns: amount, created_at, note, updated_at, userid, vis_state. Required: account_id.
- **Update a FreshBooks other income by ID** (Update). Update an existing FreshBooks other income entry by id. Returns: amount, created_at, updated_at, vis_state. Required: account_id, id.
- **Delete a FreshBooks other income by ID** (Delete). Delete a FreshBooks other income entry by id. Returns an empty 204 response on success. Required: account_id, id.
- **List all FreshBooks invoice profiles** (List). List FreshBooks invoice profiles for an account, used to generate recurring invoices. Returns each profile with id, customerid, frequency, amount, organization, currency_code, and create_date. Required: account_id. Supports search filters by profileid, currency_code, clientid, and include_unbilled_time, plus optional includes for related data such as lines, contacts, and next_issue_date.
- **Get single FreshBooks invoice profile by ID** (Get). Get a single FreshBooks invoice profile by id. Returns the full profile including id, profileid, customerid, frequency, amount, organization, currency_code, create_date, send_email, and billing address fields. Required: account_id, id.
- **Create a FreshBooks invoice profile** (Create). Create a new FreshBooks invoice profile for recurring invoice generation. Returns the created profile including id, profileid, customerid, frequency, amount, organization, and currency_code. Required: account_id. Frequency uses the format xy where x is an integer and y is d, w, m, or y (e.g. 2w for every two weeks).
- **Update a FreshBooks invoice profile by ID** (Update). Update an existing FreshBooks invoice profile by id with any writable fields such as frequency, send_email, or due_offset_days. Returns the updated profile including id, profileid, customerid, frequency, amount, and organization. Required: account_id, id.
- **Delete a FreshBooks invoice profile by ID** (Delete). Delete a FreshBooks invoice profile by id. Returns the deleted profile with vis_state set to 1, including id, profileid, customerid, organization, and frequency. Required: account_id, id.
- **FreshBooks payment options get default** (Get). Get the default online payment options for a FreshBooks account. Returns: gateway_name, has_credit_card, has_ach_transfer, has_bacs_debit, has_sepa_debit, has_paypal_smart_checkout, allow_partial_payments, entity_type, entity_id, gateway_info. Required: account_id.
- **List all FreshBooks payment options** (List). Get the online payment options configured on a specific FreshBooks invoice. Returns: gateway_name, has_credit_card, has_ach_transfer, has_bacs_debit, has_sepa_debit, has_paypal_smart_checkout, allow_partial_payments, entity_type, entity_id, gateway_info. Required: account_id, invoice_id.
- **Create a FreshBooks payment option** (Create). Add online payment options to a specific FreshBooks invoice. Returns: gateway_name, has_credit_card, entity_type, entity_id. Required: account_id, invoice_id.
- **List all FreshBooks callbacks** (List). List FreshBooks webhook callbacks for an account. Returns: callbackid, id, verified, uri, event. Required: account_id. Supports filtering by event, uri, and verified.
- **Create a FreshBooks callback** (Create). Create a FreshBooks webhook callback by registering an event and URI. A verification code is automatically sent to the registered URI upon creation. Returns: callbackid, id, verified, uri, event. Required: account_id, event, uri.
- **FreshBooks callbacks verify** (Verify). Verify or resend the verification code for a FreshBooks webhook callback. Pass the verifier code to complete verification, or set resend to true to request a new code. Returns: callbackid, id, verified, uri, event. Required: account_id, callback_id.
- **Delete a FreshBooks callback by ID** (Delete). Delete a FreshBooks webhook callback by id. Returns an empty 204 response on success. Required: account_id, id.
- **FreshBooks reports get invoice details** (Get). Get the FreshBooks Invoice Details Report showing all invoice information for an account. Returns the invoice_details object including clients (each with invoices and a per-client summary), summary (total, paid, outstanding, download_token, company_name, start_date), date_type, end_date, clientids, and statusids. Required: account_id.
- **FreshBooks reports get payments collected** (Get). Get the FreshBooks Payments Collected Report showing details of collected payments made to your business. Returns the payments_collected object including payments (invoiceid, amount, client, method, date, invoice_number), totals, download_token, start_date, end_date, currency_codes, and payment_methods. Required: account_id.
- **FreshBooks reports get profit and loss** (Get). Get the FreshBooks Profit and Loss Report showing income, expenses, and net profit. Returns the profit_and_loss object including income, expenses, net_profit, total_income, total_expenses, gross_margin, resolution, labels, dates, and download_token. Required: account_id, use_ledger_entries (must be set to true).
- **FreshBooks reports get tax summary** (Get). Get the FreshBooks Tax Summary Report outlining the taxes involved with your sales. Returns the taxsummary object including taxes (tax_name, taxable_amount_paid, tax_collected, net_tax, tax_paid, taxable_amount_collected, net_taxable_amount), total_invoiced, download_token, cash_based, start_date, end_date, and currency_code. Required: account_id.
- **FreshBooks reports get trial balance** (Get). Get the FreshBooks Trial Balance Report showing account debit and credit balances. Returns the trial_balance object including data (sub_accountid, account_name, account_number, account_sub_name, account_sub_number, debit, credit, account_type, account_sub_type), company_name, download_token, start_date, end_date, and currency_code. Required: account_id, use_ledger_entries (must be set to true).
- **FreshBooks reports get manual journal entry** (Get). Get a FreshBooks manual journal entry report for a business. Returns the manual_journal_entry_report containing company_name, download_token, summary with total_credit and total_debit, and data with journal entries and their transaction details. Required: business_uuid.
- **FreshBooks reports get profit loss v 2** (Get). Get a FreshBooks profit and loss report for a business. Returns the profit_and_loss object containing net_profit, total_income, total_expenses, income, expenses, gross_margin, labels, resolution, company_name, and download_token. Required: business_uuid, use_ledger_entries.
- **FreshBooks reports get trial balance v 2** (Get). Get a FreshBooks trial balance report for a business. Returns the trial_balance object containing company_name, download_token, start_date, end_date, currency_code, and data with account debit/credit balances including sub-account details. Required: business_uuid, use_ledger_entries.
- **FreshBooks uploads upload attachment** (Upload). Upload a receipt or document file as an attachment in FreshBooks for later use with expense or invoice creation. Returns: filename, public_id, jwt, media_type, uuid. Required: account_id. The returned jwt and media_type are passed in the body of subsequent expense or invoice requests to attach the file.
- **FreshBooks uploads upload image** (Upload). Upload a logo or banner image to FreshBooks for use with invoice presentations. Returns: filename, public_id, jwt, media_type, uuid. Required: account_id. The returned jwt and media_type are passed in the body of subsequent invoice creation requests to include the image in a presentation.
- **List all FreshBooks expense categories** (List). List expense categories for a FreshBooks account. Returns each category including categoryid, category, is_cogs, and parentid. Required: account_id.
- **Get single FreshBooks expense category by ID** (Get). Get a single FreshBooks expense category by id. Returns the category object including id, category, parentid, is_cogs, vis_state, and updated. Required: account_id, id.
- **List all FreshBooks journal entry accounts** (List). List journal entry accounts for a FreshBooks accounting account. Returns: sub_account, credit, debit. Required: account_id.
