Direkt zum Hauptinhalt

Hinzufügen und Aktualisieren von Gast-Daten (push)

Aufruf

Die Übertragung erfolgt über eine HTTP-POST-Anfrage an folgende URL:

https://gwatch.events/ext-api/push

Authentifizierung

Folgende Header müssen gesetzt werden:

  • X-Api-key: Haupt-API-Schlüssel (Pflicht)
  • X-Api-push: zusätzlicher Import-Schlüssel (optional, empfohlen – bitte separat anfordern)

Request-Body (Payload)

1. meta

Enthält Steuerparameter für das Importverhalten:

  • failIfExists (Boolean): Gibt an, ob bei vorhandenem Ticketcode ein Fehler erzeugt wird oder die Daten aktualisiert werden.
  • insertAs (Integer): Definiert den Status für neue Datensätze:
    • 1: bereits bestätigt
    • 2: zu bestätigen (erfordert spätere Rückmeldung durch den Gast)
    Hinweis: Wird nur bei neu angelegten Gästen berücksichtigt.

2. guests

Enthält ein Array mit bis zu 100 Gast-Datensätzen. Jeder Datensatz ist ein Key-Value-Objekt, basierend auf den Feldern aus /metadata.

Besonderheiten:

  • Ticketcode: Fehlt er, wird ein neuer generiert. Ist er vorhanden, erfolgt eine Prüfung – abhängig von failIfExists.
  • Gates: Falls im Metadata-Abschnitt gates enthalten sind, kann zusätzlich ein Array gates mit Gate-IDs gesetzt werden. Ist das Array vorhandnen und fehlen in diesem Array dem Gast bereits zugewiesene Gates, werden sie entfernt.

Beispiel-Request

{
  "meta": {
    "failIfExists": false,
    "insertAs": 2
  },
  "guests": [
    {
      "GUEST_FIRST_NAME": "Max",
      "GUEST_LAST_NAME": "Mustermann",
      "GUEST_EMAIL": "max@example.com",
      "GUEST_TICKET_CODE": "ABC123",
      "gates": [1, 3]
    }
  ]
}

Response

HTTP Status Codes:

  • 422 Formale Fehler: z.B. fehlendes meta Objekt.
  • 200 OK: Alle Datensätze wurden erfolgreich verarbeitet.
  • 207 Multi-Status: Einige Datensätze konnten nicht verarbeitet werden (Details in results - s.u.).

Beispiel für HTTP 422

Request

{
    "meta": {
        "failIfExists": true,
        "insertAs": 3
    },
    "guests": [
        {
            "GUEST_TICKET_CODE": "223345",
            "GUEST_FIRST_NAME": "Hans",
            "GUEST_LAST_NAME": "Hermann",
            "gates": [6398]
        },
        {
            "GUEST_TICKET_CODE": "4711",
            "GUEST_FIRST_NAME": "Susi",
            "GUEST_LAST_NAME": "Sorglos",
            "gates": [6399]
        }
    ]
}

 

Response

{
    "error": true,
    "message": {
        "meta.insertAs": [
            "The value may not be greater than 2."
        ]
    }
}

Erfolgreiche oder Teilerfolgreiche Verarbeitung (HTTP 200, HTTP 207):

Der Response gliedert sich in zwei Bereiche:

1. summary

  • total: Anzahl der übergebenen Datensätze
  • created: neu angelegte Gäste
  • updated: aktualisierte Gäste
  • failed: fehlerhafte Einträge

2. results

Gibt für jeden Datensatz an, ob die Verarbeitung erfolgreich war oder nicht.

Beispiel für HTTP 207

Request:

{
    "meta": {
        "failIfExists": true,
        "insertAs": 2
    },
    "guests": [
        {
            "GUEST_TICKET_CODE": "223345",
            "GUEST_FIRST_NAME": "Hans",
            "GUEST_LAST_NAME": "Hermann",
            "gates": [6398]
        },
        {
            "GUEST_TICKET_CODE": "4711",
            "GUEST_FIRST_NAME": "Susi",
            "GUEST_LAST_NAME": "Sorglos",
            "gates": [6399]
        }
    ]
}

Response:

{
    "summary": {
        "total": 2,
        "created": 1,
        "updated": 0,
        "failed": 1
    },
    "results": [
        {
            "index": 0,
            "ticketCode": "223345",
            "id": 3247985,
            "status": "failed",
            "message": "Guest exists and failIfExists is set to true."
        },
        {
            "index": 1,
            "ticketCode": "4711",
            "id": 3247986,
            "status": "created",
            "message": null
        }
    ]
}