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.

Insertar
Vista previa de la tarjeta
<a href="https://numestri.com/docs/es/receiving-the-code"><img src="https://numestri.com/docs/_api/public/orgs/25229885-9620-4c08-bd2e-a0d0d74ac8b6/spaces/ef21e0c3-966d-4b03-b6d2-e66d449835d4/pages/9311004d-6f0c-4a7d-b8ef-d0cc3034c0b0/social-card.svg?v=3e7ae33eec8b" alt="Recibir el código" width="600" height="315"></a>

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
{ "status": 1, "resend": 0, "time_left": 1188 }

status

Significado

1

Listo, esperando el SMS. Pide el código ahora.

2

Caducó sin código. Se reembolsa automáticamente.

3

Llegó un código; está en sms, y el mensaje completo en full_sms.

4

Se pidió un reenvío.

5

Cancelaste el pedido (reembolsado).

6

Reembolsado.

7

En proceso. Todavía no puede recibir.

8

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));
}
Actualizado