Envoyer des SMS en C# avec l’API multicanale

Avec l’API SMS C# d’Esendex, votre projet .NET envoie des messages sur cinq canaux depuis une seule intégration. HttpClient gère la requête, le framework fournit le reste. Vous écrivez le code une fois pour le SMS. Si vous passez à l’envoi de RCS, de messages WhatsApp ou d’emails, vous ne changez qu’une valeur dans votre objet. Le reste du code ne bouge pas.

homme entouré d'illustration coding sms c#
  • Un seul endpoint pour cinq canaux (SMS, RCS – WhatsApp, email, voix bientôt disponibles)
  • Moins de code à écrire et à maintenir qu’avec des API séparées
  • Nouveau canal = un paramètre à modifier, zéro réécriture
  • HttpClient et .NET suffisent, aucun package NuGet à installer
  • Intégration en moins de 3 heures en moyenne
  • Templates, webhooks, planification et raccourcissement d’URLs intégrés
  • Infrastructure certifiée ISO 27001 et Cyber Essentials

API SMS C# : envoyez sur cinq canaux depuis vos projets .NET

L’envoi passe par un POST async vers /v2/messages avec HttpClient. Vous construisez le body en JSON et l’API REST d’Esendex traite la requête.

using System.Text;

var httpClient = new HttpClient();

var request = new HttpRequestMessage(HttpMethod.Post, "https://api.esendex.fr/v2/messages");
request.Headers.Add("X-Api-Key", "YOUR_KEY_HERE");

var body = @"{
  ""accountReference"": ""xxxxxxxxxx"",
  ""channel"": ""SMS"",
  ""from"": ""MonEntreprise"",
  ""body"": { ""text"": ""Bonjour, votre commande #1234 a été expédiée."" },
  ""recipients"": [{ ""msisdn"": ""+33612345678"" }]
}";

request.Content = new StringContent(body, Encoding.UTF8, "application/json");
var response = await httpClient.SendAsync(request);
Console.WriteLine($"HTTP {(int)response.StatusCode}");

Ce script fonctionne en .NET 6+ avec les top-level statements. Pas besoin de déclarer une classe Program ni une méthode Main. 

Les trois champs à adapter dans le JSON

Quel nom s’affiche chez le destinataire ?

Dans le body JSON, le champ from définit le nom affiché comme émetteur sur le téléphone du destinataire. Vous y inscrivez le nom de votre entreprise ou un numéro dédié. 

Quel format utiliser pour les numéros ?

Les numéros dans recipients suivent le format E.164. En d’autres termes, le 0612345678 devient +33612345678. Le tableau recipients accepte plusieurs numéros. Vous envoyez le même message à des dizaines de destinataires en une seule requête.

Comment savoir si le message est parti ?

L’API répond avec un code HTTPS 202 quand elle accepte le message. Le body de la réponse contient un identifiant unique que vous récupérez avec response.Content.ReadAsStringAsync(). 

Cet identifiant sert à suivre la délivrabilité par webhook. Un code 400 signale un problème dans votre requête et le JSON de retour précise le champ en cause. Un 401 signifie que votre clé API est manquante ou invalide.

Une seule intégration .NET pour cinq canaux

L’API REST d’Esendex repose sur un endpoint unique. Votre intégration API SMS fonctionne pour le SMS comme pour le RCS (à noter : WhatsApp, l’email et l’appel vocal bientôt disponibles).

Moins de code, moins de maintenance

Avant l’API unifiée, chaque canal demandait sa propre intégration. Un projet qui envoyait des SMS et des emails combinait deux API, deux jeux de tests et deux logiques d’erreur.

Avec l’API d’Esendex, vous écrivez une seule classe d’envoi. Le volume de code diminue et les bugs aussi. Quand vous modifiez l’appel API, le changement s’applique à tous les canaux d’un coup.

Changer de canal sans réécrire votre projet

Le code que vous avez écrit pour le SMS fonctionne tel quel pour les autres canaux. L’URL, le header et la gestion des erreurs restent identiques. Seul le champ channel varie dans le body JSON.

HttpClient et .NET remplacent toute bibliothèque externe

HttpClient fait partie du framework .NET.

System.Text.Json convertit vos objets C# en JSON nativement depuis .NET Core 3.1.

Vous n’avez aucun package NuGet ni SDK tiers à installer.

Votre projet garde un fichier .csproj propre, sans dépendance externe à surveiller.

Ce qui se passe après votre SendAsync()

Une intégration API SMS ne se limite pas au code. La fiabilité du réseau et la sécurité des données comptent autant. Votre requête arrive sur la passerelle SMS d’Esendex, qui achemine le message vers l’opérateur ou le canal concerné.

Le même HttpClient pour SMS, RCS, WhatsApp, email et voix

Votre instance HttpClient envoie un SMS transactionnel, une campagne RCS ou une notification WhatsApp avec le même appel async. 

Vous maintenez une logique d’envoi qui fonctionne pour les cinq canaux. Vos tests et votre monitoring couvrent tous vos messages sans adaptation.

Zéro downtime, zéro surprise

L’API d’Esendex affiche 99,99 % de disponibilité. 

Les certifications ISO 27001 et Cyber Essentials garantissent la sécurité des données à chaque envoi. De plus, le chiffrement HTTPS protège chaque échange.

Explorez l’API d’Esendex

L’API SMS C# d’Esendex s’intègre dans vos projets .NET avec HttpClient et sans package NuGet. Vos SMS transactionnels, alertes de sécurité ou messages RCS passent par le même endpoint sur cinq canaux. Créez votre compte d’essai gratuit pour tester l’API.

FAQs | Tout savoir sur l’API SMS C# d’Esendex

L’API d’Esendex fonctionne-t-elle avec .NET Framework ou uniquement .NET 6+ ?

L’API REST d’Esendex accepte toute requête HTTPS valide, quelle que soit la version de .NET. Le code de cette page utilise la syntaxe simplifiée de .NET 6+ (top-level statements). Sur .NET Framework 4.x, le même appel HttpClient fonctionne dans une méthode Main classique sous Visual Studio.

Faut-il installer un package NuGet pour envoyer des SMS en C# ?

Non. HttpClient et System.Text.Json font partie du framework .NET. Vous envoyez des SMS en C# sans aucune dépendance externe.

Comment construire le body JSON sans Newtonsoft.Json ?

System.Text.Json, intégré à .NET depuis la version Core 3.1, convertit vos objets C# en JSON. Vous pouvez aussi écrire le JSON directement dans une chaîne avec la syntaxe @ »… » comme dans l’exemple de cette page.

Peut-on appeler l’API depuis une application ASP.NET ou Azure Functions ?

Oui. L’appel fonctionne dans tout projet .NET qui dispose de HttpClient. Applications ASP.NET, Azure Functions, services Windows ou projets console utilisent le même code async.

Comment suivre la délivrabilité d’un SMS envoyé en C# ?

L’API retourne un identifiant unique pour chaque message accepté (code 202). Vous configurez un webhook dans votre espace Esendex pour recevoir les notifications de délivrabilité en temps réel sur votre endpoint.

L’API gère-t-elle l’envoi de SMS en masse depuis un projet .NET ?

Oui. Le tableau recipients accepte plusieurs numéros dans une seule requête. Pour les volumes importants, vous pouvez aussi utiliser la connexion SMPP dédiée aux envois en masse.

Effectuez vos premiers envois dès maintenant