Sign inGet Started

Verify को Twilio से माइग्रेट करें

यह पेज Twilio Verify v2 को Bird Verify पर मैप करता है। मुख्य माइग्रेशन गाइड को क्रम से फ़ॉलो करें और इन मैपिंग को स्टेप 1 और 3 के लिए इस्तेमाल करें।
Service वह हिस्सा है जिसका कोई समकक्ष नहीं है। Twilio POST https://verify.twilio.com/v2/Services/{ServiceSid}/Verifications को एड्रेस करता है, और Service में कोड लेंथ, TTL, लुकअप, लैंडलाइन हैंडलिंग, और रेट लिमिट होती हैं। Bird बिना सर्विस सेगमेंट के POST /v1/verify/verifications को एड्रेस करता है: ये सेटिंग्स पाथ में किसी ID के बजाय आपके वर्कस्पेस की होती हैं। एक वर्कस्पेस के भीतर कई Service ID का कोई समकक्ष नहीं है, और आप प्रति रिक्वेस्ट कॉन्फ़िगरेशन चुन नहीं सकते।

यह अपने एजेंट को दें

इसे Claude Code, Cursor, या Codex में पेस्ट करें। एजेंट इस पेज को आपकी रिपॉज़िटरी के साथ प्रोसेस करता है, जो भी Bird सरफ़ेस उसके पास पहले से है उसका उपयोग करते हुए: MCP सर्वर अगर कनेक्टेड है, CLI अगर इंस्टॉल और साइन इन है।
कोड उदाहरण
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.

create कॉल को मैप करें

क्या करता हैTwilio VerifyBird
प्राप्तकर्ताToto.phone_number या to.email
चैनलChanneloptions.channels, अन्यथा देश का कॉन्फ़िगर किया गया क्रम
कोड लेंथService CodeLengthoptions.code_length, अन्यथा वर्कस्पेस डिफ़ॉल्ट
कोड लाइफ़टाइमService TTLवर्कस्पेस की Duration सेटिंग
प्रयास सीमाService max attemptsवर्कस्पेस की Maximum Retries सेटिंग
कोरिलेशनTagsmetadata
सुरक्षित रीट्राई(कोई नहीं)Idempotency-Key हेडर
कस्टम सत्यापन कोडCustomCodeकोई समकक्ष नहीं
लोकलाइज़ेशनLocaleoptions.language
संदेश सामग्रीTemplateSid, CustomFriendlyName, ChannelConfigurationप्रति-अनुरोध समकक्ष नहीं; Verify कॉन्फ़िगरेशन में एक स्वीकृत WhatsApp ऑथेंटिकेशन टेम्प्लेट चुनें
प्रति-की थ्रॉटलRateLimitsनिश्चित प्लेटफ़ॉर्म गार्डरेल्स
फ़्रॉड नियंत्रणRiskCheck, Fraud Guard, DeviceIpAPI पर उपलब्ध नहीं
SMS ऑटोफ़िलAppHashकोई समकक्ष नहीं
PSD2Amount, Payeeकोई समकक्ष नहीं
चैनल भी एक-से-एक मैप नहीं होते:
Twilio ChannelBird
smssms
emailemail
whatsappwhatsapp
callकोई समकक्ष नहीं
sna, autoकोई समकक्ष नहीं
rcsकोई समकक्ष नहीं
(कोई नहीं)telegram, Telegram पर रजिस्टर्ड नंबरों के लिए उपलब्ध
अगर कोई फ़्लो call को एक्सेसिबिलिटी फ़ॉलबैक के रूप में, या sna और auto को कोडलेस पाथ के लिए इस्तेमाल करता है, तो तारीख तय करने से पहले उसे फिर से सोचना होगा। बाकी सब कुछ प्रति-रिक्वेस्ट पैरामीटर के बजाय Countries पेज पर चैनल-ऑर्डर बदलाव है।

check कॉल को मैप करें

Twilio का POST /v2/Services/{ServiceSid}/VerificationCheck To या VerificationSid लेता है, साथ में Code। Bird का POST /v1/verify/verifications/check केवल प्राप्तकर्ता और कोड लेता है, इसलिए VerificationSid पाथ उस कॉलम के साथ गायब हो जाता है जिसमें आपने इसे स्टोर किया था। ठीक वही एड्रेस सेट दें जिससे आपने सत्यापन बनाया था।
रिज़ल्ट का स्ट्रक्चर वहाँ अलग है जहाँ सबसे ज़्यादा फ़र्क पड़ता है:
  • Twilio एक status फ़ील्ड के साथ जवाब देता है; Bird एक boolean के साथ जवाब देता है। success: true का मतलब सत्यापित है। success: false में reason होता है जो incorrect_code, expired, या attempts_exhausted हो सकता है, साथ में attempts_remaining, इसलिए "how many tries left" का वह आँकड़ा जो शायद आप खुद गिन रहे हों, रिस्पॉन्स पर वापस आता है।
  • सत्यापन खत्म होने के बाद दोनों 404 हो जाते हैं। Twilio सत्यापन को तब डिलीट कर देता है जब वह approved, expired, या प्रयास खत्म हो जाए; Bird किसी भी अंतिम स्थिति में चेक स्वीकार करना बंद कर देता है। दोबारा चेक करने के बजाय पहला निर्णायक जवाब स्टोर करें।

स्टेटस ट्रांसलेट करें

Twilio स्टेटसBird स्टेटसBird reason
pendingpendingकोई नहीं
approvedverifiedकोई नहीं
max_attempts_reachedfailedattempts_exhausted
expiredexpiredttl_elapsed
canceledकोई समकक्ष नहीं: सत्यापन रद्द करने योग्य नहीं है
कोई update एंडपॉइंट नहीं है, इसलिए अपने बैकएंड से सत्यापन को approved या canceled पर फ़ोर्स करने के Twilio पैटर्न का कोई समकक्ष नहीं है। सत्यापन तब समाप्त होता है जब यूज़र इसे सत्यापित करता है, प्रयास खत्म करता है, या इसे एक्सपायर होने देता है।

इवेंट स्ट्रीम को माइग्रेट करें

Twilio Verify गतिविधि की रिपोर्ट Event Streams के ज़रिए करता है: एक सिंक और सत्यापन स्टेटस इवेंट की सब्सक्रिप्शन, जो Verify API के बाहर कॉन्फ़िगर की जाती है। Bird हर दूसरे चैनल की तरह वही webhook मेकैनिज़्म इस्तेमाल करता है। अपने इच्छित इवेंट टाइप के लिए एक एंडपॉइंट सब्सक्राइब करें, हर एक का नाम दें: सेशन इवेंट के लिए verify.verification.created, verify.verification.verified और verify.verification.failed, और व्यक्तिगत सत्यापन कोड डिलीवरी के लिए verify.attempt.sent, verify.attempt.delivered और verify.attempt.undelivered। इनकी जगह लेने वाला कोई वाइल्डकार्ड नहीं है। Standard Webhooks के अनुसार सिग्नेचर वेरिफ़ाई करें। देखें Verify events।
डैशबोर्ड पोर्ट करते समय ये दो अक्ष महत्वपूर्ण हैं। Twilio के verification status events Bird के session events से मैच होते हैं, और Bird के attempt events उसी सेशन पर प्रति-सेंड डिलीवरी परिणाम जोड़ते हैं, जिसमें दोबारा भेजने या चैनल फ़ेलओवर से होने वाले सेंड शामिल हैं।

कटओवर करें

मुख्य गाइड का कटओवर नियम वह है जिसके अनुसार योजना बनानी चाहिए: Twilio द्वारा जारी कोड को Bird से चेक नहीं किया जा सकता, इसलिए create कॉल पर स्विच करें और चेक को उस प्रोवाइडर पर रूट करते रहें जिसने सत्यापन जारी किया, जब तक आखिरी Twilio कोड एक्सपायर न हो जाए।
कटओवर से पहले सेंडर जाँच लें। आप Bird Verify या Authifly चुन सकते हैं, अपना सत्यापित ईमेल डोमेन इस्तेमाल कर सकते हैं, कोई मौजूदा SMS Sender ID चुन सकते हैं, या अपना कनेक्टेड WhatsApp नंबर किसी स्वीकृत ऑथेंटिकेशन टेम्प्लेट के साथ जोड़ सकते हैं। Bird सेंडर पूल में से चयन नहीं करता। अगर आप कॉन्फ़िगरेशन डिफ़ॉल्ट के रूप में SMS Sender ID रखते हैं, तो Verify केवल वहीं Bird Verify पर फ़ॉलबैक करता है जहाँ वह ID गंतव्य के लिए अपात्र है; स्पष्ट देश चयन ऐसा नहीं करता। हर देश में उपयोगकर्ता क्या देखते हैं यह पुष्टि करें और जहाँ बदलाव हो वहाँ सपोर्ट स्क्रिप्ट अपडेट करें।

अगले कदम