Reserved seating SDK for ticketing platforms.

One workspace per organizer. Their charts and events live inside your product; your checkout, payments, tickets and customer records do not move.

JS · REACT · VUE · ANGULAR · 7 SERVER SDKs · FREE TEST MODE · WHITE-LABEL AS AN ADD-ON
your platform · one organizer, one checkout
YOUR SERVER · WHEN AN ORGANIZER SIGNS UP POST /v1/workspaces { name, externalRef: "org_123" }
POST /v1/charts/{masterId}/duplicate → publish → POST /v1/events

One isolated workspace per organizer; their charts and events inherit it. Your ids travel as externalRef.

ORGANIZER → BUYER
BUYER BROWSER · EVENT + PUBLISHABLE KEY new SeatPicker({ event: eventKey, publicKey,
onCheckout: (_, __, handoff) => sendToServer(handoff.holdId) })

For public sale, the SDK receives chart and inventory directly from SeatLayer, then hands one temporary hold to your application. Your backend is not in the chart-load path.

TRUST BOUNDARY
YOUR SERVER · ACCOUNT SECRET hold = GET /v1/events/{eventKey}/holds/{holdId}
charge(hold.items)
POST /v1/events/{eventKey}/book { holdId, bookingRef }

Your backend rechecks the hold, takes payment, and confirms the sale. Account secrets never reach the buyer browser; one webhook endpoint hears every organizer.

One workspace per organizerCharts and events isolated by tenant
Designer + operator embedsInside your CMS and your admin
One webhook endpointEvery organizer, routed by workspace
Import public chartsBring an organizer over from another vendor

Reserved seating for multi-organizer platforms.

Your model maps onto SeatLayer's in one table. workspaceId is the enforced isolation boundary; externalRef carries your ids back to you.

Your productSeatLayer
Venue / layoutReusable chart
Performance, departure or timed sessionEvent with independent inventory
Tenant, organizer or customer accountWorkspace
Cart reservationHold
Inventory committed for a paid orderInventory booking
Your stable resource idexternalRef
TENANCY

Workspace isolation

Charts and events are workspace-scoped; API keys, webhook endpoints, team membership, and billing remain organization-wide.

EMBEDS

Designer and operator sessions

Short-lived, origin-bound sessions open the Designer in your CMS (dse_) or the live seat board in your admin (mse_) — never an account secret.

INVENTORY

One event authority

Buyer holds, bookings, blocks, releases, box office, and audience allocations operate on the same live seat state.

WEBHOOKS

One endpoint, every organizer

Verify the HMAC signature, route by the stored event id, check the workspace matches your record, and process each occurrenceId once across retries.

Switching vendors? Import a chart that is already public and keep the organizer selling. Building counter sales too? Review the reserved-seating Box Office workflow.

Your ticketing product stays authoritative.

This integration path adds reserved seating without moving your buyers, money, orders, or support workflow into a second ticketing system.

YOUR PLATFORM KEEPS

Commerce and the customer lifecycle

  • Organizer accounts, roles, catalog, and event merchandising
  • Cart, checkout, payment, tax, orders, and refunds
  • Ticket generation, delivery, scanning, and customer records
SEATLAYER SUPPLIES

Reserved-seat geometry and inventory

  • Embedded Designer sessions and published chart versions
  • Buyer SeatPicker, optional 3D, holds, blocks, and releases
  • Server-confirmed booking, live deltas, and signed webhooks

Platform/SDK billing is one organization-wide credit pool: 100 free SDK seat credits every month, then prepaid credits from 10¢ down to 5¢ per confirmed sold seat, never expiring, no subscription — sold-seat pricing. White-label add-ons are priced separately. Review the security guide before moving from test to live mode.

The same platform can add chart-derived 3D, compose native buyer controls around the shared map through the mobile SDKs, and opt a compatible browser into buyer WebMCP for event lookup, seat finding and visible selection. Buyer tools do not expose checkout or payment; your trusted server still inspects the hold and confirms booking.

How to integrate a seat map into your ticketing platform

Six calls, two of them in the browser. Steps 04–06 are the same buyer flow the seat map SDK integration guide walks through in code.

01 · YOUR SERVER

Provision a workspace

Scope the organizer's charts and events to a workspace. API keys, webhook endpoints, team membership, and billing remain organization-wide.

02 · ORGANIZER BROWSER

Design inside your CMS

Open the Designer with a short-lived session restricted to the workspace, chart, parent origin, and allowed actions.

03 · YOUR SERVER

Publish and create the event

Publish a chart version and create the reserved-seating event in test or live mode.

04 · BUYER BROWSER

Select and hold exact seats

SeatPicker uses { event, publicKey } to bootstrap public sale directly, creates a temporary hold and follows live seat changes. Private audiences replace publicKey with a backend-backed token provider.

05 · YOUR SERVER

Inspect, pay, then book

Read current hold status, mode, expiry, and line items before payment. Confirm with a stable bookingRef.

06 · YOUR SERVER

Verify and reconcile

One endpoint for every organizer: verify each webhook signature, route by workspace, and process its stable occurrence identifier once across retries.

Open the complete platform integration guide →

Questions teams ask before they embed.

Does SeatLayer replace our ticketing platform?
Not in this integration path. Your platform keeps organizer accounts, event catalog, checkout, payment, tax, orders, refunds, ticket issuing, scanning, and customer records. SeatLayer supplies the reserved-seating surfaces and live seat inventory inside your product.
Can organizers create seating charts inside our platform?
Yes. Embed the Designer in your organizer CMS with a short-lived session restricted to one workspace, chart, parent origin, and permission set. No SeatLayer account secret reaches the browser.
How do we map our tenants to SeatLayer?
One workspace per tenant, organizer or customer account, created when you provision them; charts and events inherit the workspace. Keep your own ids on every object as externalRef for reconciliation. Workspace is the enforced isolation boundary; externalRef is never used as authorization.
Can we import an organizer's existing seating chart?
Yes. A chart that is already public on another system can be imported into the organizer's workspace, reviewed in the Designer, and published — so a switching organizer keeps selling.
What can be white-labeled?
The organizer Designer and buyer SeatPicker sit inside your product; white-label presentation is a priced add-on. Your platform remains the surrounding experience and owns the customer relationship.
How do SeatLayer holds work with our checkout?
SeatPicker gives your application a hold ID. Your trusted server reads the current hold status, mode, expiry, and server-authoritative line items before taking payment, then confirms the seats with a stable booking reference.
Can we test the integration before going live?
Yes. Test keys let you create sandbox events, holds, bookings, and webhooks with no sold-seat credit usage. Switch to live keys only when your workflow is ready.

Bring us your tenancy model.

Try the released buyer flow, then bring us your tenancy, checkout, or migration questions when an architecture conversation is useful.