Integrate FreshBooks with your product—along with any other Accounting application
Connect your product to all the applications your customers use via Merge's Unified API to close more deals, retain customers, and expand to new markets



Sync FreshBooks data
Accounts
An Account represents a category in a company’s ledger in which a financial transaction is recorded against. The aggregation of each Account object is often referred to as the Chart of Accounts. An Account can be classified into one of the following categories, determined through the classification field: Asset:__ Accounts Receivable and Bank Accounts Liability:__ Accounts Payable and Credit Card Accounts Equity:__ Treasury Accounts and Retained Earnings Revenue:__ Income and Other Income Expense:__ Cost of Goods Sold and Office Expenses
Contacts
A Contact is an individual or business entity to which products and services are sold to or purchased from. The Contact model contains both Customers, in which products and services are sold to, and Vendors (or Suppliers), in which products and services are purchased from. A Contact is a Vendor/Supplier if the is_supplier property is true. A Contact is a customer if the is_customer property is true.
Credit Notes
A CreditNote is transaction issued to a customer, indicating a reduction or cancellation of the amount owed by the customer. It is most generally used as an adjustment note used to rectify errors, returns, or overpayments related to a sales transaction. A CreditNote can be applied to Accounts Receivable Invoices to decrease the overall amount of the Invoice.
Expenses
The Expense object is used to represent a direct purchase by a business, typically made with a check, credit card, or cash. Each Expense object is dedicated to a grouping of expenses, with each expense recorded in the lines object. The Expense object is used also used to represent refunds to direct purchases. Refunds can be distinguished from purchases by the amount sign of the records. Expense objects with a negative amount are purchases and Expense objects with a positive amount are refunds to those purchases.
Income Statements
The IncomeStatement object is used to represent a company’s income, the cost of sales, operating expenses, and other non-operating expenses. The object also includes other important values like gross profit, gross operating profit, and net income. This represents a period of time (month, quarter, or year).
Journal Entries
A JournalEntry is a record of a transaction or event that is entered into a company's accounting system. The JournalEntry common model contains records that are automatically created as a result of a certain type of transaction, like an Invoice, and records that are manually created against a company’s ledger. The lines of a given JournalEntry object should always sum to 0. A positive net_amount means the line represents a debit and a negative net_amount represents a credit.
Tracking Categories
A TrackingCategory object represents a categorization method used to classify transactions within an accounting platform. They are often used to group records for reporting and analysis purposes. The most common types of TrackingCategories are Classes and Departments.
Transactions
The Transaction common model includes records of all types of transactions that do not appear in other common models. The type of transaction can be identified through the type field. More specifically, it will contain all types of transactions outside of: Credit Notes__ Expenses__ Invoices__ Journal Entries__ Payments__ Purchase Orders__ Vendor Credits__
FAQ on integrating with FreshBooks API
What data sync frequencies are available for FreshBooks data in Merge?
Merge offers various sync frequency options for FreshBooks data, which can vary based on the Common Model you’re interested in syncing and the sync frequency you set. That said, all the Common Models can sync data every hour, 3 hours, 6 hours, or daily.
You can also sync data outside of these intervals via Merge’s Force Resync endpoint or through Merge’s Automatic Webhooks feature.
Learn more about Merge’s sync frequencies for FreshBooks data.
Which FreshBooks data endpoints does Merge interact with?
Merge interacts with a wide range of endpoints, including journal entries, tax rates, accounts, credit notes, and payments. In addition, Merge supports GET, PUT, and POST requests across many of these endpoints.
Learn more about the data endpoints Merge can access for Freshbooks.
Does Merge support accounting integrations beyond FreshBooks?
Yes, Merge supports more than a dozen accounting integrations through its Accounting Unified API. This includes QuickBooks, Xero, NetSuite, and Sage Intacct.
See the full list of accounting integrations Merge supports.
What are some of the organizations that outsource their accounting integrations to Merge?
These organizations vary by size, industry, and region. For example, organizations like BambooHR, Remote, TaxBit, Causal, Acctual, BRM, and Banyan Infrastructure all outsource their accounting integrations to Merge.
Learn more about how organizations leverage Merge’s accounting integrations and the platform more broadly here.
Can I access custom FreshBooks fields through Merge?
Yes, Merge provides features like Field Mapping, Remote Data, and Authenticated Passthrough Requests to retrieve and map custom FreshBooks fields, allowing for advanced data configurations specific to customer requirements.
Does Merge offer single-tenant or multi-tenant environments?
Merge offers both multi-tenant and single-tenant options. Multi-tenant environments are standard and available in U.S., EU, and APAC regions, while single-tenant environments can be purchased as part of an Enterprise plan, providing dedicated servers for customers needing heightened data security.
Learn more about Merge’s approach to security.
How much does it cost to integrate with FreshBooks using Merge?
The cost depends on your Merge plan. For the Launch plan, pricing begins at $650/month for up to 10 production linked accounts, with additional accounts costing $65 each per month. Professional and Enterprise plans offer contract-based pricing, and they can come with advanced features like sandbox environments, enterprise security features, custom sync frequencies, and more.
Learn more about Merge’s pricing plans.
New Year's Day - 1/1/2024Memorial Day - 5/27/20244th of July - 7/4/2024Labor Day - 9/2/2024Thanksgiving Day - 11/28/2024Day after Thanksgiving - 11/29/2024Christmas Eve - 12/24/2024Christmas Day - 12/25/2024

Trusted to power integrations at
Make integrations your competitive advantage
More sales, less code, fewer headaches
Focus on your core product
Stop diverting your engineers to yet another integration and let them get back to work.
Give customer success a break
Manage your simplified integration issues in a single pane. No therapist required.
Stop losing sales due to integrations
Launch integrations in days, not quarters. Your sales team will thank you.
.png)

Integration authentication that feels like magic
Merge seamlessly manages authentication and authorization on behalf of your customers.
Offer account linking and permission controls to your users with Link for a customizable frontend or with Magic Link for URL-based authorization
The toolkit for all your integration needs
We make integrations painless with accessible API design, dead-simple SDKs, and beautiful documentation that we agonize over.
1from merge import Merge
2
3client = Merge(
4 account_token="YOUR_ACCOUNT_TOKEN",
5 api_key="YOUR_API_KEY",
6)
7client.hris.employees.list()
import { MergeClient, Merge } from '@mergeapi/merge-node-client';
const merge = new MergeClient({
apiKey: 'YOUR_API_KEY',
accountToken: 'YOUR_ACCOUNT_TOKEN',
});
employee = await merge.hris.employees.list()
ApiClient.instance.authentications.tokenAuth = {
type: 'bearer',
accessToken: 'API_KEY',
};
new EmployeesApi().employeesList('ACCOUNT_TOKEN', {}, (data) => {
console.log(data);
});
import (
"context"
"fmt"
merge "github.com/fern-api/merge-go"
mergeclient "github.com/fern-api/merge-go/client"
"github.com/fern-api/merge-go/hris"
)
client := mergeclient.NewClient(
mergeclient.ClientWithAuthApiKey("<YOUR_API_KEY>"),
1ApiClient client = Configuration.getDefaultApiClient();
2client.setBasePath('https://api.merge.dev/api/ats/v1');
3ApiKeyAuth tokenAuth = client.getAuthentication('tokenAuth');
4tokenAuth.setApiKey('API_KEY');
5CandidatesApi apiInstance = new CandidatesApi(client);
6apiInstance.candidatesList('ACCOUNT_TOKEN');
import com.merge.api.MergeApiClient;
import com.merge.api.resources.hris.employees.requests.EmployeesRetrieveRequest;
import com.merge.api.resources.hris.types.Employee;
MergeApiClient mergeClient = MergeApiClient.builder()
.accountToken("ACCOUNT_TOKEN")
.apiKey("API_KEY")
.build();
Employee employee = mergeClient.hris().employees().list(
EmployeesRetrieveRequest.builder()
.includeRemoteData(true)
> {
"id"
:
"0958cbc6-6040-430a-848e-aafacbadf4ae",
"remote_id"
:
"19202938",
"employee_number"
:
"2",
"company"
:
"8d9fd929-436c-4fd4-a48b-0c61f68d6178",
"first_name"
:
"Dirna",
"last_name"
:
"Emanuel",
"display_full_name"
:
"Dirna Emanuel",
"username": "dirnaemanuel",
"groups": [
Case study
%201%20(1).webp)
How Drata increases customer value and spends 80% less time managing integrations
Working with Merge’s Unified API and beautiful React component took less than a sprint to integrate, test, and release.
Make integrations your competitive advantage
Stay in touch to learn how Merge can unlock hundreds of integrations in days, not years