1. Home
  2. Gateway
  3. HTTP API
  4. Statusberichte

Statusberichte

Um Statusberichte zu erhalten, bieten sich Ihnen grundsätzlich zwei Möglichkeiten: Die wesentlich effizientere und schnellere Methode ist ein Callback direkt an Ihren Server. Sobald ein neuer Status vorhanden ist, wird automatisch Ihre gewünschte URL aufgerufen. Die alternative Methode ist es, über eine Anfrage an die API direkt den Status von SMS abzufragen. Sollte noch kein Status vorhanden sein, müssten Sie ggf. später erneut anfragen. Bitte verwenden Sie bestenfalls die Callbacks. Beide Varianten lassen sich auch kombinieren, z.B. falls der Callback fehlgeschlagen ist.

Statusberichte per Callback

Alternativ zur manuellen Abfrage können Sie in Ihrem Login unter Account > Entwickler > Webhooks eine URL einstellen, zu der unser Server automatisch eine HTTP-Anfrage sendet, sobald ein neuer Status verfügbar ist. Um Ressourcen zu schonen und damit Sie möglichst schnell den aktuellen Status erhalten, ist diese Methode der manuellen Abfrage vorzuziehen.

An Ihre URL, welche auch per SSL aufgerufen werden kann, werden dann die GET-Parameter msg_id, status und timestamp für die Nachrichten-ID, den aktuellen Statusbericht und den Zeitpunkt des Statusberichts angehängt.
Sollten wir Ihre Callback-URL nicht erreichen konnten (Zeitüberschreitung oder HTTP-Code 500), versuchen wir es bis zu 6 mal im Stundentakt erneut. Sofern große Mengen an Statusberichten bei Ihnen anfallen, ist eine kumulierte minütliche Absendung der Statusberichte möglich. Senden Sie uns hierzu bitte eine Nachricht.

Beispiel

Haben Sie z.B. folgende URL als Status URL eingetragen
https://www.ihrserver.de/status.php

Dann senden wir den Request z.B. so an Ihren Server:
https://www.ihrserver.de/status.php?msg_id=1234567&status=DELIVERED&timestamp=2020-01-09+15%3A41%3A30.656

Statusberichte abfragen

Über folgenden Endpunkt können Sie manuell den Statusbericht einer SMS abfragen:

https://gateway.sms77.io/api/status

Parameter Beschreibung Beispiel
msg_id Die Nachrichten-ID der SMS. Diese können Sie programmatisch beim SMS Versand über die API erhalten oder aus Ihrem Journal entnehmen. Bei Angabe mehrerer per Komma getrennten ID’s, wird eine Antwort als JSON formatiert zurückgegeben. 1234567
1234567,7654321

Falls kein Fehler auftritt, wird im MIME-Typ text/plain zuerst der Status und nach einem Zeilenumbruch der Zeitpunkt, zu dem der Status aktualisiert wurde, als Zeitstempel mit dem Datum im Format YYYY-MM-DD und dem Zeitpunkt mit Millisekunden ausgegeben.

Mögliche Statusberichte

DELIVERED
Die SMS wurde erfolgreich zugestellt.
NOTDELIVERED
Die SMS konnte nicht zugestellt werden. Bitte prüfen Sie ggf. die Empfängernummer.
BUFFERED
Die SMS wurde erfolgreich verschickt, wurde aber durch das SMSC zwischengespeichert, da der Empfänger nicht erreichbar ist.
TRANSMITTED
Die SMS wurde durch das SMSC verschickt und sollte demnächst ankommen.
ACCEPTED
Die SMS wurde durch das SMSC akzeptiert.
EXPIRED
Die SMS wurde nicht vor Ablauf der Gültigkeitsperiode empfangen.
REJECTED
Die SMS wurde durch den Betreiber abgelehnt.
FAILED
Es ist ein Fehler beim Versand aufgetreten.
UNKNOWN
Ein unbekannter Statusbericht.

Hinweis:
Bei Angabe einer ungültigen Nachrichten-ID, antwortet die Schnittstelle mit dem Code 600.

Beispiele

Wir haben für Sie ein paar Szenarien zur Veranschaulichung zusammengestellt.

Statusabfrage einer einzelnen SMS

Anfrage:
https://gateway.sms77.io/api/status?p=api-key&msg_id=12345678900

Antwort:

Wurde eine einzelne ID mitgeteilt, erfolgt die Rückgabe als reiner Text.
Die erste Zeilt enthält den Status und die zweite Zeile enthält einen Zeitstempel der letzten Änderung.

DELIVERED
2020-01-09 15:41:30.656

Statusabfrage mehrerer SMS

Anfrage:
https://gateway.sms77.io/api/status?p=api-key&msg_id=12345678900,12345678901

Antwort:

Wurden mehrere ID’s mitgeteilt, erfolgt die Rückgabe formatiert als JSON-Array mit Schlüsselpaaren.

[
	{
		"id": "12345678900",
		"status": "DELIVERED",
		"status_time": "2021-12-16 11:06:35.000"
	},
	{
		"id": "12345678901",
		"status": "TRANSMITTED",
		"status_time": "2021-12-16 11:57:49.000"
	}
]