Ayuda de SMSverifica · apartado 11 de 18
11. La API REST: todo lo del panel, desde tu software

Todo lo que hace el panel se puede hacer por API (https://app.smsverifica.com/api/v1):
POST /messages— enviar SMS, WhatsApp o Telegram.GET /messages/{id}yGET /messages— estado e historial.POST /campaigns— campañas completas.POST /verify/startyPOST /verify/check— verificación OTP lista para usar: generamos el código, lo enviamos y lo comprobamos nosotros.POST /certified— mensajería certificada.GET /account/balanceyGET /pricing/sms— saldo y tarifas vigentes.GET /sendersyGET /senders/check— tus remitentes y qué pasaría hoy al enviar con ellos a España: si salen con tu marca, con el remitente de respaldo o se rechazan (Registro de Alias de la CNMC).
Autenticación recomendada: token Bearer creado en esta pantalla (se enseña
una sola vez; revocable; con caducidad opcional). Toda petición de creación
admite Idempotency-Key, así un reintento de red nunca duplica un envío. Sin
saldo, la API responde 402 insufficient_balance — tu integración puede
reaccionar recargando o avisando.
La referencia completa con ejemplos curl está en
smsverifica.com/api-sms.html.
Si vienes de la API clásica de Altiria: qué tienes que cambiar
Esta sección es para quien ya enviaba SMS llamando directamente a la API
clásica de Altiria (cmd=sendsms) y ha pasado su cuenta a SMSverifica. Si
tu código sigue apuntando allí, tus envíos no están saliendo, y es el tipo
de avería que no da error hasta que alguien reclama.
Lo que cambia es la URL y la autenticación. A quién envías, qué texto y cuándo, no se toca.
Antes (API clásica de Altiria, formulario codificado):
POST https://www.altiria.net:8443/api/http
cmd=sendsms
&domainId=TU_DOMINIO
&login=TU_LOGIN
&passwd=TU_PASSWORD
&dest=+34600111222
&msg=Hola
&senderId=MIMARCA
Ahora (SMSverifica, JSON):
POST https://app.smsverifica.com/api/v1/messages
Content-Type: application/json
X-Api-Key: sk_live_...
X-Api-Secret: ...
Idempotency-Key: 7f3c1e90-...
{
"channel": "sms",
"to": "+34600111222",
"body": "Hola",
"from": "MIMARCA"
}
La equivalencia campo a campo:
| API clásica de Altiria | SMSverifica | Nota |
|---|---|---|
cmd=sendsms |
POST /api/v1/messages |
El verbo va en la ruta, no en un campo |
domainId + login + passwd |
Cabeceras X-Api-Key y X-Api-Secret |
Dos valores, no tres. Los tienes en Ajustes → API |
dest |
to |
En E.164 (+34600111222). Si mandas 600111222 lo normalizamos a España |
msg |
body |
Hasta 1.600 caracteres; te cobramos por partes reales |
senderId |
from |
Ver el aviso de abajo |
cmd=getcredit |
GET /api/v1/account/balance |
Devuelve balance_eur: un importe en euros |
| (no existía) | Idempotency-Key |
Úsalo: un UUID por mensaje. Un reintento de red deja de poder duplicar un envío |
Tres cosas que conviene saber antes de tocar el código:
- El saldo va en euros.
GET /account/balancedevuelvebalance_eur, un importe en euros. Si tu integración leía otra unidad y la comparaba contra un número, revísalo: aquí cada mensaje cuesta un precio fijo en euros según país y canal. - Sin saldo la respuesta es
402, concode: insufficient_balance. No es un error transitorio: reintentarlo no lo arregla. - El remitente ya no es libre. Desde el 15 de septiembre de 2026, un
remitente de marca hacia España tiene que estar inscrito en el Registro de
Alias de la CNMC (ver el apartado 3). Si mandas un
fromno inscrito, la respuesta es422 sender_alias_not_registeredo sale con el remitente de respaldo de tu cuenta. No reintentes ese 422: avisa a quien corresponda y presenta el trámite.
Si prefieres no tocar nada todavía, dínoslo: podemos revisar tu integración contigo por teléfono en media hora y quedarte tranquilo.
Webhooks de estado

En vez de preguntar cada minuto, dinos una URL tuya y te notificamos nosotros cada cambio de estado (enviado, entregado, fallido, leído…), con firma para que verifiques que somos nosotros y reintentos automáticos si tu servidor no responde.