Endpoint (sender_3)
Envío de SMS mediante petición GET.
Método: GET
Servicio: sender_3
Respuesta: Texto/HTML
https://isolutionsapi.com/api/?service=sender_3&token=TU_TOKEN&key=TU_KEY&phone=51912345678&text=Hola%20mundo
Si tu sistema arma el URL en backend, usa urlencode() para el parámetro text.
Parámetros
Parámetros requeridos para enviar un SMS.
| Parámetro | Requerido | Descripción | Ejemplo |
|---|---|---|---|
| service | Sí | Servicio a utilizar. | sender_3 |
| token | Sí | Token de autenticación del usuario. | TU_TOKEN |
| key | Sí | Clave asociada al token. | TU_KEY |
| phone | Sí | Número destino en formato internacional (sin +). Ej: Perú 51... | 51912345678 |
| text | Sí | Mensaje del SMS (recomendado URL-encoded). | Hola%20mundo |
Texto y codificación
Si envías el mensaje por URL, algunos clientes reemplazan espacios por +. Para evitar problemas, siempre codifica el texto.
✅ En tu URL usa: text=urlencode("hola este es un sms")
✅ En tu API al recibir: $sms = urldecode($_GET['text']);
Si te llegan +, puedes reforzar: str_replace('+',' ', $sms).
✅ En tu API al recibir: $sms = urldecode($_GET['text']);
Si te llegan +, puedes reforzar: str_replace('+',' ', $sms).
/* Recomendado en tu API (receiver) */
$textRaw = $_GET['text'] ?? '';
$sms = urldecode($textRaw);
$sms = str_replace('+',' ', $sms); // extra protección
Respuestas (HTML)
La API responde en texto (HTML). Debes validar por contenido.
| Respuesta | Significado |
|---|---|
| sms enviado con exito | El mensaje fue entregado correctamente. |
| No cuentas con saldo suficiente | El usuario no tiene saldo disponible. |
| error al enviar el sms | Fallo interno o número inválido. |
| Servicio no disponible | Servicio temporalmente fuera. |
Tip PRO: en tu cliente, convierte la respuesta a minúsculas y busca palabras clave. Ej: strpos($r, 'saldo') !== false.
Ejemplos listos
cURL (terminal)
curl -G "https://isolutionsapi.com/api/" \
--data-urlencode "service=sender_3" \
--data-urlencode "token=TU_TOKEN" \
--data-urlencode "key=TU_KEY" \
--data-urlencode "phone=51912345678" \
--data-urlencode "text=Hola mundo"
PHP (cURL)
$base = "https://isolutionsapi.com/api/";
$params = [
"service" => "sender_3",
"token" => "TU_TOKEN",
"key" => "TU_KEY",
"phone" => "51912345678",
"text" => "Hola mundo"
];
$url = $base . "?" . http_build_query($params);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_FOLLOWLOCATION => true
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
JavaScript (fetch)
const base = "https://isolutionsapi.com/api/";
const params = new URLSearchParams({
service: "sender_3",
token: "TU_TOKEN",
key: "TU_KEY",
phone: "51912345678",
text: "Hola mundo"
});
fetch(`${base}?${params.toString()}`)
.then(r => r.text())
.then(txt => console.log(txt));
Checklist de integración
✅ Usa timeout 30–60s en el cliente.
✅ Loguea: token (parcial), phone, respuesta y tiempo.
✅ Valida formato de phone (solo dígitos).
✅ Codifica siempre text (urlencode / http_build_query).
✅ Si respuesta es HTML, normaliza: trim + strtolower antes de comparar.
✅ Loguea: token (parcial), phone, respuesta y tiempo.
✅ Valida formato de phone (solo dígitos).
✅ Codifica siempre text (urlencode / http_build_query).
✅ Si respuesta es HTML, normaliza: trim + strtolower antes de comparar.