Template API Interface - Streamline Your Messaging Solution
Créer un modèle
Endpoint
POST https://otp.api.engagelab.cc/v1/template-configs
Authentification
Utilisez l'authentification HTTP Basic en ajoutant Authorization dans l'en-tête HTTP :
Authorization: Basic ${base64_auth_string}
Le base64_auth_string est généré comme suit : base64(dev_key:dev_secret)
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
{
"template_id": "test-template-1", // ID de modèle personnalisé, unique dans l'application
"description": "Test Template 1", // Description du modèle
"send_channel_strategy": "whatsapp|sms", // Stratégie de diffusion du modèle, prend en charge quatre types : whatsapp/sms/voice/email. Utilisez | pour indiquer la stratégie de repli
"brand_name": "Brand Name", // Nom de la marque, utilisé dans la signature pour certains pays/régions dans le contenu du modèle (ex : requis pour les canaux SMS dans certains pays/régions)
"verify_code_config": { // Configuration du code de vérification, requis lorsque le modèle inclut un type de code de vérification
"verify_code_type": 1, // Type de code de vérification, plage [1,7]
"verify_code_len": 6, // Longueur du code de vérification, plage [4,10]
"verify_code_ttl": 1 // Durée de validité du code de vérification, plage [1,10]. Remarque : Lorsque la stratégie inclut whatsapp, la valeur peut seulement être 1, 5 ou 10
},
"whatsapp_config": { // Configuration de la stratégie WhatsApp, effective si la stratégie de diffusion inclut WhatsApp
"template_type": 1, // Type de modèle WhatsApp, actuellement prend uniquement en charge le modèle par défaut, valeur fixe 1
"template_default_config": { // Configuration par défaut du modèle WhatsApp, effective pour le type de modèle par défaut
"contain_security": false, // Inclure des rappels de sécurité ou non
"contain_expire": false // Inclure du contenu d'expiration ou non
}
},
"sms_config": { // Configuration de la stratégie SMS, effective si la stratégie de diffusion inclut SMS
"template_type": 2, // Type de modèle SMS, valeurs : 1-Modèle par défaut/2-Modèle personnalisé
"template_default_config": { // Configuration par défaut du modèle SMS, effective pour le type de modèle par défaut
"contain_security": false, // Inclure des rappels de sécurité ou non
"contain_expire": false // Inclure du contenu d'expiration ou non
},
"template_custom_config": { // Configuration personnalisée du modèle SMS, effective pour le type de modèle personnalisé
"custom_sub_type": "authentication", // Type de modèle personnalisé, valeurs : authentication-Code de vérification/marketing-Marketing/utility-Notification
"custom_content": "xxx", // Contenu personnalisé du modèle. Remarque : pour le type authentication, doit inclure la variable {{code}}
"custom_country_codes": "HK,PH" // Pays/régions cibles pour le modèle personnalisé, utilisé comme référence lors de la révision du modèle. À remplir selon le besoin, sinon cela peut affecter la diffusion
}
},
"voice_config": { // Configuration de la stratégie vocale, effective si la stratégie de diffusion inclut Voice
"template_type": 1, // Type de modèle vocal, actuellement prend uniquement en charge le modèle par défaut, valeur fixe 1
"template_default_config": { // Configuration par défaut du modèle vocal, effective pour le type de modèle par défaut
"contain_security": false, // Inclure des rappels de sécurité ou non
"contain_expire": false // Inclure du contenu d'expiration ou non
}
},
"email_config": { // Configuration de la stratégie e-mail, effective si la stratégie de diffusion inclut E-mail
"template_name": "Email Template Name", // Nom du modèle e-mail
"template_custom_configs": [{ // Configuration personnalisée du modèle e-mail, notez qu'il s'agit d'un tableau d'objets, principalement distingués par langue
"language": "default", // Langue, default est la valeur par défaut. Le contenu du modèle peut être adapté selon le paramètre de langue lors de la diffusion
"pre_from_name": "test", // Nom de l'expéditeur prédéfini
"pre_from_mail": "test@test.com", // E-mail de l'expéditeur prédéfini
"pre_subject": "test", // Sujet prédéfini de l'e-mail
"template_content": "Contenu prédéfini du modèle e-mail, requis. Variables personnalisées comme {{self}}, code de vérification : {{code}}", // Contenu de l'e-mail, prend en charge HTML. Les variables doivent être entre doubles accolades {{}}
"pre_param_map": { // Valeurs par défaut des variables dans le contenu de l'e-mail. Si les valeurs ne sont pas spécifiées lors de la diffusion, ces valeurs remplaceront les variables. Déclaré sous forme de paires clé-valeur, les valeurs doivent être des chaînes
"self": "Ceci est la valeur prédéfinie pour la variable self"
}
}]
},
"pwa_config": { // Configuration liée au PWA, optionnelle
"pwa_platform": "xx", // Plateforme PWA utilisée. Pour les valeurs spécifiques, contactez le support technique
"pwa_code": "xx" // Code dans la plateforme PWA utilisée
}
}
Paramètres de la requête
Un objet de requête est exprimé au format JSON, donc l'en-tête de la requête doit inclure Content-Type: application/json.
| Paramètre | Type | Option | Description |
|---|---|---|---|
| template_id | String | Requis | ID de modèle personnalisé, unique, limité à 128 caractères |
| description | String | Optionnel | Description du modèle, limitée à 255 caractères |
| send_channel_strategy | String | Requis | Stratégie du modèle. Valeurs canal unique : whatsapp/sms/email/voice. Pour multi-canal, utilisez |
| brand_name | String | Optionnel | Signature de la marque, remplace la variable de signature de marque dans certains styles de modèle. Longueur limitée à 2-10 caractères |
| verify_code_config | Object | Requis sous condition | Configuration du code de vérification, requise si le modèle inclut un type de code de vérification |
| verify_code_config.verify_code_type | Integer | Requis | Type de code de vérification, plage [1,7]. 1-Chiffres/2-Lettres minuscules/4-Lettres majuscules. Peut être combiné (ex : 3 signifie chiffres + lettres minuscules) |
| verify_code_config.verify_code_len | Integer | Requis | Longueur du code de vérification, plage [4,10] |
| verify_code_config.verify_code_ttl | Integer | Requis | Durée de validité du code de vérification, en minutes, plage [1,10]. Lorsque la stratégie inclut WhatsApp, peut seulement être 1, 5 ou 10 |
| whatsapp_config | Object | Requis sous condition | Configuration de la stratégie WhatsApp, requise si la stratégie de diffusion inclut WhatsApp |
| whatsapp_config.template_type | Integer | Requis | Type de modèle WhatsApp, actuellement prend uniquement en charge le modèle par défaut, valeur fixe 1 |
| whatsapp_config.template_default_config | Object | Requis sous condition | Configuration par défaut du modèle WhatsApp, requise pour le type de modèle par défaut |
| sms_config | Object | Requis sous condition | Configuration de la stratégie SMS, requise si la stratégie de diffusion inclut SMS |
| sms_config.template_type | Integer | Requis | Type de modèle SMS, 1-Modèle par défaut/2-Modèle personnalisé |
| sms_config.template_default_config | Object | Requis sous condition | Configuration par défaut du modèle SMS, requise pour le type de modèle par défaut |
| sms_config.template_custom_config | Object | Requis sous condition | Configuration personnalisée du modèle SMS, requise pour le type de modèle personnalisé |
| sms_config.template_custom_config.custom_sub_type | String | Requis | Type de modèle personnalisé, authentication-Code de vérification/marketing-Marketing/utility-Notification |
| sms_config.template_custom_config.custom_content | String | Requis | Contenu personnalisé du modèle. Pour le type authentication, doit inclure la variable {{code}} |
| sms_config.template_custom_config.custom_country_codes | String | Optionnel | Codes des pays/régions cibles, séparés par des virgules, utilisés comme référence lors de la révision du modèle |
| voice_config | Object | Requis sous condition | Configuration de la stratégie vocale, requise si la stratégie de diffusion inclut Voice |
| voice_config.template_type | Integer | Requis | Type de modèle vocal, actuellement prend uniquement en charge le modèle par défaut, valeur fixe 1 |
| voice_config.template_default_config | Object | Requis sous condition | Configuration par défaut du modèle vocal, requise pour le type de modèle par défaut |
| email_config | Object | Requis sous condition | Configuration de la stratégie e-mail, requise si la stratégie de diffusion inclut E-mail |
| email_config.template_name | String | Requis | Nom du modèle e-mail |
| email_config.template_custom_configs | Array | Requis sous condition | Configuration personnalisée du modèle e-mail, requise pour le type de modèle personnalisé, prend en charge la configuration multilingue |
| email_config.template_custom_configs.language | String | Requis | Langue, default est la valeur par défaut. Le contenu du modèle peut être adapté selon le paramètre de langue lors de la diffusion |
| email_config.template_custom_configs.pre_from_name | String | Optionnel | Nom de l'expéditeur prédéfini |
| email_config.template_custom_configs.pre_from_mail | String | Requis | E-mail de l'expéditeur prédéfini |
| email_config.template_custom_configs.pre_subject | String | Requis | Sujet prédéfini de l'e-mail |
| email_config.template_custom_configs.template_content | String | Requis | Contenu de l'e-mail, prend en charge HTML. Les variables doivent être entre doubles accolades {{}} |
| email_config.template_custom_configs.pre_param_map | Object | Optionnel | Valeurs par défaut des variables dans le contenu de l'e-mail. Déclaré sous forme de paires clé-valeur, les valeurs doivent être des chaînes |
| pwa_config | Object | Optionnel | Configuration liée au PWA, optionnelle |
| pwa_config.pwa_platform | String | Optionnel | Plateforme PWA utilisée. Pour les valeurs spécifiques, contactez le support technique |
| pwa_config.pwa_code | String | Optionnel | Code dans la plateforme PWA utilisée |
Paramètres de réponse
| Champ | Type | Option | Description |
|---|---|---|---|
| code | Integer | Requis | Code d'erreur, 0 indique le succès, les autres indiquent un échec |
| message | String | Requis | Code de vérification à valider |
Réponse en cas de succès
{
"code": 0,
"message": "success"
}
Réponse en cas d'échec
{
"code": 3003,
"message": "not contains any channel config"
}
Codes d'erreur
| Code d'erreur | Code HTTP | Description |
|---|---|---|
| 1000 | 500 | Erreur interne |
| 2001 | 401 | Échec de l'authentification, jeton incorrect fourni |
| 2002 | 401 | Échec de l'authentification, jeton expiré ou désactivé |
| 2004 | 403 | Pas d'autorisation pour appeler cette API |
| 3001 | 400 | Format de paramètre de requête invalide, vérifiez s'il est conforme au format JSON |
| 3002 | 400 | Paramètres de requête invalides, vérifiez s'ils répondent aux exigences |
| 3003 | 400 | Erreur de paramètre métier, vérifiez le champ message pour plus de détails |
Supprimer un modèle
Endpoint
DELETE /v1/template-configs/{templateId}
Authentification
Utilisez l'authentification HTTP Basic en ajoutant Authorization dans l'en-tête HTTP :
Authorization: Basic ${base64_auth_string}
Le base64_auth_string est généré comme suit : base64(dev_key:dev_secret)
Exemple de requête
En-tête de la requête
DELETE /v1/template-configs/{templateId} HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Corps de la requête
Aucun
Paramètres de la requête
{templateId} dans l'URL représente l'ID du modèle à supprimer, qui est défini par l'appelant lors de la création du modèle.
Paramètres de réponse
| Champ | Type | Option | Description |
|---|---|---|---|
| code | Integer | Requis | Code d'erreur, 0 indique le succès, les autres indiquent un échec |
| message | String | Requis | Code de vérification à valider |
Réponse en cas de succès
{
"code": 0,
"message": "success"
}
Réponse en cas d'échec
{
"code": 4001,
"message": "config not exist"
}
Codes d'erreur
| Code d'erreur | Code HTTP | Description |
|---|---|---|
| 1000 | 500 | Erreur interne |
| 2001 | 401 | Échec de l'authentification, jeton incorrect fourni |
| 2002 | 401 | Échec de l'authentification, jeton expiré ou désactivé |
| 2004 | 403 | Pas d'autorisation pour appeler cette API |
| 3001 | 400 | Format de paramètre de requête invalide, vérifiez s'il est conforme au format JSON |
| 3002 | 400 | Paramètres de requête invalides, vérifiez s'ils répondent aux exigences |
| 4001 | 400 | Le modèle n'existe pas |
Obtenir la liste de tous les modèles
Actuellement, cette API ne prend pas en charge la pagination et retournera une liste succincte de tous les modèles, excluant principalement le contenu spécifique. Si un contenu détaillé est nécessaire, veuillez utiliser l'API de détail.
Endpoint
GET /v1/template-configs
Authentification
Utilisez l'authentification HTTP Basic. Ajoutez l'en-tête Authorization dans l'en-tête HTTP :
Authorization: Basic ${base64_auth_string}
Le base64_auth_string ci-dessus est généré avec l'algorithme : base64(dev_key:dev_secret)
Exemple de requête
En-tête de la requête
GET /v1/template-configs HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Corps de la requête
Aucun
Paramètres de la requête
Aucun
Réponse en cas de succès
[{
"template_id": "test-template-1", // ID de modèle personnalisé, unique dans l'application
"description": "Test Template 1", // Description du modèle
"send_channel_strategy": "whatsapp|sms", // Stratégie de diffusion du modèle, prend en charge whatsapp/sms/voice/email. Les stratégies combinées utilisent le caractère "|" pour indiquer le repli
"brand_name": "Brand Name", // Nom de la marque, utilisé comme signature dans le contenu du modèle pour certains pays/régions (ex : requis pour les canaux SMS dans certains pays/régions)
"verify_code_config": { // Configuration du code de vérification, renvoyée lorsque le modèle inclut des types de code de vérification
"verify_code_type": 1, // Type de code de vérification, plage [1,7]
"verify_code_len": 6, // Longueur du code de vérification, plage [4,10]
"verify_code_ttl": 1 // Durée de validité du code de vérification, plage [1,10]. Remarque : Lorsque la stratégie inclut whatsapp, la valeur peut seulement être 1, 5 ou 10
},
"whatsapp_config": { // Configuration de la stratégie whatsapp, renvoyée lorsque la stratégie de diffusion inclut whatsapp
"template_type": 1 // Type de modèle whatsapp, actuellement prend uniquement en charge les modèles par défaut, valeur fixe 1
},
"sms_config": { // Configuration de la stratégie SMS, renvoyée lorsque la stratégie de diffusion inclut SMS
"template_type": 2, // Type de modèle SMS, valeurs : 1-modèle par défaut/2-modèle personnalisé
"template_parts": 1 // Nombre estimé de parties facturées pour le modèle SMS. Si le modèle est trop long, le prix spécifique = parties facturées * prix unitaire
},
"voice_config": { // Configuration de la stratégie vocale, renvoyée lorsque la stratégie de diffusion inclut voice
"template_type": 1 // Type de modèle vocal, actuellement prend uniquement en charge les modèles par défaut, valeur fixe 1
},
"email_config": { // Configuration de la stratégie e-mail, renvoyée lorsque la stratégie de diffusion inclut e-mail
"template_name": "Email Template Name" // Nom du modèle e-mail
},
"pwa_config": { // Configuration liée au PWA, renvoyée lorsqu'une configuration PWA est présente
"pwa_platform": "xx", // Plateforme PWA utilisée
"pwa_code": "xx" // Code utilisé dans la plateforme PWA
},
"created_time": 1234567890, // Date de création du modèle, au format timestamp, précision à la seconde
"status": 1, // Statut du modèle, valeurs : 1-En attente de révision/2-Approuvé/3-Rejeté
"audit_remark": "xx" // Remarques d'audit, généralement utilisées pour voir les raisons du rejet lors du refus de la révision
},...] // Remarque : Il s'agit d'un tableau d'objets
Réponse en cas d'échec
{
"code": 4001,
"message": "config not exist"
}
Codes d'erreur
| Code d'erreur | Code HTTP | Description |
|---|---|---|
| 1000 | 500 | Erreur interne |
| 2001 | 401 | Échec de l'authentification, jeton incorrect fourni |
| 2002 | 401 | Échec de l'authentification, jeton expiré ou désactivé |
| 2004 | 403 | Pas d'autorisation pour appeler cette API |
| 4001 | 400 | Le modèle n'existe pas |
Obtenir les détails d'un modèle
Endpoint
GET /v1/template-configs/{templateId}
Authentification
Utilisez l'authentification HTTP Basic. Ajoutez l'en-tête Authorization dans l'en-tête HTTP :
Authorization: Basic ${base64_auth_string}
Le base64_auth_string ci-dessus est généré avec l'algorithme : base64(dev_key:dev_secret)
Exemple de requête
En-tête de la requête
GET /v1/template-configs/custom-template-id HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Corps de la requête
Aucun
Paramètres de la requête
Le {templateId} dans l'URL représente l'ID du modèle à récupérer, qui est défini par l'appelant lors de la création du modèle.
Réponse en cas de succès
{
"template_id": "test-template-1", // ID de modèle personnalisé, unique dans l'application
"description": "Test Template 1", // Description du modèle
"send_channel_strategy": "whatsapp|sms", // Stratégie de diffusion du modèle, prend en charge whatsapp/sms/voice/email. Les stratégies combinées utilisent le caractère "|" pour indiquer le repli
"brand_name": "Brand Name", // Nom de la marque, utilisé comme signature dans le contenu du modèle pour certains pays/régions (ex : requis pour les canaux SMS dans certains pays/régions)
"verify_code_config": { // Configuration du code de vérification, renvoyée lorsque le modèle inclut des types de code de vérification
"verify_code_type": 1, // Type de code de vérification, plage [1,7]
"verify_code_len": 6, // Longueur du code de vérification, plage [4,10]
"verify_code_ttl": 1 // Durée de validité du code de vérification, plage [1,10]. Remarque : Lorsque la stratégie inclut whatsapp, la valeur peut seulement être 1, 5 ou 10
},
"whatsapp_config": { // Configuration de la stratégie whatsapp, renvoyée lorsque la stratégie de diffusion inclut whatsapp
"template_type": 1 // Type de modèle whatsapp, actuellement prend uniquement en charge les modèles par défaut, valeur fixe 1
},
"sms_config": { // Configuration de la stratégie SMS, renvoyée lorsque la stratégie de diffusion inclut SMS
"template_type": 2, // Type de modèle SMS, valeurs : 1-modèle par défaut/2-modèle personnalisé
"template_parts": 1, // Nombre estimé de parties facturées pour le modèle SMS. Si le modèle est trop long, le prix spécifique = parties facturées * prix unitaire
"template_custom_config": { // Configuration personnalisée du modèle SMS, valide lorsque le type de modèle SMS est personnalisé
"custom_sub_type": "authentication", // Type de modèle personnalisé, valeurs : authentication-code de vérification/marketing-marketing/utility-notification
"custom_content": "xxx" // Contenu personnalisé du modèle. Remarque : si le sous-type est authentication (code de vérification), il doit inclure la variable {{code}}
}
},
"voice_config": { // Configuration de la stratégie vocale, renvoyée lorsque la stratégie de diffusion inclut voice
"template_type": 1 // Type de modèle vocal, actuellement prend uniquement en charge les modèles par défaut, valeur fixe 1
},
"email_config": { // Configuration de la stratégie e-mail, renvoyée lorsque la stratégie de diffusion inclut e-mail
"template_name": "Email Template Name", // Nom du modèle e-mail
"template_custom_configs": [{ // Configuration personnalisée du modèle e-mail, valide lorsque le type de modèle e-mail est personnalisé. Remarque : il s'agit d'un tableau d'objets, principalement distingués par langue pour plusieurs configurations
"language": "default", // Langue, "default" est la valeur par défaut. Lors de l'envoi de messages, différents contenus de modèle peuvent être adaptés selon le paramètre de langue
"pre_from_name": "test", // Nom de l'expéditeur prédéfini
"pre_from_mail": "test@test.com", // E-mail de l'expéditeur prédéfini
"pre_subject": "test", // Sujet prédéfini de l'e-mail
"template_content": "Contenu prédéfini du modèle e-mail, requis. Variables personnalisées comme {{self}}, code de vérification : {{code}}", // Contenu de l'e-mail, prend en charge HTML. Les variables doivent être entre doubles accolades {{}}
"pre_param_map": { // Valeurs par défaut des variables dans le contenu de l'e-mail. Si aucune valeur de variable n'est spécifiée lors de l'envoi, les valeurs par défaut ci-dessous remplaceront les variables, déclarées sous forme de paires clé-valeur
"self": "Ceci est la valeur par défaut pour la variable self"
}
}]
},
"pwa_config": { // Configuration liée au PWA, renvoyée lorsqu'une configuration PWA est présente
"pwa_platform": "xx", // Plateforme PWA utilisée
"pwa_code": "xx" // Code utilisé dans la plateforme PWA
},
"created_time": 1234567890, // Date de création du modèle, au format timestamp, précision à la seconde
"status": 1, // Statut du modèle, valeurs : 1-En attente de révision/2-Approuvé/3-Rejeté
"audit_remark": "xx" // Remarques d'audit, généralement utilisées pour voir les raisons du rejet lors du refus de la révision
}
Réponse en cas d'échec
{
"code": 4001,
"message": "config not exist"
}
Codes d'erreur
| Code d'erreur | Code HTTP | Description |
|---|---|---|
| 1000 | 500 | Erreur interne |
| 2001 | 401 | Échec de l'authentification, jeton incorrect fourni |
| 2002 | 401 | Échec de l'authentification, jeton expiré ou désactivé |
| 2004 | 403 | Pas d'autorisation pour appeler cette API |
| 4001 | 400 | Le modèle n'existe pas |

