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×tamp=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
|
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"
}
]