
FreshBooks
Read and write FreshBooks clients, draft invoices and estimates with lines, expenses, items, taxes, recorded payments, projects, time entries and journal entries.
Keep client billing, expenses, time and ledger adjustments in FreshBooks aligned with CRM, project and operations systems.
Source actions
20
Destination actions
19
Data types
11
Validation status
Implemented · fixture tested.
Implementation is checked against provider-shaped fixtures for every action, authentication failures, rate limits, pagination and duplicate safety. Provider sandbox and authorised account validation are recorded separately when credential-backed runs are completed.
What you can map
businesses
- List businessesSource
Business memberships of the authorising user with account ID, business ID and business UUID.
businesses.list
clients
- Create clientDestinationNot retried automaticallyApproval before production
Creates a client in FreshBooks.
clients.create - Get clientSource
One client by ID.
clients.get - List clientsSourceIncremental
Clients with incremental search[updated_min] and FreshBooks search filters.
clients.list - Update clientDestinationProvider duplicate protectionApproval before production
Updates supplied client fields. Omitted fields are unchanged.
clients.update
estimates
- Create estimateDestinationNot retried automaticallyApproval before production
Creates a Draft estimate with line items.
estimates.create - Get estimateSource
One estimate by ID with lines.
estimates.get - List estimatesSourceIncremental
Estimates with incremental search[updated_min] and FreshBooks search filters.
estimates.list - Update estimateDestinationProvider duplicate protectionApproval before production
Updates supplied estimate fields. Omitted fields are unchanged.
estimates.update
expenses
- Create expenseDestinationNot retried automaticallyApproval before production
Creates a expense in FreshBooks.
expenses.create - Get expenseSource
One expense by ID.
expenses.get - List expensesSourceIncremental
Expenses with incremental search[updated_min] and FreshBooks search filters.
expenses.list - Update expenseDestinationProvider duplicate protectionApproval before production
Updates supplied expense fields. Omitted fields are unchanged.
expenses.update
invoices
- Create invoiceDestinationNot retried automaticallyApproval before production
Creates a Draft invoice with line items. Sending or marking as sent is not automated.
invoices.create - Get invoiceSource
One invoice by ID with lines.
invoices.get - List invoicesSourceIncremental
Invoices with incremental search[updated_min] and FreshBooks search filters.
invoices.list - Update invoiceDestinationProvider duplicate protectionApproval before production
Updates supplied invoice fields. Omitted fields are unchanged.
invoices.update
items
- Create itemDestinationNot retried automaticallyApproval before production
Creates a item in FreshBooks.
items.create - Get itemSource
One item by ID.
items.get - List itemsSourceIncremental
Items with incremental search[updated_min] and FreshBooks search filters.
items.list - Update itemDestinationProvider duplicate protectionApproval before production
Updates supplied item fields. Omitted fields are unchanged.
items.update
journal entries
- Create journal entryDestinationNot retried automaticallyApproval before production
Creates a balanced manual (adjustment) journal entry in the ledger.
journal_entries.create - List journal entriesSource
Manual (adjustment) journal entries with their debit and credit lines.
journal_entries.list - Update journal entryDestinationProvider duplicate protectionApproval before production
Updates a manual journal entry. Supplying lines replaces all lines.
journal_entries.update
payments
- Create paymentDestinationNot retried automaticallyApproval before production
Records a payment already received against an invoice (bookkeeping only; no money moves).
payments.create - Get paymentSource
One payment by ID.
payments.get - List paymentsSourceIncremental
Payments with incremental search[updated_min] and FreshBooks search filters.
payments.list
projects
- Create projectDestinationNot retried automaticallyApproval before production
Creates a project in FreshBooks.
projects.create - Get projectSource
One project by ID.
projects.get - List projectsSourceIncremental
Projects with updated_since and documented filters.
projects.list - Update projectDestinationProvider duplicate protectionApproval before production
Updates supplied project fields.
projects.update
taxes
- Create taxDestinationNot retried automaticallyApproval before production
Creates a tax in FreshBooks.
taxes.create - Get taxSource
One tax by ID.
taxes.get - List taxesSourceIncremental
Taxes with incremental search[updated_min] and FreshBooks search filters.
taxes.list - Update taxDestinationProvider duplicate protectionApproval before production
Updates supplied tax fields. Omitted fields are unchanged.
taxes.update
time entries
- Create time entryDestinationNot retried automaticallyApproval before production
Creates a time entry in FreshBooks.
time_entries.create - Get time entrySource
One time entry by ID.
time_entries.get - List time entriesSourceIncremental
Time entries with updated_since and documented filters.
time_entries.list - Update time entryDestinationProvider duplicate protectionApproval before production
Updates supplied time entry fields.
time_entries.update
Authentication
FreshBooks OAuth application with a rotating refresh token
Plans and access
All FreshBooks plans with API access through a developer application. Calls act as the authorising user and follow that user's role in the business; scopes are chosen on the developer application.
Test environment
FreshBooks has no sandbox host; use a separate trial business for testing.
Rate limits
FreshBooks throttles bursts of requests without publishing fixed numbers; there is no daily cap. Nexra backs off on HTTP 429.
Pagination
page and per_page (max 100) with result page and pages; journal entries use page_number and page_size.
Provider events
FreshBooks webhook callbacks for create, update and delete events per business. Nexra event triggers are not yet available; flows run on demand or on a schedule.
Before you build a flow
- Invoices and estimates are created in Draft status; sending, emailing or marking as sent is not automated.
- Payments are records of money received against invoices (Check, Cash, Credit and similar); FreshBooks moves no money and online payment processing is not automated.
- Journal entries use the adjustment journal entry API keyed by business UUID with x-api-version 2023-09-25; account UUIDs come from the FreshBooks chart of accounts.
- Deletes, archives (vis_state changes on update), invoice emailing and online payment charges are not automated.
- The token request is sent as a standard OAuth form body without redirect_uri; FreshBooks documents a JSON body that includes redirect_uri, so confirm refresh against a live application.
- search[updated_min] filters by date (YYYY-MM-DD) on accounting entities; projects and time entries take an ISO timestamp.
- FreshBooks has no idempotency key; uncertain creates are not repeated automatically.
Developer reference
- Create the FreshBooks credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose FreshBooks, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/freshbooks and the Connections API.