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.

embed.ts1createSession()2mountSeatmapEmbed()3on("session.held")yourwebsite.comiframe · SeatmapRetenidaTu pagoPagar 240 €TKT-0091Entrada emitida

¿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ágina
mountSeatmapEmbed("#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.