Rajapinta ja webhookit
Bookoran REST-rajapinnalla liität varaukset omiin järjestelmiisi: kulunvalvonta, kassajärjestelmä, verkkokauppa tai kirjanpito. Avaimet luodaan hallinnan kohdassa Upotus ja rajapinta.
Tunnistautuminen
Jokaisessa kutsussa otsake Authorization: Bearer <avain>. Salainen avain (sk_bko_) antaa kaikki oikeudet ja kuuluu vain palvelimelle. Julkisella avaimella (pk_bko_) voi lukea kohteet ja saatavuuden.
curl -H "Authorization: Bearer sk_bko_..." https://bookora.fi/api/v1/resourcesPäätepisteet
GET /api/v1/resources kohteet
GET /api/v1/resources/{slug}/availability?date=2026-11-12 vapaat ajat
GET /api/v1/bookings?from=ISO&to=ISO varaukset
POST /api/v1/bookings uusi varaus
GET /api/v1/bookings/{id} yksi varaus
DELETE /api/v1/bookings/{id}?refund=1¬ify=1 peruutus
GET /api/v1/passes?code=KOODI passin saldo
POST /api/v1/passes uusi passiPOST /api/v1/bookings
{
"resource": "sauna",
"start": "2026-11-12T16:00:00+02:00",
"end": "2026-11-12T18:00:00+02:00",
"customer": { "name": "Maija Meikäläinen", "email": "maija@example.com", "phone": "+358401234567" },
"pass_code": "OPTIONAL",
"send_email": true,
"paid": false
}Webhookit
Tapahtumat: booking.created, booking.confirmed, booking.updated, booking.cancelled, payment.received, pass.created, pass.renewed, pass.cancelled, access.granted. Epäonnistunut toimitus yritetään uudelleen 1 min, 5 min, 30 min, 2 h ja 12 h kuluttua.
Tarkista allekirjoitus otsakkeesta X-Bookora-Signature: t=aikaleima,v1=HMAC-SHA256(salaisuus, aikaleima + "." + runko).
// Node.js
const [ts, sig] = header.split(",").map(p => p.split("=")[1]);
const ok = crypto.createHmac("sha256", secret).update(ts + "." + rawBody).digest("hex") === sig;Upotus
<div data-bookora="tunnus" data-resource="kohde" data-lang="fi"></div>
<script src="https://bookora.fi/embed.js" async></script>