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
Nom | Type | Description |
---|---|---|
text | string | Message texte (de 1 à 1224 caractères non unicodes). |
recipients | array | Liste 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" } ] |
sender | string | Expéditeur du message (si l’opérateur le permet), 3-11 caractères alphanumeriques et espace (a-zA-Z0-9 ). |
send_at | string | (optionnel) Date à laquelle vous voulez envoyer la campagne. Format: DateTime ISO8601 (par ex: « 2018-10-03T07:42:39-07:00 »).’ |
purpose | string | (optionnel) But de la campagne (transactionnel/alerte ou marketing) : [« alert », »wholesale »] |
with_replies | boolean | (optionnel) « True » pour recevoir les réponses de vos destinataires |
simulation_mode | boolean | (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_id | string | (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_text | boolean | (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_numbers | boolean | (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.