# API para recibir SMS de verificación

La API para recibir SMS de SMS Nitro hace por código lo mismo que el panel: mismo catálogo, mismos precios y la misma regla de cobro. Si ya tienes un bot o un script hecho para SMS-Activate, solo cambias la URL y la clave.

## ¿Cómo se recibe un código de verificación con la API de SMS Nitro?

Generas tu clave en el panel después de la primera recarga confirmada. Con ella llamas a POST /api/v1/orders indicando servicio y país, recibes el número y consultas el pedido cada pocos segundos hasta que aparece el SMS. Luego finalizas el pedido. Si no llega nada en 20 minutos, el importe retenido vuelve solo a tu saldo.

## Qué puedes hacer con la API REST v1

La base es https://smsnitro.com/api/v1, con respuestas en JSON y códigos HTTP estándar. La clave va en la cabecera X-Api-Key; también se acepta Authorization: Bearer seguida de la clave.

- Saldo: GET /balance devuelve el saldo disponible y el retenido en pedidos abiertos, en dólares.
- Catálogo: GET /services lista servicios con precio y tasa de entrega; GET /services/{servicio}/countries muestra cada país con su precio.
- Pedidos: POST /orders compra un número; GET /orders y GET /orders/{id} sirven para la consulta de estado y para leer el SMS.
- Acciones sobre el pedido: finish para cerrarlo, cancel para recuperar el importe antes de que llegue un SMS, resend para pedir otro código en el mismo número sin costo y ban para reportar un número ya usado.

## Alternativa a la API de SMS-Activate

Muchos programas de registro y bots solo saben hablar el protocolo de SMS-Activate. Para ellos existe el endpoint https://smsnitro.com/api/stubs/handler_api.php, que acepta GET o POST con los parámetros api_key y action y siempre responde con HTTP 200, así que el cliente debe leer el cuerpo de la respuesta.

Acciones disponibles: getBalance, getNumber, getStatus, setStatus, getPrices, getNumbersStatus, getServicesList y getCountries. Los importes vienen en dólares, la moneda de la cuenta. Ojo con un detalle: country=0 o vacío apunta a Estados Unidos, no a Rusia como en el protocolo original.

## SDKs de Python y Node, y colección de Postman

Hay paquetes oficiales: pip install smsnitro para Python y npm i smsnitro para Node.js o TypeScript. Ambos traen una función que espera el código con tiempo límite y excepciones claras cuando el pedido termina sin SMS. La colección de Postman incluye todas las llamadas y también se importa en Insomnia o Bruno.

## Precios, cobro y límites

- Los precios de la API son los mismos del panel, sin recargo por usarla.
- El precio queda fijo al comprar y solo se cobra si llega el SMS; si no llega, se devuelve automáticamente.
- En algunos números la cancelación se habilita unos 2 minutos después de la compra.
- Hay un límite de solicitudes por minuto en la compra y en el reenvío de SMS; los SDKs consultan el estado cada 4 segundos, un ritmo razonable para tu propio código.
- Cada cuenta tiene una sola clave activa. Generar una nueva desde el panel revoca la anterior al instante.

## FAQ

**¿Necesito un plan especial para usar la API de verificación por SMS?** No. Cualquier cuenta con al menos una recarga confirmada puede generar su clave en el panel y empezar a llamar a la API.

**¿Mis scripts de SMS-Activate funcionan con SMS Nitro?** Sí, a través de handler_api.php: cambias la URL base y la clave. Revisa los códigos de país, porque el 0 corresponde a Estados Unidos.

**¿La API avisa cuando llega el SMS?** No hay notificación automática. Haces consulta de estado del pedido (GET /orders/{id} o getStatus) cada pocos segundos hasta que aparece el texto.

**¿Hay un entorno de pruebas?** No hace falta: recarga poco, prueba con servicios baratos y recuerda que un número que no recibe SMS nunca se cobra.

Source: https://smsnitro.com/es/api
