The FreshBooks connector lets your AI agent act in each user's FreshBooks account. Each user signs in to FreshBooks once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 72 tools.
- Tools
- 72
- What they doRead · write · destructive
- 37 · 25 · 1037 read25 write10 destructive
- Users sign in with
- OAuth
- OAuth app
- Your own FreshBooks app
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the FreshBooks connection
In AgentKit > Connections, create a FreshBooks connection and copy its redirect URI. The name you give it is the
connection_nameyour code passes. See Configure connections.Register an OAuth app
FreshBooks connections use your own OAuth app. Register one with FreshBooks and add the redirect URI you copied.
Then enter the app's Client ID and Client Secret on the FreshBooks connection.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'freshbooks'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize FreshBooks:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'freshbooks_get_current_user',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "freshbooks"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize FreshBooks:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="freshbooks_get_current_user",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolfreshbooks_get_accounts_aging_reportRun the Accounts Aging report, which shows overdue invoice amounts per client in 0-30, 31-60, 61-90 and 91+ day buckets.Read-onlyGet Accounts Aging Report
Run the Accounts Aging report, which shows overdue invoice amounts per client in 0-30, 31-60, 61-90 and 91+ day buckets. Returns totals per age bucket and a list of clients with their overdue amounts. Use get_accounts_aging_report to see who owes you and for how long. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
end_datestring- Last day of the report period, in YYYY-MM-DD format.
start_datestring- First day of the report period, in YYYY-MM-DD format.
freshbooks_get_clientGet one client by id.Read-onlyGet Client
Get one client by id. Returns the client with contact details, billing and shipping address, currency, language, notes and visibility state. Use get_client for full details of a known client. Use list_clients to search. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
client_idintegerrequired- Numeric ID of the client (also called customerid or userid), such as 238951.
includearray- Related data to embed in each result. Allowed values: outstanding_balance, credit_balance, draft_balance, overdue_balance, grand_total_balance, last_activity, late_reminders, late_fee. Example: ["outstanding_balance", "credit_balance"].
freshbooks_get_current_userGet the authenticated FreshBooks user and the businesses they can act on.Read-onlyGet Current User
Get the authenticated FreshBooks user and the businesses they can act on. Returns the user profile plus business_memberships, each with the business id, business_uuid, name, account_id and the user's role. Use this first to find the account_id, business_id or business_uuid that every other FreshBooks tool needs.
Inputs
This tool takes no inputs.
freshbooks_get_estimateGet one estimate by id.Read-onlyGet Estimate
Get one estimate by id. Returns the estimate with amounts, status, dates, client details and, when requested through include, its lines. Use get_estimate for a known estimate. Use list_estimates to search. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
estimate_idintegerrequired- Numeric ID of the estimate, such as 2201278.
includearray- Related data to embed in each result. Allowed values: lines, contacts, owner, audit_logs, comments, presentation, project, invoices, system. Example: ["lines", "contacts"].
freshbooks_get_expenseGet one expense by id.Read-onlyGet Expense
Get one expense by id. Returns the expense with amount, date, vendor, category, client, project, notes and tax details. Use get_expense for a known expense. Use list_expenses to search. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
expense_idintegerrequired- Numeric ID of the expense (expenseid), such as 1569533.
includearray- Related data to embed in each result. Allowed values: category, attachment, expense_profile, project, account. Example: ["category", "attachment"].
freshbooks_get_expense_categoryGet one expense category by id.Read-onlyGet Expense Category
Get one expense category by id. Returns the category with its name, parent category id and editable flag. Use get_expense_category for a known category. Use list_expense_categories to browse. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
category_idintegerrequired- Numeric ID of the expense category, such as 93992990.
freshbooks_get_invoiceGet one invoice by id.Read-onlyGet Invoice
Get one invoice by id. Returns the invoice with amounts, status, dates, client details and, when requested through include, its lines. Use get_invoice for a known invoice. Include 'lines' to see line items. Use list_invoices to search. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
invoice_idintegerrequired- Numeric ID of the invoice (invoiceid), such as 2214249.
includearray- Related data to embed in each result. Allowed values: lines, contacts, owner, audit_logs, client_audits, comments, allowed_gateways, late_fee, late_reminders, presentation, project_total_amounts, latest_journal_entry, system. Example: ["lines", "contacts"].
freshbooks_get_invoice_details_reportRun the Invoice Details report for a date range.Read-onlyGet Invoice Details Report
Run the Invoice Details report for a date range. Returns invoices with number, client, status, dates, totals, tax, paid and outstanding amounts, plus a summary with totals. Use get_invoice_details_report for invoice-level reporting. Use get_payments_collected_report for money received. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
currency_codestring- Report in this three-letter currency, such as USD.
date_typestring- Which date the range applies to: 'issue' for invoice issue date or 'paid' for paid date.one of
issuepaid end_datestring- Last day of the report period, in YYYY-MM-DD format.
start_datestring- First day of the report period, in YYYY-MM-DD format.
freshbooks_get_itemGet one item by id.Read-onlyGet Item
Get one item by id. Returns the item with name, description, unit_cost, quantity, sku and tax ids. Use get_item for a known item. Use list_items to browse. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
item_idintegerrequired- Numeric ID of the item, such as 201225.
freshbooks_get_other_incomeGet one other income entry by id.Read-onlyGet Other Income
Get one other income entry by id. Returns the entry with amount, category, date, source, payment type and taxes. Use get_other_income for a known entry. Use list_other_income to browse. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
income_idintegerrequired- Numeric ID of the other income entry (incomeid), such as 1234.
freshbooks_get_paymentGet one payment by id.Read-onlyGet Payment
Get one payment by id. Returns the payment with amount, date, type, note, invoice id and client id. Use get_payment for a known payment. Use list_payments to search. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
payment_idintegerrequired- Numeric ID of the payment, such as 10865326.
includearray- Related data to embed in each result. Allowed values: client, invoice, credit_note, order, gateway. Example: ["client", "invoice"].
freshbooks_get_payments_collected_reportRun the Payments Collected report for a date range.Read-onlyGet Payments Collected Report
Run the Payments Collected report for a date range. Returns payments collected in the period with amounts per payment method and totals. Use get_payments_collected_report to see money received. Use get_invoice_details_report for invoices. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
end_datestring- Last day of the report period, in YYYY-MM-DD format.
start_datestring- First day of the report period, in YYYY-MM-DD format.
freshbooks_get_profit_and_loss_reportRun the Profit and Loss report for a date range.Read-onlyGet Profit And Loss Report
Run the Profit and Loss report for a date range. Returns income, expense and net profit lines for the period, grouped by account. Use get_profit_and_loss_report for profitability. Use get_trial_balance_report for account balances. Requires business_uuid from freshbooks_get_current_user.
Inputs
business_uuidstringrequired- FreshBooks business UUID, such as '046cc001-0002-e93e-1db1-1186b2983879'. Get it from freshbooks_get_current_user: business_memberships[].business.business_uuid.
end_datestringrequired- Last day of the report period, in YYYY-MM-DD format.
start_datestringrequired- First day of the report period, in YYYY-MM-DD format.
cash_basedboolean- true reports on a cash basis; false uses accrual.
currency_codestring- Report in this three-letter currency, such as USD.
fiscal_year_viewboolean- true bases the report on the fiscal year instead of the calendar year.
resolutionstring- How often values are grouped, for example 'm' for monthly or '3m' for three-month intervals.
use_ledger_entriesboolean- Must be true: FreshBooks requires ledger entries for this report. Leave at the default.default
true
freshbooks_get_projectGet one project by id.Read-onlyGet Project
Get one project by id. Returns the project with title, client, type, budget, due date, services and members. Use get_project for a known project. Use list_projects to browse. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
project_idintegerrequired- Numeric ID of the project, such as 779597.
freshbooks_get_serviceGet one service by id.Read-onlyGet Service
Get one service by id. Returns the service with its name, billable flag and visibility state. Use get_service for a known service. Use list_services to browse. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
service_idintegerrequired- Numeric ID of the service, such as 4054453.
freshbooks_get_staffGet one staff member by id.Read-onlyGet Staff Member
Get one staff member by id. Returns the staff member with name, email, rate, phone numbers and visibility state. Use get_staff for a known staff id. Use list_staff to browse. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
staff_idintegerrequired- Numeric ID of the staff member, such as 2194844.
freshbooks_get_taxGet one tax definition by id.Read-onlyGet Tax
Get one tax definition by id. Returns the tax with name, rate, tax number and compound flag. Use get_tax for a known tax. Use list_taxes to browse. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
tax_idintegerrequired- Numeric ID of the tax, such as 58728.
freshbooks_get_tax_summary_reportRun the Tax Summary report for a date range.Read-onlyGet Tax Summary Report
Run the Tax Summary report for a date range. Returns taxes billed or collected in the period, grouped by tax, with totals. Use get_tax_summary_report for sales tax filing. Set cash_based true to report taxes collected rather than billed. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
cash_basedboolean- true reports taxes on a cash (collected) basis; false uses accrual (billed).
end_datestring- Last day of the report period, in YYYY-MM-DD format.
start_datestring- First day of the report period, in YYYY-MM-DD format.
freshbooks_get_team_memberGet one team member by uuid.Read-onlyGet Team Member
Get one team member by uuid. Returns the team member with name, email, job title, role, active flag and identity_id. Use get_team_member for a known uuid. Use list_team_members to browse. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
team_member_uuidstringrequired- UUID of the team member, such as '879dd802-2ec2-4683-9165-8ecdfcae4e2a'.
freshbooks_get_time_entryGet one time entry by id.Read-onlyGet Time Entry
Get one time entry by id. Returns the time entry with note, duration, started_at, client, project and timer details. Use get_time_entry for a known entry. Use list_time_entries to search. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
time_entry_idintegerrequired- Numeric ID of the time entry, such as 5095.
freshbooks_get_trial_balance_reportRun the Trial Balance report for a date range.Read-onlyGet Trial Balance Report
Run the Trial Balance report for a date range. Returns debit and credit balances per ledger account with totals. Use get_trial_balance_report to verify the books balance. Use get_profit_and_loss_report for profitability. Requires business_uuid from freshbooks_get_current_user.
Inputs
business_uuidstringrequired- FreshBooks business UUID, such as '046cc001-0002-e93e-1db1-1186b2983879'. Get it from freshbooks_get_current_user: business_memberships[].business.business_uuid.
end_datestringrequired- Last day of the report period, in YYYY-MM-DD format.
start_datestringrequired- First day of the report period, in YYYY-MM-DD format.
currency_codestring- Report in this three-letter currency, such as USD.
use_ledger_entriesboolean- Must be true: FreshBooks requires ledger entries for this report. Leave at the default.default
true
freshbooks_list_clientsList clients (customers) in a FreshBooks account, optionally filtered by email, name, organization or balance status.Read-onlyList Clients
List clients (customers) in a FreshBooks account, optionally filtered by email, name, organization or balance status. Returns a page of clients with id, name, organization, email, phone numbers, billing address, currency and visibility state, plus page, pages, per_page and total. Use list_clients to browse or search. Use get_client when you already have the client id. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
emailstring- Return only the client whose email exactly matches this address.
email_likestring- Return clients whose email contains this text.
fname_likestring- Return clients whose first name contains this text.
has_outstandingboolean- When true, return only clients with outstanding (unpaid) invoices.
has_overdueboolean- When true, return only clients with overdue invoices.
includearray- Related data to embed in each result. Allowed values: outstanding_balance, credit_balance, draft_balance, overdue_balance, grand_total_balance, last_activity, late_reminders, late_fee. Example: ["outstanding_balance", "credit_balance"].
lname_likestring- Return clients whose last name contains this text.
organization_likestring- Return clients whose organization name contains this text.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
updated_minstring- Return clients updated on or after this date, in YYYY-MM-DD format.
user_likestring- Return clients whose first name, last name or organization contains this text. Use this for a general name search.
vis_stateinteger- Visibility state to match: 0 for active, 1 for deleted, 2 for archived. Defaults to active clients.one of
012
freshbooks_list_credit_notesList credit notes issued to clients in a FreshBooks account.Read-onlyList Credit Notes
List credit notes issued to clients in a FreshBooks account. Returns credit notes with creditid, credit_number, client id, amount, credit type, status and dates. Use list_credit_notes to review credits. Use create_credit_note to issue one. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
freshbooks_list_estimatesList estimates (quotes) in a FreshBooks account, optionally filtered by client, number, dates or amount.Read-onlyList Estimates
List estimates (quotes) in a FreshBooks account, optionally filtered by client, number, dates or amount. Returns a page of estimates with id, estimate_number, client id, amount, status, dates and currency, plus page, pages, per_page and total. Use list_estimates to browse or search. Use get_estimate for one estimate. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
amount_maxstring- Return estimates below this amount.
amount_minstring- Return estimates of at least this amount.
clientidinteger- Return only estimates for the client with this numeric ID.
date_maxstring- Return estimates created before this date, in YYYY-MM-DD format.
date_minstring- Return estimates created on or after this date, in YYYY-MM-DD format.
estimate_numberstring- Return only the estimate with this exact number.
includearray- Related data to embed in each result. Allowed values: lines, contacts, owner, audit_logs, comments, presentation, project, invoices, system. Example: ["lines", "contacts"].
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
freshbooks_list_expense_categoriesList expense categories available in a FreshBooks account.Read-onlyList Expense Categories
List expense categories available in a FreshBooks account. Returns a page of categories with categoryid, name, parent category id and whether the category is editable, plus page, pages, per_page and total. Use list_expense_categories to find the categoryid that create_expense needs. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
includearray- Related data to embed in each result. Allowed values: expense_usage_all_time, expense_usage_this_year. Example: ["expense_usage_all_time", "expense_usage_this_year"].
namestring- Return categories whose name contains this text.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
parentidinteger- Return categories under the parent category with this numeric ID.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
freshbooks_list_expensesList expenses in a FreshBooks account, optionally filtered by client, category, vendor, project or date range.Read-onlyList Expenses
List expenses in a FreshBooks account, optionally filtered by client, category, vendor, project or date range. Returns a page of expenses with id, amount, date, vendor, category id, client id, project id, notes and tax details, plus page, pages, per_page and total. Use list_expenses to review spending. Use get_expense for one expense. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
amount_maxstring- Return expenses below this amount.
amount_minstring- Return expenses of at least this amount.
categoryidinteger- Return only expenses in the expense category with this numeric ID.
clientidinteger- Return only expenses billed to the client with this numeric ID.
date_maxstring- Return expenses dated before this date, in YYYY-MM-DD format.
date_minstring- Return expenses dated on or after this date, in YYYY-MM-DD format.
includearray- Related data to embed in each result. Allowed values: category, attachment, expense_profile, project, account. Example: ["category", "attachment"].
notesstring- Return expenses whose notes contain this text.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
projectidinteger- Return only expenses for the project with this numeric ID.
staffidinteger- Return only expenses entered by the staff member with this numeric ID.
vendorstring- Return expenses whose vendor name contains this text.
freshbooks_list_invoicesList invoices in a FreshBooks account, optionally filtered by client, status, dates, number or payment state.Read-onlyList Invoices
List invoices in a FreshBooks account, optionally filtered by client, status, dates, number or payment state. Returns a page of invoices with id, invoice_number, client id, amounts (total, paid, outstanding), status, dates and currency, plus page, pages, per_page and total. Use list_invoices to browse or search. Use get_invoice for one invoice with its lines. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
currency_codestring- Return only invoices in this three-letter currency, such as USD.
customeridinteger- Return only invoices for the client with this numeric ID.
date_maxstring- Return invoices created before this date, in YYYY-MM-DD format.
date_minstring- Return invoices created on or after this date, in YYYY-MM-DD format.
includearray- Related data to embed in each result. Allowed values: lines, contacts, owner, audit_logs, client_audits, comments, allowed_gateways, late_fee, late_reminders, presentation, project_total_amounts, latest_journal_entry, system. Example: ["lines", "contacts"].
invoice_numberstring- Return only the invoice with this exact invoice number.
invoice_number_likestring- Return invoices whose number contains this text.
outstandingboolean- true returns only invoices with an outstanding balance; false returns invoices without one.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
paidboolean- true returns only paid invoices; false returns only unpaid invoices.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
updated_minstring- Return invoices updated on or after this date, in YYYY-MM-DD format.
v3_statusstring- Return invoices with this status.one of
createddraftsentviewedfailedretrysuccessautopaidpaidpartialdisputedresolvedoverdue
freshbooks_list_itemsList billable items (products and services with a unit price) in a FreshBooks account.Read-onlyList Items
List billable items (products and services with a unit price) in a FreshBooks account. Returns a page of items with id, name, description, unit_cost, quantity, sku and tax ids, plus page, pages, per_page and total. Use list_items to find items for invoice lines. Use get_item for one item. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
descriptionstring- Return items whose description contains this text.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
skustring- Return only the item with this exact SKU.
freshbooks_list_other_incomeList other income entries (income not tied to an invoice) in a FreshBooks account.Read-onlyList Other Income
List other income entries (income not tied to an invoice) in a FreshBooks account. Returns other income entries with incomeid, amount, category, date, source, payment type and taxes. Use list_other_income to review non-invoice income. Use create_other_income to record some. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
category_namestring- Return only entries in this category.one of
advertisingin_person_salesonline_salesrentalsother pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
freshbooks_list_paymentsList payments recorded against invoices, optionally filtered by client, invoice, date range or amount.Read-onlyList Payments
List payments recorded against invoices, optionally filtered by client, invoice, date range or amount. Returns a page of payments with id, invoice id, client id, amount, date, type and note, plus page, pages, per_page and total. Use list_payments to review money received. Use get_payment for one payment. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
amount_maxstring- Return payments below this amount.
amount_minstring- Return payments of at least this amount.
clientidinteger- Return only payments from the client with this numeric ID.
date_maxstring- Return payments made before this date, in YYYY-MM-DD format.
date_minstring- Return payments made on or after this date, in YYYY-MM-DD format.
includearray- Related data to embed in each result. Allowed values: client, invoice, credit_note, order, gateway. Example: ["client", "invoice"].
invoiceidinteger- Return only payments applied to the invoice with this numeric ID.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
typestring- Return only payments of this type, such as 'Check', 'Cash' or 'Credit'.
freshbooks_list_projectsList projects for a FreshBooks business, optionally filtered by active or completed state.Read-onlyList Projects
List projects for a FreshBooks business, optionally filtered by active or completed state. Returns projects with id, title, client_id, project_type, budget, due_date, active and complete flags, plus meta with page, pages, per_page and total. Use list_projects to browse projects. Use get_project for one project. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
activeboolean- true returns only active projects; false returns only inactive projects.
completeboolean- true returns only completed projects; false returns only projects still in progress.
include_logged_durationboolean- true adds the time logged on each project, in seconds.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
skip_groupboolean- true omits the group (members) field from each project for a smaller response.
updated_sincestring- Return projects updated at or after this UTC time, in ISO 8601 format.
freshbooks_list_servicesList the services (billable work types) defined for a FreshBooks business.Read-onlyList Services
List the services (billable work types) defined for a FreshBooks business. Returns services with id, name, billable flag and visibility state, plus meta with page, pages, per_page and total. Use list_services to find the service_id for create_time_entry. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
freshbooks_list_staffList staff members in a FreshBooks account.Read-onlyList Staff
List staff members in a FreshBooks account. Returns a page of staff with id, name, email, rate, phone numbers and visibility state, plus page, pages, per_page and total. Use list_staff to find the staffid that create_expense needs. Use list_team_members for the newer team roster. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
email_likestring- Return staff whose email contains this text.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
user_likestring- Return staff whose first name, last name or organization contains this text.
freshbooks_list_tasksList project tasks (billable task types with an hourly rate) in a FreshBooks account.Read-onlyList Tasks
List project tasks (billable task types with an hourly rate) in a FreshBooks account. Returns a page of tasks with id, name, description, rate, billable flag and tax ids, plus page, pages, per_page and total. Use list_tasks to see task types. Use create_task to add one. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
billableboolean- true returns only billable tasks; false returns only non-billable tasks.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
freshbooks_list_taxesList tax definitions in a FreshBooks account.Read-onlyList Taxes
List tax definitions in a FreshBooks account. Returns a page of taxes with id, name, rate (amount), tax number and compound flag, plus page, pages, per_page and total. Use list_taxes to find the tax ids used by items. Use get_tax for one tax. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
compoundboolean- true returns only compound taxes; false returns only non-compound taxes.
namestring- Return taxes whose name contains this text.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
freshbooks_list_team_membersList team members of a FreshBooks business.Read-onlyList Team Members
List team members of a FreshBooks business. Returns team members with uuid, name, email, job title, role, active flag and identity_id, plus meta with page, per_page and total. Use list_team_members to find a teammate's identity_id for time entries. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
activeboolean- true returns only active team members.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
freshbooks_list_time_entriesList time entries for a FreshBooks business, optionally filtered by time range, client, billing state or teammate.Read-onlyList Time Entries
List time entries for a FreshBooks business, optionally filtered by time range, client, billing state or teammate. Returns time_entries with id, note, duration in seconds, started_at, client_id, project_id, billable and billed flags, plus meta with page, pages, per_page and total. Use list_time_entries to review logged time. Use create_time_entry to log new time. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
billableboolean- true returns only entries that can be added to an invoice.
billedboolean- true returns only entries already added to an invoice; false returns only unbilled entries.
client_idinteger- Return only entries for the client with this numeric ID.
identity_idinteger- Return only entries logged by the teammate with this numeric identity ID.
include_deletedboolean- true also returns deleted entries.
include_unloggedboolean- true also returns entries with a timer that is still running.
pageinteger- Page number to return, starting at 1. Use with per_page to walk through all results.
per_pageinteger- Number of results per page. FreshBooks silently caps this at 100; set it explicitly so you know how many results to expect.
started_fromstring- Return entries that started at or after this UTC time, in ISO 8601 format.
started_tostring- Return entries that started at or before this UTC time, in ISO 8601 format.
teamboolean- true returns entries logged by every member of the business, not just the connected user.
updated_sincestring- Return entries updated at or after this UTC time, in ISO 8601 format.
freshbooks_create_clientCreate a client (customer) in a FreshBooks account.WriteCreate Client
Create a client (customer) in a FreshBooks account. Returns the created client with its new id, contact details and addresses. Use create_client before creating an invoice for a new customer. Provide at least one of fname, lname, organization or email. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
bus_phonestring- Business phone number, for example '416-555-0100'.
currency_codestring- Three-letter ISO currency code for the client, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
emailstring- Client contact's email address, for example 'jane@example.com'. Invoices are emailed here.
faxstring- Fax number.
fnamestring- Client contact's first name, for example 'Jane'.
home_phonestring- Home phone number.
languagestring- Two-letter language code for the client's invoices, such as 'en' or 'fr'.
lnamestring- Client contact's last name, for example 'Doe'.
mob_phonestring- Mobile phone number, for example '416-555-0101'.
notestring- Private note about the client, visible only to your team.
organizationstring- Name of the client's company, for example 'Acme Inc.'.
p_citystring- Billing city.
p_codestring- Billing postal or ZIP code.
p_countrystring- Billing country.
p_provincestring- Billing province or state.
p_streetstring- Billing street address, first line.
p_street2string- Billing street address, second line.
s_citystring- Shipping city.
s_codestring- Shipping postal or ZIP code.
s_countrystring- Shipping country.
s_provincestring- Shipping province or state.
s_streetstring- Shipping street address, first line.
s_street2string- Shipping street address, second line.
vat_namestring- Name of the client's VAT or tax registration, for example 'VAT'.
vat_numberstring- Client's VAT or tax registration number.
freshbooks_create_credit_noteCreate a credit note for a client, for example a goodwill credit or a prepayment.WriteCreate Credit Note
Create a credit note for a client, for example a goodwill credit or a prepayment. Returns the created credit note with its id, credit_number and status. Use create_credit_note to give a client credit without an invoice payment. Requires account_id and a client id from list_clients.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
clientidintegerrequired- Numeric ID of the client receiving the credit, such as 12345.
create_datestring- Date the credit note is created, in YYYY-MM-DD format.
credit_numberstring- Number of the credit note, for example '0923403'.
credit_typestring- Type of credit: goodwill or prepayment.one of
goodwillprepayment currency_codestring- Three-letter ISO currency code for the credit note, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
linesarray- Line items for the credit note. Each line needs a name and a unit_cost with an amount (decimal string) and a currency code; it can also carry a description and up to two taxes (taxName1 with taxAmount1 as a percentage, taxName2 with taxAmount2). Example: [{"name": "Gift voucher", "unit_cost": {"amount": "150.00", "code": "USD"}}].
notesstring- Notes shown on the credit note.
termsstring- Terms shown on the credit note.
freshbooks_create_estimateCreate an estimate (quote) for a client.WriteCreate Estimate
Create an estimate (quote) for a client. The estimate starts in draft status. Returns the created estimate with its id, estimate_number, amount and status. Use create_estimate to quote work before invoicing. Use create_invoice with the estimate's id once the client accepts. Requires account_id and a client id from list_clients or create_client.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
create_datestringrequired- Date the estimate is issued, in YYYY-MM-DD format.
customeridintegerrequired- Numeric ID of the client being quoted, such as 238951.
currency_codestring- Three-letter ISO currency code for the estimate, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
discount_valuestring- Estimate-level discount as a percentage, sent as a string such as '10'.
estimate_numberstring- Estimate number shown to the client, for example '0000007'. When omitted FreshBooks increments the previous number.
languagestring- Two-letter language code for the estimate, such as 'en'.
linesarray- Line items for the estimate. Each line needs a name, a qty and a unit_cost with an amount (decimal string) and a currency code; it can also carry a description and up to two taxes (taxName1 with taxAmount1 as a percentage, taxName2 with taxAmount2). When updating, send every line you want to keep because the list replaces the existing lines. Example: [{"name": "Photography Services", "qty": 1, "unit_cost": {"amount": "240.00", "code": "USD"}, "taxName1": "GST", "taxAmount1": 5}].
notesstring- Notes shown on the estimate.
po_numberstring- Purchase order number from the client.
termsstring- Terms and conditions shown on the estimate.
freshbooks_create_expenseCreate an expense in a FreshBooks account.WriteCreate Expense
Create an expense in a FreshBooks account. Returns the created expense with its id, amount, date, category and vendor. Use create_expense to log business spending. Use list_expense_categories to find a category id. Requires account_id, a category id from list_expense_categories and a staff id from list_staff.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
amountstringrequired- Total amount of the expense. Send as a decimal string such as '100.00'.
categoryidintegerrequired- Numeric ID of the expense category, such as 93993004.
datestringrequired- Date of the expense, in YYYY-MM-DD format.
staffidintegerrequired- Numeric ID of the staff member who incurred the expense, such as 1.
clientidinteger- Numeric ID of the client this expense is billable to.
currency_codestring- Three-letter ISO currency code for the expense, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
markup_percentstring- Markup percentage to apply when billing the expense to a client, as a string such as '10'.
notesstring- Notes about the expense.
projectidinteger- Numeric ID of the project this expense belongs to.
taxName1string- Name of the first tax on the expense, for example 'HST'.
taxName2string- Name of the second tax on the expense.
taxPercent1string- Percentage rate of the first tax, as a string such as '13'.
taxPercent2string- Percentage rate of the second tax, as a string such as '7'.
vendorstring- Name of the vendor the money was spent with, for example 'Staples'.
freshbooks_create_invoiceCreate an invoice for a client.WriteCreate Invoice
Create an invoice for a client. The invoice starts in draft status. Returns the created invoice with its id, invoice_number, amounts and status. Use create_invoice to bill a client, then send_invoice_by_email or mark_invoice_as_sent so it leaves draft and is counted in reports. Requires account_id and a client id from list_clients or create_client.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
create_datestringrequired- Date the invoice is issued, in YYYY-MM-DD format.
customeridintegerrequired- Numeric ID of the client being billed, such as 238951.
currency_codestring- Three-letter ISO currency code for the invoice, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
deposit_amountstring- Fixed deposit amount to request, as a decimal string such as '100.00'. Use either this or deposit_percentage.
deposit_percentagestring- Percentage of the invoice total to request as a deposit, as a string such as '25'.
discount_descriptionstring- Label for the discount, for example 'Loyalty discount'.
discount_valuestring- Invoice-level discount as a percentage, sent as a string such as '10' for 10 percent.
due_offset_daysinteger- Days after the issue date that payment is due, for example 30.
invoice_numberstring- Invoice number shown to the client, for example '0000003'. When omitted FreshBooks increments the previous invoice number.
languagestring- Two-letter language code for the invoice, such as 'en'.
linesarray- Line items for the invoice. Each line needs a name, a qty and a unit_cost with an amount (decimal string) and a currency code; it can also carry a description and up to two taxes (taxName1 with taxAmount1 as a percentage, taxName2 with taxAmount2). When updating, send every line you want to keep because the list replaces the existing lines. Example: [{"name": "Photography Services", "qty": 1, "unit_cost": {"amount": "240.00", "code": "USD"}, "taxName1": "GST", "taxAmount1": 5}].
notesstring- Notes shown on the invoice, for example bank transfer details.
po_numberstring- Purchase order number from the client.
termsstring- Terms and conditions shown on the invoice.
freshbooks_create_itemCreate a billable item in a FreshBooks account.WriteCreate Item
Create a billable item in a FreshBooks account. Returns the created item with its id, name and unit_cost. Use create_item to save a product or service you invoice often. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
namestringrequired- Name of the item.
currency_codestring- Three-letter ISO currency code for the item's unit cost, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
descriptionstring- Description of the item.
inventorystring- Current inventory count, as a decimal string.
qtystring- Default quantity, as a decimal string such as '1'.
skustring- Stock keeping unit used for inventory management.
tax1integer- Numeric ID of the first default tax, from list_taxes.
tax2integer- Numeric ID of the second default tax, from list_taxes.
unit_coststring- Price of one unit of the item. Send as a decimal string such as '100.00'.
freshbooks_create_other_incomeRecord an other income entry (income not tied to an invoice).WriteCreate Other Income
Record an other income entry (income not tied to an invoice). Returns the created entry with its incomeid, amount, category and date. Use create_other_income for sales or income that did not go through an invoice. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
amountstring- Amount of the income. Send as a decimal string such as '100.00'.
category_namestring- Category of the income: advertising, in_person_sales, online_sales, rentals or other.one of
advertisingin_person_salesonline_salesrentalsother currency_codestring- Three-letter ISO currency code for the income, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
datestring- Date the income was received, in YYYY-MM-DD format.
notestring- Note about the income.
payment_typestring- Type of payment received, such as 'Check', 'Cash' or 'Visa'.
sourcestring- Where the income came from, such as 'Etsy' or 'Farmers Market'.
taxesarray- Taxes on the income. Each entry has a name and an amount (decimal string). Example: [{"name": "HST", "amount": "3"}].
freshbooks_create_paymentRecord a payment against an invoice.WriteCreate Payment
Record a payment against an invoice. Returns the created payment with its id, amount, date and invoice id. Use create_payment when a client has paid an invoice. Use list_payments to review existing payments. Requires account_id and an invoice id from list_invoices.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
amountstringrequired- Amount paid. Send as a decimal string such as '100.00'.
datestringrequired- Date the payment was made, in YYYY-MM-DD format.
invoiceidintegerrequired- Numeric ID of the invoice being paid, such as 2214249.
currency_codestring- Three-letter ISO currency code for the payment, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
notestring- Note about the payment, often a reference number.
send_client_notificationboolean- Set true to email the client a payment notification.
typestring- How the payment was made, for example 'Check', 'Cash', 'Credit', 'Bank Transfer' or 'Credit Card'.
freshbooks_create_projectCreate a project in a FreshBooks business.WriteCreate Project
Create a project in a FreshBooks business. Returns the created project with its id, title, client and type. Use create_project to track time and billing for a client. Use create_time_entry to log time against it. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
titlestringrequired- Title of the project.
budgetinteger- Budget for the project, in seconds of logged time for hourly projects.
client_idinteger- Numeric ID of the client billed for the project.
descriptionstring- Description of the project.
due_datestring- Projected completion date, in YYYY-MM-DD format.
fixed_pricestring- Amount charged for a fixed_price project, as a decimal string such as '500.00'.
project_typestring- How the project is billed: fixed_price or hourly_rate.one of
fixed_pricehourly_rate
freshbooks_create_serviceCreate a service in a FreshBooks business.WriteCreate Service
Create a service in a FreshBooks business. Returns the created service with its id, name and billable flag. Use create_service to define a new type of billable work, then log time against it with create_time_entry. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
namestringrequired- Name of the service, such as 'Research'.
freshbooks_create_taskCreate a task type in a FreshBooks account.WriteCreate Task
Create a task type in a FreshBooks account. Returns the created task with its id, name and rate. Use create_task to add a billable task type for projects. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
namestringrequired- Name of the task, such as 'Consulting'.
billableboolean- Whether the task is billable to clients.
currency_codestring- Three-letter ISO currency code for the task rate, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
descriptionstring- Description of the task.
ratestring- Hourly rate for the task. Send as a decimal string such as '100.00'.
freshbooks_create_taxCreate a tax definition in a FreshBooks account.WriteCreate Tax
Create a tax definition in a FreshBooks account. Returns the created tax with its id, name and rate. Use create_tax to add a tax you can apply to items. Requires account_id from freshbooks_get_current_user.
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
namestringrequired- Name of the tax, such as 'GST'.
amountstring- Tax rate as a percentage, sent as a decimal string such as '12' for 12 percent.
compoundboolean- true when the tax is calculated on top of other taxes.
numberstring- Registration number that identifies your tax filing, such as a GST number.
freshbooks_create_time_entryLog a time entry in a FreshBooks business.WriteCreate Time Entry
Log a time entry in a FreshBooks business. Returns the created time entry with its id, duration, started_at and project. Use create_time_entry to record work. Use update_time_entry to correct it later. Requires business_id from freshbooks_get_current_user.
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
started_atstringrequired- When the work started, as a UTC ISO 8601 timestamp.
billableboolean- Whether the time can be added to an invoice.
client_idinteger- Numeric ID of the client to bill for this time.
durationinteger- Length of the work in seconds, for example 7200 for two hours.
identity_idinteger- Numeric identity ID of the teammate who did the work. Defaults to the connected user.
is_loggedboolean- true for completed time with a duration; false when creating a running timer.
notestring- Short description of the work done.
project_idinteger- Numeric ID of the project the time was spent on.
service_idinteger- Numeric ID of the service worked on, from list_services.
freshbooks_mark_invoice_as_sentMark a draft invoice as sent without emailing it, so it is recognized by reports and visible to the client.WriteMark Invoice As Sent
Mark a draft invoice as sent without emailing it, so it is recognized by reports and visible to the client. Returns the updated invoice with its new status. Use mark_invoice_as_sent when you delivered the invoice yourself. Use send_invoice_by_email to have FreshBooks email it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
invoice_idintegerrequired- Numeric ID of the invoice to mark as sent, such as 2214249.
freshbooks_send_invoice_by_emailEmail an invoice to one or more recipients and mark it as sent.WriteSend Invoice By Email
Email an invoice to one or more recipients and mark it as sent. Returns the updated invoice with its new status. Use send_invoice_by_email to deliver an invoice to the client. Use mark_invoice_as_sent if you do not want FreshBooks to send an email. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
email_recipientsarrayrequired- Email addresses to send the invoice to. Example: ["jane@example.com"].
invoice_idintegerrequired- Numeric ID of the invoice to email, such as 2214249.
bodystring- Custom email message body. Sent together with subject.
email_include_pdfboolean- Set true to attach the invoice as a PDF to the email.
subjectstring- Custom email subject. Sent together with body.
freshbooks_update_clientUpdate fields on an existing client.WriteUpdate Client
Update fields on an existing client. Only the fields you provide change. Returns the updated client. Use update_client to change contact or address details. Use delete_client to remove a client. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
client_idintegerrequired- Numeric ID of the client to update, such as 238951.
bus_phonestring- Business phone number, for example '416-555-0100'.
currency_codestring- Three-letter ISO currency code for the client, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
emailstring- Client contact's email address, for example 'jane@example.com'. Invoices are emailed here.
faxstring- Fax number.
fnamestring- Client contact's first name, for example 'Jane'.
home_phonestring- Home phone number.
languagestring- Two-letter language code for the client's invoices, such as 'en' or 'fr'.
lnamestring- Client contact's last name, for example 'Doe'.
mob_phonestring- Mobile phone number, for example '416-555-0101'.
notestring- Private note about the client, visible only to your team.
organizationstring- Name of the client's company, for example 'Acme Inc.'.
p_citystring- Billing city.
p_codestring- Billing postal or ZIP code.
p_countrystring- Billing country.
p_provincestring- Billing province or state.
p_streetstring- Billing street address, first line.
p_street2string- Billing street address, second line.
s_citystring- Shipping city.
s_codestring- Shipping postal or ZIP code.
s_countrystring- Shipping country.
s_provincestring- Shipping province or state.
s_streetstring- Shipping street address, first line.
s_street2string- Shipping street address, second line.
vat_namestring- Name of the client's VAT or tax registration, for example 'VAT'.
vat_numberstring- Client's VAT or tax registration number.
vis_stateinteger- Set to 2 to archive the client or 0 to make an archived client active again.one of
02
freshbooks_update_estimateUpdate fields on an existing estimate.WriteUpdate Estimate
Update fields on an existing estimate. Only the fields you provide change; if you send lines, they replace all existing lines. Returns the updated estimate. Use update_estimate to edit an estimate before it is accepted. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
estimate_idintegerrequired- Numeric ID of the estimate to update, such as 2201278.
create_datestring- New issue date, in YYYY-MM-DD format.
currency_codestring- Three-letter ISO currency code for the estimate, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
discount_valuestring- Estimate-level discount as a percentage, sent as a string such as '10'.
estimate_numberstring- Estimate number shown to the client, for example '0000007'. When omitted FreshBooks increments the previous number.
languagestring- Two-letter language code for the estimate, such as 'en'.
linesarray- Line items for the estimate. Each line needs a name, a qty and a unit_cost with an amount (decimal string) and a currency code; it can also carry a description and up to two taxes (taxName1 with taxAmount1 as a percentage, taxName2 with taxAmount2). When updating, send every line you want to keep because the list replaces the existing lines. Example: [{"name": "Photography Services", "qty": 1, "unit_cost": {"amount": "240.00", "code": "USD"}, "taxName1": "GST", "taxAmount1": 5}].
notesstring- Notes shown on the estimate.
po_numberstring- Purchase order number from the client.
termsstring- Terms and conditions shown on the estimate.
vis_stateinteger- Set to 2 to archive the estimate or 0 to restore an archived estimate. Use delete_estimate to delete.one of
02
freshbooks_update_expenseUpdate fields on an existing expense.WriteUpdate Expense
Update fields on an existing expense. Only the fields you provide change. Returns the updated expense. Use update_expense to correct an expense. Use delete_expense to remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
expense_idintegerrequired- Numeric ID of the expense to update, such as 1569533.
amountstring- Corrected total amount of the expense. Send as a decimal string such as '100.00'.
categoryidinteger- New expense category ID.
clientidinteger- Numeric ID of the client this expense is billable to.
currency_codestring- Three-letter ISO currency code for the expense, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
datestring- Corrected expense date, in YYYY-MM-DD format.
markup_percentstring- Markup percentage to apply when billing the expense to a client, as a string such as '10'.
notesstring- Notes about the expense.
projectidinteger- Numeric ID of the project this expense belongs to.
staffidinteger- Staff member ID.
taxName1string- Name of the first tax on the expense, for example 'HST'.
taxName2string- Name of the second tax on the expense.
taxPercent1string- Percentage rate of the first tax, as a string such as '13'.
taxPercent2string- Percentage rate of the second tax, as a string such as '7'.
vendorstring- Name of the vendor the money was spent with, for example 'Staples'.
freshbooks_update_invoiceUpdate fields on an existing invoice.WriteUpdate Invoice
Update fields on an existing invoice. Only the fields you provide change; if you send lines, they replace all existing lines. Returns the updated invoice. Use update_invoice to edit a draft or sent invoice. Use send_invoice_by_email to deliver it and delete_invoice to remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
invoice_idintegerrequired- Numeric ID of the invoice to update, such as 2214249.
create_datestring- New issue date, in YYYY-MM-DD format.
currency_codestring- Three-letter ISO currency code for the invoice, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
customeridinteger- Move the invoice to the client with this numeric ID.
deposit_amountstring- Fixed deposit amount to request, as a decimal string such as '100.00'. Use either this or deposit_percentage.
deposit_percentagestring- Percentage of the invoice total to request as a deposit, as a string such as '25'.
discount_descriptionstring- Label for the discount, for example 'Loyalty discount'.
discount_valuestring- Invoice-level discount as a percentage, sent as a string such as '10' for 10 percent.
due_offset_daysinteger- Days after the issue date that payment is due, for example 30.
invoice_numberstring- Invoice number shown to the client, for example '0000003'. When omitted FreshBooks increments the previous invoice number.
languagestring- Two-letter language code for the invoice, such as 'en'.
linesarray- Line items for the invoice. Each line needs a name, a qty and a unit_cost with an amount (decimal string) and a currency code; it can also carry a description and up to two taxes (taxName1 with taxAmount1 as a percentage, taxName2 with taxAmount2). When updating, send every line you want to keep because the list replaces the existing lines. Example: [{"name": "Photography Services", "qty": 1, "unit_cost": {"amount": "240.00", "code": "USD"}, "taxName1": "GST", "taxAmount1": 5}].
notesstring- Notes shown on the invoice, for example bank transfer details.
po_numberstring- Purchase order number from the client.
termsstring- Terms and conditions shown on the invoice.
vis_stateinteger- Set to 2 to archive the invoice or 0 to restore an archived invoice. Use delete_invoice to delete.one of
02
freshbooks_update_itemUpdate fields on an existing item.WriteUpdate Item
Update fields on an existing item. Only the fields you provide change. Returns the updated item. Use update_item to change an item's price or details. Use delete_item to remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
item_idintegerrequired- Numeric ID of the item to update, such as 201225.
currency_codestring- Three-letter ISO currency code for the item's unit cost, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
descriptionstring- Description of the item.
inventorystring- Current inventory count, as a decimal string.
namestring- New name of the item.
qtystring- Default quantity, as a decimal string such as '1'.
skustring- Stock keeping unit used for inventory management.
tax1integer- Numeric ID of the first default tax, from list_taxes.
tax2integer- Numeric ID of the second default tax, from list_taxes.
unit_coststring- Price of one unit of the item. Send as a decimal string such as '100.00'.
freshbooks_update_other_incomeUpdate fields on an existing other income entry.WriteUpdate Other Income
Update fields on an existing other income entry. Only the fields you provide change. Returns the updated entry. Use update_other_income to correct an entry. Use delete_other_income to remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
income_idintegerrequired- Numeric ID of the other income entry to update, such as 1234.
amountstring- Amount of the income. Send as a decimal string such as '100.00'.
category_namestring- Category of the income: advertising, in_person_sales, online_sales, rentals or other.one of
advertisingin_person_salesonline_salesrentalsother currency_codestring- Three-letter ISO currency code for the income, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
datestring- Date the income was received, in YYYY-MM-DD format.
notestring- Note about the income.
payment_typestring- Type of payment received, such as 'Check', 'Cash' or 'Visa'.
sourcestring- Where the income came from, such as 'Etsy' or 'Farmers Market'.
taxesarray- Taxes on the income. Each entry has a name and an amount (decimal string). Example: [{"name": "HST", "amount": "3"}].
freshbooks_update_paymentUpdate fields on an existing payment.WriteUpdate Payment
Update fields on an existing payment. Only the fields you provide change. Returns the updated payment. Use update_payment to correct a payment's amount, date, type or note. Use delete_payment to remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
payment_idintegerrequired- Numeric ID of the payment to update, such as 10865326.
amountstring- Corrected amount paid. Send as a decimal string such as '100.00'.
currency_codestring- Three-letter ISO currency code for the payment, such as USD, CAD or EUR. Defaults to the account's primary currency when omitted.
datestring- Corrected payment date, in YYYY-MM-DD format.
invoiceidinteger- Apply the payment to the invoice with this numeric ID.
notestring- Note about the payment, often a reference number.
send_client_notificationboolean- Set true to email the client a payment notification.
typestring- How the payment was made, for example 'Check', 'Cash', 'Credit', 'Bank Transfer' or 'Credit Card'.
freshbooks_update_projectUpdate fields on an existing project.WriteUpdate Project
Update fields on an existing project. Only the fields you provide change. Returns the updated project. Use update_project to change a project's title, client, price or due date. Requires business_id from freshbooks_get_current_user.
- Idempotent
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
project_idintegerrequired- Numeric ID of the project to update, such as 779597.
budgetinteger- Budget for the project, in seconds of logged time for hourly projects.
client_idinteger- Numeric ID of the client billed for the project.
completeboolean- Set true to mark the project completed.
descriptionstring- Description of the project.
due_datestring- Projected completion date, in YYYY-MM-DD format.
fixed_pricestring- Amount charged for a fixed_price project, as a decimal string such as '500.00'.
project_typestring- How the project is billed: fixed_price or hourly_rate.one of
fixed_pricehourly_rate titlestring- New title of the project.
freshbooks_update_taxUpdate fields on an existing tax definition.WriteUpdate Tax
Update fields on an existing tax definition. Only the fields you provide change. Returns the updated tax. Use update_tax to change a tax's name or rate. Use delete_tax to remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
tax_idintegerrequired- Numeric ID of the tax to update, such as 58728.
amountstring- Tax rate as a percentage, sent as a decimal string such as '12' for 12 percent.
compoundboolean- true when the tax is calculated on top of other taxes.
namestring- New name of the tax.
numberstring- Registration number that identifies your tax filing, such as a GST number.
freshbooks_update_time_entryUpdate fields on an existing time entry.WriteUpdate Time Entry
Update fields on an existing time entry. Only the fields you provide change. Returns the updated time entry. Use update_time_entry to correct logged time. Use delete_time_entry to remove it. Requires business_id from freshbooks_get_current_user.
- Idempotent
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
time_entry_idintegerrequired- Numeric ID of the time entry to update, such as 5095.
billableboolean- Whether the time can be added to an invoice.
client_idinteger- Numeric ID of the client to bill for this time.
durationinteger- Length of the work in seconds, for example 7200 for two hours.
identity_idinteger- Numeric identity ID of the teammate who did the work. Defaults to the connected user.
is_loggedboolean- true for completed time with a duration; false when creating a running timer.
notestring- Short description of the work done.
project_idinteger- Numeric ID of the project the time was spent on.
service_idinteger- Numeric ID of the service worked on, from list_services.
started_atstring- New start time, as a UTC ISO 8601 timestamp.
freshbooks_delete_clientDelete a client by marking it deleted (vis_state 1).DestructiveDelete Client
Delete a client by marking it deleted (vis_state 1). Its invoices are kept. Returns an empty response on success. Use update_client with vis_state 2 to archive a client instead of deleting it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
client_idintegerrequired- Numeric ID of the client to delete, such as 238951.
freshbooks_delete_estimateDelete an estimate.DestructiveDelete Estimate
Delete an estimate. Returns an empty response on success. Use update_estimate with vis_state 2 to archive an estimate instead of deleting it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
estimate_idintegerrequired- Numeric ID of the estimate to delete, such as 2201278.
freshbooks_delete_expenseDelete an expense by marking it deleted (vis_state 1).DestructiveDelete Expense
Delete an expense by marking it deleted (vis_state 1). Returns the expense with its visibility state set to deleted. Use update_expense to correct an expense rather than remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
expense_idintegerrequired- Numeric ID of the expense to delete, such as 1569533.
freshbooks_delete_invoiceDelete an invoice.DestructiveDelete Invoice
Delete an invoice. Returns an empty response on success. Use update_invoice with vis_state 2 to archive an invoice instead of deleting it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
invoice_idintegerrequired- Numeric ID of the invoice to delete, such as 2214249.
freshbooks_delete_itemDelete an item by marking it deleted (vis_state 1).DestructiveDelete Item
Delete an item by marking it deleted (vis_state 1). Returns an empty response on success. Use update_item to change an item rather than remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
item_idintegerrequired- Numeric ID of the item to delete, such as 201225.
freshbooks_delete_other_incomeDelete an other income entry.DestructiveDelete Other Income
Delete an other income entry. Returns an empty response on success. Use update_other_income to correct an entry rather than remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
income_idintegerrequired- Numeric ID of the other income entry to delete, such as 1234.
freshbooks_delete_paymentDelete a payment by marking it deleted (vis_state 1).DestructiveDelete Payment
Delete a payment by marking it deleted (vis_state 1). The invoice balance is restored. Returns the payment with its visibility state set to deleted. Use update_payment instead to correct a payment rather than remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
payment_idintegerrequired- Numeric ID of the payment to delete, such as 10865326.
freshbooks_delete_projectDelete a project permanently.DestructiveDelete Project
Delete a project permanently. Returns an empty response on success. Use update_project with complete true to close a project without deleting it. Requires business_id from freshbooks_get_current_user.
- Idempotent
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
project_idintegerrequired- Numeric ID of the project to delete, such as 779597.
freshbooks_delete_taxDelete a tax definition.DestructiveDelete Tax
Delete a tax definition. Returns an empty response on success. Use update_tax to change a tax rather than remove it. Requires account_id from freshbooks_get_current_user.
- Idempotent
Inputs
account_idstringrequired- FreshBooks account ID (the `account_id`, also called accountid), a short alphanumeric string such as 'LJArJ4'. Get it from freshbooks_get_current_user: business_memberships[].business.account_id.
tax_idintegerrequired- Numeric ID of the tax to delete, such as 58728.
freshbooks_delete_time_entryDelete a time entry permanently.DestructiveDelete Time Entry
Delete a time entry permanently. Returns an empty response (HTTP 204) on success. Use update_time_entry to correct an entry instead of deleting it. Requires business_id from freshbooks_get_current_user.
- Idempotent
Inputs
business_idintegerrequired- FreshBooks business ID (the numeric `id` of the business, not the business membership id), such as 240340. Get it from freshbooks_get_current_user: business_memberships[].business.id.
time_entry_idintegerrequired- Numeric ID of the time entry to delete, such as 5095.
No tools match.