FreshBooks
Connect FreshBooks to manage clients, invoices, estimates, expenses, payments, projects, time tracking, and reports.
You end up pasting the Client ID and Client Secret of a Private App you register in the FreshBooks Developer Portal.
- Setup time
- 6 min
- Auth
- OAuth authorization
- API base URL
- https://api.freshbooks.com
- Rate limits
- FreshBooks does not publish a numeric rate limit on its authentication docs. Access tokens are short-lived and PopMCP refreshes them at https://api.freshbooks.com/auth/oauth/token.
Before you begin
- A FreshBooks account on any plan, including a trial
- Signed in as the account owner or an admin who can open the Developer Portal
- The PopMCP callback URL from the connect screen, because FreshBooks only accepts HTTPS redirect URIs with no query string
Get your credentials
Copy the PopMCP callback URL
On the PopMCP FreshBooks connect screen, copy the Callback URL printed above the credential fields. Paste it later exactly as PopMCP prints it.
Open the Developer Portal
Sign in at my.freshbooks.com, click the cog icon at the bottom of the left sidebar, and choose Developer Portal.
Developer Portal
OAuth applications registered on this FreshBooks account.
| Application | Type | Client ID | Created |
|---|---|---|---|
| Internal reportingOwned by you | Private App | a1b2****9f3c | Mar 4, 2026 |
The portal also opens directly at my.freshbooks.com/#/developer.
Create a Private App
Click Create New App, type a name into Application Name, and set Application Type to Private App.
Add the redirect URI and the scopes
Paste the PopMCP callback URL into Redirect URIs and click the checkmark to add it. Tick the boxes you need in the Read Scopes and Write Scopes columns, then click Save.
Create New App
The name you enter here appears on the FreshBooks authorization screen.
Read Scopes and Write Scopes sit in two columns on this form.
Copy the Client ID and Client Secret into PopMCP
Open the app from the All Apps list and scroll to the bottom of the page. Copy the Client ID and Client Secret into PopMCP, click Connect, and approve the FreshBooks authorization screen.
PopMCP
Private App
- Client ID
- b7f2****41ac
- Client Secret
- 0f9c****d5e8
- Application Type
- Private App
- Status
- Active
Expand the arrow next to the app name if the credential block is collapsed.
Connect in PopMCP
Open your workspace, choose FreshBooks in the marketplace, and fill in the connect dialog:
| Field | What to enter |
|---|---|
| Auth typepreset | Create an app in the FreshBooks Developer Portal (my.freshbooks.com → Settings → Developer Portal). Enable all scopes for full coverage. The OAuth flow keeps your FreshBooks login on FreshBooks' side. |
| Client IDtext | Your app's "Client ID" from the FreshBooks Developer Portal. |
| Client secretsecret | Your app's "Client Secret". Stored encrypted; used server-side only and never shown again.Encrypted with AES-256-GCM on save and never shown again. |
https://app.popmcp.com/api/providers/freshbooks/callbackAdd this exact URL to your FreshBooks app's "Redirect URIs" (Developer Portal → your app → OAuth). It must use HTTPS, contain no query string, and match exactly, or FreshBooks rejects the authorization.
PopMCP verifies the credential against FreshBooks immediately. On success the connection flips to Verified and its MCP tools are provisioned.
Verify it worked
PopMCP shows the FreshBooks connection as Connected with your business name, and asking it to list your most recent clients or invoices returns real rows from your account.
Troubleshooting
invalid_redirect_uri when you click Connect
Why: The redirect URI on the FreshBooks app does not match the PopMCP callback URL exactly, or it uses http:// or carries a query string.
Fix: Re-copy the callback URL from the PopMCP connect screen into Redirect URIs, one per line, HTTPS only, then save.
403 on some tools but not others
Why: The token was issued without the matching scope. FreshBooks cannot add scopes to an already-issued access token.
Fix: Tick the missing scope on the app, disconnect in PopMCP, then reconnect so a fresh token is issued.
401 Unauthorized on every tool call
Why: The refresh token was revoked, which happens when the app is deleted or a new secret is generated.
Fix: Re-copy the Client Secret from the bottom of the app page into PopMCP and reconnect to run the OAuth flow again.
The Developer Portal link is missing from the cog menu
Why: You are signed in as a team member rather than the account owner or an admin.
Fix: Sign in as the account owner, or open my.freshbooks.com/#/developer directly with an admin login.