Envoi du code de vérification
Cette interface permet à la plateforme EngageLab de générer un code de vérification et de l'envoyer selon la stratégie de canal définie dans le modèle.
Si vous préférez générer le code de vérification vous-même plutôt que de le faire générer par la plateforme EngageLab, vous pouvez appeler l'interface Envoi de code de vérification personnalisé EngageLab OTP.
Adresse d'appel
POST https://otp.api.engagelab.cc/v1/messages
Authentification
Veuillez consulter Authentification pour savoir comment effectuer l'authentification de l'API.
Exemple de requête
En-tête de la requête
POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Corps de la requête
{
"to": "+6591234567",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
Paramètres de 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 | Cible de l'envoi, numéro de téléphone mobile ou adresse e-mail, +6598765432, support@engagelab.com |
| template | JSON Object | Obligatoire | Informations sur le modèle, voir les paramètres de second niveau ci-dessous |
| |_ id | String | Obligatoire | ID du modèle |
| |_ language | String | Facultatif | Langue du modèle, prend en charge les langues suivantes : default langue par défaut zh_CN chinois simplifié zh_HK chinois traditionnel en anglais ja japonais th thaï es espagnol Si ce paramètre n'est pas transmis, la valeur par défaut est default (langue par défaut) |
| |_ params | JSON Object | Facultatif | Valeurs des clés de variables personnalisées du modèle |
| Si vous avez défini des variables personnalisées lors de la création du modèle, transmettez-en ici les valeurs ; sinon, elles seront envoyées telles quelles sous forme de clé de variable, comme {{var}} |
Remarques concernant params
- Pour les champs prédéfinis dans le modèle, tels que from_id, si aucune valeur n'est transmise dans le champ params, le from_id prédéfini du modèle est utilisé lors de l'envoi du message ;
- Si une valeur du champ params est transmise, comme
params:{"from_id":"12345"}, le from_id du modèle sera remplacé par 12345 lors de l'envoi du message ; - De même, les champs de variables personnalisées définis dans le contenu du modèle lors de sa création se voient également attribuer une valeur via params : par exemple, pour un contenu de modèle
Hi {{name}}, your verify code is {{code}}, vous devez attribuer le paramètreparams:{"name":"Bob"} - Variables spéciales du canal Email : pour le canal Email, vous pouvez remplacer dynamiquement l'objet de l'e-mail (
subject), le nom de l'expéditeur (from_name), l'adresse e-mail de l'expéditeur (from_mail), etc., viaparams. Pour les usages avancés détaillés, veuillez consulter Créer un modèle - Usage avancé des variables de modèle Email.
Paramètres de 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, les valeurs possibles sont whatsapp/sms/email/voice |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
Notez que la valeur**send_channel**renvoyée ne représente pas le canal final de livraison à l'utilisateur, mais uniquement le canal utilisé à ce stade ; par exemple, si la stratégie configurée dans le modèle prévoit qu'en cas d'échec de livraison sur le canal WhatsApp, un renvoi automatique est effectué sur le canal SMS, l'interface renverra la valeur whatsapp. Une fois l'échec de livraison détecté après un certain délai, le système enverra le message via le canal SMS.
Réponse en cas d'échec
Le code de statut HTTP est 4xx ou 5xx, et le corps de la réponse contient les champs suivants :
| Champ | Type | Option | Description |
|---|---|---|---|
| code | int | Obligatoire | Code d'erreur, voir la description des codes d'erreur |
| message | String | Obligatoire | Détails de l'erreur |
{
"code": 5001,
"message": "sms send fail"
}
Codes d'erreur
| Code d'erreur | http code | Description |
|---|---|---|
| 1000 | 500 | Erreur interne |
| 2001 | 401 | Échec de l'authentification, token correct non fourni |
| 2002 | 401 | Échec de l'authentification, token expiré ou désactivé |
| 2004 | 403 | Aucune autorisation d'appeler cette API |
| 3001 | 400 | Format des paramètres de requête invalide, veuillez vérifier que le contenu JSON respecte le format des paramètres |
| 3002 | 400 | Paramètres de requête incorrects, veuillez vérifier que les paramètres de requête sont conformes aux exigences |
| 3003 | 400 | Paramètres de requête incorrects, échec de la validation métier associée, voir la description de l'erreur dans le champ message pour plus de détails |
| 3004 | 400 | Limite de fréquence dépassée : pour un même modèle et un même utilisateur cible, un nouvel envoi est impossible pendant la durée de validité du code de vérification |
| 4001 | 400 | La ressource associée n'existe pas, par exemple l'utilisation d'un modèle inexistant lors de l'envoi d'un message basé sur un modèle |
| 5001 | 400 | Échec de l'envoi (générique/autre) |
| 5011 | 400 | Format de numéro de téléphone mobile invalide |
| 5012 | 400 | Cible injoignable |
| 5013 | 400 | Numéro placé sur liste noire |
| 5014 | 400 | Contenu non conforme aux règles |
| 5015 | 400 | Message intercepté/refusé |
| 5016 | 400 | Erreur interne d'envoi |
| 5017 | 400 | Aucune autorisation d'envoi vers la région de la Chine |
| 5018 | 400 | Défaillance du téléphone (éteint/hors service) |
| 5019 | 400 | L'utilisateur s'est désabonné |
| 5020 | 400 | Numéro non enregistré/numéro inexistant |










