İçeriğe geç

SMS bekleme

GET /numbers/sms/wait her numara türü için (Hero SMS, Twilio ya da mobil) aynı çalışır. Filtrelerinize uyan SMS’i döndürür; henüz gelmediyse bekler.

curl -G https://api.clearance.rest/numbers/sms/wait \
-H "X-API-Key: $CLEARANCE_REST_API_KEY" \
-H "X-Service-Timeout: 120000" \
--data-urlencode "number=+14155550100" \
--data-urlencode "sender=+15559998888" \
--data-urlencode "match_regex=Kodunuz" \
--data-urlencode "code_regex=\d{6}"
{
"success": true,
"code": "123456",
"from": "+15559998888",
"to": "+14155550100",
"body": "Kodunuz 123456",
"messageSid": "SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"receivedAt": 1785107161430
}
Parametre Etkisi
number (zorunlu) Alıcı numara, E.164 formatında.
sender Yalnızca bu göndericiden gelen SMS. Verilmezse herhangi bir gönderici.
timestamp Yalnızca bu andan sonra alınan SMS. Saniye, milisaniye, mikrosaniye ya da ISO 8601 dizesi.
match_regex Filtre. Gövdesi eşleşmeyen mesajlar atlanır ve bekleme sürer.
code_regex Çıkarma. Seçilen mesaja uygulanır; sonuç code alanına gider.

match_regex hangi SMS’in uygun olduğunu seçer, code_regex ondan bir değer çıkarır; ikisi birbirinden bağımsızdır. code_regex’te capture group varsa grup, yoksa tüm eşleşme döner. code_regex vermezseniz code null olur. Geçersiz bir regex 400 döndürür.

Query string’de baştaki + işaretini %2B olarak encode edin. Ham + boşluğa çevrilir. curl --data-urlencode ve SDK’lar bunu sizin için yapar.

Birden fazla SMS eşleşirse en yenisi döner ve isteğinizden önce gelmiş bir SMS de sayılır. Bir numarayı yeniden kullanırsanız eski bir kod yeni bir beklemeyle eşleşebilir. Zamanı SMS’i tetiklemeden önce alın ve timestamp olarak verin:

const startedAt = Date.now();
await triggerVerificationSms(number); // akışın sizin tarafınız
const sms = await clearanceRest.numbers.wait({ number, timestamp: startedAt, codeRegex: '\\d{6}' });

Yalnızca status değeri ACTIVE olan numaralar bir waiter’ı uyandırır. Başka bir durumdaki numaraya gelen SMS saklanır ama bir beklemeyi çözmez. Mobil numaralarda SIM’in de takılı olması gerekir. Bkz. Numaraları yönetme.

Bekleme en fazla 5 dakika sürer; X-Service-Timeout ile düşürebilirsiniz. Süre dolarsa yanıt HTTP 200 ve { "success": false, "error": "timeout" } olur. Bkz. Timeout.