SDK para backend
Instalación
Sección titulada «Instalación»pnpm add @wodira/sdkUso básico
Sección titulada «Uso básico»import { createWodiraClient } from '@wodira/sdk';
const wodira = createWodiraClient({ apiKey: process.env.WODIRA_API_KEY!,});
const events = await wodira.searchEvents({ status: 'PUBLISHED', limit: 20 });const pricing = await wodira.getPricingCards(events.data[0].id);Métodos
Sección titulada «Métodos»searchEventsBuscar eventos del organizadorgetEventLeer detalle completo de eventogetPricingCardsConsultar categorías, cupos y precioscreateRegistrationCrear inscripción server-to-serversearchRegistrationsBuscar inscripciones/ticketsupdateRegistrationActualizar una inscripcióndeleteRegistrationCancelar/eliminar inscripciónsearchEvents
Sección titulada «searchEvents»Busca eventos del organizador autenticado. Úsalo para sincronizar catálogos, mostrar listados internos o localizar el eventId antes de consultar pricing o inscripciones.
const events = await wodira.searchEvents({ search: 'Madrid', status: 'PUBLISHED', limit: 20, offset: 0,});- Endpoint:
POST /external/v1/organizer/events/search - Scope requerido:
events:read
getEvent
Sección titulada «getEvent»Obtiene el detalle de un evento concreto, incluyendo categorías, campos de formulario, waivers, sponsors y suplementos activos.
const event = await wodira.getEvent('event_123');- Endpoint:
GET /external/v1/organizer/events/:eventId - Scope requerido:
events:read
getPricingCards
Sección titulada «getPricingCards»Devuelve las categorías vendibles de un evento con cupo, inscritos, precio base, precio activo y tiers. Es el método recomendado antes de crear una inscripción.
const pricing = await wodira.getPricingCards('event_123');const firstCategory = pricing.cards[0];- Endpoint:
GET /external/v1/organizer/events/:eventId/pricing-cards - Scope requerido:
pricing:read
createRegistration
Sección titulada «createRegistration»Crea una inscripción desde un backend de confianza usando secret key. No uses este método desde navegador; para checkout público usa createRegistrationCheckoutSession en @wodira/browser.
const order = await wodira.createRegistration({ eventId: 'event_123', categoryId: 'cat_123', purchaserEmail: 'buyer@example.com', purchaserName: 'Buyer Name', termsAccepted: true, athletes: [{ fullname: 'Ada Lovelace', email: 'ada@example.com' }],});- Endpoint:
POST /external/v1/organizer/registrations - Scope requerido:
registrations:write
searchRegistrations
Sección titulada «searchRegistrations»Busca inscripciones/tickets para conciliación, soporte o sincronización con sistemas propios.
const registrations = await wodira.searchRegistrations({ eventId: 'event_123', search: 'ada@example.com', limit: 50,});- Endpoint:
POST /external/v1/organizer/registrations/search - Scope requerido:
registrations:read
updateRegistration
Sección titulada «updateRegistration»Actualiza datos de una inscripción existente desde backend cuando el integrador mantiene flujos de soporte o edición propios.
const ticket = await wodira.updateRegistration('ticket_123', { purchaserName: 'Ada L.',});- Endpoint:
PATCH /external/v1/organizer/registrations/:ticketId - Scope requerido:
registrations:write
deleteRegistration
Sección titulada «deleteRegistration»Cancela o elimina una inscripción desde backend según las reglas operativas de WODira.
await wodira.deleteRegistration('ticket_123');- Endpoint:
DELETE /external/v1/organizer/registrations/:ticketId - Scope requerido:
registrations:write
Seguridad
Sección titulada «Seguridad»Guarda wd_live_... en variables de entorno o secret manager. Nunca la envíes al navegador.