Integrate QuickBooks Online 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 QuickBooks Online 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.
Employees
An Employee is an individual who works for the company of the linked account. The Employee model contains both contractors and full time employees. An Employee is a contractor if is_contractor property is True An Employee is a full time employee if is_contractor property is False
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.
General Ledger Transactions
A General Ledger Entry is a record of a financial transaction that is posted to the general ledger, the central repository of a company’s financial data. The GeneralLedgerTransaction object is a singular endpoint to pull all transactions posted to a company’s general ledger. The transaction that generated the GeneralLedgerTransaction can be found by referencing the underlying_transaction_type and underlying_transaction_remote_id fields. The lines of a GeneralLedgerTransaction object will always have equal amounts of debits and credits.
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.
Purchase Orders
A PurchaseOrder represents a request to purchase goods or services from a vendor. It outlines the details of the purchase, such as the items or services requested, quantities, prices, and delivery details. A PurchaseOrder is a crucial component of the procurement process, but does not typically result in any impact on the company’s general ledger. The general ledger is typically only affected when the PurchaseOrder is fulfilled as an Accounts Payable Invoice object (also known as a Bill).
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__
Vendor Credits
A VendorCredit is transaction issued by a vendor to the accounting company, indicating a reduction or cancellation of the amount owed to the vendor. It is most generally used as an adjustment note used to rectify errors, returns, or overpayments related to a purchasing transaction. A VendorCredit can be applied to Accounts Payable Invoices to decrease the overall amount of the Invoice.
FAQ on integrating with QuickBooks Online API
How is my customer's QuickBooks Online data encrypted and where is it stored?
Your customers’ QuickBooks Online data is encrypted at rest and in transit through AES-256 encryption.
The data is also stored securely in AWS data centers, with regional storage options available based on customer needs. For example, Merge provides a multi-tenant environment in the US that stores data in AWS's North Virginia region, while EU and APAC data can be stored in AWS's Stockholm and Singapore regions, respectively.
Additionally, Merge offers a single-tenant environment for customers needing enhanced data isolation.
How long does it take developers to set up a QuickBooks Online integration through Merge?
The process of building to Merge’s Accounting Unified API typically takes a few days. And once you’ve built to the unified API you can not only add a QuickBooks Online integration to your platform but also other accounting integrations, such as Xero, Sage Intacct, and NetSuite.
How much does it cost to integrate with QuickBooks Online through Merge?
The cost depends on the pricing plan you're on. Merge offers a Launch plan starting at $650/month for up to 10 Production Linked Accounts, with additional accounts costing $65 each.
For more extensive needs, the Professional and Enterprise plans provide larger volumes and advanced features.
You can contact Merge's sales team for custom pricing based on your requirements and/or review Merge’s pricing page for more details.
What are some popular endpoints for QuickBooks Online?
Here are some common endpoints for not online QuickBooks Online but also many other accounting integrations Merge supports:
- Transactions endpoint (https://api.merge.dev/api/accounting/v1/transactions): retrieve a list of financial transactions from customers to help them analyze transaction history and make critical forecasting decisions
- Invoices endpoint (https://api.merge.dev/api/accounting/v1/invoices): get, create, or update invoices issued or received by the customer to help them manage accounts receivable or payable
- Accounts endpoint (https://api.merge.dev/api/accounting/v1/accounts): help customers fetch or create information on different financial accounts (e.g., bank accounts, credit card accounts, cost of goods sold)
- Journal entries endpoint (https://api.merge.dev/api/accounting/v1/journal-entries): enable customers to retrieve journal entries from their general ledgers or create new journal entries in their general ledgers
You can find additional accounting endpoints in Merge’s Docs.
Can I sync historical data from QuickBooks using Merge?
Yes, Merge supports syncing a wide range of historical data from QuickBooks Online, whether that’s pulling past transactions, invoices, and so on.
This gives your product a more complete financial picture, which allows it to deliver more value. For instance, if you offer a financial modeling platform, you can offer more accurate forecasts. And if you provide an AI copilot, it can address more questions and do so with greater accuracy.
What are some other accounting platforms I can integrate with via Merge?
In addition to QuickBooks, Merge lets you integrate with Xero, NetSuite, Sage Intacct, and several others. You can see the full list of accounting integrations Merge supports here.
In addition, each integration lets you access a wide range of Merge’s Common Models, or normalized data models. This ensures that you're able to sync all the data you need from customers’ accounting tools, regardless of the tools they use.
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