← Blog
Developer playbook · 16 menit baca · Published April 2026 · Author Serhat Dogan

Pusat Migrasi SMS-Activate 2026: Daftar Periksa Pengembang, Pemetaan API & Perbandingan Pengembalian Dana

Pusat Migrasi SMS-Activate 2026: Daftar Periksa Pengembang, Pemetaan API & Perbandingan Pengembalian Dana

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.

Mengapa playbook ini ada

Sebagian besar postingan "SMS-Activate sudah mati, berikut daftar alternatifnya" melewatkan bagian yang sebenarnya memakan waktu pengembang: kode. Mendaftar untuk penyedia baru hanya membutuhkan waktu lima menit. Menulis ulang integrasi yang telah berjalan di produksi selama bertahun-tahun, dengan kasus sudut yang belum teruji dan pelacak biaya yang terpasang padanya, membutuhkan waktu lebih lama dari yang Anda kira.

Setelah kami meluncurkan lapisan kompatibilitas kami pada Januari 2026, kami mulai menerima tiga pertanyaan yang sama dari setiap tim yang mencobanya:

  1. Endpoint mana yang dipetakan dengan bersih dan mana yang memerlukan perubahan manual?
  2. Bagaimana cara menjaga pelacakan biaya dan alur pengembalian dana saya tetap berfungsi tanpa penulisan ulang?
  3. Apa yang rusak secara diam-diam dan muncul seminggu kemudian sebagai kejutan penagihan?

Playbook ini menjawab ketiga pertanyaan tersebut secara berurutan dan memberi Anda kode salin-tempel yang dapat Anda audit sebelum dijalankan.

Rekap 48 jam: apa yang sebenarnya terjadi

SMS-Activate menjadi gelap pada 29 Desember 2025. Tidak ada spanduk pemeliharaan terjadwal, tidak ada alat migrasi, dan tidak ada pemberitahuan publik. Pengguna yang mencoba masuk menemui satu halaman yang menyatakan layanan tersebut telah ditutup secara permanen. API mengembalikan reset koneksi pada setiap endpoint dalam beberapa jam.

Tiga hal terjadi dengan cepat:

Dampaknya masih terus berlanjut. Per April 2026 ada kasus gugatan perdata kecil aktif di Rusia dan setidaknya dua gugatan komunitas terkoordinasi yang mencoba memulihkan saldo yang dibekukan. Tidak ada dari itu yang membantu kode Anda, itulah sebabnya kami akan fokus pada bagian yang benar-benar dapat Anda perbaiki.

Bagian 1: Peta depresi API

SMS-Activate menyediakan satu endpoint publik di https://sms-activate.org/stubs/handler_api.php. Setiap tindakan adalah parameter string kueri pada URL tersebut. Tabel di bawah memetakan setiap tindakan utama ke padanannya di VerifySMS. Lapisan kompatibilitas di https://api.verifysms.app/compat/handler_api.php menerima bentuk string kueri yang sama persis.

Tindakan SMS-ActivateTujuanLapisan kompatibilitas VerifySMSAPI VerifySMS Asli
getBalanceMengembalikan saldo USD sebagai teksBerfungsi tanpa perubahan. Mengembalikan ACCESS_BALANCE:X.YYGET /v1/balance mengembalikan JSON
getNumbersStatusKetersediaan per negaraBerfungsi. Mengembalikan format peta lamaGET /v1/countries/availability
getNumberMenyewa nomor untuk layananBerfungsi. Mengembalikan ACCESS_NUMBER:id:+phonePOST /v1/rentals
setStatusMengonfirmasi atau membatalkan sewaBerfungsi. Kode status 1/3/6/8 berperilaku identikPOST /v1/rentals/{id}/status
getStatusMemantau kedatangan SMSBerfungsi. Mengembalikan STATUS_WAIT_CODE, STATUS_OK:CODE, STATUS_WAIT_RETRYGET /v1/rentals/{id}
getPricesMengambil tabel hargaBerfungsi. Mengembalikan harga VerifySMS dalam bentuk JSON lamaGET /v1/prices
getCountriesPeta kode negaraBerfungsi. Mengembalikan ID numerik lama dan kode ISO-3166GET /v1/countries
getTopCountriesByServiceNegara teratas per layananMengembalikan data VerifySMS waktu nyata alih-alih peringkat SMS-Activate yang di-cacheGET /v1/services/{id}/top-countries

Beberapa tindakan SMS-Activate yang kurang digunakan tidak memiliki padanan satu-satu. getRentServicesAndCountries dan API sewa jangka panjang adalah spesifik SMS-Activate dan tidak memiliki lapisan kompatibilitas. Jika integrasi Anda menggunakan itu, Anda harus beralih ke endpoint sewa jangka panjang VerifySMS asli di POST /v1/rentals/long, yang didokumentasikan secara terpisah.

Bagian 2: Panduan migrasi kode

Cuplikan berikut adalah bentuk persis yang saya uji terhadap lingkungan staging kami sendiri pada bulan Januari. Saya sengaja membuatnya membosankan sehingga Anda dapat membacanya terhadap kode Anda sendiri tanpa peralihan konteks.

Python (requests)

Satu-satunya perubahan yang diperlukan adalah URL dasar. Jika Anda sudah membungkus API dalam modul klien kecil, perbedaannya adalah satu baris.

import os
import requests

# SEBELUMNYA
# BASE_URL = "https://sms-activate.org/stubs/handler_api.php"
# SESUDAHNYA
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"unexpected response: {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)
    # Tandai sebagai tidak terpakai agar kami mendapatkan pengembalian dana
    requests.get(BASE_URL, params={
        "api_key": API_KEY,
        "action": "setStatus",
        "status": 8,
        "id": rental_id,
    }, timeout=15)
    raise TimeoutError(f"no code after {deadline_seconds}s")

Node.js (axios)

import axios from "axios";

// SEBELUMNYA
// const BASE_URL = "https://sms-activate.org/stubs/handler_api.php";
// SESUDAHNYA
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(`unexpected response: ${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(`no code after ${deadlineMs}ms`);
}

PHP (curl)

<?php
// SEBELUMNYA
// const BASE_URL = "https://sms-activate.org/stubs/handler_api.php";
// SESUDAHNYA
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("unexpected: $resp");
    }
    return ["id" => $id, "phone" => $phone];
}

Go (net/http)

package sms

import (
    "errors"
    "fmt"
    "io"
    "net/http"
    "net/url"
    "os"
    "strings"
    "time"
)

// SEBELUMNYA
// const baseURL = "https://sms-activate.org/stubs/handler_api.php"
// SESUDAHNYA
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("unexpected: " + body)
    }
    return parts[1], parts[2], nil
}

Contoh Go sengaja ditulis tanpa klien pihak ketiga sehingga Anda dapat memasukkannya ke dalam layanan minimal tanpa menambahkan dependensi. Pola yang sama berlaku di semua bahasa lain: tukar URL, pertahankan sisanya, dan biarkan penanganan kesalahan Anda yang ada terbawa.

Bagian 3: Hal-hal yang akan mengecewakan Anda

Ini adalah tempat-tempat di mana lapisan kompatibilitas setia pada keunikan SMS-Activate tetapi keunikan itu sendiri akan mengejutkan Anda jika Anda belum menyentuh kode ini dalam waktu lama.

ID negara bukan kode ISO

SMS-Activate memberi nomor negara dalam urutannya sendiri: Rusia adalah 0, AS adalah 187, Indonesia adalah 6, dan seterusnya. Jika integrasi Anda memiliki angka-angka ajaib ini yang disematkan, angka-angka tersebut masih berfungsi pada lapisan kompatibilitas. Jika Anda menulis kode baru, lebih pilih bentuk ISO-3166 alpha-2 (RU, US, ID) yang juga diterima oleh lapisan kompatibilitas. Jangan mencampur kedua gaya di situs panggilan yang sama, karena debugging di masa mendatang akan menyakitkan.

Kode status 3 versus 6

Kode tindakan 3 setStatus berarti "minta SMS lagi" di dunia SMS-Activate, dan kode 6 berarti "terima kode sebagai valid." Kedua kode ini mudah tertukar dalam keadaan terburu-buru dan memiliki hasil penagihan yang berlawanan: 3 membuat Anda tetap ditagih, 6 mengonfirmasi verifikasi yang berhasil. Lapisan kompatibilitas berperilaku sama. Cari kode Anda untuk setStatus dan pastikan cabang yang mengambil kode 6 hanya berjalan setelah Anda yakin verifikasi berhasil.

Batas waktu dan circuit breaker

SMS-Activate di bawah beban terkadang mengembalikan 200 dengan badan kosong alih-alih kesalahan HTTP. Klien defensif membungkus panggilan dalam batas waktu dan memperlakukan badan kosong sebagai sinyal coba lagi. VerifySMS tidak pernah mengembalikan badan kosong pada lapisan kompatibilitas. Jika klien Anda masih memperlakukan badan kosong sebagai coba lagi, itu akan menghabiskan anggaran pada jaringan yang tidak stabil karena coba lagi akan mengenai ID sewa yang berbeda. Pola yang lebih aman adalah memeriksa awalan respons yang diketahui (ACCESS_, STATUS_, BAD_) dan memperlakukan apa pun selain itu sebagai kegagalan keras, bukan yang sementara.

Batas tarif berpindah dari per-kunci ke per-IP

Batas tarif SMS-Activate dikunci ke token API. Batas tarif VerifySMS dikunci ke kombinasi token API dan alamat IP sumber, karena kami melihat banyak penyalahgunaan dari skrip scraper yang berbagi satu kunci di seluruh botnet. Untuk lalu lintas produksi normal dari satu server atau kumpulan yang seimbang, ini tidak terlihat. Jika Anda menjalankan pekerjaan CI terdistribusi yang semuanya berbagi satu kunci staging, Anda mungkin melihat 429 saat armada pertama kali memanas bersama. Perbaikannya adalah membiarkan canary berjalan dari satu node selama sehari sebelum menyebar.

Waktu pengembalian dana terasa instan karena memang instan

Ini bukan jebakan melainkan kejutan yang menyenangkan. Di mana pengembalian dana SMS-Activate membutuhkan waktu beberapa jam untuk muncul di saldo Anda, pengembalian dana VerifySMS muncul dalam waktu 60 detik. Jika pelacak biaya Anda membaca saldo sesuai jadwal, itu akan mencatat pengembalian dana sebagai kredit yang tidak akan dilewatkan oleh sistem lama. Dasbor rekonsiliasi terkadang menandai ini sebagai anomali pada hari pertama.

Bagian 4: Perbandingan harga dalam kenyataan

Sebelum penutupan, SMS-Activate adalah dasar pasar. Nomor Rusia berharga $0,03 hingga $0,05 per verifikasi, dan pembeli volume besar membayar lebih sedikit. Dasar itu hilang. Inilah posisi penyedia yang tersisa pada April 2026 untuk layanan yang paling umum, diambil dari halaman harga publik setiap penyedia pada :

Layanan5simTextVerifiedSMSPVASMS-MANVerifySMS
WhatsApp / Rusia$0.014$0.05$0.035$0.10
WhatsApp / AS$0.27$0.25$0.28$0.22$0.18
Telegram / Rusia$0.016$0.05$0.04$0.10
Telegram / AS$0.35$0.40$0.38$0.30$0.20
Google / Indonesia$0.07$0.08$0.06$0.10

Pola ini sederhana: 5sim dan SMS-MAN menang dalam harga Rusia yang sangat rendah, TextVerified adalah tingkatan premium AS, dan VerifySMS berada di tengah dengan dasar tarif tetap $0,10 untuk semua kecuali nomor non-VoIP AS yang paling mahal. Jika anggaran Anda disesuaikan dengan harga dasar SMS-Activate, bersiaplah untuk membayar dua hingga lima kali lebih banyak per verifikasi terlepas dari pengganti mana yang Anda pilih.

Dua catatan tentang tabel ini. Pertama, setiap penyedia (termasuk VerifySMS) menaikkan dan menurunkan harga negara individu sebagai respons terhadap biaya operator, jadi konfirmasikan harga saat ini di dasbor Anda sendiri sebelum mengalokasikan anggaran. Kedua, harga efektif per verifikasi yang berhasil bergantung pada rasio pengembalian dana. Penyedia dengan harga stiker $0,08 dan tingkat keberhasilan 70% akan lebih mahal per keberhasilan daripada penyedia $0,10 dengan pengembalian dana otomatis dan tingkat keberhasilan 90%.

Bagian 5: Daftar periksa migrasi 10 langkah

Ini adalah urutan sebenarnya yang kami pandu untuk pengguna kami pada bulan Januari. Ini mengasumsikan satu pengembang dengan akses repo, satu layanan produksi, dan lingkungan staging. Skalakan persentase canary ke atas jika Anda menjalankan beberapa layanan atau monorepo.

  1. Inventaris setiap situs panggilan. Jalankan git grep -n 'sms-activate\.org\|handler_api\.php\|getNumber\|setStatus' dan daftar setiap file yang mengakses API lama. Jika Anda menemukan lebih dari selusin, pilih modul pembungkus dan pusatkan panggilan terlebih dahulu sebelum bermigrasi.
  2. Dapatkan kunci API VerifySMS. Daftar, tambahkan sejumlah kecil saldo, dan hasilkan kunci terlingkup untuk staging. Jauhkan kunci produksi dari repo.
  3. Ubah URL dasar. Ganti host SMS-Activate dengan api.verifysms.app/compat/handler_api.php. Jangan ubah string kueri. Komit ini saja agar perbedaannya bersih.
  4. Jalankan pengujian yang ada. Jika pengujian mengakses API sebenarnya, arahkan ke staging dan perhatikan ketidakcocokan bentuk. Jika mereka memalsukan API, jalankan terhadap endpoint staging langsung juga sehingga Anda menangkap penyimpangan kontrak.
  5. Konfirmasi ulang ID negara. Periksa kode Anda untuk konstanta negara. Jika Anda menggunakan ID numerik lama, itu masih berfungsi. Jika Anda memiliki kesempatan, ganti dengan kode ISO-3166 karena pengembang berikutnya yang menyentuh file ini akan berterima kasih kepada Anda.
  6. Hubungkan klaim pengembalian dana. Konfirmasikan bahwa jalur batas waktu Anda memanggil setStatus dengan status=8. Tanpa ini, Anda masih akan mendapatkan pengembalian dana (kami secara otomatis mengembalikan sewa yang kedaluwarsa) tetapi pelacak biaya Anda akan tertinggal dari kenyataan.
  7. Perbarui pelacak biaya Anda. Baca biaya dari header respons X-VerifySMS-Cost alih-alih mengurainya dari tabel harga. Perubahan tunggal ini membuat dasbor keuangan Anda akurat hingga sen.
  8. Pemantauan. Tambahkan peringatan tingkat keberhasilan, latensi p95, dan rasio pengembalian dana terhadap baseline Anda yang ada. Pilih ambang batas yang dapat Anda pertahankan, bukan yang menurut Anda akan "baik-baik saja."
  9. Canary 5 persen selama 24 jam. Arahkan sebagian kecil lalu lintas produksi melalui endpoint baru. Perhatikan dasbor, bukan hanya peringatan.
  10. Potong sisanya. Setelah jendela canary bersih, pindahkan sisa 95 persen dan biarkan kode klien lama dikomentari (tidak dihapus) selama satu siklus rilis sehingga Anda memiliki rollback yang cepat.

Hapus kode lama di rilis berikutnya setelah itu. Jangan biarkan situs panggilan mati lebih dari seminggu karena orang berikutnya yang menyentuh modul akan menempelkannya kembali ke integrasi baru secara tidak sengaja.

Pertanyaan yang sering diajukan

Apakah lapisan kompatibilitas SMS-Activate adalah API nyata atau hanya stub?

Ini adalah endpoint nyata di api.verifysms.app/compat/handler_api.php yang menerima setiap tindakan utama dari dokumentasi publik SMS-Activate: getBalance, getNumber, getStatus, setStatus, getPrices, dan getCountries. Permintaan diteruskan ke API asli kami di balik layar, sehingga Anda mendapatkan harga, cakupan, dan perilaku pengembalian dana VerifySMS tanpa perubahan kode di pihak Anda.

Apakah kunci API lama saya akan berfungsi?

Tidak. Kunci API SMS-Activate berhenti mengautentikasi pada hari layanan ditutup. Anda memerlukan kunci baru dari VerifySMS. Daftar, tambahkan sejumlah kecil saldo, dan hasilkan kunci dari dasbor. Format kunci identik dalam panjangnya sehingga Anda dapat menempelkannya ke variabel lingkungan yang sama.

Bagaimana cara kerja pengembalian dana dibandingkan dengan SMS-Activate?

SMS-Activate mengharuskan Anda memanggil setStatus dengan kode status 8 dalam waktu 20 menit untuk menandai nomor sebagai tidak terpakai, dan pengembalian dana diproses secara manual dalam beberapa jam. VerifySMS menerima panggilan setStatus yang sama dan mengembalikan jumlah penuh ke saldo Anda dalam waktu 60 detik. Jika Anda lupa memanggil setStatus sama sekali, sistem kami masih secara otomatis mengembalikan dana nomor apa pun yang tidak pernah menerima SMS setelah jendela sewa berakhir.

Negara mana yang didukung?

VerifySMS mencakup lebih dari 200 negara. Setiap negara yang ditawarkan SMS-Activate tersedia di VerifySMS, termasuk Rusia, Indonesia, Vietnam, Nigeria, dan AS. Anda dapat mempertahankan pemetaan ID negara Anda yang ada atau bermigrasi ke kode ISO-3166 alpha-2 kapan pun Anda mau.

Apakah harganya sama?

Tidak. Harga dasar pasar SMS-Activate sebesar $0,03 hingga $0,05 per verifikasi untuk nomor Rusia telah hilang dari pasar terbuka. Harga pasar saat ini berkisar dari $0,10 untuk layanan umum hingga $0,25 untuk nomor non-VoIP AS di platform yang lebih ketat. VerifySMS mengenakan biaya $0,10 sebagai dasar dan menerbitkan harga per negara di dasbor.

Apakah saya perlu mengubah logika polling saya?

Tidak. Panggilan getStatus mengembalikan STATUS_WAIT_CODE dan STATUS_OK dalam format yang sama seperti yang digunakan SMS-Activate. Interval polling 3 hingga 5 detik masih berfungsi. Satu-satunya perilaku baru adalah bahwa VerifySMS juga mengekspos URL webhook di dasbor, sehingga Anda dapat menghentikan polling sepenuhnya jika Anda lebih suka alur berbasis peristiwa.

Apa yang terjadi jika lapisan kompatibilitas suatu saat usang?

Lapisan kompatibilitas dianggap sebagai antarmuka publik permanen. Jika kami mengubah perilakunya, kami akan menerbitkan jendela depresi minimum enam bulan dengan catatan migrasi lengkap. API JSON VerifySMS asli juga didokumentasikan, sehingga Anda dapat bermigrasi dari lapisan kompatibilitas sesuai kecepatan Anda sendiri kapan pun itu masuk akal.

Bagaimana cara menguji tanpa mengeluarkan uang?

Dasbor VerifySMS mengekspos mode sandbox yang mengembalikan nomor telepon simulasi dan kode SMS kalengan tanpa mengurangi saldo Anda. Balikkan bendera sandbox di dasbor atau kirim header X-Sandbox-Mode dengan permintaan apa pun untuk menjalankan jalur kode Anda sebelum live.

Bisakah saya bermigrasi dari layanan lain juga?

Ya. Playbook ini ditulis di sekitar API SMS-Activate karena di situlah sebagian besar kode yang terdampar berada, tetapi daftar periksa yang sama berlaku untuk migrasi dari 5sim, SMS-MAN, atau layanan lain yang kompatibel dengan handler_api. Lapisan kompatibilitas mengenali parameter handler_api.php terlepas dari layanan mana yang sebelumnya Anda panggil.

Berapa lama migrasi nyata berlangsung?

Untuk integrasi layanan tunggal dengan beberapa lusin situs panggilan, rencanakan dua hingga empat jam kerja terfokus, ditambah jendela canary 24 jam sebelum Anda mengalihkan lalu lintas penuh. Migrasi multi-layanan yang lebih besar dengan penanganan kesalahan khusus, analitik, dan coba lagi dapat berjalan lebih lama tetapi biasanya masih selesai dalam satu hari kerja.

Apakah saya kehilangan data historis saya?

Riwayat verifikasi SMS-Activate offline ketika layanan ditutup dan tidak dapat dipulihkan. VerifySMS menyimpan log audit lengkap dari setiap upaya verifikasi di akun Anda selama 12 bulan, dapat diakses dari dasbor dan melalui ekstensi /compat/handler_api.php?action=getHistory.

Apakah ini memengaruhi postur GDPR atau kepatuhan saya?

VerifySMS terdaftar di Inggris Raya dan mengikuti UK GDPR. Kami menerbitkan kebijakan retensi data, sub-pemroses, dan DPA di halaman privasi. Jika pengaturan Anda sebelumnya memerlukan DPA dengan SMS-Activate, hubungi kami dan kami akan menandatangani perjanjian yang sama dalam satu hari kerja.

Langkah selanjutnya

Jika Anda telah membaca sejauh ini, Anda sudah memiliki bagian-bagian yang Anda butuhkan. Mulailah dengan langkah inventaris, minta pertukaran URL dasar dari seorang rekan satu tim untuk ditinjau, dan jalankan canary semalaman. Playbook ini sengaja dibuat kecil; bagian yang sulit adalah disiplin untuk berhenti setelah jendela canary alih-alih mengalihkan semuanya dalam satu komit.

Bacaan terkait di sisa situs:

Siap memotong migrasi menjadi satu malam?

Buat kunci API VerifySMS →

Mode sandbox termasuk · Jaminan pengembalian dana otomatis · 200+ negara · Lapisan kompatibilitas SMS-Activate di /compat/handler_api.php

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:

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