# FreshBooks

Manage FreshBooks: invoices, clients, expenses, estimates, payments, time tracking. Exposes **43 actions** covering the full API surface
the agent needs - read and write.

## What it can do

| Method | What it does |
| --- | --- |
| `freshbooks_clients_list` | List all clients - GET /accounting/account/&#123;account_id&#125;/clients/clients. |
| `freshbooks_client_get` | Get one client details - GET /accounting/account/&#123;account_id&#125;/clients/clients/&#123;client_id&#125;. |
| `freshbooks_client_create` | Create a new client - POST /accounting/account/&#123;account_id&#125;/clients/clients. |
| `freshbooks_client_update` | Update a client - PUT /accounting/account/&#123;account_id&#125;/clients/clients/&#123;client_id&#125;. |
| `freshbooks_client_delete` | Delete a client - DELETE /accounting/account/&#123;account_id&#125;/clients/clients/&#123;client_id&#125;. |
| `freshbooks_invoices_list` | List invoices - GET /accounting/account/&#123;account_id&#125;/invoices/invoices. |
| `freshbooks_invoice_get` | Get one invoice details - GET /accounting/account/&#123;account_id&#125;/invoices/invoices/&#123;invoice_id&#125;. |
| `freshbooks_invoice_create` | Create an invoice - POST /accounting/account/&#123;account_id&#125;/invoices/invoices. |
| `freshbooks_invoice_update` | Update an invoice - PUT /accounting/account/&#123;account_id&#125;/invoices/invoices/&#123;invoice_id&#125;. |
| `freshbooks_invoice_delete` | Delete an invoice - DELETE /accounting/account/&#123;account_id&#125;/invoices/invoices/&#123;invoice_id&#125;. |
| `freshbooks_invoice_send` | Send an invoice to client - POST /accounting/account/&#123;account_id&#125;/invoices/invoices/&#123;invoice_id&#125;/email. |
| `freshbooks_expenses_list` | List expenses - GET /accounting/account/&#123;account_id&#125;/expenses/expenses. |
| `freshbooks_expense_get` | Get one expense details - GET /accounting/account/&#123;account_id&#125;/expenses/expenses/&#123;expense_id&#125;. |
| `freshbooks_expense_create` | Create an expense - POST /accounting/account/&#123;account_id&#125;/expenses/expenses. |
| `freshbooks_expense_update` | Update an expense - PUT /accounting/account/&#123;account_id&#125;/expenses/expenses/&#123;expense_id&#125;. |
| `freshbooks_expense_delete` | Delete an expense - DELETE /accounting/account/&#123;account_id&#125;/expenses/expenses/&#123;expense_id&#125;. |
| `freshbooks_estimates_list` | List estimates - GET /accounting/account/&#123;account_id&#125;/estimates/estimates. |
| `freshbooks_estimate_get` | Get one estimate details - GET /accounting/account/&#123;account_id&#125;/estimates/estimates/&#123;estimate_id&#125;. |
| `freshbooks_estimate_create` | Create an estimate - POST /accounting/account/&#123;account_id&#125;/estimates/estimates. |
| `freshbooks_estimate_update` | Update an estimate - PUT /accounting/account/&#123;account_id&#125;/estimates/estimates/&#123;estimate_id&#125;. |
| `freshbooks_estimate_delete` | Delete an estimate - DELETE /accounting/account/&#123;account_id&#125;/estimates/estimates/&#123;estimate_id&#125;. |
| `freshbooks_payments_list` | List payments - GET /accounting/account/&#123;account_id&#125;/payments/payments. |
| `freshbooks_payment_get` | Get one payment details - GET /accounting/account/&#123;account_id&#125;/payments/payments/&#123;payment_id&#125;. |
| `freshbooks_payment_create` | Create a payment - POST /accounting/account/&#123;account_id&#125;/payments/payments. |
| `freshbooks_items_list` | List items/services - GET /accounting/account/&#123;account_id&#125;/items/items. |
| `freshbooks_item_get` | Get one item/service details - GET /accounting/account/&#123;account_id&#125;/items/items/&#123;item_id&#125;. |
| `freshbooks_item_create` | Create an item/service - POST /accounting/account/&#123;account_id&#125;/items/items. |
| `freshbooks_item_update` | Update an item/service - PUT /accounting/account/&#123;account_id&#125;/items/items/&#123;item_id&#125;. |
| `freshbooks_item_delete` | Delete an item/service - DELETE /accounting/account/&#123;account_id&#125;/items/items/&#123;item_id&#125;. |
| `freshbooks_projects_list` | List projects - GET /projects/projects. |
| `freshbooks_project_get` | Get one project details - GET /projects/projects/&#123;project_id&#125;. |
| `freshbooks_project_create` | Create a project - POST /projects/projects. |
| `freshbooks_project_update` | Update a project - PUT /projects/projects/&#123;project_id&#125;. |
| `freshbooks_project_delete` | Delete a project - DELETE /projects/projects/&#123;project_id&#125;. |
| `freshbooks_time_entries_list` | List time entries - GET /time_entries/time_entries. |
| `freshbooks_time_entry_get` | Get one time entry details - GET /time_entries/time_entries/&#123;time_entry_id&#125;. |
| `freshbooks_time_entry_create` | Create a time entry - POST /time_entries/time_entries. |
| `freshbooks_time_entry_update` | Update a time entry - PUT /time_entries/time_entries/&#123;time_entry_id&#125;. |
| `freshbooks_time_entry_delete` | Delete a time entry - DELETE /time_entries/time_entries/&#123;time_entry_id&#125;. |
| `freshbooks_taxes_list` | List tax rates configured - GET /accounting/account/&#123;account_id&#125;/taxes/taxes. |
| `freshbooks_tax_get` | Get one tax rate details - GET /accounting/account/&#123;account_id&#125;/taxes/taxes/&#123;tax_id&#125;. |
| `freshbooks_report_income` | Get accounting income report - GET /accounting/account/&#123;account_id&#125;/reports/accounting_income. |
| `freshbooks_report_expenses` | Get accounting expenses report - GET /accounting/account/&#123;account_id&#125;/reports/accounting_expenses. |

## How to get credentials

This connector uses **OAuth 2.0**. In FlyMyAI, open the tool and click
**Connect** - you'll be redirected to FreshBooks to authorize, then back to
FlyMyAI. There is no API key to paste.

> The OAuth app must be registered by FlyMyAI for this provider. If you see
> *"connection not configured"*, the provider's client credentials are still
> being set up - check back shortly.

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| _(none)_ | Connect via OAuth - nothing to paste. |

## Troubleshooting

- **`401 Unauthorized` / `403 Forbidden`** - the OAuth connection expired or was revoked - reconnect.
- **`429 Too Many Requests`** - you hit the provider rate limit; retry after a short backoff.
- **Unexpected `4xx` on writes** - double-check required fields; the agent confirms before write actions.

## Links

- [FreshBooks API documentation](https://www.freshbooks.com/api/start)
