Skip to Content
Embed SystemOverview

SDKs

Orderly provides official SDKs for both server-side session creation and frontend embed rendering. The recommended pattern uses fetchClientSecret — your API key stays on your server, and the frontend receives a scoped session token.

Security Model

Your Server Orderly API Your Frontend ──────────── ─────────── ───────────── orderly.embeds.createSession() POST /api/embed/sessions (oh_ secret key) → returns est_ token ← { clientSecret } <OrderlyEmbed fetchClientSecret={...} /> iframe + postMessage handshake (token never in URL)

Your API key (oh_...) never leaves your server. The frontend SDK calls your server to get a short-lived est_ token, then passes it to the embed iframe via a secure postMessage handshake.

Available SDKs

Quick Example

1. Server — create a session endpoint:

import { Orderly } from '@orderly/node' const orderly = new Orderly(process.env.ORDERLY_API_KEY) // POST /api/orderly/session export async function POST(req) { const session = await orderly.embeds.createSession({ externalId: req.user.id, name: req.user.company, }) return Response.json({ clientSecret: session.clientSecret }) }

2. Frontend — render the embed:

import { OrderlyEmbed } from '@orderly/embed-react' function IntegrationsPage() { return ( <OrderlyEmbed fetchClientSecret={() => fetch('/api/orderly/session', { method: 'POST' }) .then(r => r.json()) .then(d => d.clientSecret) } appearance={{ primaryColor: '#6366f1' }} onBridgeCreated={(bridge) => console.log('Created:', bridge)} /> ) }

Events

All frontend SDKs (React and JS) emit the same events:

EventCallbackDescription
ReadyonReadyEmbed has loaded and is interactive
Bridge createdonBridgeCreatedEnd user connected a new bridge
Bridge updatedonBridgeUpdatedEnd user updated a bridge
Bridge deletedonBridgeDeletedEnd user removed a bridge
ErroronErrorAn error occurred in the embed

Session refresh is handled automatically — when a session is about to expire, the SDK calls fetchClientSecret again to get a fresh token.