Einmalpasswort (OTP) senden
API-URL
URL, an die HTTP-Anfragen gesendet werden:
Wenn die Anfrage ihr Ziel nicht erreicht, wiederholen Sie sie auf dem Backup-Server backup1.bulkgate.com.
Unterstützte HTTP-Methoden
POST-application/json
Zusätzlich zu request_quota_number gilt für den Endpunkt ein kontoweites Limit von 60 Anfragen pro Minute. Bei Überschreitung wird the_quota_of_send_per_minute_has_been_exceeded zurückgegeben.
Parametertabelle
| PARAMETERNAME | WERT | PFLICHT | STANDARDWERT |
|---|---|---|---|
| application_id | Anwendungs-ID | Ja | - |
| application_token | Anwendungstoken | Ja | - |
| number | Telefonnummer, an die der Verifizierungscode gesendet wird | Ja | - |
| country | Ländercode der Telefonnummer | nein | Der Wert wird aus dem Profil übernommen. |
| language | Sprache des Nachrichtentextes, einer der 100 unterstützten ISO-Codes. Ein unbekannter Code führt zur Ablehnung der Anfrage. Ohne Angabe wird die Sprache anhand der Telefonnummer ermittelt. | nein | null |
| code_type | Typ des Codes. (string, int oder combined) |
nein | int |
| code_length | Länge des Verifizierungscodes (4–100). | nein | 6 |
| request_quota_number | Anzahl der Anfragen pro Minute für request_quota_identification |
nein | 1 |
| request_quota_identification | Identifikation des „OTP-Nutzers / Anfragenden“, für den das Kontingent request_quota_number pro Minute gilt. Wir empfehlen, dafür eine IP-Adresse zu verwenden. |
Ja | - |
| trials_available_resend | Limit der verfügbaren erneuten Sendungen | nein | null - unbegrenzt |
| trials_available_verification | Limit der verfügbaren Verifizierungen | nein | null - unbegrenzt |
| daily_limit | Limit der verfügbaren Anfragen pro Tag (gleitend über die letzten 24 Stunden) | nein | null - unbegrenzt |
| daily_limit_country | Tageslimit pro Land als Map {"cz": 100, "sk": 50}. Ist es ausgefüllt, sind nur die aufgeführten Länder erlaubt — jedes andere Land schlägt mit country_is_disabled fehl. |
nein | null - unbegrenzt |
| expiration | Ablaufzeit der OTP-Anfrage in Sekunden; nach Ablauf dieser Zeit ist die Anfrage nicht mehr möglich. Ein Wert unter 60 wird ignoriert und der Standardwert verwendet. |
nein | 604800 - 7 Tage |
| channel | Alternative Kanäle. Die Kanäle sind in einer Kaskade angeordnet: Kann Ihre Nachricht nicht über den Kanal mit der höchsten Priorität zugestellt werden, werden die weiter unten in der Kaskade aufgeführten Kanäle verwendet. Gelingt die Zustellung über keinen von ihnen, wird stattdessen SMS verwendet. | nein | SMS, Viber, RCS, WhatsApp oder Text2Voice |
Kanäle
Das Objekt channel legt fest, über welche Kanäle der Code zugestellt wird und in welcher Reihenfolge. Die Reihenfolge der Schlüssel in der Anfrage ist die Reihenfolge der Kaskade — kann der erste Kanal den Code nicht zustellen, wird der nächste versucht. Gelingt es keinem von ihnen, wird SMS verwendet.
SMS-Objekt
| PARAMETERNAME | WERT | PFLICHT | STANDARDWERT |
|---|---|---|---|
| sender_id | Absenderkennung, siehe Typ der Absenderkennung | nein | gSystem |
| sender_id_value | Wert des Absenders - gOwn (z. B. „420 777 777 777“), gText (z. B. „BulkGate“), gProfile (z. B. „423“), gMobile oder gPush (KEY) |
nein | null |
| domain | URL einer Website, die WebOTP für die automatische Eingabe des empfangenen Codes nutzt. | nein | null |
Viber-Objekt
| PARAMETERNAME | WERT | PFLICHT | STANDARDWERT |
|---|---|---|---|
| sender | Name Ihres registrierten Absenders für Viber | Ja | - |
| expiration | Sekunden, die gewartet wird, bevor ein anderer Kanal versucht wird | nein | 60 |
| code_type | Von Viber verlangter Codetyp, angegeben in der genehmigten OTP-Vorlage. | nein | null |
| code_reason | Grund für das Senden des Codes, von Viber verlangt. | nein | null |
| business_name | In der Nachricht angezeigter Firmenname. | nein | null |
RCS-Objekt
| PARAMETERNAME | WERT | PFLICHT | STANDARDWERT |
|---|---|---|---|
| sender | Textabsender für RCS. Er muss zuerst registriert werden — wenden Sie sich zur Registrierung an unseren Support. | Ja | - |
| expiration | Sekunden, die gewartet wird, bevor ein anderer Kanal versucht wird | nein | 60 |
| use_card | Sendet den Code als Karte statt als reinen Text. | nein | false |
WhatsApp-Objekt
| PARAMETERNAME | WERT | PFLICHT | STANDARDWERT |
|---|---|---|---|
| sender | Ihr registrierter WhatsApp-Absender | Ja | - |
| template | Name der genehmigten WhatsApp-Vorlage, über die der Code zugestellt wird. | Nein | verification_code |
| language | Sprache der Vorlage. Ohne Angabe wird language aus der Anfrage verwendet. |
Nein | null |
| expiration | Sekunden, die gewartet wird, bevor ein anderer Kanal der Kaskade versucht wird. Minimum 60. |
Nein | 180 |
Text2Voice-Objekt
Der Code wird vorgelesen. Die Nachricht kann wiederholt werden, damit der Empfänger ihn notieren kann.
| PARAMETERNAME | WERT | PFLICHT | STANDARDWERT |
|---|---|---|---|
| sender | Ihre registrierte Anrufernummer. | Ja | - |
| language | Sprache der Stimme, einer der 47 unterstützten ISO-Codes. Ohne Angabe wird language aus der Anfrage verwendet. |
Nein | null |
| prefer_gender | Bevorzugte Stimme - male oder female. |
Nein | male |
| safety_statement | Stellt dem Anruf einen Sicherheitshinweis voran. | Nein | true |
| repeat | Wie oft der Code während des Anrufs wiederholt wird. | Nein | 1 |
| expiration | Sekunden, die gewartet wird, bevor ein anderer Kanal der Kaskade versucht wird. Minimum 60. |
Nein | 180 |
Beispielanfrage
Antwort
Bei Erfolg:
Bei einem Fehler:
Dabei gilt:
- type und error (Beschreibung des Fehlers) finden Sie in der Tabelle der Fehlertypen
- code steht für den HTTP-Fehler
- detail enthält zusätzliche Informationen zum Fehler
Fehlertypen der OTP API
Zusätzlich zu den allgemeinen Typen gibt die OTP API eigene Typen zurück:
| TYP | WANN ER AUFTRITT |
|---|---|
the_quota_of_send_per_minute_has_been_exceeded |
Das Sendekontingent pro Minute ist ausgeschöpft. |
the_quota_of_one_additional_resend_per_minute_has_been_exceeded |
Erneutes Senden früher als 60 s nach dem vorherigen. |
the_quota_of_one_additional_resend_has_been_exceeded |
trials_available_resend ist ausgeschöpft. |
the_quota_of_one_additional_verification_has_been_exceeded |
trials_available_verification ist ausgeschöpft. |
daily_limit_reached |
daily_limit ist ausgeschöpft. |
country_is_disabled |
Das Land der Nummer ist in daily_limit_country nicht aufgeführt. |
country_daily_limit_exceeded |
Das Tageslimit für dieses Land ist ausgeschöpft. |
invalid_phone_number |
Die Nummer konnte nicht erkannt werden. |
invalid_code |
Der verifizierte Code stimmt nicht überein. |
unknown_channel |
Die Kaskade enthält einen Kanal, den die OTP API nicht kennt. |
request_can_not_be_created |
Die Anfrage konnte nicht erstellt werden. |
Vielen Dank für Ihr Feedback.