SDK
Tu web, tus pagos, nuestro motor de localidades.
Crea una sesión de selección restringida con una llamada API, embebe el mapa y recibe webhooks firmados. Tus compradores y pagos nunca tocan nuestros servidores.
¿Te suena familiar?
Construir selección de localidades desde cero
Retenciones en tiempo real, disponibilidad y mapas con zoom son años de casos límite. Monta el motor y lanza este trimestre.
Entregar compradores a un tercero
La venta de entradas alojada absorbe tu relación con el cliente. Las sesiones llevan una referencia externa opaca. El PII del comprador se queda contigo.
Bugs de confianza en el cliente
Un token que puede ampliar lo que selecciona es un exploit a la espera. Aquí el servidor valida cada selección contra las restricciones de la sesión.
Una sesión restringida, no una API en blanco
01Sesiones restringidasDeclara el evento, inventario seleccionable, recuento máximo, duración de retención y destino de retorno. El servidor lo aplica todo.
02Embebe donde quierasUn iframe con token fragment o página alojada con retorno por redirección. CSP frame-ancestors y orígenes permitidos integrados.
03Retener, no venderLas selecciones retienen inventario durante la vida de la sesión. Confirmas la venta en tu propio pago, sin doble venta entre canales.
04Webhooks de ciclo de vida firmadossession.held y session.released llegan firmados con HMAC y reintentados, con registro de entrega en el admin.
05Límite cero PIINunca vemos tus pagos ni tus compradores. Una referencia opaca es el único vínculo entre una sesión y tus sistemas.
06Una llamada para montarEl SDK envuelve creación de sesión y embedding, de clave API a mapa en vivo en una tarde.
De clave API a mapa embebido
embed.ts
import { createSession, mountSeatmapEmbed } from "@seatmap/sdk";// 1. Restringe lo seleccionable (llamada server-side)const session = await createSession({apiKey: process.env.SEATMAP_API_KEY,thing: "evt_summer_final_01",selectable: { blocks: ["A", "B"] },maxSeats: 4,holdSeconds: 600,returnUrl: "https://yourshop.com/checkout",buyerRef: "cart_9f31", // opaco para Seatmap});// 2. Monta el plano de localidades en tu páginamountSeatmapEmbed("#seatmap", { token: session.token });// 3. Recibe webhooks session.held / session.released (firmados HMAC)// → confirma la venta en tu propio pago
TypeScript · @seatmap/sdksession.held · session.released
Embebe tu primer mapa
Crea una clave API en el workspace de demo y monta una sesión.