# Benutzerzentrierte API

## registerUser

`POST` `https://api.pushwoosh.com/json/1.3/registerUser`

Verknüpft eine externe Benutzer-ID mit einem bestimmten Gerät.

#### Anfrage-Header

| Name          | Erforderlich | Wert          | Beschreibung                                                                                                                              |
|---------------|--------------|---------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| Authorization | Ja           | Token `XXXX`  | [API-Geräte-Token](/de/developer/api-reference/api-access-token/#device-api-token) für den Zugriff auf die Geräte-API. Ersetzen Sie `XXXX` durch Ihr tatsächliches API-Geräte-Token. |

#### Anfrage-Body

| Name        | Erforderlich | Typ     | Beschreibung                                                                                                                                 |
| ----------- |--------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------|
| userId      | Nein         | string  | [Benutzer-ID](/de/developer/api-reference/api-identifiers/#user-id) zur Verknüpfung mit einem Gerät. Wenn leer, wird hwid verwendet.              |
| application | Ja           | string  | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code)                                                        |
| hwid        | Ja           | string  | [Pushwoosh-HWID](/de/developer/api-reference/api-identifiers/#hardware-id)                                                                      |
| tz\_offset  | Nein         | integer | Zeitzonenversatz in Sekunden für das Gerät.                                                                                                  |
| device\_type| Nein         | integer | [Gerätetyp](/de/developer/api-reference/api-identifiers/#device-type). Mögliche Werte finden Sie unter `/registerDevice`.                         |

Kann später im API-Aufruf [`/createMessage`](/de/developer/api-reference/messages-api/#createmessage) verwendet werden (der Parameter _users_).\
Sie können diese Funktion aufrufen, bevor Sie das Push-Token haben und bevor der Aufruf von [`/registerDevice`](/de/developer/api-reference/device-api/#registerdevice) erfolgt.

#### Anfragebeispiel

```json
{
  "request": {
    "userId": "user_3078a",                     // optional. If empty, use hwid
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // required. Hardware device ID
    "tz_offset": -3600,                         // optional. Timezone offset in seconds
    "device_type": 3                            // optional. Device type, see /registerDevice
                                                //           for device types
  }
}
```

#### Antwortbeispiel

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200, 
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

<Aside type="note">
Für E-Mails rufen Sie [`/registerEmailUser`](/de/developer/api-reference/email-api/#registeremailuser) auf.
</Aside>

## deleteUser

`POST` `https://api.pushwoosh.com/api/v2/device-api/deleteUser`

Löscht einen Benutzer und alle Geräte, die mit der angegebenen [Benutzer-ID](/de/developer/api-reference/api-identifiers/#user-id) innerhalb der Anwendung verknüpft sind. Die Anfrage wird asynchron verarbeitet, und der Endpunkt gibt `200 OK` zurück, sobald die Löschanfrage zur Verarbeitung angenommen wurde.

#### Anfrage-Header

| Name          | Erforderlich | Wert             | Beschreibung                                                                                                                              |
|---------------|--------------|------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| Authorization | Ja           | Token `XXXX`     | [API-Geräte-Token](/de/developer/api-reference/api-access-token/#device-api-token) für den Zugriff auf die Geräte-API. Ersetzen Sie `XXXX` durch Ihr tatsächliches API-Geräte-Token. |
| Content-Type  | Ja           | application/json |                                                                                                                                           |

#### Anfrage-Body

| Name        | Erforderlich | Typ    | Beschreibung                                                                                                                                                           |
| ----------- |--------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| application | Ja           | string | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code)                                                                                  |
| user\_id    | Ja           | string | [Benutzer-ID](/de/developer/api-reference/api-identifiers/#user-id) zum Löschen. Alle Geräte, die mit diesem Benutzer in der angegebenen Anwendung verknüpft sind, werden entfernt. |


#### Anfragebeispiel

```json
{
  "application": "XXXXX-XXXXX",   // required. Pushwoosh application code
  "user_id": "user_3078a"         // required. User ID to delete
}
```

#### Antwortbeispiel

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

##### Statuscodes

| HTTP-Statuscode | status\_code | Beschreibung                                       |
| --------------- | ------------ | -------------------------------------------------- |
| 200             | 200          | Löschanfrage angenommen                            |
| 200             | 210          | Argumentfehler. Siehe status\_message für weitere Informationen. |
| 400             | N/A          | Fehlerhafte Anforderungszeichenfolge               |
| 401             | N/A          | Fehlendes oder ungültiges Autorisierungs-Token     |
| 500             | 500          | Interner Fehler                                    |

## postEvent

`POST` `https://api.pushwoosh.com/json/1.3/postEvent`

Löst ein Event aus.

#### Anfrage-Header

| Name          | Erforderlich | Wert         | Beschreibung                                                                                                                              |
|---------------|--------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| Authorization | Ja           | Token `XXXX` | [API-Geräte-Token](/de/developer/api-reference/api-access-token/#device-api-token) für den Zugriff auf die Geräte-API. Ersetzen Sie `XXXX` durch Ihr tatsächliches API-Geräte-Token. |


#### Anfrage-Body

| Name             | Erforderlich | Typ     | Beschreibung                                                                                                                                                                     |
| ---------------- |--------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| hwid             | Ja           | string  | [Hardware-Geräte-ID](/de/developer/api-reference/api-identifiers/#hardware-id), die in einer /registerDevice-Anfrage verwendet wird. Kann zusammen mit 'userId' verwendet werden, um einen Benutzer zu identifizieren, der ein Event ausgelöst hat. |
| application      | Ja           | string  | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code)                                                                                            |
| event            | Ja           | string  | [Event-Name](/de/developer/api-reference/api-identifiers/#event-name) genau so, wie er im Pushwoosh Control Panel erstellt wurde.                                                      |
| attributes       | Ja           | object  | JSON-Objekt mit den Event-Attributen. Lassen Sie es leer, wenn keine Attribute übergeben werden müssen.                                                                            |
| timestampUTC     | Nein         | integer | Zeitstempel in UTC.                                                                                                                                                              |
| timestampCurrent | Nein         | integer | Zeitstempel in lokaler Zeit.                                                                                                                                                     |
| userId           | Ja           | string  | [Benutzer-ID](/de/developer/api-reference/api-identifiers/#user-id), die mit einem Benutzer verknüpft ist, der das Event ausgelöst hat. Kann durch eine HWID ersetzt oder zusammen mit dieser verwendet werden. |
| device\_type     | Nein         | integer | [Siehe mögliche Werte](/de/developer/api-reference/api-identifiers/#device-type)                                                                                                   |

Der Name des Events in der Anfrage muss mit dem Event-Namen im Pushwoosh Control Panel übereinstimmen. Beachten Sie, dass die Eigenschaft "attributes" leer sein kann (aber nicht weggelassen werden darf), falls das Event keine Attribute hat.

#### Anfragebeispiel

```json
{
  "request":{ 
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // required. Hardware device ID used in a /registerDevice API.
                                                //           Can be used along with an userId to identify a 
                                                //           user who has triggered an event.
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "event": "activityCompleted",               // required. Event name exactly as created in Pushwoosh Control Panel
    "attributes": {                             // required. Leave empty if no attributes need to be passed. 
      "login": "facebook",
      "success": "yes",
      "internet": "wifi"
    },
    "timestampUTC": 1435228403,                 // optional. Timestamp in UTC
    "timestampCurrent": 1435253603,             // optional. Timestamp in local time
    "userId": "someuser@user.com",              // required. A user id which is used for identification of 
                                                //           users on multiple devices. Can be replaced by
                                                //           or used along with an HWID.
    "device_type": 1                            // optional.
  }
}

```

#### Antwortbeispiel

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "code": "61BC9-84DD0"
  }
}
```
</TabItem>
</Tabs>

#### Senden von Conversion-Events

Um Umsätze direkt zu melden, anstatt [ein bestehendes Event zuzuordnen](/de/product/audience-data-and-segmentation/events/conversion-events/), senden Sie `postEvent` mit `PW_Conversion` als Event-Namen und dem `value` und der `currency` der Transaktion in den `attributes`:

```json
{
  "request":{
    "hwid": "8f65b16df378e7a6bece9614e1530fb2",
    "application": "XXXXX-XXXXX",
    "event": "PW_Conversion",
    "attributes": {
      "value": 49.99,               // required. Transaction amount
      "currency": "USD",            // required. ISO 4217 currency code
      "transaction_id": "txn_8f21", // optional. Your own transaction reference
      "product_id": "prod_premium"  // optional
    },
    "userId": "someuser@user.com"
  }
}
```

<Aside type="note">
`transaction_id` wird von Pushwoosh nicht zur Deduplizierung von Umsätzen verwendet – es wird unverändert für Ihre eigene Berichterstattung und Abstimmung gespeichert. Wenn Sie dieselbe Transaktion mehr als einmal melden, wird jeder Aufruf separat erfasst. Siehe [Conversion-Events](/de/product/audience-data-and-segmentation/events/conversion-events/), um zu erfahren, wie kanonische Events und Event-Mapping zusammenpassen.
</Aside>