Envoi de messages personnalisés

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

Endpoint

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

Authentification

Utilisez l'authentification HTTP Basic et ajoutez Authorization à 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 de base64_auth_string est le suivant : base64(dev_key:dev_secret)

Format de la requête

En-têtes de 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": "+6591234567", "template": { "id": "test-template-1", "params": { "code": "codevalue", "var1": "value1" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "test-template-1",
    "params": {
      "code": "codevalue",
      "var1": "value1"
    }
  }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de requête

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

Parameter Type Required Description
to String Required Cible de distribution : un numéro de téléphone mobile ou une adresse e-mail, par exemple +6598765432 ou support@engagelab.com
template JSON Object Required Informations sur le modèle. Voir les paramètres imbriqués ci-dessous
|_ id String Required ID du modèle
|_ params JSON Object Optional Paramètres du modèle
_ |_ code String Optional Obligatoire lorsque le type de modèle est un code de vérification
_ |_ var String Optional Valeur de la clé de variable du modèle personnalisé. Si vous avez défini des variables personnalisées lors de la création du modèle, attribuez-leur des valeurs ici. Si aucune valeur n'est fournie, la clé de variable sera transmise directement, par exemple {{var1}}

Remarques sur params

  1. Pour les variables de modèle prédéfinies telles que {{brand_name}}, {{ttl}} et {{pwa_url}}, vous n'avez pas besoin de les transmettre. Le système les remplace automatiquement par le contenu spécifié lors de la création du modèle.
  2. Si le type de modèle est un code de vérification, vous devez transmettre la variable {{code}} ; sinon, une erreur sera renvoyée.
  3. Si le contenu du modèle contient des champs de variables personnalisées définis lors de la création du modèle, attribuez-leur également des valeurs via params. Par exemple, pour le contenu de modèle Hi {{name}}, your verify code is {{code}}, vous devez attribuer le paramètre params: {"name":"Bob"}.

Exemples de requête

1. Envoyer un code de vérification personnalisé

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

            
Afficher ce bloc de code dans la fenêtre flottante

2. Envoyer un contenu de notification personnalisé

{ "to": "+6591234567", "template": { "id": "notification-template", "params": { "order": "123456" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "notification-template",
    "params": {
      "order": "123456"
    }
  }
}

            
Afficher ce bloc de code dans la fenêtre flottante

3. Envoyer un contenu marketing personnalisé

{ "to": ["+6591234567"], "template": { "id": "marketing-template", "params": { "name": "EngageLab", "promotion": "30%" } } }
              
              {
  "to": ["+6591234567"],
  "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

Field Type Required Description
message_id String Required ID du message, qui identifie de manière unique un message
send_channel String Required Indique le canal actuellement utilisé pour la distribution. 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

Veuillez noter que la valeur send_channel renvoyée ne représente pas le canal final utilisé pour distribuer le message à l'utilisateur. Elle indique uniquement le canal actuellement utilisé. Par exemple, si la stratégie configurée dans le modèle spécifie qu'en cas d'échec de la distribution via WhatsApp, une nouvelle tentative doit automatiquement être effectuée via le canal SMS, la réponse de l'API renverra whatsapp. Après détection de l'échec de distribution après un certain délai, le système enverra alors le message via le canal SMS.

Réponse en échec

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

Field Type Required Description
code int Required Code d'erreur. Pour plus de détails, voir Codes d'erreur
message String Required 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

Error Code HTTP Code Description
1000 500 Erreur interne
2001 401 Échec de l'authentification. Aucun jeton valide n'a été fourni
2002 401 Échec de l'authentification. Le jeton a expiré ou a été désactivé
2004 403 Vous n'êtes pas autorisé à appeler cette API
3001 400 Format de paramètre de requête invalide. Veuillez vérifier si le contenu JSON correspond au format de paramètre requis
3002 400 Paramètres de requête invalides. Veuillez vérifier si les paramètres de requête respectent les exigences
3003 400 Paramètres de requête invalides. La validation métier associée a échoué. Reportez-vous à la description de l'erreur dans 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, la distribution ne peut pas être déclenchée à nouveau pendant la période de validité du code de vérification
4001 400 La ressource associée n'existe pas. Par exemple, un modèle inexistant a été utilisé lors de l'envoi d'un message modèle
5001 400 Échec de l'envoi (général/autre)
5011 400 Format de numéro de téléphone mobile invalide
5012 400 Cible injoignable
5013 400 Le numéro a été ajouté à la liste noire
5014 400 Le contenu n'est pas conforme aux spécifications
5015 400 Message intercepté/rejeté
5016 400 Erreur interne d'envoi
5017 400 Aucune autorisation pour envoyer vers la Chine continentale
5018 400 Problème lié à l'appareil mobile (éteint/service suspendu)
5019 400 L'utilisateur s'est désabonné
5020 400 Le numéro n'est pas enregistré / numéro invalide
Icon Solid Transparent White Qiyu
Contactez-nous