Aller au contenu
Accueil » API SMS Octopush » Envoi de SMS

Envoi de SMS

POST
https://api.octopush.com/v1/public/sms-campaign/send

Encodage : UTF-8

Authentification

Vos identifiants « api-key » et « api-login » doivent être ajoutés dans les headers.

Définition

Il s’agit du service d’envoi de SMS « classiques », en mode :

  • simple (1 contact)
  • campagne (jusqu’à 500 contacts)

Vous devez indiquer vos numéros de téléphone dans le paramètre « recipients », qui est un tableau contenant des objets de type « contact ».

Paramètres particuliers

NomTypeDescription
textstringMessage texte (de 1 à 1224 caractères non unicodes).
recipientsarrayListe d’objets Contact (array d’objets) :
[
  {
    "phone_number": "+111222233334444",
    "first_name": "Axelle",
    "last_name": "Durand",
    "param1": null,
    "param2": null,
    "param3": Mme,
    "param4": null,
    "param5": null
  },
  ...,
  {
    "phone_number": "+2222333334444555",
    "first_name": "John",
    "last_name": "Smith",
    "param3": "M"
  }
]
senderstringExpéditeur du message (si l’opérateur le permet), 3-11 caractères alphanumeriques et espace (a-zA-Z0-9 ).
send_atstring(optionnel) Date à laquelle vous voulez envoyer la campagne. Format: DateTime ISO8601 (par ex: « 2018-10-03T07:42:39-07:00 »).’
purposestring(optionnel) But de la campagne (transactionnel/alerte ou marketing) : [« alert », »wholesale »]
with_repliesboolean(optionnel) « True » pour recevoir les réponses de vos destinataires
simulation_modeboolean(optionnel) Si ce champ est à “true”, votre requête sera simulée, et vous recevrez un faux résultat. Seulement quelques validations seront effectuées.
request_idstring(optionnel) Pour éviter d’envoyer la même demande plusieurs fois, configurez un ID de demande. Dans le cas où la duplication serait détectée, une erreur de validation sera renvoyée.
auto_optimize_textboolean(optionnel) Si ce champ est transmis et qu’il a la valeur false, votre texte ne sera pas optimisé par le robot de Octopush (votre message pourrait contenir des caractères unicodes, ou des espaces inutiles qui pourraient augmenter le nombre de SMS nécessaires pour chacun de vos contacts).
auto_remove_blacklisted_numbersboolean(optionnel) Si ce champ est transmis et qu’il a la valeur true, les numéros blacklistés seront automatiquement supprimés de votre liste de numéros. Ce service rajoute un coût de 0.01€ par requête.

Exemple Curl

curl -X POST \ 
 'https://api.octopush.com/v1/public/sms-campaign/send' \ 
 -H 'Content-Type: application/json' \ 
 -H 'api-login: @email.org' \ 
 -H 'api-key: *************' \ 
 -H 'cache-control: no-cache' \ 
 -d '{
   "recipients": [
     {
       "phone_number": "+336000123",
       "first_name": "Axelle",
       "last_name": "Durand",
       "param3": "Mme"
     }
   ],
   "text": "Voici un SMS Premium avec mention STOP. STOP au 30101",
   "purpose": "wholesale",
   "sender": "Entreprise"
 }'

Code à copier-coller

curl -X POST 'https://api.octopush.com/v1/public/sms-campaign/send' -H 'Content-Type: application/json' -H 'api-login: @email.org' -H 'api-key: **********' -H 'cache-control: no-cache' -d '{"recipients": [{"phone_number": "+336000123", "first_name": "Axelle", "last_name": "Durand", "param3": "Mme"}], "text": "Voici un SMS avec mention STOP. STOP au 30101", "purpose": "wholesale", "sender": "Entreprise"}'

Retour Server en json

Succès : 201 CREATED

{
  "sms_ticket": "sms_5f3fbce61266e",
  "number_of_contacts": 1,
  "number_of_sms_needed": 1,
  "residual_credit": 94.995,
  "total_cost": 5.00502839 
}

Échec : 400 BAD REQUEST

{
  "code": 121,
  "message": "Mention STOP is missing."
}

* Pour certains utilisateurs ovh, l’utilisation de curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); dans leur séquence d’envoi en CUrl pourrait être utile.

Interprétation des données

L’API que nous fournissons essaiera d’interpréter au mieux votre requête. Si un paramètre n’a pas le bon type, nous essaierons de le comprendre quand même. Si le paramètre n’a pas la bonne valeur, nous essaierons de le formater au mieux. Ainsi, nous avons déterminé des valeurs par défaut, indiquées dans notre documentation. Si un paramètre n’a pas pu être reconnu ni “réparé”, nous l’ignorerons, mais votre requête sera envoyée.

Si un de vos paramètres n’a pas la bonne valeur, ou n’a pas le bon type, nous nous efforcerons de :

  • le “caster” (le convertir) pour qu’il soit compris.
  • le formater (supprimer les caractères interdits par exemple)
  • le remplacer par la valeur par défaut

Limitations particulières

Attention au nombre de contacts par requête. Pour les campagnes, une bonne utilisation consiste à transmettre plusieurs trames de 200 à 500 numéros à la fois.

  • < 200 : vous multipliez les appels et gaspillez le temps de connexion
  • > 500 : la trame devient lourde et les risques de pertes de données augmentent.

Vos SMS doivent nous être soumis en séquentiel, car, en parallèle, certaines requêtes pourraient être rejetées par le pare-feu.