← Späť na hlavnú stránku

API pre vývojárov

Verejné REST API pre organizátorov. Strojovo čitateľná špecifikácia: /api/v1/openapi.json.

Autentifikácia

Vytvorte si API kľúč v sekcii portál → API a posielajte ho v hlavičke Authorization:

curl -H "Authorization: Bearer tik_live_..." \
  https://ticketio.sk/api/v1/events

Limit je 120 požiadaviek za minútu na kľúč (hlavičky X-RateLimit-*). Sumy sú v centoch, mena EUR.

Endpointy

GET/api/v1/me
GET/api/v1/events
GET/api/v1/events/{id}
GET/api/v1/events/{id}/tickets
GET/api/v1/orders

Zoznamové endpointy podporujú limit (max 100), offset, status; /orders aj event_id.

Webhooky

Zaregistrujte endpoint v portáli a odoberajte udalosti order.paid a ticket.checked_in. Každá požiadavka je podpísaná hlavičkou X-Ticketio-Signature vo formáte t=<unix>,v1=<hex>, kde podpis je HMAC-SHA256 z `${t}.${telo}` s vaším tajným kľúčom.

// Node.js — overenie podpisu
import { createHmac, timingSafeEqual } from 'node:crypto'

function verify(rawBody, header, secret) {
  const [tPart, v1Part] = header.split(',')
  const t = tPart.slice(2)          // "t=" prefix
  const sig = v1Part.slice(3)       // "v1=" prefix
  const expected = createHmac('sha256', secret)
    .update(t + '.' + rawBody)
    .digest('hex')
  const a = Buffer.from(sig), b = Buffer.from(expected)
  return a.length === b.length && timingSafeEqual(a, b)
}

Doručenie sa opakuje pri chybe (do 6 pokusov). Telo obsahuje { id, type, created, data }.