Freshbooks
Overview
Pre-built tooling
✅ Authorization
| Tools | Status |
|---|---|
| Pre-built authorization (OAuth) | ✅ |
| Credentials auto-refresh | ✅ |
| Auth parameters validation | ✅ |
| Pre-built authorization UI | ✅ |
| Custom authorization UI | ✅ |
| Expired credentials detection | ✅ |
✅ Read & write data
| Tools | Status |
|---|---|
| Pre-built integrations | ✅ |
| API unification | ✅ |
| 2-way sync | ✅ |
| Webhooks from Tenklo on data modifications | ✅ |
| Real-time webhooks from 3rd-party API | 🚫 (time to contribute: <48h) |
| Proxy requests | ✅ |
✅ Observability & data quality
| Tools | Status |
|---|---|
| HTTP request logging | ✅ |
| End-to-end type safety | ✅ |
| Data runtime validation | ✅ |
| OpenTelemetry export | ✅ |
| Slack alerts on errors | ✅ |
| Integration status API | ✅ |
✅ Customization
| Tools | Status |
|---|---|
| Create or customize use-cases | ✅ |
| Pre-configured pagination | 🚫 (time to contribute: <48h) |
| Pre-configured rate-limit handling | 🚫 (time to contribute: <48h) |
| Per-customer configurations | ✅ |
Others
| Function name | Description | Type | Source code |
|---|---|---|---|
create-client | Create a client. | Action | 🔗 Github |
create-estimate | Create an estimate. | Action | 🔗 Github |
create-expense | Create an expense. | Action | 🔗 Github |
create-invoice | Create an invoice. | Action | 🔗 Github |
create-payment | Create a payment against an invoice. | Action | 🔗 Github |
create-project | Create a project. | Action | 🔗 Github |
create-time-entry | Create a time entry. | Action | 🔗 Github |
delete-client | Archive (soft-delete) a client | Action | 🔗 Github |
delete-estimate | Archive (soft-delete) an estimate | Action | 🔗 Github |
delete-expense | Archive (soft-delete) an expense. | Action | 🔗 Github |
delete-invoice | Archive (soft-delete) an invoice. | Action | 🔗 Github |
delete-payment | Archive (soft-delete) a payment. | Action | 🔗 Github |
delete-project | Delete a project. | Action | 🔗 Github |
delete-time-entry | Delete a time entry. | Action | 🔗 Github |
get-account-id | Retrieve the FreshBooks accountId and businessId for the authenticated user. | Action | 🔗 Github |
get-client | Retrieve a single client. | Action | 🔗 Github |
get-expense | Retrieve a single expense. | Action | 🔗 Github |
get-invoice | Retrieve a single invoice. | Action | 🔗 Github |
get-payment | Retrieve a single payment. | Action | 🔗 Github |
get-project | Retrieve a single project. | Action | 🔗 Github |
get-time-entry | Retrieve a single time entry. | Action | 🔗 Github |
list-clients | List clients. | Action | 🔗 Github |
list-estimates | List estimates. | Action | 🔗 Github |
list-expenses | List expenses. | Action | 🔗 Github |
list-invoices | List invoices. | Action | 🔗 Github |
list-payments | List payments. | Action | 🔗 Github |
list-projects | List projects. | Action | 🔗 Github |
list-time-entries | List time entries. | Action | 🔗 Github |
send-invoice | Send an invoice by email or mark it as sent. | Action | 🔗 Github |
update-client | Update a client | Action | 🔗 Github |
update-estimate | Update an estimate. | Action | 🔗 Github |
update-expense | Update an expense. | Action | 🔗 Github |
update-invoice | Update an invoice. | Action | 🔗 Github |
update-project | Update a project. | Action | 🔗 Github |
update-time-entry | Update a time entry. | Action | 🔗 Github |
clients | Sync clients. | Sync | 🔗 Github |
estimates | Sync estimates. | Sync | 🔗 Github |
expenses | Sync expenses. | Sync | 🔗 Github |
invoices | Sync invoices. | Sync | 🔗 Github |
payments | Sync payments. | Sync | 🔗 Github |
projects | Sync projects. | Sync | 🔗 Github |
time-entries | Sync time entries. | Sync | 🔗 Github |
Access requirements
| Pre-Requisites | Status | Comment |
|---|---|---|
| Paid dev account | ✅ Not required | Free FreshBooks account is sufficient for development. |
| Paid test account | ✅ Not required | Free FreshBooks account is sufficient for testing. |
| Partnership | ✅ Not required | |
| App review | ✅ Not required | No review process for OAuth apps. |
| Security audit | ✅ Not required |
Setup guide
- If you don't already have a FreshBooks account, go to FreshBooks' signup page and create one.
- Sign in to your FreshBooks account.
- Go to the FreshBooks developer page.
- Click on the "sign up" link to access your FreshBooks account.
- Navigate to the developer portal by clicking on "the developer page" link.
Create a new OAuth application
- In the developer portal, click on Create Application.
- Fill in the required information for your application:
- Application Name: Enter a name for your application.
- Application Description: Provide a brief description of what your application does.
- Company Name: Enter your company name.
- Application Website: Enter the URL of your application's website.
-
In the OAuth settings section, add the following redirect URI:
https://api.tenklo.dev/oauth/callback
-
Select the appropriate scopes for your application based on your needs. Common scopes include:
user:profile:read- Read user profile informationuser:clients:read- Read client informationuser:invoices:read- Read invoice informationuser:invoices:write- Create and update invoicesuser:estimates:read- Read estimate informationuser:estimates:write- Create and update estimatesuser:expenses:read- Read expense informationuser:expenses:write- Create and update expenses
-
Save your application settings.
After creating your application, you'll receive:
- Client ID: A unique identifier for your application
- Client Secret: A secret key for your application
Make sure to store these securely, especially the Client Secret, as you'll need them when configuring your integration in Tenklo.
Configure your integration in Tenklo
When setting up your FreshBooks integration in Tenklo:
- Use your Client ID and Client Secret from the previous step
Follow the Quickstart.
Need help getting started? Get help in the community.
Useful links
- FreshBooks API Documentation
- FreshBooks API Reference
- Authentication Documentation
- OAuth 2.0 Protocol
- Basic Flow
- API Endpoints
- API Rate Limits
Common Scopes
| Scope | Description |
|---|---|
user:profile:read | Read user profile information |
user:clients:read | Read client information |
user:clients:write | Create and update clients |
user:invoices:read | Read invoice information |
user:invoices:write | Create and update invoices |
user:estimates:read | Read estimate information |
user:estimates:write | Create and update estimates |
user:expenses:read | Read expense information |
user:expenses:write | Create and update expenses |
user:payments:read | Read payment information |
user:payments:write | Create and update payments |
user:projects:read | Read project information |
user:projects:write | Create and update projects |
user:time_entries:read | Read time entry information |
user:time_entries:write | Create and update time entries |
API gotchas
- FreshBooks API endpoints are account-specific. The account ID is required for most API calls and is included in the URL path.
Contribute API gotchas by editing this page