logoDocumentation
Rechercher

Custom Messages Delivery

Si vous avez créé un contenu de modèle personnalisé sur la plateforme OTP, utilisez cette API pour envoyer un contenu de message personnalisé.

Point de terminaison de l'API

POST https://otp.api.engagelab.cc/v1/custom-messages

Authentification

L'authentification HTTP Basic est utilisée pour la vérification. Ajoutez l'en-tête Authorization dans la requête HTTP :

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

            
Afficher ce bloc de code dans la fenêtre flottante

Le base64_auth_string est généré selon l'algorithme suivant : base64(dev_key:dev_secret)

Format de la requête

En-têtes de la requête

POST /v1/custom-messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/custom-messages 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", "template":{ "id":"test-template-1", "params": { "code": "codevalue", "var1":"value1" } } }
              
              {
    "to": "+8618701235678", 
    "template":{
      "id":"test-template-1",
      "params": {
        "code": "codevalue",
        "var1":"value1"
        }
    }
}

            
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, donc l'en-tête de la requête doit inclure Content-Type: application/json.

Paramètre Type Obligatoire Description
to String Oui Destinataire cible, qui peut être un numéro de téléphone (ex : +8613800138000) ou une adresse e-mail (ex : support@engagelab.com).
template Objet JSON Oui Informations du modèle. Les sous-paramètres sont décrits ci-dessous.
|_ id String Oui ID du modèle.
|_ params Objet JSON Optionnel Paramètres du modèle.
_ |_ code String Optionnel Obligatoire si le type de modèle est un code de vérification.
_ |_ var String Optionnel Valeurs des variables personnalisées du modèle. Si des variables ont été définies lors de la création du modèle, transmettez leurs valeurs ici. Si non fourni, la clé de la variable sera envoyée telle quelle (ex : {{var1}}).

Notes sur params :

Pour les variables prédéfinies du modèle telles que {{brand_name}}, {{ttl}} et {{pwa_url}}, aucune valeur n'a besoin d'être transmise — le système les remplacera automatiquement par le contenu spécifié lors de la création du modèle.

Si le type de modèle est un code de vérification, la variable {{code}} doit être transmise ; sinon, une erreur se produira.

Pour les variables personnalisées définies dans le contenu du modèle, attribuez des valeurs via params. Par exemple, si le contenu du modèle est Bonjour {{name}}, votre code de vérification est {{code}}, le paramètre params:{"name":"Bob"} doit être transmis.

Exemples de requêtes

1. Envoi d'un code de vérification personnalisé :

{ "to": "+8618701235678", "template":{ "id":"code-template", "params": { "code": "123456" } } }
              
              {
    "to": "+8618701235678", 
    "template":{
      "id":"code-template",
      "params": {
        "code": "123456"        
        }
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

2. Envoi d'une notification personnalisée :

{ "to": ["+8618701235678"], "template": { "id": "notification-template", "params": { "order": "123456" } } }
              
              {
    "to": ["+8618701235678"],
    "template": {
        "id": "notification-template",
        "params": {
            "order": "123456"
        }
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

3. Envoi d'un contenu marketing personnalisé :

{ "to": ["+8618701235678"], "template": { "id": "marketing-template", "params": { "name": "EngageLab", "promotion": "30%" } } }
              
              {
    "to": ["+8618701235678"],
    "template": {
        "id": "marketing-template",
        "params": {
            "name": "EngageLab",
            "promotion": "30%"
        }
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de réponse

Réponse réussie

Champ Type Obligatoire Description
message_id String Oui L'ID du message, identifiant de façon unique un message.
send_channel String Oui Le canal utilisé pour la diffusion. Valeurs 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 livraison à l'utilisateur, seulement le canal utilisé à l'étape actuelle. Par exemple, si la stratégie du modèle est configurée pour basculer vers le SMS après un échec de livraison WhatsApp, l'API retournera initialement whatsapp. En cas d'échec, le système basculera automatiquement vers le SMS.

Réponse en cas d'échec

Le code d'état HTTP est 4xx ou 5xx, le corps de la réponse contient les champs suivants :

Champ Type Obligatoire Description
code int Code d'erreur. Voir Codes d'erreur pour plus de détails.
message String Oui 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
Code d'erreur Code HTTP Description
1000 500 Erreur interne.
2001 401 Échec de l'authentification : token invalide 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. Assurez-vous que le contenu JSON est conforme au format requis.
3002 400 Paramètres de requête invalides. Vérifiez si les paramètres répondent aux exigences.
3003 400 Validation métier échouée. Consultez le champ message pour plus de détails.
3004 400 Limite de fréquence dépassée. Pour le même modèle et le même utilisateur cible, les codes de vérification ne peuvent pas être renvoyés pendant la période de validité.
4001 400 Ressource non trouvée (par exemple, un modèle inexistant a été utilisé 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