logoDocumentation
Rechercher

Custom OTP Code Delivery - Secure Transmission and Best Practices

Si vous préférez générer vous-même le code de vérification au lieu d'utiliser la plateforme EngageLab, vous pouvez appeler cette API.

Cette API est spécifiquement conçue pour l'envoi de codes de vérification pré-générés et ne générera pas elle-même les codes. Après l'envoi du code de vérification, il n'est pas nécessaire d'appeler l'API de vérification pour la validation.

Si vous souhaitez que la plateforme EngageLab génère le code de vérification, vous pouvez appeler l'API d'envoi OTP d'EngageLab.

Endpoint

POST https://otp.api.engagelab.cc/v1/codes

Authentification

Utilisez l'authentification HTTP Basic pour la vérification. Ajoutez une autorisation dans l'en-tête HTTP :

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

            
Afficher ce bloc de code dans la fenêtre flottante

L'algorithme de génération du base64_auth_string ci-dessus est : base64(dev_key:dev_secret)

Exemple de requête

En-tête de la requête

POST /v1/codes HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/codes  HTTP/1.1  
Content-Type: application/json  
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
Afficher ce bloc de code dans la fenêtre flottante

Corps de la requête

{ "to": "+8618701235678", "code": "398210", "template":{ "id":"test-template-1", "language": "default", "params": { "key1": "value1", "key2": "value2" } } }
              
              {
    "to": "+8618701235678",
    "code": "398210", 
    "template":{
      "id":"test-template-1",
      "language": "default",
        "params": {
        "key1": "value1",
        "key2": "value2"
        }
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de la requête

Un objet de requête est exprimé au format JSON, l'en-tête de la requête doit donc inclure Content-Type: application/json.

Paramètre Type Option Description
to String Obligatoire La cible, soit un numéro de téléphone, soit une adresse e-mail, ex. : +8613800138000, support@engagelab.com
code String Obligatoire Le code de vérification personnalisé
template Objet JSON Obligatoire Informations sur le modèle, incluant les sous-paramètres ci-dessous
|_ id String Obligatoire ID du modèle
|_ language String Optionnel Langue du modèle, langues prises en charge :
default (Langue par défaut)
zh_CN (Chinois simplifié)
zh_HK (Chinois traditionnel)
en (Anglais)
ja (Japonais)
th (Thaï)
es (Espagnol)
Si non spécifié, la valeur par défaut sera "default".
Par défaut à 'default' si non fourni
|_ params Objet JSON Optionnel Valeurs des variables personnalisées du modèle. Si vous avez personnalisé des variables lors de la création du modèle, transmettez leurs valeurs ici. Si non fourni, les clés de variables seront envoyées telles quelles, ex. {{var}}

Remarques sur params

  1. Pour les modèles avec des champs prédéfinis comme from_id, si la valeur du champ param_vars n'est pas transmise, le message utilisera le from_id prédéfini du modèle lors de l'envoi ;
  2. Si les valeurs du champ param_vars sont transmises, comme param_vars:{"from_id":"12345"}, alors lors de l'envoi, le from_id du modèle sera remplacé par 12345 ;
  3. De même, pour les champs de variables personnalisées créés dans le contenu du modèle, attribuez des valeurs via param_vars, ex. pour un contenu de modèle Hi {{name}}, votre code de vérification est {{code}}, attribuez les paramètres avec param_vars:{"name":"Bob"}

Paramètres de la réponse

Réponse en cas de succès

Champ Type Option Description
message_id String Obligatoire ID du message, identifie de façon unique un message
send_channel String Obligatoire Indique le canal d'envoi actuel, options possibles : whatsapp/sms/email/voice
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
    "message_id": "1725407449772531712",
    "send_channel": "sms"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Remarque : la valeur send_channel retournée ne représente pas le canal final de diffusion à l'utilisateur, mais uniquement le canal de la phase en cours. Par exemple, si la stratégie du modèle est configurée pour basculer de WhatsApp à SMS en cas d'échec de livraison, l'API retournera initialement whatsapp, puis, si un échec de livraison est détecté, le système utilisera le canal SMS pour l'envoi.

Réponse en cas d'échec

Code de statut HTTP 4xx ou 5xx, le corps de la réponse inclut les champs suivants :

Champ Type Option Description
code int Obligatoire Code d'erreur, voir Codes d'erreur pour plus de détails
message String Obligatoire Détails de l'erreur
{ "code": 5001, "message": "sms send fail" }
              
              {
    "code": 5001,
    "message": "sms send fail"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Codes d'erreur

Code d'erreur Code HTTP Description
1000 500 Erreur interne
2001 401 Échec de l'authentification, token incorrect ou manquant
2002 401 Échec de l'authentification, token expiré ou désactivé
2004 403 Pas d'autorisation pour appeler cette API
3001 400 Format de paramètre de requête invalide, veuillez vérifier la conformité au format JSON
3002 400 Paramètres de requête incorrects, veuillez vérifier les exigences
3003 400 Paramètres de requête incorrects, validation métier échouée, voir le champ message pour la description de l'erreur
3004 400 Limite de fréquence dépassée, impossible de renvoyer au même modèle et utilisateur cible pendant la période de validité de l'OTP
4001 400 Ressource associée inexistante, ex. : utilisation d'un modèle inexistant pour l'envoi du message
5001 400 Échec d'envoi (général/autre)
5011 400 Format de numéro de téléphone invalide
5012 400 Destination injoignable
5013 400 Numéro ajouté à la liste noire
5014 400 Contenu non conforme aux réglementations
5015 400 Message intercepté/rejeté
5016 400 Erreur interne d'envoi
5017 400 Absence d'autorisation pour envoyer dans la région de Chine
5018 400 Panne du téléphone (éteint/suspendu)
5019 400 Utilisateur désabonné
5020 400 Numéro non enregistré/numéro invalide
icon
Contactez-nous