SMS-Activate Geçiş Merkezi 2026: Geliştirici Kontrol Listesi, API Haritalaması ve Geri Para Karşılaştırması
Kapama işleminden bu yana dört ay geçirdim ve aynı geçiş sorusunu düzinelerce geliştiriciden cevapladım. Çoğu, bir 503 hatası ve geri çekemediği bir bakiye ile uyandı ve hepsi aynı şeyi istedi: entegrasyonunu canlı tutmak için yeniden yazmadan. Bu kılavuz, bu konuşmaların uzun biçimli versiyonudur.
Yalnızca on dakikanız varsa, 10 adımlı kontrol listesine atlayın, uç nokta haritalama tablosunu kopyalayın ve kod örneklerini başlangıç noktası olarak kullanın. Tam resmi istiyorsanız — ne oldu, neden geri para politikası daha da kötüleştirdi ve hayatta kalan sağlayıcılar nasıl birikti — doğrudan okuyun.
SMS-Activate'a Ne Oldu?
SMS-Activate, neredeyse bir on yıl boyunca SMS doğrulama pazarının önemli bir bölümünü yönetti. 2024'ün sonlarında zaten zorlanıyordu. Rus finansal düzenlemeleri o yıl iki kez sıkılaştırıldı, iki ana ödeme kanalı düştü ve destek yanıt süreleri saatlerden günlere kaydı. 2025'in 3. çeyreğinde, geri ödeme talepleri belirsiz "inceleme bekliyor" bildirimleriyle reddediliyordu ve bu bildirimler hiçbir zaman çözülmedi.
29 Aralık 2025'te, web sitesi 503 hatası döndürdü ve Telegram kanalı tek bir veda mesajı yayınladı. Discord sunucusu 48 saat içinde silindi. Veri ihracatı, iletim hizmeti ve kullanıcı bakiyelerinin halka açık uzlaştırılması yapılmadı. O haftadan itibaren haberler, topluluk subredditlerinde ve Trustpilot konularında hala okunabilir, eğer kullanıcı tarafındaki hikayeyi okumak istiyorsanız.
İşletmenin kapanması, tüm bir iş modelinin stres testi oldu. Hayatta kalan hizmetler, birden fazla ödeme kanalına, birden fazla yargı bölgesinde varlık göstermeye ve bir destek ajanının uyanmasına bağlı olmayan çalışan bir geri ödeme mekanizmasına sahip olanlardı. Piyasanın ucuz ve sallantılı bölümü, aynı pencerede sessizce ortadan kayboldu.
30 Dolarlık Geri Para Tartışması
Küçük geliştiriciler için kapanmanın en acı verici kısmı, geri para minimumu idi. SMS-Activate'ın resmi geri para politikası, bir ödeme işlenmeden önce 30 USD bakiye gerektiriyordu. Her birkaç ayda 5 dolar yükleyen tipik bir hobi kullanıcısı - yapısal olarak herhangi bir kurtarma yolundan kilitliydi.
Bu politika, birçok ekip için göç etme aciliyetini "bu hafta" dan "bugün" e itti. Ayrıca, hayatta kalan sağlayıcıların geri paralar hakkında nasıl konuştuğunu yeniden çerçeveledi. Otomatik, düşük eşikli geri paralar, SMS-Activate sonrası grubun anlamlı bir payı için zorunlu bir gereklilik haline geldi.
Kapatma Zaman Çizelgesi (Gözden Geçirme)
- Ekime 2024 — İlk ödeme rayı kaldırıldı. İade işlemleri yavaşlamaya başladı.
- Nisan 2025 — İkinci ödeme rayı kaldırıldı. Destek yanıt süreleri saatlerden günlere düşer.
- Eylül 2025 — Telegram kanalı "hizmet incelemesi" bildirimi yayınlar. İade reddi rutin hale gelir.
- 14 Aralık 2025 — Kısa süreli kısmi arıza. Gösterge paneli iki gün boyunca aralıklı olarak geri döner.
- 29 Aralık 2025 — Kalıcı kapatma. Web sitesi 503 dönüşümü gösterir. Tek veda gönderisi. İade penceresi açıklanmaz.
- 2 Ocak 2026 — Discord sunucusu silindi. Telegram kanalı sessizleşir.
- 10 Ocak 2026 — İlk hamle eden rakipler (5sim, SMS-MAN, HeroSMS) geçiş kılavuzları yayınlar.
- Şubat 2026 — 14 Ekim 2025'ten önce yapılan üst-eklemeler için kart geri yükleme pencereleri sona erer.
- Nisan 2026 (bugün) — Geçiş penceresi kapanıyor. Çoğu aktif hesap zaten taşındı veya yeniden kuruldu.
10 Adımlı Göç Kontrol Listesi (Geliştiriciler İçin)
Her müşteriden geçirdiğim bu oyun planıdır. Üretim entegrasyonu handler_api.php stilinde SMS-Activate kullanarak, herhangi bir dilde yazılmış, getNumber, getStatus ve setStatus çağrılarını yapmaktadır. Sıra kasıtlıdır — kendi riskinize bir adımı atlayın.
Geçerli handler_api kullanımınızı denetleyin
Kod tabanınızı handler_api.php, getNumber, getStatus ve setStatus için grep edin. Her son noktayı, her parametreyi ve SMS-Activate temel URL'sini sabit kodlayan her yeri listeleyin. Çoğu ekip bu şekilde bir veya iki sürpriz çağrı sitesi bulur.
Uygun bir API ile değiştirme sağlayıcı seçin
Göçün temel URL takasından başka bir yeniden yazma olmadığı için handler_api şekilli bir HTTP arayüzü sunan bir sağlayıcı seçin. VerifySMS, 5sim ve SMS-MAN tümü uyumlu son noktalar sunar. Karar faktörleri fiyatlandırma, geri ödeme politikası ve ülke kapsamıdır — aşağıdaki karşılaştırma tablolarına bakın.
Temel URL ve API anahtarını merkezileştirin
Temel URL ve API anahtarını ortam değişkenlerine taşıyın. Kaynak kodda sabit kodlanmışlarsa, bu tek adım sizi bir sonraki kapatmadan korur. SMS_API_BASE ve SMS_API_KEY makul isimlerdir.
Tek bir hizmete karşı bir eşleştirme testi çalıştırın
Doğrulamak için düşük riskli bir hizmet seçin (Telegram iyi bir ilk hedef). Yeni sağlayıcıda 1 $ kredi yükleyin, on doğrulama çalıştırın ve başarı oranlarını ve SMS'ye kadar geçen süreyi tarihsel SMS-Activate numaralarınızla karşılaştırın. Bunu üretim ortamına dokunmadan önce yapın.
Yanıt şekillerini eşleştirin
handler_api yanıtları çoğunlukla sağlayıcılar arasında uyumludur, ancak birkaç durum kodu ince farklılıklar gösterir. Ham HTTP yanıtı ve iş mantığı arasında gelecekteki göçlerin yalnızca bir dosyayı etkilemesi için ince bir çeviri katmanı oluşturun.
İade ve bakiye uzlaştırma göçünü güncelleyin
Başarısız doğrulamaların nasıl geri ödeneceğini karar verin. Otomatik iadeler bir muhasebe hatası sınıfını kaldırır ve gerçek zamanlı olarak uzlaştırır. Manuel bilet tabanlı iadeler yeni araçlar gerektirir — genellikle günlük bir uzlaştırma cron ve finans kişinizin okuyabileceği bir pano.
Yeniden deneme ve geri çekme mantığını güncelleyin
Farklı sağlayıcılar farklı zaman aşımı özelliklerine sahiptir. SMS-Activate kullanıcıları tipik olarak 30 ila 60 saniyelik pencereler için yeniden denemeleri ayarladılar. Yeni sağlayıcıya uyacak şekilde zaman aşımını ve yeniden denemeleri ayarlayın, eski varsayılanları kopyalamayın — aksi takdirde bütçenizi sızdırırsınız.
Bir gün boyunca trafiği aynalayın
Henüz canlı olan SMS-Activate şekilli trafiğiniz varsa (düşük sağlamlık sağlayıcı, bir aşama ortamı), aynı istek akışını hem eski hem de yeni sağlayıcılara gölge modunda gönderin. Anahtarı çevirmeden önce başarı oranlarını, SMS'ye kadar geçen süreyi ve iade sayımlarını karşılaştırın.
Özellik bayrağı ile yayınlayın
Yeni sağlayıcıyı bir özellik bayrağının arkasında kapalı tutun, böylece bir dağıtım olmadan geri dönabilirsiniz. Trafiğin %5'inden başlayın, %25, sonra %50, sonra birkaç saat içinde %100'e yükselin. Bu, bu çeyrekte satın alacağınız en ucuz sigortadır.
İki hafta boyunca izleyin ve çalışma kitabını belgeleyin
Başarı oranını, SMS'ye kadar geçen süreyi ve iade uzlaştırma işlemini tam iki hafta boyunca izleyin. Ne öğrendiğinizi yazın — hangi ülkeler düşük performans gösterir, hangi hizmetler daha yüksek sürtünmeye sahiptir, yeni sağlayıcının tuhaflıkları nerede yaşar. Gelecekteki siz, 2 AM'de bir şeyler bozulduğunda buna ihtiyacınız olacak.
Sıfır kod değişikliği ile VerifySMS'e göç edin
Handler_api uç noktamız, orijinal SMS-Activate spec'e uymak üzere şekillendirilmiştir, bu nedenle çoğu ekip bir temel URL ve bir API anahtarı değiştirir ve aynı gün gönderir. Otomatik iadeler, KYC yok, 200+ ülke.
Ücretsiz Başlayınhandler_api Endpoint Eşleme
İlk gün bana verilmiş olmasını dilediğim tablo bu. Her ortak SMS-Activate uç noktasının VerifySMS eşdeğerine eşlenmesi, parametrelerin farklı olduğu yerlerde bir not ile.
| SMS-Activate uç noktası | VerifySMS uç noktası | Parametreler hakkında notlar |
|---|---|---|
handler_api.php?action=getBalance |
handler_api.php?action=getBalance |
Özdeş istek şekli. Yanıt önekleri her ikisinde de ACCESS_BALANCE şeklindedir. |
action=getNumber&service=&country= |
action=getNumber&service=&country= |
Hizmet slugları eşleşir (tg için Telegram, wa için WhatsApp, vb.). Ülke kodları aynı sayısal şemayı kullanır. |
action=getNumberV2 |
action=getNumberV2 |
Düz metin yerine JSON döndürür. Alan adları hizalanır. |
action=getStatus&id= |
action=getStatus&id= |
Aynı aktivasyon ID akışı. Yanıt önekleri STATUS_OK ve STATUS_WAIT_CODE korunur. |
action=setStatus&id=&status= |
action=setStatus&id=&status= |
Durum kodları 1, 3, 6 ve 8 aynı şekilde davranır (iste, yeniden dene, bitir, iptal). |
action=getPrices&service= |
action=getPrices&service= |
Ülke başına fiyatın JSON haritasını döndürür. Varsayılan olarak para birimi USD'ye normalize edilmiştir. |
action=getNumbersStatus&country= |
action=getNumbersStatus&country= |
Envanter sorgusu. VerifySMS, SMS-Activate'ın sahip olmadığı bir refund_window_seconds alanı ekler. |
action=setRentNumber |
action=setRentNumber |
Uzun süreli kiralık numaralar. Şema paylaşılır, ancak minimum kiralama süreleri farklılık gösterir (1 saat vs 4 saat). |
setStatus=8 (iptal) etkin bir şekilde manuel bir işlemdi. VerifySMS'te ise aynı çağrı, aktivasyon zaman aşımından sonraki 60 saniye içinde otomatik bir geri ödeme tetikler. Bunun için planlama yapın - birçok ekip alışkanlık nedeniyle fazla iptal eder ve beklediğinden daha temiz bir riconciliation elde eder.
Fiyat Karşılaştırması (Nisan 2026)
Aşağıdaki tüm sayılar, Nisan 2026 itibarıyla kamuya açık fiyat sayfalarından ve panolarından alınmıştır. Her sağlayıcının fiyatları hizmete ve ülkeye göre farklılık gösterir, bu nedenle Telegram veya WhatsApp gibi popüler bir hedef için ortak bir ülkede (genellikle ABD, İngiltere veya Endonezya) göreceğiniz giriş seviyesi fiyatı veriyorum.
| Sağlayıcı | Doğrulama başına giriş fiyatı | Minimum yükleme | Ülke kapsamı |
|---|---|---|---|
| VerifySMS | $0.10 | $0.20 | 200+ ülkeler |
| 5sim | $0.014 – $0.06 | $1 | 180+ ülkeler |
| HeroSMS | $0.20 | $2 | 80+ ülkeler |
| SMS-MAN | $0.15 – $0.30 | $2 | 130+ ülkeler |
| SMS-Activate (eski 2025) | $0.20 – $1.00 | $5 | 180+ (şimdi çevrimdışı) |
5sim hala niş numaralar ve birkaç Rus ve Endonezya operatörü için en düşük etiket fiyatına sahiptir, bu nedenle yüksek hacimli ekipler genellikle oraya gider. VerifySMS ham fiyatta ortada yer alır, ancak otomatik geri ödeme akışını hesaba katarsanız toplam sahip olma maliyetinde üstüne çıkar - başarısız doğrulama başına bir destek bileti daha az, birim başına marjdan daha hızlı birikir.
İade Politikası Karşılaştırması
| Sağlayıcı | Otomatik iadeler? | İade penceresi | Minimum ödeme |
|---|---|---|---|
| VerifySMS | Evet, tüm başarısız doğrulamalar | Etkinleştirme zaman aşımından 60 saniye içinde | Yok — bakiye olarak kredilendirilir |
| 5sim | Kısmi — kullanılmayan numaralar yalnızca | 5 dakika içinde | Yok — bakiye olarak kredilendirilir |
| HeroSMS | Hayır — manuel bilet | Destek yoluyla 24 ila 72 saat | Bakiye için yok, para çekme için $5 |
| SMS-MAN | Hayır — manuel bilet | Destek yoluyla 24 ila 96 saat | Bakiye için $2, para çekme için $10 |
| SMS-Activate (eski) | Hayır — manuel onay | Günler ila asla | $30 (tartışmalı taban) |
Özellik Karşılaştırması
| Özellik | VerifySMS | 5sim | HeroSMS | SMS-MAN |
|---|---|---|---|---|
| handler_api uyumluluğu | Evet | Evet | Evet | Evet |
| Modern REST API | Evet | Evet | Hayır | Kısmi |
| Yeniden yükleme için KYC gerekli | Hayır | Hayır | Hayır | $50/ay üzeri |
| Kripto ödemeleri | USDT, BTC, ETH | USDT, BTC, ETH, TRX | USDT | USDT, BTC |
| Kart ödemeleri | Visa, MC | Visa, MC | Hayır | Visa, MC |
| Çok dilli destek | 14 dil | ES, RU öncelikle | ES, RU | ES, RU, ES |
| Yerel mobil uygulama | iOS (Android Q4 2026) | Hayır | Hayır | Hayır |
Kod Örneği: Python
Bu, mevcut SMS-Activate URL'sini bir betiğe bırakıp değiştirebileceğiniz şekilde yazılmış, mümkün olan en küçük uçtan uca Python örneğidir. Sadece standart kütüphane kullanılır — ekstra bağımlılık yok.
import os
import time
import urllib.parse
import urllib.request
API_BASE = os.environ.get("SMS_API_BASE", "https://verifysms.app/handler_api.php")
API_KEY = os.environ["SMS_API_KEY"]
def call(action, **params):
params["api_key"] = API_KEY
params["action"] = action
url = API_BASE + "?" + urllib.parse.urlencode(params)
with urllib.request.urlopen(url, timeout=15) as r:
return r.read().decode("utf-8")
def get_number(service, country):
resp = call("getNumber", service=service, country=country)
if not resp.startswith("ACCESS_NUMBER"):
raise RuntimeError("getNumber failed: " + resp)
_, activation_id, phone = resp.split(":")
return activation_id, phone
def wait_for_code(activation_id, timeout=120):
deadline = time.time() + timeout
while time.time() < deadline:
resp = call("getStatus", id=activation_id)
if resp.startswith("STATUS_OK"):
return resp.split(":", 1)[1]
time.sleep(3)
call("setStatus", id=activation_id, status=8) # cancel + refund
raise TimeoutError("No SMS within timeout")
if __name__ == "__main__":
aid, phone = get_number(service="tg", country=0) # Telegram, Russia
print("Kullanılacak numara:", phone)
code = wait_for_code(aid)
print("Kod:", code)
call("setStatus", id=aid, status=6) # finish
Kod Örneği: Node.js
Node 18 ve sonrası sürümünde mevcut olan yerleşik fetch kullanılarak Node.js'de aynı iş akışı. Ekstra paketlere gerek yok.
const API_BASE = process.env.SMS_API_BASE || "https://verifysms.app/handler_api.php";
const API_KEY = process.env.SMS_API_KEY;
async function call(action, params = {}) {
const url = new URL(API_BASE);
url.searchParams.set("api_key", API_KEY);
url.searchParams.set("action", action);
for (const [k, v] of Object.entries(params)) url.searchParams.set(k, v);
const r = await fetch(url, { signal: AbortSignal.timeout(15000) });
return await r.text();
}
async function getNumber(service, country) {
const resp = await call("getNumber", { service, country });
if (!resp.startsWith("ACCESS_NUMBER")) throw new Error("getNumber failed: " + resp);
const [, activationId, phone] = resp.split(":");
return { activationId, phone };
}
async function waitForCode(activationId, timeoutMs = 120000) {
const deadline = Date.now() + timeoutMs;
while (Date.now() < deadline) {
const resp = await call("getStatus", { id: activationId });
if (resp.startsWith("STATUS_OK")) return resp.split(":")[1];
await new Promise(r => setTimeout(r, 3000));
}
await call("setStatus", { id: activationId, status: 8 }); // cancel + refund
throw new Error("No SMS within timeout");
}
(async () => {
const { activationId, phone } = await getNumber("tg", 0);
console.log("Bu numarayı kullanın:", phone);
const code = await waitForCode(activationId);
console.log("Kod:", code);
await call("setStatus", { id: activationId, status: 6 }); // finish
})();
Kod Örneği: PHP
PHP tabanlı bot çerçeve iş akışlarından gelen birçok SMS-Activate kullanıcısı için, bu Composer bağımlılıkları olmadan aynı iş akışıdır.
<?php
$apiBase = getenv("SMS_API_BASE") ?: "https://verifysms.app/handler_api.php";
$apiKey = getenv("SMS_API_KEY");
function call($action, $params = []) {
global $apiBase, $apiKey;
$params["api_key"] = $apiKey;
$params["action"] = $action;
$url = $apiBase . "?" . http_build_query($params);
$ctx = stream_context_create(["http" => ["timeout" => 15]]);
return file_get_contents($url, false, $ctx);
}
function getNumber($service, $country) {
$resp = call("getNumber", ["service" => $service, "country" => $country]);
if (strpos($resp, "ACCESS_NUMBER") !== 0) throw new RuntimeException("getNumber failed: $resp");
[, $activationId, $phone] = explode(":", $resp);
return [$activationId, $phone];
}
function waitForCode($activationId, $timeout = 120) {
$deadline = time() + $timeout;
while (time() < $deadline) {
$resp = call("getStatus", ["id" => $activationId]);
if (strpos($resp, "STATUS_OK") === 0) return explode(":", $resp, 2)[1];
sleep(3);
}
call("setStatus", ["id" => $activationId, "status" => 8]); // cancel + refund
throw new RuntimeException("No SMS within timeout");
}
[$aid, $phone] = getNumber("tg", 0);
echo "Bu numarayı kullanın: $phone\n";
$code = waitForCode($aid);
echo "Kod: $code\n";
call("setStatus", ["id" => $aid, "status" => 6]); // finish
Kod Örneği: Go
Go sürümü en çok konuşulanıdır ancak tek bir statik ikili dosyaya derlenir, ki bazı müşterilerim bunu ana uygulamalarının yanındaki bir yan araç olarak kullanır.
package main
import (
"errors"
"fmt"
"io"
"net/http"
"net/url"
"os"
"strings"
"time"
)
var apiBase = envOr("SMS_API_BASE", "https://verifysms.app/handler_api.php")
var apiKey = os.Getenv("SMS_API_KEY")
func envOr(k, d string) string { if v := os.Getenv(k); v != "" { return v }; return d }
func call(action string, params url.Values) (string, error) {
if params == nil { params = url.Values{} }
params.Set("api_key", apiKey)
params.Set("action", action)
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Get(apiBase + "?" + params.Encode())
if err != nil { return "", err }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
return string(body), err
}
func getNumber(service string, country string) (string, string, error) {
resp, err := call("getNumber", url.Values{"service": {service}, "country": {country}})
if err != nil { return "", "", err }
if !strings.HasPrefix(resp, "ACCESS_NUMBER") {
return "", "", errors.New("getNumber failed: " + resp)
}
parts := strings.Split(resp, ":")
return parts[1], parts[2], nil
}
func waitForCode(activationID string, timeout time.Duration) (string, error) {
deadline := time.Now().Add(timeout)
for time.Now().Before(deadline) {
resp, err := call("getStatus", url.Values{"id": {activationID}})
if err == nil && strings.HasPrefix(resp, "STATUS_OK") {
return strings.SplitN(resp, ":", 2)[1], nil
}
time.Sleep(3 * time.Second)
}
call("setStatus", url.Values{"id": {activationID}, "status": {"8"}}) // cancel + refund
return "", errors.New("no SMS within timeout")
}
func main() {
aid, phone, err := getNumber("tg", "0")
if err != nil { panic(err) }
fmt.Println("Kullanın bu numarayı:", phone)
code, err := waitForCode(aid, 120*time.Second)
if err != nil { panic(err) }
fmt.Println("Kod:", code)
call("setStatus", url.Values{"id": {aid}, "status": {"6"}}) // finish
}
Bugün göç etmeye hazır mısınız?
Ücretsiz bir API anahtarı alın, iki ortam değişkenini değiştirin ve aynı gün teslim edin. Göç ettirmeniz on doğrulamadan fazlasını etkilerse, bizimle ücretsiz olarak bir ekran paylaşımı oturumuna oturacağız.
Ücretsiz BaşlayınSık Sorulan Sorular
SMS-Activate 29 Aralık 2025 tarihinde yeni doğrulamaları kabul etmeyi durdurdu. Web sitesi 48 saat içinde hatalar döndürdü ve Ocak 2026 itibariyle kontrol paneli, API ve Telegram destek kanalı tümüyle çevrimdışı hale geldi.
Resmi geri ödeme süreci 30 dolar minimum bakiye gerektirdi ve erişilemez olarak geniş çapta eleştirildi. Daha küçük bakiyeli çoğu kullanıcı fonlarını geri alamadığını bildirdi. Kart iadeleri, çoğu hesabın artık geçtiği uyuşmazlık penceresi içinde hala kullanıcılar için en başarılı yol olmuştur.
VerifySMS, 5sim ve SMS-MAN, handler_api tarzı HTTP uç noktalarını açıklar. VerifySMS, orijinaline en yakın istek şeklini korur, bu genellikle yalnızca temel URL ve API anahtarını değiştirerek geçiş yapmanıza olanak tanır. 5sim, eski uyumluluk katmanının yanı sıra kendi modern REST API'sine sahiptir.
Genellikle hayır. handler_api uyumluluğu olan bir sağlayıcıya geçiş yaparsanız, yalnızca temel URL ve API anahtarını değiştirmeniz gerekir. En büyük değişiklikler genellikle yeniden deneme zamanlaması, geri ödeme işleme ve sağlayıcılar arasında biraz farklı olan durum kodları için küçük bir çeviri katmanı etrafındadır.
VerifySMS, aktivasyon penceresi içinde başarısız doğrulamaları destek bileti gerekmeden otomatik olarak geri öder. 5sim, kullanılmayan numaraları otomatik olarak geri öder, ancak teslimat başarısızlıklarını manuel bir vaka olarak değerlendirir. SMS-MAN ve HeroSMS her ikisi de herhangi bir geri ödeme için bir destek bileti gerektirir.
Doğrulamak için tek bir hizmeti olan tipik küçük bir SaaS için, dikkatli bir geçiş, eşleştirme testi ve özellik-flag'li bir yayım dahil olmak üzere uçtan uca yaklaşık bir iş günü sürer. Birden fazla hizmeti ve yüksek hacimli işlemleri olan daha büyük üretim sistemleri, trafiklenen bir pencere ile bir ila iki haftalık bir yayım planlamalıdır.
Hayır. API anahtarları tek bir sağlayıcı hesabına özeldir. Değiştirme sağlayıcısında yeni bir hesap oluşturmanız, bir bakiye eklemeniz ve yeni bir API anahtarı oluşturmanız gerekir. İstek şekli benzer kalır, ancak kimlik bilgisinin kendisi bunu yapmaz.
SMS-Activate'in 2025 sonundaki fiyatlandırması, yaygın hizmetler için yaklaşık 0,20 dolar ile başladı ve yüksek sürtünmeli hedefler için 1 dolar veya daha fazlaya çıktı. Nisan 2026'da, VerifySMS doğrulama başına ortalama 0,10 dolar, 5sim bazı numaralar için 0,014 dolara kadar düşüyor ve HeroSMS ve SMS-MAN, ülke ve hedef hizmete bağlı olarak 0,15 ila 0,30 dolar aralığında bulunuyor.
Honest cevap, bunu tamamen önleyemezsiniz, ancak darbe yumuşatabilirsiniz. İki pratik adım, temel URL ve API anahtarınızı ortam değişkenlerinde tutmaktır (böylece bir geçiş bir yapılandırma değişikliği olur) ve sağlayıcıyı kodunuzda ince bir çeviri katmanı arkasında sarmanızdır. Bu iki adım birlikte, gelecekteki bir kapanışı çok günlük bir yeniden yazmadan bir dağıtım haline getirir.
Doğrulama için sanal telefon numaraları, çoğu ülkede kişisel gizlilik veya meşru iş iş akışları için kullanıldığında yasaldır. Bazı yargı bölgeleri ticari mesajlaşmayı daha sıkı bir şekilde düzenler. SMS-Activate kapanış yaptı diye yasal duruş değişmedi - ülke-by-country yasal kılavuzumuza bakın.
Pratikte Göç: Üç Yaygın Senaryo
Yukarıdaki 10 adımlı kontrol listesi güvenli, tam sürümüdür. Pratikte çoğu ekip üç kategoriden birine girer ve her biri için iş biraz farklı görünür.
Senaryo 1: Tek bir bot ile hobi sahibi
Tek bir hesabı haftada bir kez doğrulayan bir Python betiği yazdınız. SMS-Activate'de 3 dolarınız takılı kaldı ve tek bir dosyaya sığan bir dağıtımınız var. Göçünüz bir temel URL değişikliği, bir API anahtarı takası ve çalışıp çalışmadığını onaylamak için tek bir doğrulamadır. Toplam süre: yaklaşık on beş dakika. Özellik bayrağını atlayın, yansıtılan trafiği atlayın, tek bir test doğrulaması çalıştırın ve gönderin. Yeni sağlayıcıda bir tampona sahip olmak için 1 dolar ekleyin.
Senaryo 2: Doğrulama akışı ile küçük SaaS
Günde 50 ila 500 doğrulama yapan bir kayıt hunisi çalıştırıyorsunuz ve iki veya üç hizmet arasında. Muhtemelen bir kuyruk işçisi, yeniden deneme mantığı ve başarı oranını izleyen bir panounuz vardır. Bu, 10 adımlı kontrol listesinin yazıldığı durumdur. Kod için yarım gün, eşdeğerlik testi için yarım gün ve özellik bayrağını %100'e çevirmeden önce 24 saatlik bir gözlem penceresi planlayın. Çalışma kitabınızı ve müşteri desteği makrolarınızı güncellemek için başka yarım gün bütçe ayırın.
Senaryo 3: Yüksek hacimli operatör
Günde birçok hizmet ve birçok ülkede binlerce hesabı doğruluyorsunuz. Entegrasyonunuz kendi hizmetinizle sarılmıştır. Göçünüz, bir yapılandırma değişikliğinden ziyade bir veritabanı takasına daha yakındır - gölge trafiğe, ülke başına yan yana başarı oranı izlemeye ve otomatik bir geri dönüşe ihtiyacınız vardır. Bir ila iki haftalık bir dağıtım planlayın. İyi haber: bu hacimde, daha iyi bir geri ödeme mekanizmasından elde edilen doğrulama başına tasarruf, ilk ay içinde göç işini öder.
Son Not
Kapatma acı vericiydi ancak piyasayı yararlı bir şekilde temizledi. Aynı dönemi sağ kurtulan sağlayıcılar, daha iyi geri ödeme mekanizmaları, daha dürüst fiyatlandırma ve ucuz ve sarsıntılı gruptan daha dayanıklı altyapı kurdular. Dikkatlice göç ederseniz ve öğrendiğinizi belgelediğinizde, bir sonraki sağlayıcınız da bir sonraki kapatma turuna kadar dayanmalıdır.
Bu kılavuz size yardımcı olduysa, yapabileceğiniz en yararlı şey, geliştirici sohbetinde "neye göç etmeliyim?" diye soran bir sonraki kişiye paylaşmaktır — tam olarak bu merkezlerin çözmesi gereken andır.
Next steps
If you have read this far, you already have the pieces you need. Start with the inventory step, get the base URL swap in front of a teammate for review, and run the canary overnight. The playbook is small on purpose; the hard part is the discipline to stop after the canary window instead of cutting everything over in one commit.
Related reading on the rest of the site:
- State of SMS Verification 2026 — full independent benchmark of 8 services with pricing, traffic, and refund policy data.
- 2026'da En İyi SMS-Activate Alternatifleri — Kapsamlı Rehber — non-developer guide to the replacement options.
- VerifySMS vs SMS-Activate — Tam Karşılaştırma — side-by-side comparison for teams still evaluating.
- SMS Verification API Integration Guide — native VerifySMS API walkthrough for when you are ready to move off the compat layer.
Ready to cut the migration to a single evening?
Create a VerifySMS API key →Sandbox mode included · Auto-refund guarantee · 200+ countries · SMS-Activate compat layer on /compat/handler_api.php