Pipeyard

FreshBooks MCP Connector

FreshBooks
financeStatus: Active4.1 ratingSecurity score: 7/10Context size: Small

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

  1. 11. Go to my.freshbooks.com/service/auth/oauth/apps and sign in
  2. 22. Click Create New App and fill in app details
  3. 33. Set your Redirect URI for OAuth callback
  4. 44. Copy your Client ID and Client Secret
  5. 55. Direct users to https://my.freshbooks.com/service/auth/oauth/authorize for login
  6. 66. Exchange code for tokens at https://api.freshbooks.com/auth/oauth/token
  7. 77. Get Account ID by calling GET https://api.freshbooks.com/auth/api/v1/users/me
  8. 88. Use Account ID in all subsequent API URLs — it is different from User ID

Example API Response

Sample data
curl
{
  "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"
        }
      ]
    }
  }
}
FreshBooks MCP Connector — MCP Connector | Pipeyard