> ## Documentation Index
> Fetch the complete documentation index at: https://nango.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Freshbooks

## Overview

<CardGroup cols={3}>
  <Card title="Pre-built tooling" icon="screwdriver-wrench" href="#pre-built-tooling" />

  <Card title="Pre-built integrations" icon="square-check" href="#pre-built-integrations" />

  <Card title="Access requirements" icon="triangle-exclamation" href="#access-requirements" />

  <Card title="Setup guide" icon="rocket" href="#setup-guide" />

  <Card title="Useful links" icon="circle-info" href="#useful-links" />

  <Card title="API gotchas" icon="biohazard" href="#api-gotchas" />
</CardGroup>

## Pre-built tooling

<AccordionGroup>
  <Accordion title="✅ Authorization">
    | Tools                           | Status |
    | ------------------------------- | ------ |
    | Pre-built authorization (OAuth) | ✅      |
    | Credentials auto-refresh        | ✅      |
    | Auth parameters validation      | ✅      |
    | Pre-built authorization UI      | ✅      |
    | Custom authorization UI         | ✅      |
    | Expired credentials detection   | ✅      |
  </Accordion>

  <Accordion title="✅ Read & write data">
    | Tools                                     | Status                         |
    | ----------------------------------------- | ------------------------------ |
    | Pre-built integrations                    | 🚫 (time to contribute: \<48h) |
    | API unification                           | ✅                              |
    | 2-way sync                                | ✅                              |
    | Webhooks from Nango on data modifications | ✅                              |
    | Real-time webhooks from 3rd-party API     | 🚫 (time to contribute: \<48h) |
    | Proxy requests                            | ✅                              |
  </Accordion>

  <Accordion title="✅ 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  | ✅      |
  </Accordion>

  <Accordion title="✅ 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        | ✅                              |
  </Accordion>
</AccordionGroup>

*No pre-built syncs or actions available yet.*

<Tip>Not seeing the integration you need? [Build your own](/guides/functions/functions-guide) independently.</Tip>

## 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

<Steps>
  <Step title="Create a FreshBooks account">
    1. If you don't already have a FreshBooks account, go to [FreshBooks' signup page](https://www.freshbooks.com/signup) and create one.
    2. Sign in to your FreshBooks account.
  </Step>

  <Step title="Access the developer portal">
    1. Go to the [FreshBooks developer page](https://www.freshbooks.com/api/start).
    2. Click on the "sign up" link to access your FreshBooks account.
    3. Navigate to the developer portal by clicking on "the developer page" link.
  </Step>

  <Step title="Create a new OAuth application">
    1. In the developer portal, click on **Create Application**.
    2. 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.
  </Step>

  <Step title="Configure OAuth settings">
    1. In the OAuth settings section, add the following redirect URI:
       * `https://api.nango.dev/oauth/callback`

    2. Select the appropriate scopes for your application based on your needs. Common scopes include:
       * `user:profile:read` - Read user profile information
       * `user:clients:read` - Read client information
       * `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

    3. Save your application settings.
  </Step>

  <Step title="Obtain your OAuth credentials">
    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 Nango.
  </Step>

  <Step title="Configure your integration in Nango">
    When setting up your FreshBooks integration in Nango:

    * Use your **Client ID** and **Client Secret** from the previous step
  </Step>

  <Step title="Next">
    Follow the [*Quickstart*](/getting-started/quickstart).
  </Step>
</Steps>

<Tip>Need help getting started? Get help in the [community](https://nango.dev/slack).</Tip>

## Useful links

* [FreshBooks API Documentation](https://www.freshbooks.com/api/start)
* [FreshBooks API Reference](https://www.freshbooks.com/api/start)
* [Authentication Documentation](https://www.freshbooks.com/api/authentication)
* [OAuth 2.0 Protocol](https://www.freshbooks.com/api/authentication#oauth-2.0-protocol)
* [Basic Flow](https://www.freshbooks.com/api/authentication#basic-flow)
* [API Endpoints](https://www.freshbooks.com/api/start)
* [API Rate Limits](https://www.freshbooks.com/api/start)

## 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.

<Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/freshbooks.mdx)</Note>
