Saltar al contenido principal

Ayuda de SMSverifica · apartado 11 de 18

11. La API REST: todo lo del panel, desde tu software

Credenciales de API

Todo lo que hace el panel se puede hacer por API (https://app.smsverifica.com/api/v1):

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:

  1. El saldo va en euros. GET /account/balance devuelve balance_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.
  2. Sin saldo la respuesta es 402, con code: insufficient_balance. No es un error transitorio: reintentarlo no lo arregla.
  3. 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 from no inscrito, la respuesta es 422 sender_alias_not_registered o 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

Webhooks

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.


← Todos los apartados de la ayuda