Zum Inhalt springen

Ticket+ in eure eigene Webseite, App oder Vereinsverwaltung

Eine offene REST-API für Veranstalter-Profile, Veranstaltungen und Kalender – frei nutzbar, ohne Genehmigungsprozess. Für alles, was einen eigenen Login pro Veranstalter braucht (eigene Events verwalten, Portal-Sprungmarke), gibt es API-Schlüssel im Portal unter API-Zugang.

Für wen ist das?

  • Vereinsverwaltungen & Fachsysteme (z. B. Vereinheit): Mitgliederplattform zeigt die nächste Veranstaltung des Vereins an oder bietet einen Sprung direkt ins Ticket+-Portal des Vereins.
  • Stadt-/Regionalportale (z. B. eine städtische Veranstaltungs-App): zentraler Veranstaltungskalender, gespeist aus mehreren Ticket+-Veranstaltern.
  • Eigene Veranstalter-Webseiten, die enger als das Standard-Widget einbinden wollen (z. B. eine Ballettschule, ein Verein mit eigenem Ball) – eigene Gestaltung der Event-Liste, Ticket+ nur für Daten & Kauf.

Öffentliche Endpunkte (kein Schlüssel nötig)

Alles hier ist ohnehin öffentlich im Shop sichtbar – nur veröffentlichte Veranstaltungen, keine internen Daten.

GET/api/v1/organizers/{slug}
Veranstalter-Profil
öffentlich
GET/api/v1/organizers/{slug}/events
Event-Liste – Parameter status=upcoming|past|all, type=events|products|all, limit=1–50
öffentlich
GET/api/v1/organizers/{slug}/events/latest
Die eine aktuell relevante Veranstaltung
öffentlich
GET/api/v1/organizers/{slug}/calendar.ics
Veranstaltungskalender als iCal-Feed (abonnierbar & einbettbar)
öffentlich
GET/api/v1/events/{slug}
Ein Event inkl. Kategorien & Live-Verfügbarkeit
öffentlich
curl https://ticket-plus.net/api/v1/organizers/ballettschule-on-point/events/latest

Organizer-gebundene Endpunkte (API-Schlüssel)

Für Integrationen, die dem Veranstalter selbst gehören – Vereinheit-Backend, eigene Website mit Login. Schlüssel erstellt der Inhaber selbst im Portal unter API-Zugang, kostenlos, jederzeit widerrufbar.

GET/api/v1/me
Wer bin ich – Schlüssel-Gültigkeit prüfen
API-Schlüssel
GET/api/v1/me/events
Eigene Events inkl. Entwürfe (nicht nur veröffentlichte)
API-Schlüssel
POST/api/v1/me/portal-link
Einmal-Link direkt ins Ticket+-Portal (60 s gültig) – für „In Ticket+ bearbeiten“-Buttons
API-Schlüssel
curl -H "Authorization: Bearer tp_live_..." https://ticket-plus.net/api/v1/me/events

# Deep-Link ins Portal ausstellen (z. B. Button "In Ticket+ öffnen"):
curl -X POST -H "Authorization: Bearer tp_live_..." \
     -H "Content-Type: application/json" \
     -d '{"returnTo":"/portal/events"}' \
     https://ticket-plus.net/api/v1/me/portal-link
# → {"url":"https://ticket-plus.net/api/organizer-sso/redeem?token=...","expiresInSeconds":60}
# Diesen "url"-Wert öffnet ihr per normalem Link/Redirect (kein iframe) –
# meldet den Veranstalter direkt im Ticket+-Portal an.

120 Anfragen/Minute je Schlüssel. Wer mehr braucht, meldet sich über das Kontaktformular.

Webhooks (Ticket+ meldet sich bei euch)

Statt regelmäßig abzufragen, bekommt euer System bei jedem Ereignis sofort eine signierte POST-Anfrage mit JSON-Body. Einrichten im Portal unter Webhooks – Ziel-URL (https) eintragen, gewünschte Ereignisse wählen, fertig. Funktioniert mit Zapier, Make, n8n oder eigener Software.

order.paidBestellung bezahlt – Bestellcode, Event, Käufer, Betrag, Anzahl Tickets
order.cancelledBestellung storniert (z. B. Rücklastschrift)
order.refundedTicket erstattet (Storno durch den Käufer)
event.cancelledEvent abgesagt
ticket.checked_inTicket beim Einlass gescannt – Ticket-Code, Kategorie, Platz, Wiedereinlass ja/nein
POST https://euer-system.example/hook
Content-Type: application/json
X-Ticketplus-Event: order.paid
X-Ticketplus-Delivery: <Zustell-ID>
X-Ticketplus-Signature: sha256=<HMAC-SHA256 des rohen Bodys mit eurem Secret>

{"id":"evt_…","type":"order.paid","createdAt":"2026-10-02T12:00:00.000Z",
 "data":{"orderCode":"TP-4F8A21","eventTitle":"…","totalCents":5800,"ticketCount":2}}

// Signatur prüfen (Node.js):
const expected = "sha256=" + crypto.createHmac("sha256", SECRET).update(rawBody).digest("hex");
const ok = signatureHeader.length === expected.length &&
  crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader));
if (!ok) return 401;

Antwortet euer System nicht mit 2xx, versuchen wir es mit steigendem Abstand bis zu 6-mal. Nach 20 Fehlschlägen in Folge pausiert der Endpunkt automatisch (im Portal wieder aktivierbar). Über die X-Ticketplus-Delivery-ID lassen sich doppelte Zustellungen erkennen.

Zwei feste Regeln

🏷️
Ticket+-Branding bleibt sichtbar

Jede API-Antwort enthält einen poweredBy-Block (Name, Logo, Link). Wer Events/Kalender einbindet, zeigt „Tickets über Ticket+“ mit Verlinkung auf ticket-plus.net – wie beim bestehenden Einbett-Widget. Das gilt für alle Integrationen, unabhängig von der Größe.

🔗
Kauf läuft immer über Ticket+

Die API liefert Daten und Deep-Links (ticketPlusUrl, widgetUrl) – kein eigener Checkout, kein White-Label-Ticketshop. Für enge Einbindung ohne Seitenwechsel gibt es das widgetUrl (iframe), für alles andere den direkten Link.

Fragen zur Integration?

Schreibt uns über das Kontaktformular – gerade bei individuellen Wünschen wie einer engen Verdrahtung in eure eigene Veranstaltungsseite.

Zum Kontaktformular

Diese Seite ist in der App nicht verfügbar

Hier findest du Tickets für Veranstaltungen und deine gekauften Tickets.

Zu den Veranstaltungen