Sign inGet Started

Migrasi Verify dari Twilio

Halaman ini memetakan Twilio Verify v2 ke Bird Verify. Ikuti panduan migrasi utama secara berurutan dan gunakan pemetaan ini untuk langkah 1 dan 3.
Service adalah bagian yang tidak memiliki padanan. Twilio mengalamatkan POST https://verify.twilio.com/v2/Services/{ServiceSid}/Verifications, dan Service menyimpan panjang kode, TTL, lookup, penanganan telepon rumah, dan pembatasan laju permintaan. Bird mengalamatkan POST /v1/verify/verifications tanpa segmen service: pengaturan tersebut berada di workspace Anda, bukan di ID pada path. Beberapa Service ID tidak memiliki padanan dalam satu workspace, dan Anda tidak dapat memilih konfigurasi per permintaan.

Serahkan ini ke agen Anda

Tempel ini ke Claude Code, Cursor, atau Codex. Agen akan mengerjakan halaman ini terhadap repositori Anda sendiri, menggunakan antarmuka Bird yang sudah tersedia: MCP server jika sudah terhubung, atau CLI jika sudah terpasang dan login.
Contoh kode
I am moving a phone verification integration from Twilio Verify to Bird Verify. Route through it with me.
1. Check what you already have before setting anything up. If Bird's MCP server is connected, use its tools. If the Bird CLI is installed and signed in, use that. Either one is enough, and every step below is an action you take with whichever you have. Only if neither is present, follow https://bird.com/docs/ai/set-up-your-agent.md to set one up and sign me in. Every Bird docs page serves Markdown at its own URL with `.md` appended, so fetch that rather than the HTML.
2. Read https://bird.com/docs/guides/verify/migrate/twilio.md for the create, check and status mapping, and https://bird.com/docs/guides/verify/migrate.md for the order the steps go in.
3. Find and list my Twilio Verify usage in this repository before you change anything: the Verifications and VerificationCheck call sites, every Service SID they name and what each Service is configured with, and any place I read a verification status. Bird has no Service segment and no per-request configuration selection, so tell me if I use more than one Service and what differs between them.
4. Tell me early which of these I depend on. Bird Verify has no voice channel and no silent or network-based authentication. It generates the code itself and never returns it, so I cannot supply my own. It accepts `options.language` but no per-request template or message body. Bird can use an existing SMS Sender ID or a connected WhatsApp number with an approved authentication template, configured per channel or country rather than per request; tell me whether my current sender can be kept. Twilio's Service holds code length, TTL, lookup, landline handling and rate limits; on Bird those belong to the workspace rather than to an ID in the path, so tell me which of my Service settings have no home.
5. Configure my channels and destinations following https://bird.com/docs/guides/verify/countries.md and https://bird.com/docs/guides/verify/senders.md. While you are there, disable every country I do not actually verify into. An enabled destination I never send to is not reach, it is exposure to SMS pumping, so ask me which countries I serve rather than leaving the defaults.
6. Port the create and check calls using the mapping tables on the provider page, and move my status handling to Bird's events: https://bird.com/docs/guides/verify/sending-verifications.md and https://bird.com/docs/guides/verify/events.md.
7. Cut over at the create call, not all at once, because a code issued by Twilio Verify cannot be checked by Bird and a code issued by Bird cannot be checked by Twilio Verify. From the moment I say go, send every NEW verification to Bird, and keep routing each check to whichever provider issued that verification. Keep both paths live for one full code lifetime plus margin, then retire the old one. Tell me how you will decide which provider issued a given verification before you write any of it.
8. Test before any real traffic. Bird Verify has no simulated recipients, so do not look for a sandbox: the thing worth testing is the code arriving. Run the integration against a phone number and a mailbox I control, on each channel I enabled, and show me what arrived on each one.
9. Stop and ask me wherever a step needs a decision. Do not start routing new verifications to Bird until I have seen those test results and replied with the words cut over to Bird. Retiring the Twilio Verify path is a separate step: ask me again and wait for me to reply with the words retire the Twilio Verify path, and do not retire it while any code it issued could still be checked. A reply that agrees without naming what it is authorising is not authorisation. Finish by telling me what is left that only a person can do.

Petakan panggilan create

FungsiTwilio VerifyBird
PenerimaToto.phone_number atau to.email
ChannelChanneloptions.channels, jika tidak mengikuti urutan yang dikonfigurasi per negara
Panjang kodeService CodeLengthoptions.code_length, jika tidak mengikuti default workspace
Masa berlaku kodeService TTLpengaturan Duration di workspace
Batas percobaanService max attemptspengaturan Maximum Retries di workspace
KorelasiTagsmetadata
Percobaan ulang aman(tidak ada)header Idempotency-Key
Kode verifikasi kustomCustomCodetidak ada padanan
LokalisasiLocaleoptions.language
Konten pesanTemplateSid, CustomFriendlyName, ChannelConfigurationtidak ada padanan per permintaan; pilih template autentikasi WhatsApp yang disetujui di konfigurasi Verify
Throttle per kunciRateLimitsbatas tetap dari platform
Kontrol penipuanRiskCheck, Fraud Guard, DeviceIptidak diekspos di API
Autofill SMSAppHashtidak ada padanan
PSD2Amount, Payeetidak ada padanan
Channel juga tidak berpasangan satu-satu:
Twilio ChannelBird
smssms
emailemail
whatsappwhatsapp
calltidak ada padanan
sna, autotidak ada padanan
rcstidak ada padanan
(tidak ada)telegram, tersedia untuk nomor yang terdaftar di Telegram
Alur yang menggunakan call sebagai fallback aksesibilitas, atau sna dan auto untuk jalur tanpa kode, perlu dirancang ulang sebelum Anda menetapkan tanggal. Yang lainnya adalah perubahan urutan channel di halaman Countries, bukan parameter per permintaan.

Petakan panggilan check

POST /v2/Services/{ServiceSid}/VerificationCheck Twilio menerima To atau VerificationSid, ditambah Code. POST /v1/verify/verifications/check Bird hanya menerima penerima dan kode, sehingga jalur VerificationSid hilang bersama kolom tempat Anda menyimpannya. Berikan tepat set alamat yang Anda gunakan saat membuat verifikasi.
Bentuk respons berbeda pada bagian yang paling penting:
  • Twilio menjawab dengan field status; Bird menjawab dengan boolean. success: true berarti terverifikasi. success: false membawa reason berupa incorrect_code, expired, atau attempts_exhausted, ditambah attempts_remaining, sehingga angka "how many tries left" yang mungkin Anda hitung sendiri dikembalikan dalam respons.
  • Keduanya menjadi 404 setelah verifikasi selesai. Twilio menghapus verifikasi saat disetujui, kedaluwarsa, atau kehabisan percobaan; Bird berhenti menerima pengecekan dalam status final apa pun. Simpan jawaban definitif pertama, jangan periksa ulang.

Terjemahkan status

Status TwilioStatus BirdAlasan Bird
pendingpendingtidak ada
approvedverifiedtidak ada
max_attempts_reachedfailedattempts_exhausted
expiredexpiredttl_elapsed
canceledtidak ada padanan: verifikasi tidak dapat dibatalkan
Tidak ada endpoint update, sehingga pola Twilio yang memaksa verifikasi ke approved atau canceled dari backend Anda tidak memiliki padanan. Verifikasi berakhir saat pengguna memverifikasinya, menghabiskan percobaan, atau membiarkannya kedaluwarsa.

Pindahkan event stream

Twilio Verify melaporkan aktivitas melalui Event Streams: sebuah sink ditambah subscription ke event status verifikasi, dikonfigurasi di luar API Verify. Bird menggunakan mekanisme webhook yang sama seperti channel lainnya. Subscribe endpoint ke tipe event yang Anda inginkan, sebutkan masing-masing: verify.verification.created, verify.verification.verified dan verify.verification.failed untuk event sesi, serta verify.attempt.sent, verify.attempt.delivered dan verify.attempt.undelivered untuk pengiriman kode verifikasi individual. Tidak ada wildcard yang menggantikan semuanya. Verifikasi tanda tangan sesuai Standard Webhooks. Lihat Verify events.
Kedua sumbu ini penting saat Anda memindahkan dashboard. Event status verifikasi Twilio sejajar dengan event sesi Bird, dan event percobaan Bird menambahkan hasil pengiriman per pengiriman pada sesi yang sama, termasuk pengiriman yang dihasilkan oleh pengiriman ulang atau failover channel.

Cutover

Aturan cutover di panduan utama adalah yang harus Anda rencanakan: kode yang diterbitkan oleh Twilio tidak dapat diperiksa oleh Bird, jadi alihkan di panggilan create dan tetap arahkan pengecekan ke provider mana pun yang menerbitkan verifikasi tersebut sampai kode Twilio terakhir kedaluwarsa.
Periksa pengirim sebelum cutover. Anda dapat memilih Bird Verify atau Authifly, menggunakan domain email terverifikasi Anda, memilih Sender ID SMS yang sudah ada, atau memasangkan nomor WhatsApp yang terhubung dengan template autentikasi yang disetujui. Bird tidak memilih dari kumpulan pengirim. Jika Anda mempertahankan Sender ID SMS sebagai default konfigurasi, Verify beralih ke Bird Verify hanya jika ID tersebut tidak memenuhi syarat untuk tujuan; pilihan negara eksplisit tidak melakukan hal ini. Pastikan apa yang dilihat pengguna di setiap negara dan perbarui skrip dukungan jika ada perubahan.

Langkah selanjutnya