Recibir el código
Consulta un pedido con /sms/check, todos los pedidos en curso con /request/active, o recibe los códigos automáticamente por webhook.
Un código puede llegar segundos o minutos después de hacer el pedido. Hay dos formas de obtenerlo: preguntar o que te avisen.
Consulta periódica
/sms/check responde sobre un pedido. Devuelve 200 para cualquier pedido que sea tuyo: decide según status, no según el código HTTP.
curl https://numestri.com/api/v1/sms/check -H "Authorization: Bearer $NUMESTRI_KEY" -d orderid=JRJ5UEXS- Esperando
- Código recibido
{ "status": 1, "resend": 0, "time_left": 1188 }{
"status": 3,
"sms": "140722",
"full_sms": "140722 is your Telegram verification code."
}
| Significado |
|---|---|
| Listo, esperando el SMS. Pide el código ahora. |
| Caducó sin código. Se reembolsa automáticamente. |
| Llegó un código; está en |
| Se pidió un reenvío. |
| Cancelaste el pedido (reembolsado). |
| Reembolsado. |
| En proceso. Todavía no puede recibir. |
| El número se está activando. Todavía no puede recibir. |
Consulta cada 3–5 segundos y detente al recibir 3, 2, 5 o 6.
Espera al estado 1 antes de pedir el código
Algunos números necesitan unos minutos de activación tras la compra y devuelven 8 (activating) hasta que pueden recibir. No pidas a la plataforma que envíe el código hasta que el estado sea 1: un código enviado a un número que aún se está activando se pierde. Mientras se activa, ready_at_estimate indica la hora unix a la que estos números suelen estar listos (o null si no hay estimación). time_left sigue contando desde la compra todo el tiempo, y un pedido que nunca llega a estar listo se reembolsa al caducar, como cualquier otro.
Muchos pedidos a la vez
/request/active devuelve todos los pedidos en curso en una sola llamada: es la opción adecuada en cuanto tienes más de uno en marcha.
curl https://numestri.com/api/v1/request/active -H "Authorization: Bearer $NUMESTRI_KEY"[
{ "order_code": "JRJ5UEXS", "phonenumber": "12025550123", "code": "140722", "status": "completed", "time_left": 1102 }
]status es uno de pending, processing, activating, completed, resend, expired, cancelled o refunded.
Un ciclo completo
const api = "https://numestri.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.NUMESTRI_KEY}` };
const order = await fetch(`${api}/purchase/sms`, {
method: "POST", headers, body: new URLSearchParams({ service: "telegram", country: "US" }),
}).then((r) => r.json());
if (!order.success) throw new Error(order.message);
while (true) {
const check = await fetch(`${api}/sms/check`, {
method: "POST", headers, body: new URLSearchParams({ orderid: order.order_id }),
}).then((r) => r.json());
if (check.status === 3) { console.log("código:", check.sms); break; }
if ([2, 5, 6].includes(check.status)) throw new Error("No llegó ningún código; el pedido se reembolsó.");
await new Promise((r) => setTimeout(r, 4000));
}