SMS v2

SMS de haute qualité avec expéditeur personnalisé, rapports de livraison en temps réel et envoi instantané.

Intégrez via API un service mondial d’envoi de SMS professionnels, idéal pour l’authentification à deux facteurs (2FA), les notifications et alertes, les rappels de rendez-vous et les communications critiques, garantissant sécurité, rapidité et suivi complet de chaque message.

Toutes les connaissances dont vous avez besoin

Vous trouverez ici quelques conseils à prendre en compte pour aborder cette API. Si vous préférez, nous fournissons des exemples de code, la documentation OAS3, la possibilité d'essayer l'API en direct via Swagger UI ou d'importer l'intégralité de la collection dans Postman. Nous proposons également un environnement Sandbox où vous pouvez expérimenter toutes sortes de requêtes de manière totalement gratuite.

Conseils utiles pour commencer SMS v2

Obtenir le Token dans la section appropriée avant de commencer.

Utilisez l'outil en ligne ou générez-le via l'API. Définissez la date d'expiration, un nom utile et ajoutez maintenant un ensemble d'étendues pour limiter les actions possibles que votre jeton peut effectuer.

Envoyer des messages SMS

Méthodes pour envoyer des messages SMS.

Envoyer un SMS dans le monde entier (Worldwide)
POST /WW-messages
Crée et met in coda un nouveau message SMS pour un envoi mondial. Le coût est calculé après l'envoi.

Envoyer un SMS en Italie
POST /IT-messages
Crée et met in coda un nouveau message SMS spécifique pour l'Italie.

Envoyer un SMS en Espagne
POST /ES-messages
Crée et met in coda un nouveau message SMS spécifique pour l'Espagne.

Envoyer un code de vérification OTP
POST /otp
Génère et envoie un code OTP sécurisé par SMS. Le message est traduit automatiquement.

Consultation des messages

Méthodes per récupérer la liste et les détails des messages envoyés.

Lister le messages envoyés
GET /messages
Renvoie une liste paginée des messages envoyés depuis votre compte.

Obtenir les détails d'un message
GET /messages/{id}
Renvoie les détails d'un message spécifique via son ID.

Gateway SMS (1.3.0)

L'API Gateway SMS d'Openapi fournit une solution robuste et évolutive pour l'intégration de la messagerie SMS professionnelle dans vos applications. Notre service est conçu pour gérer avec précision de grands volumes de messages, offrant des points d'accès dédiés pour des régions spécifiques comme l'Italie et l'Espagne, ainsi qu'un point d'accès mondial pour une portée globale.

Chaque demande est soumise à un processus de validation rigoureux qui comprend la vérification de la syntaxe pour les formats E.164, la détection du codage des caractères (GSM-7 ou UCS-2) et la segmentation automatique pour les messages longs. Nous accordons la priorité à la sécurité et à la conformité : le système analyse automatiquement le contenu pour détecter les mots interdits afin d'éviter les abus et s'assure que tous les messages sont conformes aux exigences légales.

Les développeurs peuvent bénéficier de fonctionnalités avancées telles que le "Dry Run" pour tester sans encourir de frais, et les rappels Webhook en temps réel qui fournissent des mises à jour immédiates sur l'état de la livraison. Les messages ont un délai d'expiration maximal de 48 heures ; si un message ne peut pas être livré dans ce délai, son statut passera à DELIVERED. La facturation est transparente et dynamique ; alors que les messages régionaux ont des tarifs fixes, les coûts de livraison dans le monde entier sont calculés après l'envoi pour garantir le meilleur prix du marché. Veuillez noter que le maintien d'un solde de crédit minimum est requis pour les opérations mondiales, et que des sanctions strictes s'appliquent en cas de violation de la politique afin de garantir la meilleure qualité de service à tous les utilisateurs.

Messages

Opérations d'envoi et de récupération de messages SMS.

Envoyer un nouveau message SMS (dans le monde entier)

Crée et met en file d'attente un nouveau message SMS pour l'envoyer dans le monde entier. Veuillez noter que pour ce point d'extrémité, le coût du message sera calculé et facturé uniquement après l'envoi du message. Le prix final varie en fonction de l'opérateur du destinataire.

Si l'utilisateur dispose d'un plan d'abonnement actif, les parties du message seront déduites de l'offre disponible avant de débiter le solde du wallet.

Pour envoyer un message via ce point d'accès, vous devez disposer d'un crédit minimum sur votre compte égal à 1 EUR multiplié par le nombre de parties de message (messageCount) au cas où un forfait ne serait pas disponible ou insuffisant.

IMPORTANT : Si le contenu du message ou l'expéditeur contient des mots interdits, le message sera bloqué, le compte sera mis sur liste de blocage et une pénalité de 1 EUR par partie de message sera facturée.

Authorizations:
bearerAuth
Request Body schema: application/json

Données du message à envoyer.

sender
string or null [ 3 .. 11 ] characters
Default: "Openapi"

L'expéditeur du message. Doit être un alias alphanumérique (entre 3 et 11 caractères, espaces autorisés) et ne peut pas être purement numérique. S'il est nul ou vide, 'Openapi' sera utilisé comme expéditeur par défaut.

recipient
required
string

Le numéro du destinataire au format international E.164.

message
required
string

Le texte du message à envoyer. La segmentation est gérée automatiquement. L'encodage GSM-7 permet jusqu'à 160 caractères par partie (153 s'il s'agit de plusieurs parties), tandis que l'encodage UCS-2 permet jusqu'à 70 caractères (67 s'il s'agit de plusieurs parties).

object (MessageOptions)
object (CallbackOptions)

Il s'agit de notre système de rappel OpenAPI standardisé. Il permet de configurer les paramètres pour recevoir des notifications sur les mises à jour d'état des demandes asynchrones adressées à ce point de terminaison.

Responses

Response Schema: application/json
object (MessageResponse)

Objet représentant un message.

Callbacks

Request samples

Content type
application/json
{
  • "sender": "MyCompany",
  • "recipient": "+393331234567",
  • "message": "Hello! This is a test message.",
  • "options": {
    },
  • "callback": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Callback payload samples

Callback
POST: Rappel pour les mises à jour de l'état des messages
Content type
application/json
{
  • "id": "633aabe3e4a9a0e69811ad7f",
  • "username": "string",
  • "state": "NEW",
  • "sender": "string",
  • "recipient": "string",
  • "internationalPrefix": "39",
  • "countryCode": "IT",
  • "message": "string",
  • "encoding": "GSM-7",
  • "charactersCount": 0,
  • "messageCount": 0,
  • "price": 0,
  • "totalPrice": 0,
  • "blocklisted": true,
  • "blocklistedReason": "string",
  • "options": {
    },
  • "callback": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "sentAt": "2019-08-24T14:15:22Z",
  • "deliveredAt": "2019-08-24T14:15:22Z"
}

Envoyer un nouveau message SMS (Italie)

Crée et met en file d'attente un nouveau message SMS à envoyer spécifiquement à l'Italie. Applique des règles et des tarifs spécifiques à chaque pays.

IMPORTANT : Si le contenu du message ou l'expéditeur contient des mots interdits, le message sera bloqué, le compte sera mis sur liste de blocage et le coût du message sera facturé.

Authorizations:
bearerAuth
Request Body schema: application/json

Données du message à envoyer.

sender
string or null [ 3 .. 11 ] characters
Default: "Openapi"

L'expéditeur du message. Doit être un alias alphanumérique (entre 3 et 11 caractères, espaces autorisés) et ne peut pas être purement numérique. S'il est nul ou vide, 'Openapi' sera utilisé comme expéditeur par défaut.

recipient
required
string

Le numéro du destinataire au format international E.164.

message
required
string

Le texte du message à envoyer. La segmentation est gérée automatiquement. L'encodage GSM-7 permet jusqu'à 160 caractères par partie (153 s'il s'agit de plusieurs parties), tandis que l'encodage UCS-2 permet jusqu'à 70 caractères (67 s'il s'agit de plusieurs parties).

object (MessageOptions)
object (CallbackOptions)

Il s'agit de notre système de rappel OpenAPI standardisé. Il permet de configurer les paramètres pour recevoir des notifications sur les mises à jour d'état des demandes asynchrones adressées à ce point de terminaison.

Responses

Response Schema: application/json
object (MessageResponse)

Objet représentant un message.

Callbacks

Request samples

Content type
application/json
{
  • "sender": "MyCompany",
  • "recipient": "+393331234567",
  • "message": "Hello! This is a test message.",
  • "options": {
    },
  • "callback": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Callback payload samples

Callback
POST: Rappel pour les mises à jour de l'état des messages
Content type
application/json
{
  • "id": "633aabe3e4a9a0e69811ad7f",
  • "username": "string",
  • "state": "NEW",
  • "sender": "string",
  • "recipient": "string",
  • "internationalPrefix": "39",
  • "countryCode": "IT",
  • "message": "string",
  • "encoding": "GSM-7",
  • "charactersCount": 0,
  • "messageCount": 0,
  • "price": 0,
  • "totalPrice": 0,
  • "blocklisted": true,
  • "blocklistedReason": "string",
  • "options": {
    },
  • "callback": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "sentAt": "2019-08-24T14:15:22Z",
  • "deliveredAt": "2019-08-24T14:15:22Z"
}

Envoyer un nouveau message SMS (Espagne)

Crée et met en file d'attente un nouveau message SMS à envoyer spécifiquement à l'Espagne. Applique des règles et des tarifs spécifiques à chaque pays.

IMPORTANT : Si le contenu du message ou l'expéditeur contient des mots interdits, le message sera bloqué, le compte sera mis sur liste de blocage et le coût du message sera facturé.

Authorizations:
bearerAuth
Request Body schema: application/json

Données du message à envoyer.

sender
string or null [ 3 .. 11 ] characters
Default: "Openapi"

L'expéditeur du message. Doit être un alias alphanumérique (entre 3 et 11 caractères, espaces autorisés) et ne peut pas être purement numérique. S'il est nul ou vide, 'Openapi' sera utilisé comme expéditeur par défaut.

recipient
required
string

Le numéro du destinataire au format international E.164.

message
required
string

Le texte du message à envoyer. La segmentation est gérée automatiquement. L'encodage GSM-7 permet jusqu'à 160 caractères par partie (153 s'il s'agit de plusieurs parties), tandis que l'encodage UCS-2 permet jusqu'à 70 caractères (67 s'il s'agit de plusieurs parties).

object (MessageOptions)
object (CallbackOptions)

Il s'agit de notre système de rappel OpenAPI standardisé. Il permet de configurer les paramètres pour recevoir des notifications sur les mises à jour d'état des demandes asynchrones adressées à ce point de terminaison.

Responses

Response Schema: application/json
object (MessageResponse)

Objet représentant un message.

Callbacks

Request samples

Content type
application/json
{
  • "sender": "MyCompany",
  • "recipient": "+393331234567",
  • "message": "Hello! This is a test message.",
  • "options": {
    },
  • "callback": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Callback payload samples

Callback
POST: Rappel pour les mises à jour de l'état des messages
Content type
application/json
{
  • "id": "633aabe3e4a9a0e69811ad7f",
  • "username": "string",
  • "state": "NEW",
  • "sender": "string",
  • "recipient": "string",
  • "internationalPrefix": "39",
  • "countryCode": "IT",
  • "message": "string",
  • "encoding": "GSM-7",
  • "charactersCount": 0,
  • "messageCount": 0,
  • "price": 0,
  • "totalPrice": 0,
  • "blocklisted": true,
  • "blocklistedReason": "string",
  • "options": {
    },
  • "callback": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "sentAt": "2019-08-24T14:15:22Z",
  • "deliveredAt": "2019-08-24T14:15:22Z"
}

Envoyer un message de vérification OTP

Génère un code OTP sécurisé et l'envoie par SMS au destinataire en utilisant "OTP MOBILE" comme expéditeur par défaut. Le corps du message est automatiquement traduit en fonction du pays du destinataire. La tarification suit le modèle mondial (WW).

Authorizations:
bearerAuth
Request Body schema: application/json

Données pour le message OTP.

recipient
required
string

Le numéro du destinataire au format international E.164.

alphanumeric
boolean
Default: false

Si la valeur est "true", l'OTP généré sera alphanumérique. S'il vaut "false" (valeur par défaut), il sera purement numérique.

length
integer [ 4 .. 10 ]
Default: 5

La longueur du code OTP (min 4, max 10).

cacheSeconds
integer [ 0 .. 600 ]
Default: 0

Nombre de secondes pendant lesquelles le même code OTP sera réutilisé pour le même destinataire (max. 600).

object (MessageOptions)
object (CallbackOptions)

Il s'agit de notre système de rappel OpenAPI standardisé. Il permet de configurer les paramètres pour recevoir des notifications sur les mises à jour d'état des demandes asynchrones adressées à ce point de terminaison.

Responses

Response Schema: application/json
object (OTPMessageResponse)

Objet représentant un message.

Callbacks

Request samples

Content type
application/json
{
  • "recipient": "+393331234567",
  • "alphanumeric": false,
  • "length": 5,
  • "cacheSeconds": 0,
  • "options": {
    },
  • "callback": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Callback payload samples

Callback
POST: Rappel pour les mises à jour de l'état de l'OTP
Content type
application/json
{
  • "id": "633aabe3e4a9a0e69811ad7f",
  • "username": "string",
  • "state": "NEW",
  • "sender": "string",
  • "recipient": "string",
  • "internationalPrefix": "39",
  • "countryCode": "IT",
  • "message": "string",
  • "encoding": "GSM-7",
  • "charactersCount": 0,
  • "messageCount": 0,
  • "price": 0,
  • "totalPrice": 0,
  • "blocklisted": true,
  • "blocklistedReason": "string",
  • "options": {
    },
  • "callback": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "sentAt": "2019-08-24T14:15:22Z",
  • "deliveredAt": "2019-08-24T14:15:22Z",
  • "isOtp": true,
  • "otp": "5F8A2",
  • "otpOptions": {
    }
}

Récupérer la liste des messages envoyés

Renvoie une liste paginée des messages envoyés depuis votre compte.

Authorizations:
bearerAuth
query Parameters
skip
integer
Default: 0

Nombre de messages à ignorer pour la pagination.

limit
integer
Default: 100

Nombre maximum de messages à renvoyer.

Responses

Response Schema: application/json
Array of objects (MessageResponse)

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sms.openapi.com/messages?skip=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Récupérer un seul message

Renvoie les détails d'un message spécifique via son ID.

Authorizations:
bearerAuth
path Parameters
id
required
string

L'identifiant unique du message à récupérer.

Responses

Response Schema: application/json
object (MessageResponse)

Objet représentant un message.

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sms.openapi.com/messages/%7Bid%7D");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);

Response samples

Content type
application/json
{
  • "data": {
    }
}