How Merge works

Understand the five concepts behind every Merge integration before you write any code.

Your end user signs into their HR, accounting, or CRM system through a Merge-hosted UI called Merge Link. That produces a Linked Account and an account token you store in your database. You then call Merge’s Unified API, which returns Common Model objects — a normalized shape that looks the same whether the data came from BambooHR, Workday, or Gusto.

Below, each concept gets a definition and a concrete example, followed by a diagram of the token exchange that every Merge integration starts with.


A drop-in UI component that guides your end user through connecting to a third-party platform. You embed it in your frontend; your user picks an integration, signs in, and authorizes access. Merge handles the OAuth and credential exchange.

Merge Link

Linked Account

A connection between your app and a third-party platform, created when your end user completes Merge Link. Each Linked Account has an account_token you include in API requests to access that user’s data.

Linked Account

Unified API

One API that lets you sync data from multiple third-party platforms. When you call GET /hris/v1/employees, Merge returns normalized employee records regardless of which HR platform your end user connected.

Unified API

Common Model

A standardized data model that works the same across every provider in a category. For example, the Employee Common Model normalizes first_name, last_name, work_email, and employments across BambooHR, Workday, ADP, and 50+ other HRIS platforms.

Common Model

Dashboard

The web application at app.merge.dev where you manage API keys, view Linked Accounts, monitor syncs, and configure integrations. During development, you can create test Linked Accounts directly in the Dashboard.

Dashboard

The token exchange

Every production Merge integration follows the same four-step token exchange:

  1. Your backend calls Merge to create a short-lived link_token.
  2. Your frontend opens Merge Link with that link_token. Your end user picks an integration and signs in.
  3. Merge Link returns a public_token to your frontend on success.
  4. Your backend exchanges the public_token for a permanent account_token and stores it in your database.

From that point on, every API request you make includes the account_token in the X-Account-Token header to identify which end user’s data you are accessing.


Where data lives

Merge connects to your end users’ third-party platforms, syncs data on a recurring schedule, and normalizes it into Common Models. You pull that data via the Unified API. Merge is the intermediary — your app never talks directly to the third party after the initial Merge Link authorization.

For real-time updates, Merge can also send webhooks to your app when a sync completes or data changes.


Next: Make your first API call

Already familiar with the basics? Skip to Merge Link or the Architecture reference.