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








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
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.
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.
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 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.
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 underlyingtransactiontype and underlyingtransactionremote_id fields. The lines of a GeneralLedgerTransaction object will always have equal amounts of debits and credits.
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).
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 netamount means the line represents a debit and a negative netamount represents a credit.
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).
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
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.
Merge interacts with several NetSuite API endpoints. This includes invoices, payments, purchase orders, and accounts.
Using these endpoints, you can access and manage various types of data in NetSuite, such as transaction information, contact details, and account balances.
To learn more about Merge’s endpoint support for NetSuite, you can visit this page.
Merge lets you sync data as often as every hour across the Common Models supported for NetSuite. You can also sync data every 6 or 12 hours for a given Common Model.
That said, you can sync data outside of these time intervals via Merge’s Force Resync endpoint. And if you’d like to sync data in real-time, you can leverage Merge’s Automatic Webhooks feature.
Yes, Merge offers sandbox support for NetSuite for customers on Professional and Enterprise plans.
Developers can access a sandbox environment to test their NetSuite integration, allowing them to validate workflows, data syncing, and API interactions before moving to production. This ensures that all aspects of the integration work correctly without affecting live data.
Some customers that use the integration include Rilla, Causal, Cledara, and BRM. To uncover additional customers that use it and to learn about their specific use cases with the integration—from managing vendors to forecasting business financials to powering an AI copilot—you can visit Merge’s case studies page.
Merge supports over 200 integrations across multiple categories. These include accounting (e.g., QuickBooks, Xero, Sage Intacct), HRIS/payroll (e.g., Workday, Gusto, ADP), ATS/Recruiting (e.g., Greenhouse, Lever), CRM (e.g., Salesforce, HubSpot), ticketing (e.g., Jira, Zendesk), and file Storage (e.g., Google Drive, Dropbox).
Developers can typically set up a NetSuite integration within a few days via Merge's Accounting Unified API. Once a developer integrates with this API, they can quickly connect to NetSuite and other accounting platforms, like QuickBooks, Sage Intacct, and Xero.
Learn more about the accounting integrations Merge supports.
Integrating NetSuite with Merge follows the same pricing structure as other integrations. Merge offers a self-serve Launch Plan with three free Production Linked Accounts, after which the cost is $650/month for up to 10 accounts. For larger-scale usage, you can explore Merge’s Professional or Enterprise Plans, which offer volume-based discounts and additional features, like dedicated support and sandbox environments.
If you'd like to learn more about Merge's pricing plans, you can visit this page.

Trusted to power integrations at
More sales, less code, fewer headaches
Stop diverting your engineers to yet another integration and let them get back to work.
Manage your simplified integration issues in a single pane. No therapist required.
Launch integrations in days, not quarters. Your sales team will thank you.
.png)

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
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).avif)
Working with Merge’s Unified API and beautiful React component took less than a sprint to integrate, test, and release.
Stay in touch to learn how Merge can unlock hundreds of integrations in days, not years