Sparrow SMS envía sus campañas, sus códigos de un solo uso y sus notificaciones a todos los operadores: remitente con su nombre, enrutamiento directo, acuses de recibo en tiempo real e integración con su sistema de información.
Haga clic en un caso de uso para descubrir en detalle cómo Sparrow SMS lo activa para su empresa.
El SMS se abre casi siempre, y casi de inmediato: es el canal del mensaje breve y con fecha — una promoción que acaba el domingo, la apertura de una tienda, un recordatorio de saldo. Usted redacta el texto, elige el segmento y programa la hora de envío.
Verificación de un número, validación de un pago, confirmación de un pedido: estos mensajes deben salir al instante. Toman una cola prioritaria, independiente de las campañas de marketing.
El SMS no exige ni aplicación instalada, ni conexión de datos, ni cuenta abierta: llega a un teléfono básico igual que a un smartphone. Eso lo convierte en el canal de los recordatorios de cita, los avisos de entrega y las convocatorias.
Basta una petición HTTP para enviar un SMS: su sitio, su ERP o su software de gestión llama a la API y el mensaje sale. La autenticación se hace por token, y cada aplicación puede tener el suyo para que las estadísticas se mantengan separadas.
El SMS devuelve un acuse del operador: entregado, no entregado, y el motivo del rechazo. Sabe así con precisión qué números recibieron el mensaje, cuáles son inválidos y cuáles están fuera de servicio, lo que permite depurar su base envío tras envío.
Un mismo canal, mensajes que no obedecen a las mismas reglas: el promocional se planifica y lleva una mención STOP, el transaccional sale al instante y no la lleva.
Ofertas, rebajas, aperturas y acciones de duración limitada, dirigidas a un segmento elegido.
Mención STOP obligatoriaConfirmación de pedido, aviso de pago, cambio de estado: lo dispara su aplicación.
Cola prioritariaCódigo de un solo uso para validar un inicio de sesión, un pago o un cambio de datos.
Entrega en segundosEntrega, incidencia, interrupción del servicio, información urgente que difundir ampliamente.
Sin aplicación necesariaCita, vencimiento de pago, caducidad de un documento: enviado la víspera o unas horas antes.
Envío programadoUn mismo mensaje dirigido a una lista entera, en una sola petición o desde la interfaz web.
Hasta varios cientos de milesBienvenida, cumpleaños, recordatorio al tercer día: una secuencia se activa con un evento y se desarrolla sola.
Disparado por un eventoSus destinatarios fuera de Marruecos, alcanzados por los mismos enlaces de operador y la misma interfaz.
Tarifa por destinoSus destinatarios responden, y sus respuestas vuelven a la campaña de origen o por webhook.
Respuestas vinculadas a la campañaLa plataforma, el enrutamiento con operadores y la API en una misma suscripción, sin ninguna herramienta adicional que conectar.
Sus mensajes aparecen bajo su nombre comercial en lugar de un número anónimo. Nos encargamos del registro ante los operadores.
Enlaces directos, sin reventa en cascada: eso es lo que mantiene el plazo de entrega en unos segundos y la tasa de rechazo en su mínimo.
Importe sus listas desde un archivo o desde su CRM, elimine duplicados, segmente y deje que la plataforma descarte los números inválidos y las bajas.
Elija la fecha y la hora, o deje que un evento dispare el envío: recordatorio la víspera, seguimiento al tercer día, mensaje de cumpleaños.
Cada número lleva su estado —entregado, pendiente, rechazado— y su motivo. Exportación CSV, webhooks y respuestas entrantes vinculadas a la campaña.
Una petición HTTP y el mensaje sale. Token por aplicación, envío individual o masivo, ejemplos en los principales lenguajes.
No hay que instalar ninguna biblioteca propietaria. La API REST se llama desde cualquier lenguaje, y la interfaz web sigue disponible para los envíos manuales.
POST /api/v1/login con sus credenciales devuelve un token
(api_token) que después coloca en la cabecera
Authorization: Bearer {api_token} de cada envío.
Una cuenta puede alojar varias aplicaciones, cada una con su token:
las estadísticas se mantienen separadas, aplicación por aplicación.
| Operación | Método | URL |
|---|---|---|
| Obtener un token | POST | https://app.sparrowmessage.com/api/v1/login |
| Enviar un SMS | POST | https://app.sparrowmessage.com/api/v1/sms/send/one |
| Envío masivo | POST | https://app.sparrowmessage.com/api/v1/sms/send/bulk |
| Estado de un SMS | POST | https://app.sparrowmessage.com/api/v1/sms/status |
| Estado de una lista | POST | https://app.sparrowmessage.com/api/v1/sms/status/bulk |
SEMS
Amplitude RR. HH.
1 — Obtener el token y enviar un SMS.
<?php
$base = 'https://app.sparrowmessage.com/api/v1';
// — Authentification : le jeton est à conserver, pas à redemander à chaque envoi
$ch = curl_init("$base/login");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Accept: application/json', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'email' => 'vous@societe.ma',
'password' => 'votre-mot-de-passe',
]),
]);
$jeton = json_decode(curl_exec($ch), true)['api_token'];
curl_close($ch);
// — Envoi d'un SMS
$ch = curl_init("$base/sms/send/one");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Content-Type: application/json',
"Authorization: Bearer $jeton",
],
CURLOPT_POSTFIELDS => json_encode([
'phone' => '+2126XXXXXXXX',
'text' => 'Votre code de vérification est 385 214.',
// Facultatif : Sparrow y postera les changements de statut
'notifyurl' => 'https://votre-site.ma/sparrow/statut',
]),
]);
$reponse = json_decode(curl_exec($ch), true);
curl_close($ch);
// Toute réponse porte un champ code : OK ou KO
echo $reponse['code'] === 'OK' ? "SMS envoyé\n" : "Échec : {$reponse['error']}\n";
Envío individual y después envío masivo.
import requests
base = 'https://app.sparrowmessage.com/api/v1'
# — Authentification
jeton = requests.post(f'{base}/login', json={
'email': 'vous@societe.ma',
'password': 'votre-mot-de-passe',
}).json()['api_token']
entetes = {'Authorization': f'Bearer {jeton}', 'Accept': 'application/json'}
# — Envoi d'un SMS
r = requests.post(f'{base}/sms/send/one', headers=entetes, json={
'phone': '+2126XXXXXXXX',
'text': 'Votre code de vérification est 385 214.',
'notifyurl': 'https://votre-site.ma/sparrow/statut',
}).json()
print('SMS envoyé' if r['code'] == 'OK' else f"Échec : {r['error']}")
# — Envoi en masse : une seule requête, plusieurs destinataires
requests.post(f'{base}/sms/send/bulk', headers=entetes, json={
'phones': ['+2126XXXXXXXX', '+2126YYYYYYYY'],
'text': 'Soldes : -20 % jusqu\'à dimanche. STOP au 36000',
})
# — Statut d'un envoi, à partir de l'identifiant renvoyé
statut = requests.post(f'{base}/sms/status', headers=entetes, json={
'message_id': '8f21c4',
}).json()
print(statut['result'])
Node 18 o posterior: fetch es nativo.
const base = 'https://app.sparrowmessage.com/api/v1';
// — Authentification
const { api_token } = await fetch(`${base}/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
body: JSON.stringify({
email: 'vous@societe.ma',
password: 'votre-mot-de-passe',
}),
}).then(r => r.json());
const entetes = {
'Content-Type': 'application/json',
Accept: 'application/json',
Authorization: `Bearer ${api_token}`,
};
// — Envoi d'un SMS
const reponse = await fetch(`${base}/sms/send/one`, {
method: 'POST',
headers: entetes,
body: JSON.stringify({
phone: '+2126XXXXXXXX',
text: 'Votre code de vérification est 385 214.',
notifyurl: 'https://votre-site.ma/sparrow/statut',
}),
}).then(r => r.json());
console.log(reponse.code === 'OK' ? 'SMS envoyé' : `Échec : ${reponse.error}`);
// — Envoi en masse
await fetch(`${base}/sms/send/bulk`, {
method: 'POST',
headers: entetes,
body: JSON.stringify({
phones: ['+2126XXXXXXXX', '+2126YYYYYYYY'],
text: 'Soldes : -20 % jusqu\'à dimanche. STOP au 36000',
}),
});
.NET 6 o posterior.
using System.Net.Http.Json;
var http = new HttpClient { BaseAddress = new Uri("https://app.sparrowmessage.com/api/v1/") };
// — Authentification
var auth = await http.PostAsJsonAsync("login", new {
email = "vous@societe.ma",
password = "votre-mot-de-passe",
});
var jeton = (await auth.Content.ReadFromJsonAsync<Dictionary<string, string>>())["api_token"];
http.DefaultRequestHeaders.Authorization = new("Bearer", jeton);
// — Envoi d'un SMS
var envoi = await http.PostAsJsonAsync("sms/send/one", new {
phone = "+2126XXXXXXXX",
text = "Votre code de vérification est 385 214.",
notifyurl = "https://votre-site.ma/sparrow/statut",
});
var resultat = await envoi.Content.ReadFromJsonAsync<Dictionary<string, object>>();
Console.WriteLine(resultat["code"].ToString() == "OK" ? "SMS envoyé" : $"Échec : {resultat["error"]}");
// — Envoi en masse
await http.PostAsJsonAsync("sms/send/bulk", new {
phones = new[] { "+2126XXXXXXXX", "+2126YYYYYYYY" },
text = "Soldes : -20 % jusqu'à dimanche. STOP au 36000",
});
Java 11 o posterior, cliente HTTP nativo.
import java.net.URI;
import java.net.http.*;
var client = HttpClient.newHttpClient();
var base = "https://app.sparrowmessage.com/api/v1";
// — Authentification
var auth = HttpRequest.newBuilder(URI.create(base + "/login"))
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{"email":"vous@societe.ma","password":"votre-mot-de-passe"}"""))
.build();
var jeton = extraire(client.send(auth, HttpResponse.BodyHandlers.ofString()).body(), "api_token");
// — Envoi d'un SMS
var envoi = HttpRequest.newBuilder(URI.create(base + "/sms/send/one"))
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Authorization", "Bearer " + jeton)
.POST(HttpRequest.BodyPublishers.ofString("""
{"phone":"+2126XXXXXXXX",
"text":"Votre code de vérification est 385 214.",
"notifyurl":"https://votre-site.ma/sparrow/statut"}"""))
.build();
System.out.println(client.send(envoi, HttpResponse.BodyHandlers.ofString()).body());
Para copiar tal cual en un terminal.
# — 1. Obtenir le jeton
curl -X POST https://app.sparrowmessage.com/api/v1/login \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"email":"vous@societe.ma","password":"votre-mot-de-passe"}'
# Réponse : {"code":"OK","api_token":"eyJ0eXAiOiJKV1Qi..."}
# — 2. Envoyer un SMS
curl -X POST https://app.sparrowmessage.com/api/v1/sms/send/one \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"phone":"+2126XXXXXXXX",
"text":"Votre code de vérification est 385 214.",
"notifyurl":"https://votre-site.ma/sparrow/statut"}'
# — 3. Envoyer en masse
curl -X POST https://app.sparrowmessage.com/api/v1/sms/send/bulk \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"phones":["+2126XXXXXXXX","+2126YYYYYYYY"],
"text":"Rappel : votre rendez-vous est demain a 14h30."}'
# — 4. Statut d'un envoi
curl -X POST https://app.sparrowmessage.com/api/v1/sms/status \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"message_id":"8f21c4"}'
# — 5. Statut d'une liste
curl -X POST https://app.sparrowmessage.com/api/v1/sms/status/bulk \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $JETON" \
-d '{"messages_id":["8f21c4","8f21c5"]}'
Todas las respuestas llevan un campo code por valor de OK ou
KO. En caso de OK, result — o results
para las llamadas masivas — lleva el detalle; en caso de KO,
error indica el motivo.
Documentación completa y entorno de pruebas facilitados al abrir la cuenta.
Grandes cuentas, instituciones y administraciones, en Marruecos y en el extranjero. Las mismas organizaciones, sea cual sea el canal.

Comunicación con empleados, proveedores y clientes

Comunicación con clientes y empleados

Comunicación con clientes y empleados

Comunicación con proveedores

Comunicación con clientes y empleados

Comunicación con candidatos y empresas

Comunicación con miembros y socios

Comunicación con socios

Comunicación con socios y donantes

Comunicación con clientes

Notificaciones a clientes desde el CRM

Comunicación con clientes

Comunicación con candidatos y empresas

Comunicación con socios

Comunicación con clientes y socios

Comunicación con proveedores

Comunicación con estudiantes y socios

Comunicación con profesionales del turismo

Comunicación con clientes

Comunicación con socios

Comunicación con clientes y usuarios

Comunicación con estudiantes y administración

Comunicación con estudiantes y administración

Comunicación con clientes y puntos de venta

Comunicación con empleados

Comunicación con clientes y posibles clientes

Comunicación con clientes y posibles clientes

Comunicación con clientes

Comunicación con clientes

Comunicación con clientes

Notificaciones y relación con clientes

Notificaciones a clientes y proveedores

Notificaciones y campañas a clientes
Promociones de duración limitada, confirmación de pedido, aviso de recogida en tienda.
Códigos de validación de operación, avisos de vencimiento, alertas de seguridad.
Convocatorias a exámenes, resultados disponibles, información inmediata a las familias.
Confirmación de visita, recordatorio de cita, seguimiento de posibles clientes.
Aviso de expedición, franja de entrega, código de recogida del paquete.
Convocatorias a asambleas, recordatorios de cuota, información urgente.
Instrucciones a los equipos de campo, guardias, alertas de producción.
Recordatorios de cita, resultados disponibles, campañas de prevención.
Sin suscripción: usted compra un volumen de SMS, válido sin fecha de caducidad. El precio unitario baja por tramos, y el pedido mínimo es de 1 000 SMS.
Para empezar, probar un canal o cubrir envíos puntuales.
Para campañas periódicas y notificaciones diarias.
A partir de 50 000 SMS por envío o por mes.
Transferencia bancaria a E-solution, Casablanca. Factura marroquí con ICE, IVA aplicable.
Facturado por E-SOLUTION TECHNOLOGIES LLC, Nueva York — EIN 32-0781906. Útil si su contabilidad trabaja en dólares, esté donde esté.
Los datos bancarios y el enlace de pago seguro se le envían con la factura, nunca se publican en esta página.
Precios sin impuestos, para Marruecos. Un SMS cuenta 160 caracteres; por encima, el mensaje se divide y cada parte se descuenta. Es posible una conservación de registros más larga a petición.
Indique su volumen: el precio unitario se ajusta al tramo alcanzado. El presupuesto recoge exactamente lo que seleccione aquí.
Pedido mínimo: 1 000 SMS. Los créditos no caducan.
El remitente compartido está incluido. Cada nombre de remitente con su marca se registra ante los operadores, y se factura una sola vez: 500 DH por nombre, el primero incluido en la oferta a partir de 10 001 SMS.
El paquete de soporte se factura anualmente.
Estimación orientativa sin impuestos, calculada según nuestras tarifas públicas.
Por encima de los tramos públicos, construimos con usted una tarifa adaptada a sus volúmenes, a sus destinos y a su estacionalidad. Hablemos: le respondemos en 24 horas hábiles.
160 caracteres para un mensaje en alfabeto latino estándar. Por encima, el mensaje se divide y cada parte se descuenta: 306 caracteres son dos SMS, 459 son tres. Los caracteres acentuados pasan, pero un emoji o un carácter árabe cambia el mensaje a codificación Unicode, donde el límite baja a 70 caracteres. La plataforma le muestra el recuento mientras escribe.
Sí. El nombre de remitente puede tener hasta once caracteres y sustituye al número de emisión. Debe registrarse ante los operadores, con un justificante de existencia de la empresa; nos encargamos del trámite, que lleva unos días hábiles.
El SMS transaccional responde a una acción del destinatario: un código de verificación, una confirmación de pedido, un aviso de entrega. Sale al instante, por una cola prioritaria, y no lleva mención de baja. El SMS de marketing propone algo que no se ha pedido: exige el consentimiento previo, la mención STOP y el respeto de los horarios permitidos.
Los envíos publicitarios deben reservarse al horario laboral y evitarse de noche, a primera hora, los domingos y los festivos. Esta regla es tanto de sentido común comercial como reglamentaria: un mensaje recibido a las 23 h produce sobre todo bajas. Los mensajes de servicio, en cambio, no están afectados.
Cada campaña de marketing lleva una mención de baja. El destinatario que responde STOP se retira automáticamente de sus listas, y la plataforma lo excluye de todos sus envíos publicitarios posteriores, sin intervención por su parte. En cambio, sigue recibiendo sus mensajes de servicio, que no dependen del consentimiento comercial.
El operador devuelve un acuse negativo con su motivo: número inexistente, teléfono apagado desde hace demasiado tiempo, abonado fuera de servicio. El mensaje no se descuenta dos veces, y el número se señala en el informe de campaña. Sus envíos sucesivos depuran así su base sobre la marcha.
Sí, en las campañas enviadas desde un número emisor. Las respuestas vuelven a la interfaz, vinculadas a la campaña de origen, y pueden reenviarse a su sistema por webhook. Eso es lo que permite las confirmaciones de cita por respuesta, las encuestas y los juegos por SMS.
No. Los créditos comprados siguen disponibles sin fecha límite. El precio unitario es el del tramo alcanzado en el momento del pedido: pedir de una vez en lugar de en varios tramos pequeños sale, por tanto, más barato.
Sí, la cobertura es internacional. La tarifa depende entonces del destino, y algunos países imponen sus propias reglas sobre el nombre de remitente o el registro previo de las campañas. Le indicamos el precio y las restricciones por destino antes de cualquier envío.
En Marruecos, el tratamiento de datos personales se rige por la ley 09-08 y la CNDP: su fichero de números debe declararse, y todo envío publicitario exige el consentimiento previo del destinatario. La mención STOP figura en cada campaña de marketing y se aplica de inmediato; consentimientos, fechas de recogida y solicitudes de supresión se conservan y se pueden exportar como justificantes. No somos juristas: haga validar su dispositivo y su declaración ante la CNDP por su asesoría.
El RGPD exige un consentimiento libre, específico e informado antes de todo envío publicitario, así como un medio sencillo de retirarlo. La mención STOP figura en cada campaña de marketing y se aplica de inmediato; consentimientos, fechas de recogida y solicitudes de supresión se conservan y se pueden exportar, lo que alimenta su registro de tratamientos. No somos juristas: para sus cláusulas informativas y la base legal de sus envíos, haga validar su dispositivo por su asesoría.
En Estados Unidos, el SMS comercial se rige por la Telephone Consumer Protection Act, aplicada por la FCC, y las reglas de la CAN-SPAM Act enmarcan el correo electrónico. La TCPA exige un consentimiento escrito explícito antes de todo mensaje publicitario, un medio de baja recordado en los mensajes y el respeto del horario local del destinatario. A ello se suman las reglas de los operadores, que condicionan el uso de un número al registro de la campaña. Las respuestas STOP se procesan automáticamente y se conservan. No somos juristas: dado que la TCPA abre un derecho de acción individual, haga validar su dispositivo por su asesoría antes de cualquier campaña.
La cuenta se abre en 24 horas y los primeros envíos de prueba pueden salir de inmediato con un remitente compartido. El plazo real depende del registro de su nombre de remitente ante los operadores, que lleva unos días hábiles.
Su plataforma de SMS operativa en 4 fases
De la firma al primer envío, un recorrido marcado y un único interlocutor.
Plazo habitual: cuenta abierta en 24 h, primer envío en cuanto los operadores validen el nombre de remitente.