SMS-Activate माइग्रेशन हब 2026: डेवलपर चेकलिस्ट, API मैपिंग और रिफंड तुलना
If you are still carrying handler_api.php calls in your repo pointed at sms-activate.org, this is the hub you open at 9pm on a Friday and close with a working integration before midnight. Real endpoint mapping, real code diffs, refund policy comparison, and the gotchas that will bite you between the line you change and the alert that wakes you up on Monday morning.
यह प्लेबुक क्यों मौजूद है
अधिकांश "SMS-Activate बंद हो गया, यहाँ विकल्पों की एक सूची है" पोस्ट उस हिस्से को छोड़ देते हैं जो वास्तव में डेवलपर के घंटे बर्बाद करता है: कोड। एक नए प्रदाता के लिए साइन अप करने में पाँच मिनट लगते हैं। वर्षों से उत्पादन में चुपचाप चल रहे एकीकरण को फिर से लिखना, जिसमें अप्रमाणित कोने के मामले और उससे जुड़ा एक लागत ट्रैकर हो, आपकी सोच से अधिक समय लेता है।
जनवरी 2026 में अपना संगतता लेयर शिप करने के बाद, हमें हर उस टीम से वही तीन सवाल मिलने लगे जिसने इसे आज़माया:
- कौन से एंडपॉइंट साफ-साफ मैप होते हैं और किनमें मैन्युअल बदलाव की ज़रूरत है?
- मैं रीराइट किए बिना अपने लागत ट्रैकिंग और रिफंड प्रवाह को कैसे चालू रखूँ?
- क्या चुपचाप टूट जाता है और एक सप्ताह बाद बिलिंग आश्चर्य के रूप में सामने आता है?
यह प्लेबुक उन तीन सवालों का क्रम से जवाब देता है और आपको कॉपी-पेस्ट कोड देता है जिसे आप चलाने से पहले ऑडिट कर सकते हैं।
48 घंटे का सारांश: वास्तव में क्या हुआ
SMS-Activate 29 दिसंबर, 2025 को बंद हो गया। कोई निर्धारित रखरखाव बैनर नहीं था, कोई माइग्रेशन टूल नहीं था, और कोई सार्वजनिक सूचना नहीं थी। लॉग इन करने की कोशिश कर रहे उपयोगकर्ताओं को एक ही पृष्ठ मिला जिसमें कहा गया था कि सेवा स्थायी रूप से बंद हो गई है। कुछ घंटों के भीतर API ने हर एंडपॉइंट पर कनेक्शन रीसेट लौटाए।
तीन चीजें तेजी से हुईं:
- डैशबोर्ड बैलेंस पहुंच से बाहर हो गए।
r/smsसबरेडिट और आधिकारिक Telegram चैनलों पर रिपोर्टों में $20 से लेकर कई हजार डॉलर तक के बैलेंस फ्रीज होने का वर्णन किया गया था, जिसमें कोई रिकवरी पथ नहीं था। - चल रहे एकीकरण बुरी तरह टूट गए। किसी भी सेवा ने जो
handler_api.phpको पोल किया, उसे HTTP कनेक्शन त्रुटियाँ मिलने लगीं, जिसका अधिकांश बग ट्रैकर्स में मतलब है "सर्किट ब्रेकर ट्रिप हो गया, टीम को अलर्ट करें।" - माइग्रेशन विंडो हफ्तों के बजाय दिनों में बंद हो गई। 72 घंटों के भीतर हर बचे हुए प्रदाता के पास एक कतार थी। 5sim, SMSPVA, और SMS-MAN सभी ने क्षमता तनाव स्वीकार किया। VerifySMS टिका रहा क्योंकि हम समूह में सबसे छोटे थे और हमारे पास अतिरिक्त हेडरूम था, लेकिन यह वास्तव में करीब था।
परिणाम अभी भी सामने आ रहे हैं। अप्रैल 2026 तक रूस में सक्रिय छोटे दावों के मामले हैं और फ्रीज किए गए बैलेंस को रिकवर करने के लिए कम से कम दो समन्वित सामुदायिक मुकदमे चल रहे हैं। इनमें से कोई भी आपके कोड की मदद नहीं करता है, इसीलिए हम उस हिस्से पर ध्यान केंद्रित करेंगे जिसे आप वास्तव में ठीक कर सकते हैं।
भाग 1: API डेप्रिकेशन मैप
SMS-Activate ने https://sms-activate.org/stubs/handler_api.php पर एक एकल सार्वजनिक एंडपॉइंट शिप किया। हर क्रिया उस URL पर एक क्वेरी स्ट्रिंग पैरामीटर थी। नीचे दी गई तालिका हर प्रमुख क्रिया को उसके VerifySMS समकक्ष से मैप करती है। https://api.verifysms.app/compat/handler_api.php पर संगतता लेयर ठीक उसी क्वेरी स्ट्रिंग आकार को स्वीकार करती है।
| SMS-Activate क्रिया | उद्देश्य | VerifySMS संगतता लेयर | मूल VerifySMS API |
|---|---|---|---|
getBalance | USD बैलेंस को टेक्स्ट के रूप में लौटाएँ | बिना बदलाव के काम करता है। ACCESS_BALANCE:X.YY लौटाता है | GET /v1/balance JSON लौटाता है |
getNumbersStatus | प्रति-देश उपलब्धता | काम करता है। लीगेसी मैप प्रारूप लौटाता है | GET /v1/countries/availability |
getNumber | किसी सेवा के लिए एक नंबर लीज़ पर लें | काम करता है। ACCESS_NUMBER:id:+phone लौटाता है | POST /v1/rentals |
setStatus | लीज की पुष्टि या रद्द करें | काम करता है। स्टेटस कोड 1/3/6/8 समान रूप से व्यवहार करते हैं | POST /v1/rentals/{id}/status |
getStatus | SMS आगमन के लिए पोल करें | काम करता है। STATUS_WAIT_CODE, STATUS_OK:CODE, STATUS_WAIT_RETRY लौटाता है | GET /v1/rentals/{id} |
getPrices | मूल्य तालिका प्राप्त करें | काम करता है। लीगेसी JSON आकार में VerifySMS मूल्य निर्धारण लौटाता है | GET /v1/prices |
getCountries | देश कोड मैप | काम करता है। लीगेसी संख्यात्मक आईडी और ISO-3166 कोड दोनों लौटाता है | GET /v1/countries |
getTopCountriesByService | सेवा के अनुसार शीर्ष देश | कैश्ड SMS-Activate रैंक के बजाय वास्तविक समय VerifySMS डेटा लौटाता है | GET /v1/services/{id}/top-countries |
कुछ कम उपयोग की जाने वाली SMS-Activate क्रियाएँ एक-से-एक मैप नहीं होती हैं। getRentServicesAndCountries और लॉन्ग-लीज रेंटल API SMS-Activate विशिष्ट थे और उनका कोई संगतता लेयर नहीं है। यदि आपके एकीकरण ने उनका उपयोग किया, तो आपको मूल VerifySMS लॉन्ग-लीज एंडपॉइंट POST /v1/rentals/long पर जाना चाहिए, जो अलग से प्रलेखित है।
भाग 2: कोड माइग्रेशन वॉकथ्रू
निम्नलिखित स्निपेट जनवरी में हमारे अपने स्टेजिंग वातावरण के खिलाफ मेरे द्वारा परीक्षण किए गए सटीक आकार हैं। मैंने उन्हें जानबूझकर उबाऊ रखा है ताकि आप संदर्भ स्विच किए बिना उन्हें अपने कोड के खिलाफ पढ़ सकें।
Python (requests)
एकमात्र आवश्यक परिवर्तन बेस URL है। यदि आपने पहले से ही API को एक छोटे क्लाइंट मॉड्यूल में लपेटा है, तो अंतर एक एकल पंक्ति है।
import os
import requests
# पहले
# BASE_URL = "https://sms-activate.org/stubs/handler_api.php"
# बाद में
BASE_URL = "https://api.verifysms.app/compat/handler_api.php"
API_KEY = os.environ["SMS_API_KEY"]
def get_number(service: str, country: int) -> tuple[str, str]:
resp = requests.get(BASE_URL, params={
"api_key": API_KEY,
"action": "getNumber",
"service": service,
"country": country,
}, timeout=30)
resp.raise_for_status()
# ACCESS_NUMBER:12345:+441234567890
status, rental_id, phone = resp.text.split(":", 2)
if status != "ACCESS_NUMBER":
raise RuntimeError(f"अप्रत्याशित प्रतिक्रिया: {resp.text}")
return rental_id, phone
def wait_for_code(rental_id: str, deadline_seconds: int = 180) -> str:
import time
start = time.monotonic()
while time.monotonic() - start < deadline_seconds:
resp = requests.get(BASE_URL, params={
"api_key": API_KEY,
"action": "getStatus",
"id": rental_id,
}, timeout=15).text
if resp.startswith("STATUS_OK:"):
return resp.split(":", 1)[1]
time.sleep(4)
# धनवापसी प्राप्त करने के लिए अप्रयुक्त के रूप में चिह्नित करें
requests.get(BASE_URL, params={
"api_key": API_KEY,
"action": "setStatus",
"status": 8,
"id": rental_id,
}, timeout=15)
raise TimeoutError(f"{deadline_seconds}s के बाद कोई कोड नहीं")
Node.js (axios)
import axios from "axios";
// पहले
// const BASE_URL = "https://sms-activate.org/stubs/handler_api.php";
// बाद में
const BASE_URL = "https://api.verifysms.app/compat/handler_api.php";
const API_KEY = process.env.SMS_API_KEY;
export async function getNumber(service, country) {
const { data } = await axios.get(BASE_URL, {
params: { api_key: API_KEY, action: "getNumber", service, country },
timeout: 30_000,
});
const [status, rentalId, phone] = data.split(":");
if (status !== "ACCESS_NUMBER") {
throw new Error(`अप्रत्याशित प्रतिक्रिया: ${data}`);
}
return { rentalId, phone };
}
export async function waitForCode(rentalId, deadlineMs = 180_000) {
const start = Date.now();
while (Date.now() - start < deadlineMs) {
const { data } = await axios.get(BASE_URL, {
params: { api_key: API_KEY, action: "getStatus", id: rentalId },
timeout: 15_000,
});
if (data.startsWith("STATUS_OK:")) return data.split(":")[1];
await new Promise((r) => setTimeout(r, 4000));
}
await axios.get(BASE_URL, {
params: { api_key: API_KEY, action: "setStatus", status: 8, id: rentalId },
timeout: 15_000,
});
throw new Error(`${deadlineMs}ms के बाद कोई कोड नहीं`);
}
PHP (curl)
<?php
// पहले
// const BASE_URL = "https://sms-activate.org/stubs/handler_api.php";
// बाद में
const BASE_URL = "https://api.verifysms.app/compat/handler_api.php";
function sms_call(array $params): string {
$params["api_key"] = getenv("SMS_API_KEY");
$url = BASE_URL . "?" . http_build_query($params);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$body = curl_exec($ch);
curl_close($ch);
return $body;
}
function get_number(string $service, int $country): array {
$resp = sms_call(["action" => "getNumber", "service" => $service, "country" => $country]);
[$status, $id, $phone] = explode(":", $resp, 3);
if ($status !== "ACCESS_NUMBER") {
throw new RuntimeException("अप्रत्याशित: $resp");
}
return ["id" => $id, "phone" => $phone];
}
Go (net/http)
package sms
import (
"errors"
"fmt"
"io"
"net/http"
"net/url"
"os"
"strings"
"time"
)
// पहले
// const baseURL = "https://sms-activate.org/stubs/handler_api.php"
// बाद में
const baseURL = "https://api.verifysms.app/compat/handler_api.php"
func call(params url.Values) (string, error) {
params.Set("api_key", os.Getenv("SMS_API_KEY"))
req, _ := http.NewRequest("GET", baseURL+"?"+params.Encode(), nil)
client := &http.Client{Timeout: 30 * time.Second}
resp, err := client.Do(req)
if err != nil {
return "", err
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
return string(body), nil
}
func GetNumber(service string, country int) (id, phone string, err error) {
body, err := call(url.Values{
"action": {"getNumber"},
"service": {service},
"country": {fmt.Sprint(country)},
})
if err != nil {
return "", "", err
}
parts := strings.SplitN(body, ":", 3)
if len(parts) != 3 || parts[0] != "ACCESS_NUMBER" {
return "", "", errors.New("अप्रत्याशित: " + body)
}
return parts[1], parts[2], nil
}
Go उदाहरण को जानबूझकर किसी तीसरे पक्ष के क्लाइंट के बिना लिखा गया है ताकि आप इसे न्यूनतम सेवा में निर्भरता जोड़े बिना डाल सकें। वही पैटर्न हर दूसरी भाषा में लागू होता है: URL स्वैप करें, बाकी सब कुछ रखें, और अपने मौजूदा त्रुटि प्रबंधन को आगे बढ़ाएं।
भाग 3: ऐसी बातें जो आपको फंसा सकती हैं
ये वे स्थान हैं जहाँ संगतता लेयर SMS-Activate की विचित्रताओं के प्रति वफादार है, लेकिन यदि आपने इस कोड को कुछ समय से नहीं छुआ है तो विचित्रताएँ आपको आश्चर्यचकित कर देंगी।
देश आईडी ISO कोड नहीं हैं
SMS-Activate ने अपने स्वयं के क्रम में देशों को क्रमांकित किया: रूस 0 था, यूएसए 187 था, इंडोनेशिया 6 था, और इसी तरह। यदि आपके एकीकरण में ये मैजिक नंबर हार्डकोडेड हैं, तो वे संगतता लेयर पर अभी भी काम करते हैं। यदि आप नया कोड लिख रहे हैं, तो ISO-3166 अल्फा-2 रूप (RU, US, ID) को प्राथमिकता दें जिसे संगतता लेयर भी स्वीकार करती है। एक ही कॉल साइट में दोनों शैलियों को न मिलाएं, क्योंकि भविष्य में डिबगिंग दर्दनाक होगी।
स्टेटस कोड 3 बनाम 6
setStatus क्रिया कोड 3 का मतलब SMS-Activate दुनिया में "एक और SMS का अनुरोध करें" था, और कोड 6 का मतलब "कोड को मान्य के रूप में स्वीकार करें" था। इन दो कोड को जल्दबाजी में स्वैप करना आसान है और उनके बिलिंग परिणाम विपरीत होते हैं: 3 आपको बिल करता रहता है, 6 सफल सत्यापन की पुष्टि करता है। संगतता लेयर समान रूप से व्यवहार करती है। अपने कोड को setStatus के लिए grep करें और सुनिश्चित करें कि कोड 6 लेने वाली शाखा केवल तभी चलती है जब आप निश्चित हों कि सत्यापन सफल रहा।
टाइमआउट और सर्किट ब्रेकर
लोड के तहत SMS-Activate कभी-कभी HTTP त्रुटि के बजाय 200 के साथ एक खाली बॉडी लौटाता था। रक्षात्मक क्लाइंट कॉल को टाइमआउट में लपेटते हैं और खाली बॉडी को री முயற்சி सिग्नल मानते हैं। VerifySMS संगतता लेयर पर कभी भी खाली बॉडी नहीं लौटाता है। यदि आपका क्लाइंट अभी भी खाली को री முயற்சி मानता है, तो यह एक अस्थिर नेटवर्क पर बजट बर्बाद करेगा क्योंकि री முயற்சி एक अलग रेंटल आईडी को हिट करेगा। सुरक्षित पैटर्न ज्ञात प्रतिक्रिया उपसर्गों (ACCESS_, STATUS_, BAD_) की जाँच करना है और किसी भी अन्य चीज़ को एक कठिन विफलता मानना है, न कि एक क्षणिक।
रेट लिमिट प्रति-आईपी में प्रति-कुंजी से स्थानांतरित हो जाती हैं
SMS-Activate रेट लिमिट API टोकन से जुड़ी हुई थी। VerifySMS रेट लिमिट API टोकन और स्रोत IP पते के संयोजन से जुड़ी हुई हैं, क्योंकि हम एक बॉटनेट पर एक कुंजी साझा करने वाले स्क्रैपर स्क्रिप्ट से बहुत अधिक दुरुपयोग देखते हैं। एक एकल सर्वर या लोड-संतुलित पूल से सामान्य उत्पादन यातायात के लिए, यह अदृश्य है। यदि आप वितरित CI जॉब चलाते हैं जो सभी एक स्टेजिंग कुंजी साझा करते हैं, तो आप पहली बार जब बेड़ा एक साथ गर्म होता है तो 429 देख सकते हैं। फिक्स यह है कि कैनरी को एक दिन के लिए एक नोड से चलने दें, फिर फैलाएं।
रिफंड टाइमिंग तत्काल महसूस होती है क्योंकि यह वास्तव में तत्काल है
यह एक जाल से अधिक एक सुखद आश्चर्य है। जहाँ SMS-Activate रिफंड को आपके बैलेंस में दिखाई देने में कुछ घंटे लगते थे, VerifySMS रिफंड 60 सेकंड के भीतर दिखाई देते हैं। यदि आपका लागत ट्रैकर शेड्यूल पर बैलेंस पढ़ता है, तो यह रिफंड को एक क्रेडिट के रूप में पंजीकृत करेगा जिसे पुराने सिस्टम ने चूक दिया होगा। सुलह डैशबोर्ड कभी-कभी पहले दिन इसे विसंगति के रूप में चिह्नित करते हैं।
भाग 4: मूल्य निर्धारण तुलना वास्तविकता की जाँच
शटडाउन से पहले, SMS-Activate बाजार का तल था। रूसी नंबर प्रति सत्यापन $0.03 से $0.05 तक थे, और बड़ी मात्रा में खरीदार और भी कम भुगतान करते थे। वह तल चला गया है। यहाँ अप्रैल 2026 में सबसे आम सेवाओं के लिए शेष प्रदाता कहाँ बैठे हैं, जो प्रत्येक प्रदाता के सार्वजनिक मूल्य निर्धारण पृष्ठ से को लिया गया है:
| सेवा | 5sim | TextVerified | SMSPVA | SMS-MAN | VerifySMS |
|---|---|---|---|---|---|
| WhatsApp / रूस | $0.014 | — | $0.05 | $0.035 | $0.10 |
| WhatsApp / USA | $0.27 | $0.25 | $0.28 | $0.22 | $0.18 |
| Telegram / रूस | $0.016 | — | $0.05 | $0.04 | $0.10 |
| Telegram / USA | $0.35 | $0.40 | $0.38 | $0.30 | $0.20 |
| Google / इंडोनेशिया | $0.07 | — | $0.08 | $0.06 | $0.10 |
पैटर्न सरल है: 5sim और SMS-MAN सबसे कम रूसी मूल्य निर्धारण पर जीतते हैं, TextVerified यूएस प्रीमियम टियर है, और VerifySMS बीच में बैठता है, जिसमें सबसे महंगे यूएस नॉन-VoIP नंबरों को छोड़कर सब कुछ के लिए $0.10 का एक फ्लैट बेसलाइन है। यदि आपका बजट SMS-Activate के तल मूल्य निर्धारण पर ट्यून किया गया था, तो आप जो भी प्रतिस्थापन चुनें, प्रति सत्यापन दो से पाँच गुना अधिक भुगतान करने की उम्मीद करें।
इस तालिका पर दो नोट्स। पहला, हर प्रदाता (VerifySMS सहित) वाहक लागतों के जवाब में व्यक्तिगत देश की कीमतों को बढ़ाता और घटाता है, इसलिए बजट प्रतिबद्ध करने से पहले अपने डैशबोर्ड में वर्तमान मूल्य की पुष्टि करें। दूसरा, सफल सत्यापन प्रति *प्रभावी* मूल्य रिफंड अनुपात पर निर्भर करता है। 70% सफलता दर वाले $0.08 स्टिकर मूल्य वाले प्रदाता की लागत आपको $0.10 प्रदाता की तुलना में प्रति सफलता अधिक होती है जिसमें स्वचालित रिफंड और 90% सफलता दर होती है।
भाग 5: 10-चरणीय माइग्रेशन चेकलिस्ट
यह वास्तविक अनुक्रम है जिससे हमने जनवरी में अपने स्वयं के उपयोगकर्ताओं को चलाया था। यह रिपॉजिटरी एक्सेस वाले एकल डेवलपर, एक उत्पादन सेवा और एक स्टेजिंग वातावरण को मानता है। यदि आप कई सेवाओं या एक मोनोरिपो चला रहे हैं तो कैनरी प्रतिशत को स्केल करें।
- हर कॉल साइट की सूची बनाएँ। पुराने API को हिट करने वाली हर फ़ाइल को सूचीबद्ध करने के लिए
git grep -n 'sms-activate\.org\|handler_api\.php\|getNumber\|setStatus'चलाएँ। यदि आपको एक दर्जन से अधिक मिलते हैं, तो माइग्रेट करने से पहले एक रैपर मॉड्यूल चुनें और कॉल को पहले केंद्रीकृत करें। - एक VerifySMS API कुंजी प्राप्त करें। साइन अप करें, थोड़ी राशि जोड़ें, और स्टेजिंग के लिए एक स्कोप्ड कुंजी उत्पन्न करें। उत्पादन कुंजी को रिपॉजिटरी से बाहर रखें।
- बेस URL बदलें। SMS-Activate होस्ट को
api.verifysms.app/compat/handler_api.phpसे बदलें। क्वेरी स्ट्रिंग न बदलें। इसे अकेले कमिट करें ताकि अंतर साफ हो। - अपने मौजूदा परीक्षण चलाएँ। यदि परीक्षण वास्तविक API को हिट करते हैं, तो उन्हें स्टेजिंग पर इंगित करें और आकार बेमेल के लिए देखें। यदि वे API का मज़ाक उड़ाते हैं, तो अनुबंध बहाव को पकड़ने के लिए उन्हें लाइव स्टेजिंग एंडपॉइंट के खिलाफ भी चलाएँ।
- देश आईडी की पुनः पुष्टि करें। देश स्थिरांक के लिए अपने कोड को स्किम करें। यदि आप लीगेसी संख्यात्मक आईडी का उपयोग कर रहे हैं, तो वे अभी भी काम करते हैं। यदि आपके पास मौका है, तो उन्हें ISO-3166 कोड से बदलें क्योंकि इस फ़ाइल को छूने वाला अगला डेवलपर आपको धन्यवाद देगा।
- रिफंड दावों को तार करें। पुष्टि करें कि आपका टाइमआउट पथ
setStatusको स्टेटस कोड 8 के साथ कॉल करता है। इसके बिना, आपको अभी भी रिफंड मिलेंगे (हम समाप्त लीज़ को ऑटो-रिफंड करते हैं) लेकिन आपका लागत ट्रैकर वास्तविकता से पीछे रहेगा। - अपने लागत ट्रैकर को अपडेट करें। मूल्य निर्धारण तालिका से इसे पार्स करने के बजाय
X-VerifySMS-Costप्रतिक्रिया हेडर से लागत पढ़ें। यह एकल परिवर्तन आपके वित्त डैशबोर्ड को सेंट तक सटीक बनाता है। - निगरानी। अपनी मौजूदा बेसलाइन के खिलाफ सफलता दर, p95 विलंबता और रिफंड अनुपात अलर्ट जोड़ें। ऐसे थ्रेशोल्ड चुनें जिन्हें आप बचाव कर सकें, न कि वे जिन्हें आप "ठीक" मानते हैं।
- 5 प्रतिशत के लिए 24 घंटे कैनरी करें। उत्पादन यातायात का एक छोटा सा टुकड़ा नए एंडपॉइंट के माध्यम से रूट करें। केवल अलर्ट नहीं, डैशबोर्ड देखें।
- बाकी को ओवरकट करें। कैनरी विंडो साफ होने के बाद, शेष 95 प्रतिशत को स्थानांतरित करें और पुराने क्लाइंट कोड को एक रिलीज चक्र के लिए टिप्पणी (हटाया नहीं) छोड़ दें ताकि आपके पास एक तेज रोलबैक हो।
अगले रिलीज में पुराने कोड को हटा दें। मृत कॉल साइटों को एक सप्ताह से अधिक समय तक आसपास न छोड़ें क्योंकि मॉड्यूल को छूने वाला अगला व्यक्ति उन्हें गलती से एक नए एकीकरण में वापस पेस्ट कर देगा।
अक्सर पूछे जाने वाले प्रश्न
क्या SMS-Activate संगतता लेयर एक वास्तविक API है या सिर्फ एक स्टब?
यह api.verifysms.app/compat/handler_api.php पर एक वास्तविक एंडपॉइंट है जो SMS-Activate सार्वजनिक डॉक्स से हर प्रमुख क्रिया को स्वीकार करता है: getBalance, getNumber, getStatus, setStatus, getPrices, और getCountries। अनुरोधों को पृष्ठभूमि में हमारे मूल API पर प्रॉक्सी किया जाता है, इसलिए आपको बिना किसी कोड परिवर्तन के VerifySMS मूल्य निर्धारण, कवरेज और रिफंड व्यवहार मिलता है।
क्या मेरी पुरानी API कुंजी काम करेगी?
नहीं। सेवा बंद होने के दिन SMS-Activate API कुंजियाँ प्रमाणित होना बंद हो गईं। आपको VerifySMS से एक नई कुंजी की आवश्यकता है। साइन अप करें, थोड़ी राशि जोड़ें, और डैशबोर्ड से एक कुंजी उत्पन्न करें। कुंजी प्रारूप लंबाई में समान है ताकि आप इसे उसी पर्यावरण चर में पेस्ट कर सकें।
SMS-Activate की तुलना में रिफंड कैसे काम करते हैं?
SMS-Activate के लिए आपको 20 मिनट के भीतर एक नंबर को अप्रयुक्त के रूप में चिह्नित करने के लिए स्टेटस कोड 8 के साथ setStatus को कॉल करने की आवश्यकता थी, और रिफंड कुछ घंटों के भीतर मैन्युअल रूप से संसाधित किए जाते थे। VerifySMS उसी setStatus कॉल को स्वीकार करता है और 60 सेकंड के भीतर आपके बैलेंस में पूरी राशि वापस कर देता है। यदि आप setStatus को बिल्कुल भी कॉल करना भूल जाते हैं, तो हमारा सिस्टम लीज़ विंडो समाप्त होने के बाद कभी भी SMS प्राप्त नहीं करने वाले किसी भी नंबर को ऑटो-रिफंड करता है।
कौन से देश समर्थित हैं?
VerifySMS 200 से अधिक देशों को कवर करता है। SMS-Activate द्वारा पेश किया गया हर देश VerifySMS पर उपलब्ध है, जिसमें रूस, इंडोनेशिया, वियतनाम, नाइजीरिया और यूएसए शामिल हैं। आप अपने मौजूदा देश आईडी मैपिंग को रख सकते हैं या जब चाहें ISO-3166 अल्फा-2 कोड में माइग्रेट कर सकते हैं।
क्या मूल्य निर्धारण समान है?
नहीं। रूसी नंबरों के लिए $0.03 से $0.05 प्रति सत्यापन के SMS-Activate तल-बाजार मूल्य खुले बाजार से चले गए हैं। वर्तमान बाजार मूल्य सामान्य सेवाओं के लिए $0.10 से लेकर सख्त प्लेटफार्मों पर यूएस नॉन-VoIP नंबरों के लिए $0.25 तक है। VerifySMS $0.10 को बेसलाइन के रूप में चार्ज करता है और डैशबोर्ड पर प्रति-देश मूल्य निर्धारण प्रकाशित करता है।
क्या मुझे अपने पोलिंग लॉजिक को बदलने की ज़रूरत है?
नहीं। getStatus कॉल उसी प्रारूप में STATUS_WAIT_CODE और STATUS_OK लौटाता है जिसका उपयोग SMS-Activate करता था। 3 से 5 सेकंड के पोलिंग अंतराल अभी भी काम करते हैं। एकमात्र नया व्यवहार यह है कि VerifySMS डैशबोर्ड में एक वेबहुक URL भी प्रदान करता है, इसलिए यदि आप इवेंट-संचालित प्रवाह पसंद करते हैं तो आप पोलिंग को पूरी तरह से रोक सकते हैं।
यदि संगतता लेयर कभी भी डेप्रिकेटेड हो जाती है तो क्या होगा?
संगतता लेयर को एक स्थायी सार्वजनिक इंटरफ़ेस माना जाता है। यदि हम कभी भी इसके व्यवहार को बदलते हैं, तो हम एक पूर्ण माइग्रेशन नोट के साथ न्यूनतम छह महीने की डेप्रिकेशन विंडो प्रकाशित करेंगे। मूल VerifySMS JSON API भी प्रलेखित है, इसलिए आप जब चाहें तब संगतता लेयर से माइग्रेट कर सकते हैं जब यह समझ में आता है।
मैं बिना पैसे खर्च किए कैसे परीक्षण करूँ?
VerifySMS डैशबोर्ड एक सैंडबॉक्स मोड प्रदान करता है जो आपके बैलेंस को डेबिट किए बिना सिम्युलेटेड फोन नंबर और कैन्ड SMS कोड लौटाता है। डैशबोर्ड में सैंडबॉक्स फ़्लैग को चालू करें या लाइव होने से पहले अपने कोड पाथ को चलाने के लिए किसी भी अनुरोध के साथ X-Sandbox-Mode हेडर भेजें।
क्या मैं अन्य सेवाओं से भी माइग्रेट कर सकता हूँ?
हाँ। यह प्लेबुक SMS-Activate API के आसपास लिखा गया है क्योंकि यहीं पर अधिकांश फंसे हुए कोड रहते हैं, लेकिन वही चेकलिस्ट 5sim, SMS-MAN, या किसी अन्य handler_api-संगत सेवा से माइग्रेशन पर लागू होती है। संगतता लेयर handler_api.php पैरामीटर को पहचानती है, भले ही आप पहले किस सेवा को कॉल कर रहे थे।
एक वास्तविक माइग्रेशन में कितना समय लगता है?
कुछ दर्जन कॉल साइटों के साथ एकल सेवा एकीकरण के लिए, दो से चार घंटे के केंद्रित काम की योजना बनाएं, साथ ही पूर्ण ट्रैफ़िक को ओवरकट करने से पहले 24 घंटे की कैनरी विंडो। कस्टम त्रुटि हैंडलिंग, एनालिटिक्स और री முயற்ियों के साथ बड़े मल्टी-सर्विस माइग्रेशन लंबे समय तक चल सकते हैं लेकिन आमतौर पर एक कार्य दिवस के भीतर समाप्त हो जाते हैं।
क्या मैं अपना ऐतिहासिक डेटा खो देता हूँ?
SMS-Activate सत्यापन इतिहास सेवा बंद होने पर ऑफ़लाइन हो गया और उसे पुनर्प्राप्त नहीं किया जा सकता है। VerifySMS आपके खाते पर हर सत्यापन प्रयास का एक पूर्ण ऑडिट लॉग 12 महीनों के लिए बनाए रखता है, जो डैशबोर्ड से और /compat/handler_api.php?action=getHistory एक्सटेंशन के माध्यम से सुलभ है।
क्या यह मेरे GDPR या अनुपालन मुद्रा को प्रभावित करता है?
VerifySMS यूनाइटेड किंगडम में पंजीकृत है और यूके जीडीपीआर का पालन करता है। हम अपनी डेटा प्रतिधारण नीति, उप-प्रोसेसर और डीपीए को गोपनीयता पृष्ठ पर प्रकाशित करते हैं। यदि आपकी पिछली सेटअप को SMS-Activate के साथ डीपीए की आवश्यकता थी, तो हमसे संपर्क करें और हम एक व्यवसाय दिवस के भीतर उसी समझौते पर हस्ताक्षर करेंगे।
अगले कदम
यदि आपने यहाँ तक पढ़ा है, तो आपके पास पहले से ही वे टुकड़े हैं जिनकी आपको आवश्यकता है। इन्वेंट्री चरण से शुरू करें, समीक्षा के लिए एक टीम के साथी के सामने बेस URL स्वैप प्राप्त करें, और रात भर कैनरी चलाएँ। प्लेबुक जानबूझकर छोटा है; कठिन हिस्सा कैनरी विंडो के बाद रुकने का अनुशासन है, बजाय इसके कि सब कुछ एक कमिट में ओवरकट कर दिया जाए।
साइट के बाकी हिस्सों पर संबंधित पठन:
- SMS सत्यापन की स्थिति 2026 — मूल्य निर्धारण, ट्रैफ़िक और रिफंड नीति डेटा के साथ 8 सेवाओं का पूर्ण स्वतंत्र बेंचमार्क।
- 2026 में सर्वश्रेष्ठ SMS-Activate विकल्प — संपूर्ण गाइड — प्रतिस्थापन विकल्पों के लिए गैर-डेवलपर गाइड।
- VerifySMS vs SMS-Activate — पूर्ण तुलना — मूल्यांकन करने वाली टीमों के लिए साइड-बाय-साइड तुलना।
- एसएमएस सत्यापन एपीआई गाइड 2026: Twilio, Vonage, MessageBird, Plivo — जब आप संगतता लेयर से हटने के लिए तैयार हों तो मूल VerifySMS API वॉकथ्रू।
माइग्रेशन को एक शाम में पूरा करने के लिए तैयार हैं?
VerifySMS API कुंजी बनाएँ →सैंडबॉक्स मोड शामिल · ऑटो-रिफंड गारंटी · 200+ देश · /compat/handler_api.php पर SMS-Activate संगतता लेयर
हिंदी में और लेख पढ़ें
- Tinder फ़ोन सत्यापन — गोपनीयता के लिए वर्चुअल नंबर का उपयोग करें
- 2026 में सर्वश्रेष्ठ SMS-Activate विकल्प — संपूर्ण गाइड
- VerifySMS बनाम Google Voice — SMS सत्यापन के लिए कौन सा बेहतर है?
- 2026 में सर्वश्रेष्ठ एसएमएस सत्यापन सेवाएं — मेगा तुलना
- सुरक्षित रूप से कई Discord अकाउंट कैसे बनाएँ
- Apple ID SMS सत्यापन गाइड 2026
- सस्ते वर्चुअल फ़ोन नंबर के लिए सर्वश्रेष्ठ देश
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 में सर्वश्रेष्ठ SMS-Activate विकल्प — संपूर्ण गाइड — non-developer guide to the replacement options.
- VerifySMS vs SMS-Activate — पूर्ण तुलना — side-by-side comparison for teams still evaluating.
- एसएमएस सत्यापन एपीआई गाइड 2026: Twilio, Vonage, MessageBird, Plivo — 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
