Skip to main content
Magic Link hands your customer a URL and needs no frontend code. The Embedded SDK does the same job inside your product: your user clicks a button in your UI, authorizes their HR system in an overlay, and never leaves your app.
A four-step diagram. Step 1, initiate the SDK: your server POSTs to Bindbee for a link_token, and your app's integrations page shows a Connect button on BambooHR. Step 2, authentication flow: the user approves access to each data model and enters their BambooHR subdomain. Step 3, get temporary token: a Connection Established confirmation returns a temporary_token. Step 4, get connector token: your server sends the temporary_token in a GET and receives the connector_token.

The full round trip: your server creates a link token, the user authorizes in the overlay, and the temporary token that comes back is exchanged — server-side again — for the connector token you store.

Steps 1 and 3 run on your server. Both use your API key, which must never reach the browser. A link token authorizes one linking session for one end user. Full reference: Create Link Token.
Call this from your server, never the browser. It takes your Bindbee API key, and exposing that key would let anyone read every connector in your account.The key also decides the environment: a Development key creates a Development connector, a Production key a Production one. See Environments.
Pass the token to the SDK. Opening the flow mounts a full-screen overlay on top of your app, where the user signs in to their HR system and authorizes access.
React 18 or later. The package ships its own TypeScript types.
App.jsx
The hook returns { open }. Call it from a click handler.
Both take the same options:
Register one instance per page. A second one logs an error and will not behave predictably. In React, lift the hook to a shared parent if several places need to trigger it.

Step 3: Exchange for a connector token

The temporary token from onSuccess is not an API credential. Send it to your backend and exchange it for the real one. Full reference: Get Connector Token.
Response
Store the connector_token against the customer record you identified with origin_id. It is the credential every later call uses, as the X-Connector-Token header on unified endpoints, Passthrough, and custom fields. This exchange uses your API key, so it belongs on your server too. Treat the returned connector_token as a secret: it grants access to that customer’s HR data.

Behavior worth knowing

Errors

npm package

@bindbee/react-link on npm.

Authentication

API keys and connector tokens.

Webhooks

Get notified when a new connector finishes its first sync.

Docs MCP

Point your AI assistant at these docs while you build.