class

OvhApi::Endpoints::Sms

Inherits Reference < Object

Endpoint /sms : envoi de SMS à la demande via un service SMS OVH (pack pré-payé). Couvre :

  • send — envoi d'un SMS court (1 segment) à un ou plusieurs destinataires E.164. Renvoie le nombre de crédits consommés et la liste des destinataires acceptés / refusés.
  • service — métadonnées d'un service SMS (crédit restant, marketing/transactional, etc.).
  • services — liste des serviceName accessibles à la consumer key courante. Pratique pour valider la config au boot.

Toutes les méthodes utilisent Client#call (signature HMAC + retry si l'horloge locale est en dérive). Les erreurs OVH (4xx/5xx) remontent en OvhApi::ApiError.

Pré-requis côté OVH :

  • Un pack SMS commandé sur https://www.ovhtelecom.fr/sms/.
  • Une consumer key avec les scopes GET /sms/* + POST /sms/*/jobs (URL pratique pour générer tout d'un coup : eu.api.ovh.com/createToken/?GET=/sms/&POST=/sms//jobs).
  • Un sender alphanumérique (3-11 caractères, validé par OVH).

Constructors

new(client : Client)
Source

Instance methods

send(service_name : String, receivers : Array(String), message : String, sender : String | Nil = nil, no_stop_clause : Bool = true, priority : String = "high", validity_period : Int32 = 1440) : JobResult

Envoi synchrone d'un SMS. Renvoie un JobResult qui contient le nombre de crédits consommés et les destinataires acceptés par OVH (un numéro mal formé ou en blacklist apparaît dans invalid_receivers au lieu de valid_receivers).

Paramètres :

  • service_name — sms-xxxxxx-1 (visible sur le manager OVH).
  • receivers — liste de numéros E.164 (+33612345678).
  • message — corps du SMS. > 160 caractères = SMS multi- segments (chaque segment compte 1 crédit).
  • sender — nom expéditeur (3-11 alphanumériques, validé par OVH au préalable). Si non fourni, OVH utilise un numéro court anonyme.
  • no_stop_clause — true pour les SMS non-commerciaux (gagne les caractères de « STOP au xxxxx »). Défaut true (l'usage 2FA typique n'est pas commercial).
  • priority — "high" | "medium" | "low" | "veryLow". Défaut "high" (cas d'usage 2FA / OTP — le code doit arriver vite).
  • validity_period — durée maximale d'attente en minutes avant abandon par l'opérateur. Défaut 1440 (24 h, valeur OVH par défaut).
Source
service(service_name : String) : ServiceInfo

Métadonnées du service SMS (crédit restant, type marketing / transactional, callback URL, etc.).

Source
services

Liste les serviceName SMS accessibles à la consumer key courante. Utile au boot pour valider la config :

services = client.sms.services
raise "Service SMS introuvable" unless services.includes?(ENV["OVH_SMS_SERVICE"])
Source