# Aktualisieren

`POST` `https://api.pushwoosh.com/messaging/v2/update`

Ersetzt eine zuvor erstellte Nachricht, die durch ihren `message_code` identifiziert wird, durch eine neue Definition. Die Ersetzung ist eine **vollständige Ersetzung, kein Patch**: Die neue Definition wird genau wie gesendet angewendet, und der `message_code` ändert sich nicht.

Die Aktualisierung ist nur verfügbar, solange die Nachricht noch **ausstehend** ist – also für einen zukünftigen Versand geplant und noch nicht zur Verarbeitung oder Zustellung abgerufen wurde.

<Aside type="caution" title="Wichtig">

- Das Feld `request` ist eine vollständige [`Notify`](/de/developer/api-reference/messaging-api-v2/notify/)-Definition. Felder, die Sie auslassen, werden **nicht** von der ursprünglichen Nachricht übernommen – sie werden zurückgesetzt. Senden Sie die vollständige Nachricht, die Sie wünschen, nicht nur die geänderten Teile.

- Wenn die Nachricht bereits verarbeitet wird, zugestellt, storniert oder gelöscht wurde, gibt die API `400` zurück. Dieser Aufruf ist nicht idempotent. Überprüfen Sie den Nachrichtenstatus, bevor Sie aktualisieren.
</Aside>

Um zu überprüfen, ob eine Nachricht noch in einem aktualisierbaren Zustand ist, siehe [Nachrichtenstatus prüfen](#nachrichtenstatus-prfen).


## Anfrage

Authentifizieren Sie sich mit Ihrem [Server-API-Token](/de/developer/api-reference/api-access-token/#server-api-token) im `Authorization: Token <API_TOKEN>`-Header.

| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `message_code` | string | Ja | [Nachrichtencode](/de/developer/api-reference/api-identifiers/#message-code) der zu aktualisierenden Nachricht, wie von [`Notify`](/de/developer/api-reference/messaging-api-v2/notify/) in `result.message_code` zurückgegeben. |
| `request` | object | Ja | Die vollständige neue Definition der Nachricht. Gleiche Form wie der [`Notify`](/de/developer/api-reference/messaging-api-v2/notify/)-Anfragetext – ein `segment`- oder `transactional`-Objekt. Wird genau wie `Notify` validiert. |

### Beispielanfrage

Eine Segmentnachricht neu planen und ihren Inhalt ändern:

```bash
curl -X POST https://api.pushwoosh.com/messaging/v2/update \
  -H "Authorization: Token YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "message_code": "XXXX-XXXXXXXX-XXXXXXXX",
    "request": {
      "segment": {
        "application": "XXXXX-XXXXX",
        "platforms": ["IOS", "ANDROID"],
        "code": "active_users",
        "payload": {
          "content": {
            "localized_content": {
              "en": {
                "ios":     { "body": "Updated message" },
                "android": { "body": "Updated message" }
              }
            }
          }
        },
        "schedule": { "at": "2026-05-02T12:00:00Z" },
        "message_type": "MESSAGE_TYPE_MARKETING"
      }
    }
  }'
```

## Antwort

Bei Erfolg wird HTTP 200 mit dem Ergebnis der aktualisierten Nachricht zurückgegeben. Der `message_code` bleibt unverändert.

```json
{
  "result": {
    "message_code": "XXXX-XXXXXXXX-XXXXXXXX",
    "unknown_identifiers": []
  }
}
```

- `message_code` (string): derselbe Code, der in der Anfrage übergeben wurde.
- `unknown_identifiers` (array of string): Kennungen in der neuen Definition, die nicht gefunden wurden, falls zutreffend (siehe [`Notify`](/de/developer/api-reference/messaging-api-v2/notify/)).

## Fehler

Fehler verwenden den Standard-gRPC-Gateway-Fehlerumschlag: `{ "code": ..., "message": ..., "details": [...] }`.

| HTTP-Status | Bedingung |
|---|---|
| `400` | `message_code` fehlt. |
| `400` | Die neue `request`-Definition fehlt oder ist ungültig (sie wird genau wie [`Notify`](/de/developer/api-reference/messaging-api-v2/notify/) validiert). |
| `400` | Die Nachricht befindet sich nicht in einem aktualisierbaren Zustand (sie ist nicht mehr `pending`). |
| `403` | Die Nachricht gehört zu einem anderen Konto. |
| `404` | Für den angegebenen `message_code` existiert keine Nachricht. |
| `500` | Beim Laden der Nachricht oder Anwenden der Aktualisierung ist ein interner Fehler aufgetreten. Wiederholen Sie die Anfrage. |


**Beispiel**

Das Aktualisieren einer nicht mehr existierenden Nachricht gibt HTTP `404` zurück:

```json
{
  "code": 5,
  "message": "message not found",
  "details": []
}
```

## Nachrichtenstatus prüfen

Vor der Aktualisierung können Sie überprüfen, ob sich eine Nachricht noch in einem aktualisierbaren Zustand befindet. Neben dem Lesen der Spalte **Status** in der Nachrichtentabelle im Control Panel ([**Kampagnen → Einmalige Nachrichten**](/de/product/statistics-and-analytics/message-history/)) können Sie den Status auch programmatisch mit [`messages:list`](/de/developer/api-reference/statistics-api/message-statistics-api/#messageslist) abfragen:

- Übergeben Sie den `message_code` im `filters.messages_codes`-Array (zusammen mit dem erforderlichen `filters.application`).
- Lesen Sie das `status`-Feld des übereinstimmenden Eintrags in `items[]`.

<Aside type="note">
`messages:list` ist Teil der Statistics API und verwendet einen anderen Auth-Header als dieser Endpunkt: `Authorization: Api <Server Key>`.
</Aside>

## Verwandte Themen

<CardGrid>
  <LinkCard title="Notify" href="/developer/api-reference/messaging-api-v2/notify/" />
  <LinkCard title="Cancel" href="/developer/api-reference/messaging-api-v2/cancel/" />
  <LinkCard title="Nachrichtenstatistiken" href="/developer/api-reference/statistics-api/message-statistics-api/#messageslist" />
  <LinkCard title="Messaging API v2 Übersicht" href="/developer/api-reference/messaging-api-v2/" />
  <LinkCard title="Migration von v1" href="/developer/api-reference/messaging-api-v2/migration-from-v1/" />
</CardGrid>