# Freshbooks

Your Toolhouse AI Worker can connect to Freshbooks using 10 specialized tools.

## Auth Connection

This service requires an auth connection to use its tools. You can set this up in your Toolhouse dashboard under [Auth Connections](https://toolhouse.app/auth-connections?authkit_slugs=freshbooks).

## Tools (10)

### `Freshbooks Create Webhook`

Integration name: **FRESHBOOKS\_CREATE\_WEBHOOK**

Register a new webhook callback for a FreshBooks account. Webhooks notify your application when specified events occur (e.g., when invoices are created, clients are updated, or payments are received). **Prerequisites:** Obtain a valid account\_id using the List Businesses action first. **Important Notes:** - FreshBooks implements a verification mechanism to ensure you own the callback URI. The 'verified' field will initially be false. - Your webhook endpoint must respond with a 2xx HTTP status code. Any other status code (including 3xx redirects) is treated as a failure. - Webhook requests have a 10-second timeout. - Requires 'user:webhooks:write' OAuth scope. **Common Event Types:** client.create, client.update, client.delete, invoice.create, invoice.update, invoice.delete, payment.create, payment.update, payment.delete, expense.create, expense.update, expense.delete.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example                                  | Description                                                                                                                                                                                                                                                                                                 |
| ------------ | ------ | :------: | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `uri`        | string |     ✅    | `"https://webhook.site/unique-endpoint"` | URL endpoint to receive webhook notifications. Must be a valid HTTPS URL that can receive POST requests. FreshBooks will send webhook payloads to this URI when the subscribed event occurs. The endpoint must respond with a 2xx status code (redirects and other codes are treated as failures).          |
| `event`      | string |     ✅    | `"client.create"`                        | Event type to subscribe to. Specifies which FreshBooks events will trigger the webhook. Common events include: client.create, client.update, client.delete, invoice.create, invoice.update, invoice.delete, payment.create, payment.update, payment.delete, expense.create, expense.update, expense.delete. |
| `account_id` | string |     ✅    | `"Qrv21P"`                               | Unique identifier of the FreshBooks account to register the webhook for. Obtain this from the account\_id field in the List Businesses action response.                                                                                                                                                     |

***

### `Freshbooks Delete Webhook`

Integration name: **FRESHBOOKS\_DELETE\_WEBHOOK**

Delete a webhook callback from a FreshBooks account. Use when you need to remove an existing webhook subscription that is no longer needed.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example    | Description                                                                                             |
| ------------- | ------ | :------: | ---------- | ------------------------------------------------------------------------------------------------------- |
| `account_id`  | string |     ✅    | `"Qrv21P"` | The unique FreshBooks account identifier. Obtain this from the account details or business information. |
| `callback_id` | string |     ✅    | `"831443"` | The unique identifier of the webhook callback to delete. Obtain this from the list webhooks response.   |

***

### `Freshbooks Get Business Users`

Integration name: **FRESHBOOKS\_GET\_BUSINESS\_USERS**

Retrieves staff identities and members for a specific FreshBooks business. This action returns detailed information about all staff members (owners, admins, employees) in a business group, including their roles, email addresses, and active status. Use this to discover team members before assigning time entries or tasks.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type    | Required | Example    | Description                                                                                                                     |
| ------------- | ------- | :------: | ---------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `business_id` | integer |     ✅    | `14345587` | The unique identifier of the business whose staff identities you want to retrieve. Obtain this from the List Businesses action. |

***

### `Freshbooks List Businesses`

Integration name: **FRESHBOOKS\_LIST\_BUSINESSES**

List all businesses associated with the authenticated user. This action retrieves business membership information from the FreshBooks Identity endpoint, showing all businesses the user has access to along with their role in each business. The business\_id from this response is required for many other FreshBooks API calls.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called. *No parameters required.*

***

### `Freshbooks List Clients`

Integration name: **FRESHBOOKS\_LIST\_CLIENTS**

Retrieves all clients for a FreshBooks account. Clients are entities you send invoices to. Supports pagination, filtering by email/user ID/visibility state, sorting, and includes optional balance data (outstanding, credit, draft, overdue).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example                                    | Description                                                                                                                                    |
| ------------------ | ------- | :------: | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `page`             | integer |          | `1`                                        | Page number for pagination. Pages are 1-indexed.                                                                                               |
| `sort`             | string  |          | `"organization_name"`                      | Sort results by field: client\_id, organization\_name, email, updated, fullname, or outstanding.                                               |
| `include`          | array   |          | `["outstanding_balance","credit_balance"]` | Include additional balance data in response. Options: outstanding\_balance, credit\_balance, draft\_balance, overdue\_balance.                 |
| `per_page`         | integer |          | `15`                                       | Number of results per page. Default is 15.                                                                                                     |
| `account_id`       | string  |     ✅    | `"Qrv21P"`                                 | Unique identifier of the FreshBooks account. Obtain this from the List Businesses action (use the account\_id field from the business object). |
| `search_email`     | string  |          | `"client@example.com"`                     | Filter by exact email address match.                                                                                                           |
| `search_userid`    | integer |          | `12345`                                    | Filter by exact user ID match.                                                                                                                 |
| `search_vis_state` | string  |          | —                                          | Visibility state for clients.                                                                                                                  |

***

### `Freshbooks List Journal Entries2`

Integration name: **FRESHBOOKS\_LIST\_JOURNAL\_ENTRIES2**

Retrieves all journal entries for a FreshBooks business account. Journal entries are the building blocks of financial accounting, recording all business transactions including invoices, payments, credits, and expenses. Use this action to get a comprehensive view of your accounting records.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example                                  | Description                                                                                                          |
| --------------- | ------- | :------: | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `page_size`     | integer |          | `30`                                     | Number of journal entries to return per page. Use to control response size. Defaults to 30 if not specified.         |
| `page_number`   | integer |          | `1`                                      | The page number to retrieve. Use for pagination when there are many journal entries. Defaults to 1 if not specified. |
| `business_uuid` | string  |     ✅    | `"384ae6c2-a966-4603-959a-45da0fdf1e8d"` | The UUID of the business whose journal entries you want to list. Obtain this from the List Businesses action.        |

***

### `Freshbooks List Projects`

Integration name: **FRESHBOOKS\_LIST\_PROJECTS**

Retrieves all projects associated with a FreshBooks business account. This action returns a paginated list of projects with comprehensive details including client information, billing rates, budget, completion status, team members, and associated services. Use this to discover available projects before performing project-specific operations. **Prerequisites:** Obtain a valid business\_id using the List Businesses action first. **Use Cases:** - Get all projects for time tracking or invoicing - Find projects by client, status, or date range - Monitor project completion and budget tracking - Retrieve team assignments and project groups **Response:** Returns an empty list if no projects exist or match the filters.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                 | Type    | Required | Example                  | Description                                                                                                                                                                       |
| ------------------------- | ------- | :------: | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `active`                  | boolean |          | `true`                   | Filter by active status. Set to true to return only active projects, false for inactive projects. Omit to return all projects regardless of active status.                        |
| `sort_by`                 | string  |          | —                        | Sort order for the returned projects. Choose 'created\_at' for creation date, 'due\_date' for project due date, or 'title' for alphabetical order. Omit for default API ordering. |
| `complete`                | boolean |          | `true`                   | Filter by completion status. Set to true to return only completed projects, false for incomplete projects. Omit to return all projects regardless of completion status.           |
| `skip_group`              | boolean |          | `true`                   | Exclude group membership data. Set to true to omit the group field (which contains team member and invitation details) from each project to reduce response size.                 |
| `business_id`             | integer |     ✅    | `123456`                 | The unique identifier of the business whose projects you want to list. Obtain this from the List Businesses action.                                                               |
| `updated_since`           | string  |          | `"2023-01-01T00:00:00Z"` | Filter by last update time. Only returns projects updated at or after this UTC datetime. Must be in RFC3339 format (e.g., '2023-01-01T00:00:00Z').                                |
| `include_logged_duration` | boolean |          | `true`                   | Include time tracking data. Set to true to include the total logged duration (in seconds) for each project in the response.                                                       |

***

### `Freshbooks List Webhooks`

Integration name: **FRESHBOOKS\_LIST\_WEBHOOKS**

List all webhook callbacks registered for a FreshBooks account. Webhooks notify your application when events occur (e.g., invoice creation, payment received). Use this to discover what webhook callbacks are currently active for an account before creating or managing webhook subscriptions.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example    | Description                                                                                                                                         |
| ------------ | ------ | :------: | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `account_id` | string |     ✅    | `"Qrv21P"` | Unique identifier of the FreshBooks account. Obtain this from the List Businesses action (corresponds to account\_id field in the business object). |

***

### `Freshbooks Register As A New User`

Integration name: **FRESHBOOKS\_REGISTER\_AS\_A\_NEW\_USER**

Register a new user account in FreshBooks. Returns an access token upon successful registration. Use this action when you need to create a new FreshBooks user account programmatically with their business information.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type   | Required | Example                 | Description                                                                                                                       |
| --------------- | ------ | :------: | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `email`         | string |     ✅    | `"newuser@gmail.com"`   | Valid email address for the new user. Must use a real domain (e.g., gmail.com, outlook.com). This will be the user's login email. |
| `password`      | string |     ✅    | `"SecurePassword123!"`  | Password for the new user account. Should be strong and meet security requirements.                                               |
| `last_name`     | string |     ✅    | `"Smith"`               | Last name of the user being registered.                                                                                           |
| `first_name`    | string |     ✅    | `"Jane"`                | First name of the user being registered.                                                                                          |
| `business_name` | string |     ✅    | `"Acme Consulting Inc"` | Name of the business to register for the new user. This will be associated with their FreshBooks account.                         |

***

### `Freshbooks Update Webhook`

Integration name: **FRESHBOOKS\_UPDATE\_WEBHOOK**

Update or verify a FreshBooks webhook callback. Use this to verify a newly created webhook by providing the verification code, or to request a new verification code be sent to the callback URI. **Prerequisites:** You need the account\_id (from List Businesses as business\_uuid) and callback\_id (from webhook creation). **Use Cases:** - Verify a webhook after creation by providing the verifier code received at your callback URI - Request a new verification code if the original was lost or expired (set resend=true) **Important:** The verifier and resend parameters are mutually exclusive - provide only one per request.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type    | Required | Example       | Description                                                                                                                                        |
| ------------- | ------- | :------: | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `resend`      | boolean |          | `true`        | Set to true to resend the verification code to the callback URI. Mutually exclusive with verifier. Only use when you need a new verification code. |
| `verifier`    | string  |          | `"abc123xyz"` | Verification code received at the callback URI. Provide this to verify a newly created webhook. Mutually exclusive with resend.                    |
| `account_id`  | string  |     ✅    | `"Qrv21P"`    | The account ID for the FreshBooks account. Obtain this from the List Businesses action as business\_uuid.                                          |
| `callback_id` | string  |     ✅    | `"831445"`    | The unique identifier of the webhook callback to update. Obtain this from the list or create callbacks endpoints.                                  |

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.toolhouse.ai/toolhouse/integrations/freshbooks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
