API-Schnittstelle

API-Schnittstelle

API-Schnittstelle

Das Plugin stellt eine Admin-REST-API für externe Systeme (z.B. Ticketscanner, Einlasskontrolle) bereit.

Vollständige API-Referenz: shopware.stoplight.io – Authentication


Authentifizierung

Client Credentials

POST /api/oauth/token
{ "grant_type": "client_credentials", "client_id": "<client_id>", "client_secret": "<client_secret>" }

Password Grant

POST /api/oauth/token
{ "client_id": "administration", "grant_type": "password", "scopes": "write", "username": "<username>", "password": "<password>" }

Response:

{ "token_type": "Bearer", "expires_in": 600, "access_token": "...", "refresh_token": "..." }

Routen

App-API aktivieren

GET /api/fgits/tickets/api/activate Authorization: Bearer <access_token>

Sendet eine Aktivierungs-E-Mail mit QR-Code an die E-Mail-Adresse des authentifizierten Benutzers.

Response:

{ "status": "OK" }

Events abrufen

GET /api/fgits/tickets/api/events Authorization: Bearer <access_token>

Parameter:

Parameter

Typ

Pflicht

Beschreibung

Parameter

Typ

Pflicht

Beschreibung

`timezone`

int (0/1)

nein

`1` = Zeitzone aus Plugin-Konfiguration für `datetime` verwenden (ab v3.4.7)

Gibt Informationen über Ticket-Events (Produkte mit Ticket-Markierung) aus.

Response:

{ "data": [ { "id": "abc123...", "name": "Konzert 2026", "datetime": "2026-06-01T18:00:00+02:00", "createdAt": "2025-01-15T10:00:00+00:00" } ], "success": true }

Tickets abrufen

GET /api/fgits/tickets/api/tickets Authorization: Bearer <access_token>

Parameter:

Parameter

Typ

Pflicht

Beschreibung

Parameter

Typ

Pflicht

Beschreibung

`event_ids`

array

nein

Filtert Tickets auf bestimmte Event-IDs

`extended`

int (0/1)

nein

`1` = Gibt zusätzlich `event_name` und `event_datetime` aus (ab v3.4.6)

`timezone`

int (0/1)

nein

`1` = Zeitzone aus Plugin-Konfiguration verwenden (ab v3.4.7)

Response (extended: 0):

{ "data": [ { "id": "uuid...", "ticketId": "100001000001123454", "createdAt": "2026-03-01T10:00:00+00:00", "personalizedFullname": "Max Mustermann", "personalizedEmail": "max@example.com", "personalizedCustomFields": [], "customerFullname": "Max Mustermann", "checkInDatetime": null, "active": true, "event_id": "product-uuid..." } ], "success": true }

Response (extended: 1): Zusätzlich:

{ "event_name": "Konzert 2026", "event_datetime": "2026-06-01T18:00:00+02:00" }

Ticket scannen

POST /api/fgits/tickets/api/tickets Authorization: Bearer <access_token> Content-Type: application/json

Body:

Parameter

Typ

Pflicht

Beschreibung

Parameter

Typ

Pflicht

Beschreibung

`ticket_id`

string

ja

Die Ticketnummer (z.B. SSCC-18-Code oder UUID-basierter Hash)

`event_ids`

array

nein

Filtert auf bestimmte Events

`check_in`

int (0/1)

nein

`0` = Ticket nicht als gescannt markieren (Standard: 1) (ab v3.4.6)

`extended`

int (0/1)

nein

`1` = Gibt zusätzlich Event-Infos zurück (ab v3.4.6)

`timezone`

int (0/1)

nein

`1` = Zeitzone aus Plugin-Konfiguration verwenden (ab v3.4.7)

Gibt Informationen über das Ticket aus und markiert es standardmäßig als gescannt (Check-in).

Wenn das Ticket bereits gescannt oder deaktiviert wurde, wird "success": false zurückgegeben.

Response (extended: 0):

{ "data": { "id": "uuid...", "ticketId": "100001000001123454", "createdAt": "2026-03-01T10:00:00+00:00", "personalizedFullname": "Max Mustermann", "personalizedEmail": "max@example.com", "personalizedCustomFields": [], "customerFullname": "Max Mustermann", "checkInDatetime": "2026-06-01T18:05:00+02:00", "active": true, "event_id": "product-uuid..." }, "success": true }

`success: false` wenn:

  • Ticket bereits gescannt (`checkInDatetime` ist gesetzt)

  • Ticket deaktiviert (`active: false`)

  • Ticket nicht gefunden


Hinweis zu Ticketnummern (SSCC-18, ab v3.9.0)

Wenn das SSCC-18-Format aktiviert ist, besteht die `ticketId` aus 18 Stellen:

[Event-ID 6-stellig][Sequenz 6-stellig][Zufall 5-stellig][GS1-Prüfziffer 1-stellig]

Beispiel: 100001000001123454

  • `100001` — Event-ID

  • `000001` — Sequenznummer (atomar, eindeutig pro Event)

  • `12345` — Zufallskomponente

  • `4` — GS1 Modulo-10 Prüfziffer

Die Sequenzvergabe ist transaktionssicher und parallelitätssicher (validiert mit 50 gleichzeitigen Prozessen ohne Duplikate).