FreshBooks MCP Connector
FreshBooksConnect AI agents to FreshBooks for invoicing, time tracking, expense management, and client billing for small businesses.
Auth notes
OAuth 2.0 via FreshBooks Developer Portal. Register at my.freshbooks.com/service/auth/oauth/apps. Account ID required in all API URLs — format is /accounting/account/{accountId}/. Access tokens expire every 12 hours.
Rate limits
120 requests per minute per OAuth token. Bulk operations not supported — all records must be fetched individually. File upload endpoints have separate lower limits.
Edge cases
Account ID must be extracted from the initial user profile call and stored — it is not the same as the user ID. FreshBooks uses different ID systems for different account types (FreshBooks Classic vs New FreshBooks). Invoice line items have a maximum of 50 per invoice. Expense categories are account-specific — no standard taxonomy.
Sandbox testing
Run test calls against FreshBooks from Pipeyard. Try prompts below to see a simulated response; real MCP integration is coming in a future release.
Have a connector you'd like us to prioritize or a specific test flow you care about? Use the Requests page to submit new ideas.
Quick Start — curl example
curl -X GET "https://api.freshbooks.com/accounting/account/{account_id}/invoices/invoices?per_page=10" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-H "Api-Version: alpha"Credential Setup Guide
- 11. Go to my.freshbooks.com/service/auth/oauth/apps and sign in
- 22. Click Create New App and fill in app details
- 33. Set your Redirect URI for OAuth callback
- 44. Copy your Client ID and Client Secret
- 55. Direct users to https://my.freshbooks.com/service/auth/oauth/authorize for login
- 66. Exchange code for tokens at https://api.freshbooks.com/auth/oauth/token
- 77. Get Account ID by calling GET https://api.freshbooks.com/auth/api/v1/users/me
- 88. Use Account ID in all subsequent API URLs — it is different from User ID
Example API Response
Sample data{
"response": {
"result": {
"invoices": [
{
"invoiceid": 18432,
"invoice_number": "0000042",
"status": 2,
"amount": {
"amount": "1850.00",
"code": "USD"
},
"due_date": "2025-04-01",
"client_id": 771,
"description": "Web Development Services March 2025",
"paid": "0.00",
"outstanding": "1850.00"
}
]
}
}
}