Criar um código de verificação
Inicia um processo de verificação criando um novo código de verificação com uma estratégia de roteamento especificada.
Authorizations
Seção intitulada “Authorizations ”Request Body required
Seção intitulada “Request Body required ”The verify code request payload
Payload de escrita do código de verificação. Cria um novo pedido de código de verificação com uma estratégia de roteamento em várias etapas.
object
Número de telefone do destinatário em formato internacional (ex. +491701234567).
Código de verificação personalizado. Se não for fornecido, um código numérico aleatório é gerado automaticamente com base em code_length.
Comprimento do código de verificação gerado automaticamente. Usado apenas quando code não é fornecido. Padrão: 4.
Idioma para o modelo de mensagem padrão. Determina o idioma do texto SMS/Voz gerado automaticamente quando nenhum template personalizado é fornecido. Não se aplica ao canal telegram — o Telegram sempre envia uma mensagem do sistema no idioma da aplicação Telegram do utilizador.
Dados personalizados que serão armazenados com o código de verificação e retornados nos eventos de webhook. Útil para correlacionar pedidos de verificação com os seus sistemas internos.
Se verdadeiro, o código de verificação será eliminado do armazenamento após ser enviado ao destinatário. Padrão: false.
Lista ordenada de canais de entrega. Cada etapa define um canal a tentar. Se um canal falhar ou expirar, a próxima etapa é tentada. Pelo menos uma etapa é necessária. O canal sms só pode ser a última etapa. Canais duplicados não são permitidos.
Etapa de roteamento do Telegram. Entrega o código de verificação através de uma mensagem do bot do Telegram.
object
Canal de entrega: Telegram.
Tempo em segundos para aguardar uma resposta do Telegram antes de recuar para a próxima etapa. Se não definido, é usado um padrão do sistema.
Etapa de roteamento por voz. Entrega o código de verificação através de uma chamada de voz automatizada.
object
Canal de entrega: Chamada de voz.
Número de telefone do remetente no formato E.164. Se sender_id não estiver em conformidade com o formato E.164 (por exemplo, sem o prefixo +, contendo caracteres não numéricos), a chamada será feita a partir do número padrão do sistema +493075435114. Alguns provedores de telefonia downstream podem substituir o número de remetente definido pelo utilizador.
Modelo de mensagem personalizado. O texto é automaticamente envolvido em tags SSML <speak>. Use {{code}} como espaço reservado para o código de verificação. Se não fornecido, é usado um modelo padrão traduzido com base no campo lang.
Etapa de roteamento SMS. Entrega o código de verificação por SMS.
object
Canal de entrega: SMS.
Número de telefone ou ID alfanumérico do remetente exibido no dispositivo do destinatário. Validado com os IDs de remetente permitidos da sua conta.
Modelo de mensagem personalizado. Use {{code}} como espaço reservado para o código de verificação. Se não fornecido, é usado um modelo padrão traduzido com base no campo lang.
Examples
Verify code with multi-channel routing
Create a verification code with a 3-step routing strategy: Telegram, Voice, and SMS.
{ "phone": "+491701234567", "code": "1234", "is_code_deleted": false, "payload": "yours payload here", "lang": "EN", "routing_strategy": [ { "channel": "telegram", "timeout_sec": 30 }, { "channel": "voice", "sender_id": "LOX24", "template": "Your code is {{code}}" }, { "channel": "sms", "sender_id": "LOX24", "template": "Your code is {{code}}" } ]}Verify code via Telegram
Send a verification code through a Telegram bot. The code will be delivered as a Telegram message to the user’s chat.
{ "phone": "+491701234567", "lang": "EN", "routing_strategy": [ { "channel": "telegram", "timeout_sec": 60 } ]}Verify code via Voice call
Deliver a verification code through an automated voice call. The code is read aloud to the recipient using a text-to-speech template.
{ "phone": "+491701234567", "code_length": 6, "lang": "EN", "routing_strategy": [ { "channel": "voice", "sender_id": "LOX24", "template": "Your verification code is {{code}}" } ]}Responses
Seção intitulada “ Responses ”Verify code created and delivery process started
Resposta de leitura do código de verificação. Contém os detalhes completos do pedido de código de verificação, incluindo o estado atual, histórico de entrega e informações de custo.
object
Identificador único (UUID) do pedido de código de verificação.
ID do utilizador que criou o pedido de código de verificação.
Número de telefone do destinatário em formato internacional.
O valor do código de verificação. Se is_code_deleted foi definido e a tarefa concluída, o código estará ausente.
Comprimento do código de verificação.
Idioma usado para o modelo de mensagem.
Lista ordenada de canais de entrega que foram configurados para este pedido.
Etapa de roteamento do Telegram. Entrega o código de verificação através de uma mensagem do bot do Telegram.
object
Canal de entrega: Telegram.
Tempo em segundos para aguardar uma resposta do Telegram antes de recuar para a próxima etapa. Se não definido, é usado um padrão do sistema.
Etapa de roteamento por voz. Entrega o código de verificação através de uma chamada de voz automatizada.
object
Canal de entrega: Chamada de voz.
Número de telefone do remetente no formato E.164. Se sender_id não estiver em conformidade com o formato E.164 (por exemplo, sem o prefixo +, contendo caracteres não numéricos), a chamada será feita a partir do número padrão do sistema +493075435114. Alguns provedores de telefonia downstream podem substituir o número de remetente definido pelo utilizador.
Modelo de mensagem personalizado. O texto é automaticamente envolvido em tags SSML <speak>. Use {{code}} como espaço reservado para o código de verificação. Se não fornecido, é usado um modelo padrão traduzido com base no campo lang.
Etapa de roteamento SMS. Entrega o código de verificação por SMS.
object
Canal de entrega: SMS.
Número de telefone ou ID alfanumérico do remetente exibido no dispositivo do destinatário. Validado com os IDs de remetente permitidos da sua conta.
Modelo de mensagem personalizado. Use {{code}} como espaço reservado para o código de verificação. Se não fornecido, é usado um modelo padrão traduzido com base no campo lang.
Estado atual do código de verificação: 0 = Novo, 5 = Em andamento, 10 = Sucesso, 20 = Falhado, 100 = Erro.
O canal que entregou com sucesso o código de verificação. Null se ainda não foi entregue ou se a entrega falhou.
Custo total do pedido de verificação em cêntimos de euro. Null até que o processamento seja concluído.
Código da moeda para o custo.
Dados de payload personalizados do pedido original.
Timestamp Unix de quando o código de verificação foi criado.
Timestamp Unix da última atualização.
Histórico de processamento para cada tentativa de canal. Uma entrada por etapa de roteamento.
object
UUID da entrada do histórico.
Tipo de canal para esta tentativa.
Estado desta tentativa de canal: 0 = Novo, 5 = Em andamento, 10 = Sucesso, 20 = Falhado, 100 = Erro.
Timestamp Unix de quando esta etapa foi processada.
ID da mensagem do provedor externo.
Se o código de verificação foi eliminado do armazenamento após ser enviado ao destinatário.
Examples
Verify code response with multi-channel routing
Successful response after creating a verification code with a 3-step routing strategy. Telegram and voice channels failed, SMS succeeded.
{ "id": "d7ad7539-fb8f-4dbb-a7f7-7c40babec969", "user_id": 12345, "phone": "+491701234567", "routing_strategy": [ { "channel": "telegram", "timeout_sec": 30 }, { "channel": "voice", "sender_id": "LOX24", "template": "Your code is {{code}}" }, { "channel": "sms", "sender_id": "LOX24", "template": "Your code is {{code}}" } ], "status": 10, "delivered_channel": "sms", "cost": 120, "currency": "EUR", "code": "1234", "code_length": 4, "payload": "yours payload here", "lang": "EN", "created_at": 1779903448, "updated_at": 1779903510, "history": [ { "id": "bccaff09-59f2-11f1-a685-7c10c91d54a1", "channel": "telegram", "status": 20, "processed_at": 1779903478, "external_id": "tg_msg_001" }, { "id": "bccaff09-59f2-11f1-a685-7c10c91d54a2", "channel": "voice", "status": 20, "processed_at": 1779903490, "external_id": "voice_msg_002" }, { "id": "bccaff09-59f2-11f1-a685-7c10c91d54a3", "channel": "sms", "status": 10, "processed_at": 1779903510, "external_id": "sms_msg_003" } ], "is_code_deleted": false}Resposta de leitura do código de verificação. Contém os detalhes completos do pedido de código de verificação, incluindo o estado atual, histórico de entrega e informações de custo.
object
Identificador único (UUID) do pedido de código de verificação.
ID do utilizador que criou o pedido de código de verificação.
Número de telefone do destinatário em formato internacional.
O valor do código de verificação. Se is_code_deleted foi definido e a tarefa concluída, o código estará ausente.
Comprimento do código de verificação.
Idioma usado para o modelo de mensagem.
Lista ordenada de canais de entrega que foram configurados para este pedido.
Etapa de roteamento do Telegram. Entrega o código de verificação através de uma mensagem do bot do Telegram.
object
Canal de entrega: Telegram.
Tempo em segundos para aguardar uma resposta do Telegram antes de recuar para a próxima etapa. Se não definido, é usado um padrão do sistema.
Etapa de roteamento por voz. Entrega o código de verificação através de uma chamada de voz automatizada.
object
Canal de entrega: Chamada de voz.
Número de telefone do remetente no formato E.164. Se sender_id não estiver em conformidade com o formato E.164 (por exemplo, sem o prefixo +, contendo caracteres não numéricos), a chamada será feita a partir do número padrão do sistema +493075435114. Alguns provedores de telefonia downstream podem substituir o número de remetente definido pelo utilizador.
Modelo de mensagem personalizado. O texto é automaticamente envolvido em tags SSML <speak>. Use {{code}} como espaço reservado para o código de verificação. Se não fornecido, é usado um modelo padrão traduzido com base no campo lang.
Etapa de roteamento SMS. Entrega o código de verificação por SMS.
object
Canal de entrega: SMS.
Número de telefone ou ID alfanumérico do remetente exibido no dispositivo do destinatário. Validado com os IDs de remetente permitidos da sua conta.
Modelo de mensagem personalizado. Use {{code}} como espaço reservado para o código de verificação. Se não fornecido, é usado um modelo padrão traduzido com base no campo lang.
Estado atual do código de verificação: 0 = Novo, 5 = Em andamento, 10 = Sucesso, 20 = Falhado, 100 = Erro.
O canal que entregou com sucesso o código de verificação. Null se ainda não foi entregue ou se a entrega falhou.
Custo total do pedido de verificação em cêntimos de euro. Null até que o processamento seja concluído.
Código da moeda para o custo.
Dados de payload personalizados do pedido original.
Timestamp Unix de quando o código de verificação foi criado.
Timestamp Unix da última atualização.
Histórico de processamento para cada tentativa de canal. Uma entrada por etapa de roteamento.
object
UUID da entrada do histórico.
Tipo de canal para esta tentativa.
Estado desta tentativa de canal: 0 = Novo, 5 = Em andamento, 10 = Sucesso, 20 = Falhado, 100 = Erro.
Timestamp Unix de quando esta etapa foi processada.
ID da mensagem do provedor externo.
Se o código de verificação foi eliminado do armazenamento após ser enviado ao destinatário.
Examples
Verify code response with multi-channel routing
Successful response after creating a verification code with a 3-step routing strategy. Telegram and voice channels failed, SMS succeeded.
{ "id": "d7ad7539-fb8f-4dbb-a7f7-7c40babec969", "user_id": 12345, "phone": "+491701234567", "routing_strategy": [ { "channel": "telegram", "timeout_sec": 30 }, { "channel": "voice", "sender_id": "LOX24", "template": "Your code is {{code}}" }, { "channel": "sms", "sender_id": "LOX24", "template": "Your code is {{code}}" } ], "status": 10, "delivered_channel": "sms", "cost": 120, "currency": "EUR", "code": "1234", "code_length": 4, "payload": "yours payload here", "lang": "EN", "created_at": 1779903448, "updated_at": 1779903510, "history": [ { "id": "bccaff09-59f2-11f1-a685-7c10c91d54a1", "channel": "telegram", "status": 20, "processed_at": 1779903478, "external_id": "tg_msg_001" }, { "id": "bccaff09-59f2-11f1-a685-7c10c91d54a2", "channel": "voice", "status": 20, "processed_at": 1779903490, "external_id": "voice_msg_002" }, { "id": "bccaff09-59f2-11f1-a685-7c10c91d54a3", "channel": "sms", "status": 10, "processed_at": 1779903510, "external_id": "sms_msg_003" } ], "is_code_deleted": false}Invalid input
Client ID or API key isn’t active or invalid!
There are not enough funds on your account!
Account isn’t activated. Please wait or contact to support!
The request was well-formed but was unable to be followed due to semantic errors
O endereço IP foi bloqueado temporariamente, pois durante um curto período de tempo foram enviadas várias solicitações com credenciais inválidas. Aguarde e tente mais tarde.
Code Samples
#!/usr/bin/env bashcurl -X POST https://api.lox24.eu/verify_codes \ -H 'Content-Type: application/json' \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx' \ -d '{ "phone": "+491701234567", "code": "1234", "is_code_deleted": false, "payload": "yours payload here", "lang": "EN", "routing_strategy": [ { "channel": "telegram", "timeout_sec": 30 }, { "channel": "voice", "sender_id": "LOX24", "template": "Your code is {{code}}" }, { "channel": "sms", "sender_id": "LOX24", "template": "Your code is {{code}}" } ] }'using Newtonsoft.Json;using System;using System.IO;using System.Net;using System.Text;
namespace Lox24.Api{ class VerifyCodesClient { static void Main() { string key = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"; string url = "https://api.lox24.eu/verify_codes";
var data = new { phone = "+491701234567", code = "1234", is_code_deleted = false, payload = "yours payload here", lang = "EN", routing_strategy = new[] { new { channel = "telegram", timeout_sec = 30 }, new { channel = "voice", sender_id = "LOX24", template = "Your code is {{code}}" }, new { channel = "sms", sender_id = "LOX24", template = "Your code is {{code}}" } } };
string postdata = JsonConvert.SerializeObject(data);
Console.WriteLine("Post data: {0}", postdata);
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); httpWebRequest.ReadWriteTimeout = 100000; httpWebRequest.ContentType = "application/json; charset=utf-8"; httpWebRequest.Accept = "application/json"; httpWebRequest.Method = "POST"; httpWebRequest.KeepAlive = true; httpWebRequest.Headers.Add("X-LOX24-AUTH-TOKEN", key); httpWebRequest.Credentials = CredentialCache.DefaultNetworkCredentials;
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { streamWriter.Write(postdata); streamWriter.Flush(); streamWriter.Close(); } try { using (HttpWebResponse resp = (HttpWebResponse)httpWebRequest.GetResponse()) {
if(resp.StatusCode == HttpStatusCode.Created) { Console.WriteLine("Success:{0} {1}", (int)resp.StatusCode, "verify code resource created"); } else { Console.WriteLine("Error: wrong response code {0} on create verify code", (int)resp.StatusCode); }
Stream respStream = resp.GetResponseStream(); using (StreamReader sr = new StreamReader(respStream, Encoding.UTF8)) { string responseText = sr.ReadToEnd(); Console.WriteLine("responseText : {0}", responseText); } }
} catch (System.Net.WebException ex) { var webResponse = ex.Response as System.Net.HttpWebResponse; Console.WriteLine("Error:{0}", webResponse.StatusCode);
switch (webResponse.StatusCode) { case HttpStatusCode.BadRequest: Console.WriteLine("Error:400 Invalid input"); break; case HttpStatusCode.Unauthorized: Console.WriteLine("Error:401 Client ID or API key isn't active or invalid!"); break; case HttpStatusCode.PaymentRequired: Console.WriteLine("Error:402 There are not enough funds on your account!"); break; case HttpStatusCode.Forbidden: Console.WriteLine("Error:403 Account isn't activated. Please wait or contact to support!"); break; case (HttpStatusCode)422: Console.WriteLine("Error:422 Unprocessable entity"); break; case HttpStatusCode.InternalServerError: case HttpStatusCode.BadGateway: case HttpStatusCode.ServiceUnavailable: case HttpStatusCode.GatewayTimeout: Console.WriteLine("System error! Please contact to LOX24 support!"); break; } } } }}package main
import ( "bytes" "encoding/json" "fmt" "io" "log" "net/http")
func main() {
const Method = "POST" const URL = "https://api.lox24.eu/verify_codes" const Token = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"
routingStrategy := []map[string]interface{}{ {"channel": "telegram", "timeout_sec": 30}, {"channel": "voice", "sender_id": "LOX24", "template": "Your code is {{code}}"}, {"channel": "sms", "sender_id": "LOX24", "template": "Your code is {{code}}"}, }
payload := map[string]interface{}{ "phone": "+491701234567", "code": "1234", "is_code_deleted": false, "payload": "yours payload here", "lang": "EN", "routing_strategy": routingStrategy, }
jsonPayload, _ := json.Marshal(payload)
client := &http.Client{}
req, err := http.NewRequest(Method, URL, bytes.NewBuffer(jsonPayload)) if err != nil { log.Fatal(err) }
req.Header.Add("X-LOX24-AUTH-TOKEN", Token) req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req) if err != nil { log.Fatal(err) }
defer res.Body.Close()
body, err := io.ReadAll(res.Body) if err != nil { log.Fatal(err) }
switch res.StatusCode { case 201: fmt.Println(string(body)) case 400: fmt.Println("Error: code = 400 - Invalid input") case 401: fmt.Println("Error: code = 401 - Client ID or API key isn't active or invalid!") case 402: fmt.Println("Error: code = 402 - There are not enough funds on your account!") case 403: fmt.Println("Error: code = 403 - Account isn't activated. Please wait or contact to support!") case 422: fmt.Println("Error: code = 422 - Unprocessable entity") default: fmt.Printf("Error: code = %d\n", res.StatusCode) }}package eu.lox24.doc.verify_codes;
import org.json.JSONArray;import org.json.JSONObject;
import java.io.IOException;import java.net.HttpURLConnection;import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.time.Duration;
public class PostVerifyCodesCollection {
public static void main(String[] args) {
var key = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"; var url = "https://api.lox24.eu/verify_codes";
var routingStrategy = new JSONArray(); routingStrategy.put(new JSONObject().put("channel", "telegram").put("timeout_sec", 30)); routingStrategy.put(new JSONObject().put("channel", "voice").put("sender_id", "LOX24").put("template", "Your code is {{code}}")); routingStrategy.put(new JSONObject().put("channel", "sms").put("sender_id", "LOX24").put("template", "Your code is {{code}}"));
var json = new JSONObject(); json.put("phone", "+491701234567"); json.put("code", "1234"); json.put("is_code_deleted", false); json.put("payload", "yours payload here"); json.put("lang", "EN"); json.put("routing_strategy", routingStrategy);
var postData = json.toString();
System.out.println("Post data: " + postData);
var httpRequest = HttpRequest.newBuilder(URI.create(url)) .timeout(Duration.ofMillis(100000)) .setHeader("Content-Type", "application/json; charset=utf-8") .setHeader("Accept", "application/json") .setHeader("X-LOX24-AUTH-TOKEN", key) .POST(HttpRequest.BodyPublishers.ofString(postData)) .build();
var client = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_1_1) .build();
try { var httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
if (httpResponse.statusCode() == HttpURLConnection.HTTP_CREATED) { System.out.println("Success:" + httpResponse.statusCode() + " " + "verify code resource created"); System.out.println("Response text : \n" + httpResponse.body());
} else {
System.out.println("Error: wrong response code " + httpResponse.statusCode() + " on create verify code");
switch (httpResponse.statusCode()) {
case HttpURLConnection.HTTP_BAD_REQUEST: System.out.println("Error:400 Invalid input"); break; case HttpURLConnection.HTTP_UNAUTHORIZED: System.out.println("Error:401 Client ID or API key isn't active or invalid!"); break; case HttpURLConnection.HTTP_PAYMENT_REQUIRED: System.out.println("Error:402 There are not enough funds on your account!"); break; case HttpURLConnection.HTTP_FORBIDDEN: System.out.println("Error:403 Account isn't activated. Please wait or contact to support!"); break; case 422: System.out.println("Error:422 Unprocessable entity"); break; case HttpURLConnection.HTTP_INTERNAL_ERROR: case HttpURLConnection.HTTP_BAD_GATEWAY: case HttpURLConnection.HTTP_UNAVAILABLE: case HttpURLConnection.HTTP_GATEWAY_TIMEOUT: System.out.println("System error! Please contact to LOX24 support!"); break; }
}
} catch (IOException | InterruptedException e) { e.printStackTrace(); } }}/* * Post verify code */const token = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx";
var postObj = { phone: '+491701234567', code: '1234', is_code_deleted: false, payload: 'yours payload here', lang: 'EN', routing_strategy: [ { channel: 'telegram', timeout_sec: 30 }, { channel: 'voice', sender_id: 'LOX24', template: 'Your code is {{code}}' }, { channel: 'sms', sender_id: 'LOX24', template: 'Your code is {{code}}' } ]};
var postdata = JSON.stringify(postObj);
const https = require('https');const options = { hostname: 'api.lox24.eu', path: '/verify_codes', method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Content-Length': postdata.length, 'X-LOX24-AUTH-TOKEN': token }}
const req = https.request(options, res => { if (res.statusCode == 201) { console.log("Success: code = 201 - verify code resource created"); res.on('data', d => { process.stdout.write(d) }) } else if (res.statusCode == 400) console.log("Error: code = 400 - Invalid input"); else if (res.statusCode == 401) console.log("Error: code = 401 - Client ID or API key isn't active or invalid!"); else if (res.statusCode == 402) console.log("Error: code = 402 - There are not enough funds on your account!"); else if (res.statusCode == 403) console.log("Error: code = 403 - Account isn't activated. Please wait or contact to support!"); else if (res.statusCode == 422) console.log("Error: code = 422 - Unprocessable entity");})
req.on('error', error => { console.error(error)})req.write(postdata);req.end();<?php
$uri = 'https://api.lox24.eu/verify_codes';
$token = '1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx';
$body = [ 'phone' => '+491701234567', 'code' => '1234', 'is_code_deleted' => false, 'payload' => 'yours payload here', 'lang' => 'EN', 'routing_strategy' => [ [ 'channel' => 'telegram', 'timeout_sec' => 30, ], [ 'channel' => 'voice', 'sender_id' => 'LOX24', 'template' => 'Your code is {{code}}', ], [ 'channel' => 'sms', 'sender_id' => 'LOX24', 'template' => 'Your code is {{code}}', ], ],];
if(!$body = json_encode($body)) { die('JSON encoding error!');}
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_POST => true, CURLOPT_URL => $uri, CURLOPT_POSTFIELDS => $body, CURLOPT_HTTPHEADER => [ "X-LOX24-AUTH-TOKEN: {$token}", 'Accept: application/json', 'Content-Type: application/json', ], CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 20, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,]);
$response = curl_exec($curl);$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);curl_close($curl);
$data = json_decode($response, JSON_OBJECT_AS_ARRAY);
if(201 === $code) { echo 'Success: response data = ' . var_export($data, true);} else { echo "Error: code = {$code}, data = " . var_export($data, true);}import jsonimport requests
token = "1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx"
url = 'https://api.lox24.eu/verify_codes'
data = { 'phone': "+491701234567", 'code': "1234", 'is_code_deleted': False, 'payload': "yours payload here", 'lang': "EN", 'routing_strategy': [ { 'channel': "telegram", 'timeout_sec': 30 }, { 'channel': "voice", 'sender_id': "LOX24", 'template': "Your code is {{code}}" }, { 'channel': "sms", 'sender_id': "LOX24", 'template': "Your code is {{code}}" } ]}
headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', 'X-LOX24-AUTH-TOKEN': token,}
print("Post data : ", json.dumps(data, indent=4))
try: res = requests.post(url, headers=headers, json=data, timeout=100) if res.status_code != 201: print("Error: Wrong response code on create verify code") res.raise_for_status() else: print(f'Success: code = {res.status_code} - verify code resource created') print("Response: ", json.dumps(res.json(), indent=4))
except requests.HTTPError: if res.status_code == 400: print("Error:400 Invalid input") elif res.status_code == 401: print("Error: code = 401 - Client ID or API key isn't active or invalid!") elif res.status_code == 402: print("Error:402 There are not enough funds on your account!") elif res.status_code == 403: print("Error: code = 403 - Account isn't activated. Please wait or contact to support!") elif res.status_code == 422: print("Error:422 Unprocessable entity") elif res.status_code in (500, 502, 503, 504): print("System error! Please contact to LOX24 support!") else: print(f"Error: code {res.status_code}") print(json.dumps(res.json(), indent=4))