Jede über BulkGate gesendete Nachricht erhält ihre eigene `Nachrichten ID`. Sie ist der einzige Wert, mit dem wir eine bestimmte Nachricht zurückverfolgen können – im Portal, in der API-Antwort und beim Zustellanbieter. Früher hieß sie `SMS-ID`; es ist derselbe Wert, er wurde nur unterwegs umbenannt, weil wir schon lange nicht mehr nur SMS versenden.

## Was die Nachrichten-ID ist

Die `Nachrichten ID` ist eine Textkennung einer Nachricht an einen Empfänger.

- **BulkGate vergibt sie automatisch** in dem Moment, in dem die Nachricht angenommen wird. Sie können sie weder selbst wählen noch nachträglich ändern.
- **Sie gilt für eine Nachricht an eine Nummer.** Wenn Sie eine [Kampagne](https://www.bulkgate.com/de/hilfe-center/kampagne/sms-kampagne-erstellen/) an tausend Nummern senden, entstehen tausend verschiedene Werte der `Nachrichten ID`, nicht ein gemeinsamer.
- **Ihr Aufbau unterscheidet sich** je nach Schnittstelle, über die Sie senden. Behandeln Sie sie als undurchsichtige Zeichenkette – leiten Sie daraus weder das Datum noch den Kanal oder sonst etwas ab und versuchen Sie nie, selbst eine zu erzeugen.

> [!TIP]
> Wenn Sie Nachrichten mit einem eigenen Wert kennzeichnen möchten – einer Bestellnummer, einer Kunden-ID –, ist dafür der `Tag (TAG)` gedacht, nicht die `Nachrichten ID`. Den Unterschied beschreibt der Abschnitt [Worin sie sich von den anderen Kennungen unterscheidet](#worin-sie-sich-von-den-anderen-kennungen-unterscheidet).

## Warum sie früher SMS-ID hieß

Der Name `SMS-ID` stammt aus der Zeit, als BulkGate nur SMS versendet hat. Heute laufen Viber, WhatsApp und RCS auf demselben Weg, deshalb heißt die Kennung `Nachrichten ID` – im Portal und in den neueren Schnittstellen.

Die älteren APIs haben ihr Feld jedoch nicht umbenannt, um bestehende Integrationen nicht zu beschädigen:

| Wo | Wie das Feld heißt |
|:--|:--|
| Portal | `Nachrichten ID` |
| Simple API, Advanced API Version `1.0` | `sms_id` |
| Advanced API Version `2.0`, Integration API, Einmalpasswörter | `message_id` |
| Zustellbestätigung (Webhook) | `smsID` |

In allen Fällen ist es **derselbe Wert**. Wenn Sie also `sms_id` aus einer Antwort der Simple API nehmen und im Verlauf unter `Nachrichten ID` danach suchen, finden Sie genau diese Nachricht.

## Wo Sie die ID im Portal finden

1. Klicken Sie im Menü auf `Berichte`
2. Klicken Sie auf `Geschichte`
3. Klicken Sie auf die Zeile der Nachricht – das Detail klappt auf
4. Die `Nachrichten ID` steht rechts im Detail; ein Klick markiert den ganzen Wert, sodass Sie ihn kopieren können

Es funktioniert auch umgekehrt: Wenn Sie die `Nachrichten ID` bereits haben und die Nachricht finden möchten, öffnen Sie über der Tabelle den `Filter` und fügen Sie den Wert in das Feld `Nachrichten ID` ein. Derselbe Wert ist auch im Export des Verlaufs als `CSV` enthalten.

Was der Verlauf anzeigt und wie Sie ihn filtern, beschreibt die Seite [Verlauf](https://www.bulkgate.com/de/hilfe-center/reporting/verlauf/).

> [!IMPORTANT]
> Der Nachrichtentext wird im Verlauf nicht unbegrenzt aufbewahrt – ältere Einträge zeigen stattdessen `Diese Nachricht ist abgelaufen`. Die `Nachrichten ID` und die übrigen Angaben bleiben erhalten.

## Wo Sie die ID in der API-Antwort finden

Die Schnittstellen geben die `Nachrichten ID` direkt in der Antwort auf die Sendeanfrage zurück – das ist der einzige Moment, in dem Sie sie programmatisch erhalten. Speichern Sie sie daher in diesem Schritt.

| Schnittstelle | Wie das Feld heißt |
|:--|:--|
| [Simple API](https://www.bulkgate.com/de/dokumentation/simple-api/simple-transactional/) | `sms_id` |
| [Advanced API `1.0`](https://www.bulkgate.com/de/dokumentation/advanced-api/advanced-transactional/1.0/) | `sms_id` |
| [Advanced API `2.0`](https://www.bulkgate.com/de/dokumentation/advanced-api/advanced-transactional/2.0/) | `message_id` |
| [Integration API](https://www.bulkgate.com/de/dokumentation/integration-api/integration-transactional/) | `message_id` |
| [Einmalpasswörter](https://www.bulkgate.com/de/dokumentation/otp-api/einmalpasswort-senden/) | `message_id` |

Daneben gibt jede von ihnen auch ein Array `part_id` zurück – beschrieben im Abschnitt [Was part_id ist](#was-part-id-ist).

Beim Massenversand enthält die Antwort ein Array `response` mit einem eigenen Eintrag für jeden Empfänger. Die `Nachrichten ID` endet dann mit der laufenden Nummer der Nachricht innerhalb des Stapels:

```json
{
    "data": {
        "response": [
            {
                "status": "accepted",
                "message_id": "transactional-64afe5f28ffc2-0",
                "part_id": ["transactional-64afe5f28ffc2-0"],
                "number": "420777777777",
                "channel": "sms"
            },
            {
                "status": "accepted",
                "message_id": "transactional-64afe5f28ffc2-1",
                "part_id": ["transactional-64afe5f28ffc2-1"],
                "number": "420777777778",
                "channel": "sms"
            }
        ]
    }
}
```

## Was part_id ist

Eine lange SMS wird nicht in einem Stück an das Netz des Betreibers übergeben – sie wird in mehrere einzelne Nachrichten aufgeteilt, die das Telefon des Empfängers wieder zusammensetzt. Jeder dieser Teile hat eine eigene ID, und `part_id` ist die Liste dieser IDs. Wann und warum eine Nachricht aufgeteilt wird, beschreibt die Seite [Nachrichtenverkettung](https://www.bulkgate.com/de/hilfe-center/sms/nachrichtenverkettung/).

Für das Array gelten drei Regeln:

- **Das letzte Element entspricht immer der `Nachrichten ID`** – es trägt kein Suffix.
- **Die vorangehenden Teile haben das Suffix `_1`, `_2`** usw., in der Reihenfolge, in der die Nachricht zusammengesetzt wird.
- **Eine nicht aufgeteilte Nachricht hat in `part_id` ein einziges Element**, identisch mit der `Nachrichten ID`. Das gilt für jede einteilige SMS sowie für alle Viber-, WhatsApp- und RCS-Nachrichten – diese werden nie in Teile aufgeteilt.

Die Antwort für eine in drei Teile aufgeteilte SMS sieht also so aus:

```json
{
    "data": {
        "status": "accepted",
        "sms_id": "tmpde1bcd4b1d1",
        "part_id": [
            "tmpde1bcd4b1d1_1",
            "tmpde1bcd4b1d1_2",
            "tmpde1bcd4b1d1"
        ],
        "number": "420777777777"
    }
}
```

> [!IMPORTANT]
> Jeder Teil wird als eigene SMS berechnet. Die Anzahl der Elemente in `part_id` ist daher auch die Anzahl der Nachrichten, die Sie bezahlen – im obigen Beispiel drei, obwohl Sie eine gesendet haben.

> [!TIP]
> Für die Zuordnung von Antworten und Zustellbestätigungen genügt die `Nachrichten ID`. Die `part_id` ist nützlich, wenn Sie schon beim Senden wissen möchten, in wie viele Teile die Nachricht zerfallen ist, ohne darauf zu warten, dass sie im Verlauf erscheint.

## Wo Sie die ID im Webhook finden

Die Zustellbestätigung kommt an die von Ihnen eingestellte Adresse, und die `Nachrichten ID` steht in ihrem Parameter `smsID`. Damit ordnen Sie die Bestätigung der gesendeten Nachricht zu.

- **Einzeln** kommt die Anfrage per `GET` mit den Werten im Query-String – siehe [Zustellbestätigung](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-zustellbestaetigungen-und-eingehende-sms/).
- **Gesammelt** kommt eine einzige `POST`-Anfrage mit einem Array von Einträgen im Format `JSON` – siehe [Gesammelte Zustellbestätigung](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-sammel-zustellbestaetigungen-und-eingehende-nachrichten/).

Wo die Adresse für Zustellbestätigungen eingestellt wird, beschreibt die Seite [Webhooks](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/webhooks/).

> [!NOTE]
> Eine Nachricht kann mehrere Bestätigungen mit derselben `smsID` auslösen – der Status `2` bedeutet, dass die Nachricht beim Betreiber in der Warteschlange steht und das Ergebnis später eintrifft. Rechnen Sie damit, denselben Wert mehrmals zu sehen.

> [!WARNING]
> Eingehende Nachrichten und Antworten, die Sie an `status` mit dem Wert `10` erkennen, haben keinen Parameter `smsID`. Sie sind keine Bestätigung für eine von Ihnen gesendete Nachricht, sondern eine neue Nachricht des Empfängers.

## Wofür die Nachrichten-ID verwendet wird

- **Meldung eines Zustellproblems.** Ohne die `Nachrichten ID` können wir eine bestimmte Nachricht beim Zustellanbieter nicht zurückverfolgen. Das gesamte Vorgehen beschreibt die Seite [Die Nachricht wurde nicht zugestellt](https://www.bulkgate.com/de/hilfe-center/allgemeine-informationen/nachricht-nicht-zugestellt/) – einer Meldung können Sie bis zu drei verschiedene Werte der `Nachrichten ID` beifügen.
- **Zuordnung im eigenen System.** Speichern Sie die `Nachrichten ID` aus der API-Antwort zusammen mit der Bestellung oder dem Kunden und ordnen Sie eingehende Zustellbestätigungen über den Parameter `smsID` zu.
- **Suche einer Nachricht im Verlauf.** Die `Nachrichten ID` ist der einzige Filter, der genau zu einer Nachricht führt; über die Nummer oder die Kampagne finden Sie mehrere.

## Worin sie sich von den anderen Kennungen unterscheidet

Das Nachrichtendetail im Verlauf zeigt neben der `Nachrichten ID` weitere Kennungen. Sie lassen sich leicht verwechseln, beantworten aber jeweils eine andere Frage:

| Kennung | Was sie kennzeichnet | Wer sie festlegt |
|:--|:--|:--|
| `Nachrichten ID` | Eine Nachricht an einen Empfänger | BulkGate |
| `Kampagnen-ID` | Eine ganze [Kampagne](https://www.bulkgate.com/de/hilfe-center/kampagne/sms-kampagne-erstellen/), also alle zusammen gesendeten Nachrichten | BulkGate |
| `Tag (TAG)` | Alles, was Sie selbst kennzeichnen – eine Bestellung, einen Kunden, einen Skriptlauf | Sie |
| `Application ID` | Die [Anwendung](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-tokens/), aus der die Nachricht gesendet wurde | BulkGate |

> [!TIP]
> Den `Tag (TAG)` legen Sie als einzige dieser Kennungen selbst fest. Wenn Sie ihn beim Senden ausfüllen, können Sie den Verlauf später danach filtern, ohne eine `Nachrichten ID` zu kennen – praktisch, wenn Sie alle Nachrichten zu einer Bestellung finden müssen.
