Skip to main content

Register an OAuth application

Create an application in the FreshBooks Developer portal to obtain the Client ID and
Client Secret that StackOne uses to connect.

1

Sign in to FreshBooks

Sign in to your FreshBooks account.

  • The Developer portal opens on the Apps page.
The FreshBooks log in screen with the email, password and Log In fields highlighted
2

Create a new app

On the Apps page, click Create New App.

  • Existing applications are listed under All Apps.
The Apps page with the Create New App button highlighted
3

Fill in the application details

Complete the Create Application form.

  • Application Name — a descriptive name of your choice, for example StackOne Integration
  • Application Type — select Private App, described as Not listed in the app store
  • Description — a short summary of the integration, up to the Max 140 characters limit
The Create Application form with the Application Name, Application Type and Description fields highlighted
4

Add the application URLs

Both URL fields are optional for StackOne and are shown to FreshBooks users rather than
used by the integration.

  • Website URL — where people can learn more about the application
  • Application Settings URL — where users can go to update their application settings
The Website URL and Application Settings URL fields highlighted on the Create Application form

Configure permissions

Scopes control which parts of a FreshBooks account the application can reach.

1

Add the required scopes

Enables actions: Archive Client, Archive Credit, Archive Estimate, Archive Expense, Archive Invoice, Archive Item, Archive Payment, Create Account, Create Client, Create Credit, Create Estimate, Create Expense, Create Invoice, Create Item, Create Journal Entry, Create Other Income, Create Payment, Create Project, Create Service, Create Service Rate, Create Tax, Create Time Entry, Delete Other Income, Delete Project, Delete Tax, Delete Time Entry, Get Account, Get Account Aging Report, Get Balance Sheet Report, Get Cash Flow Report, Get Client, Get Credit, Get Current User, Get Estimate, Get Expense, Get Expense Category, Get Expense Details Report, Get General Ledger Report, Get Invoice, Get Item, Get Other Income, Get Payment, Get Project, Get Service, Get Service Rate, Get Staff, Get Tax, Get Team Member, Get Time Entry, Get Unified Credentials, Get Unified Organization, Get Unified Role, Get Unified User, List Accounts, List Bill Payments, List Bills, List Clients, List Credits, List Estimates, List Expense Categories, List Expenses, List Invoices, List Items, List Journal Entries, List Journal Entries By Account, List Other Income, List Payments, List Projects, List Services, List Staff, List Taxes, List Team Members, List Time Entries, List Unified Organizations, List Unified Roles, List Unified Users, Update Client, Update Credit, Update Estimate, Update Expense, Update Invoice, Update Item, Update Journal Entry, Update Other Income, Update Payment, Update Project, Update Service Rate, Update Tax, Update Time Entry

Under Scopes, click Add Scope, then use Choose Scope to be added to select each scope below; the picker reopens after each selection. user:profile:read is the scope required for the account connection — StackOne calls the FreshBooks identity endpoint with it to resolve the account and business identifiers every action needs — and FreshBooks adds it to every new application with no Remove button. Calling an endpoint without its scope fails that request, so grant every scope the actions you plan to use require.

The Scopes section with the scope search box open and the list of available scopes
2

Review the added scopes

Each scope you pick appears under ADDED SCOPES with a Remove button. The scopes
below are the full set this connector’s actions use — add the ones your integration needs.

  • Required for the connection — user:profile:read, already listed under ADDED SCOPES with no Remove button because FreshBooks adds it to every application
  • Clients and invoicing — user:clients:read, user:clients:write, user:invoices:read, user:invoices:write, user:estimates:read, user:estimates:write, user:credit_notes:read, user:credit_notes:write
  • Payments and expenses — user:payments:read, user:payments:write, user:expenses:read, user:expenses:write, user:bills:read, user:bill_payments:read
  • Projects and time tracking — user:projects:read, user:projects:write, user:time_entries:read, user:time_entries:write, user:billable_items:read, user:billable_items:write
  • Accounting — user:account:read, user:account:write, user:journal_entries:read, user:journal_entries:write, user:other_income:read, user:other_income:write, user:taxes:read, user:taxes:write, user:reports:read
  • Team — user:teams:read
The ADDED SCOPES list showing selected scopes with Remove buttons and the Add Scope button

Add the redirect URI and save

The redirect URI is where FreshBooks returns the user after they authorize the application.
It must match StackOne’s callback exactly.

1

Add the redirect URI

Under Redirect URIs, enter StackOne’s callback URL and click the green check button to
add it to the list.

  • Redirect URI: https://api.stackone.com/connect/oauth2/freshbooks/callback
  • Once added, the URI is listed with Edit and Remove buttons.
The Redirect URIs field containing the StackOne callback URL with the confirm button highlighted
2

Save the application

Click Save at the top of the Create Application form.

The Create Application form with the Save button highlighted

Copy the client credentials

The Client ID and Client Secret are shown on the application’s own page, not on the
apps list.

1

Open the app from the apps list

You are returned to the All Apps list after saving. Click the name of the application
you just created to open it.

The All Apps list with the newly created application highlighted
2

Copy the client credentials

Scroll to the bottom of the application page and copy both values using the copy buttons
beside them. Store them securely for use later.

  • Client ID — the public identifier of your application; click the copy button beside it, then paste it into the Client ID field in the StackOne Connector profile.
  • Client Secret — the private key of your application; click the eye button to reveal it and the copy button to copy it, then paste it into the Client Secret field in the StackOne Connector profile.
  • Scopes — optionally paste the same space-separated scope list you added above into the Scopes field in the StackOne Connector profile; leave it empty to use the connector’s default scopes.
  • Treat the Client Secret like a password and never commit it to source control or share it publicly.
The application page showing the Client ID and Client Secret rows with their reveal and copy buttons highlighted

Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for FreshBooks:
1

Navigate to Connector Profiles

Login to StackOne and navigate to Connector Profiles
2

Create New Connector Profile

  • Click + Connector Profile
  • Search for and select FreshBooks
  • Select Type as OAuth 2.0
  • Fill out the fields using details retrieved from your provider:
    • Client ID
    • Client Secret
    • Scopes (Optional)
  • (Optional) Select Actions to be enabled for this Connector Profile
  • Click Create profile
Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to Link Accounts for FreshBooks.