{"id":49794,"date":"2025-06-23T07:08:24","date_gmt":"2025-06-23T07:08:24","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=49794"},"modified":"2025-06-23T07:08:24","modified_gmt":"2025-06-23T07:08:24","slug":"twilio-step-by-step-enable-whatsapp-on-twilio-for-production-use","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/twilio-step-by-step-enable-whatsapp-on-twilio-for-production-use\/","title":{"rendered":"Twilio: Step-by-Step: Enable WhatsApp on Twilio for Production Use"},"content":{"rendered":"\n<p>To move from <strong>Twilio WhatsApp Sandbox<\/strong> to a <strong>production-ready WhatsApp business account<\/strong>, you need to complete a series of onboarding steps with Twilio and Meta (Facebook). Here&#8217;s a full <strong>step-by-step guide<\/strong>:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Step-by-Step: Enable WhatsApp on Twilio for Production Use<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 <strong>Step 1: Meet Basic Requirements<\/strong><\/h3>\n\n\n\n<p>Before proceeding, ensure you have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2705 A <strong>Twilio account<\/strong> (with billing set up)<\/li>\n\n\n\n<li>\u2705 A <strong>Meta Business Manager account<\/strong> (with verified business)<\/li>\n\n\n\n<li>\u2705 A <strong>dedicated phone number<\/strong> (not tied to WhatsApp personal\/business app)<\/li>\n\n\n\n<li>\u2705 Admin access to both Twilio and Meta accounts<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 <strong>Step 2: Verify Your Business on Meta (Facebook)<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to: <a href=\"https:\/\/business.facebook.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/business.facebook.com\/<\/a><\/li>\n\n\n\n<li>Navigate to <strong>Business Settings > Security Center<\/strong><\/li>\n\n\n\n<li>Under <strong>Business Verification<\/strong>, click <strong>Start Verification<\/strong><\/li>\n\n\n\n<li>Upload required documents and verify domain, address, and legal entity<\/li>\n\n\n\n<li>Wait for approval (usually 1\u20133 business days)<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 <strong>Step 3: Choose a Phone Number for WhatsApp<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Must be able to receive a <strong>voice or SMS verification code<\/strong><\/li>\n\n\n\n<li>Must <strong>not<\/strong> be linked to an existing WhatsApp account<\/li>\n\n\n\n<li>If previously used in WhatsApp, <strong>delete<\/strong> the account via the WhatsApp app before onboarding<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 <strong>Step 4: Initiate WhatsApp Sender Setup in Twilio Console<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to your Twilio Console<br>\u2192 <a href=\"https:\/\/www.twilio.com\/console\" target=\"_blank\" rel=\"noopener\">https:\/\/www.twilio.com\/console<\/a><\/li>\n\n\n\n<li>Navigate to:<br><strong>Messaging > Senders > WhatsApp Senders<\/strong><\/li>\n\n\n\n<li>Click <strong>\u201cGet Started\u201d<\/strong> or <strong>\u201c+ Create new sender\u201d<\/strong><\/li>\n\n\n\n<li>Choose <strong>\u201cUse your own phone number\u201d<\/strong>, then:\n<ul class=\"wp-block-list\">\n<li>Add business display name<\/li>\n\n\n\n<li>Select <strong>business category<\/strong><\/li>\n\n\n\n<li>Add <strong>phone number<\/strong><\/li>\n\n\n\n<li>Select <strong>Meta Business Account<\/strong> (link it if not already linked)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Twilio will redirect to <strong>Facebook login<\/strong> to link your Meta Business Manager account<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 <strong>Step 5: Verify Phone Number<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You\u2019ll get a <strong>6-digit code<\/strong> via <strong>SMS or voice call<\/strong><\/li>\n\n\n\n<li>Enter it in Twilio to verify ownership<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 <strong>Step 6: Submit Number to WhatsApp Business API<\/strong><\/h3>\n\n\n\n<p>Once the phone number is verified and connected:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Twilio will create a <strong>WhatsApp Business Account (WABA)<\/strong> for you under Meta<\/li>\n\n\n\n<li>Number gets <strong>registered<\/strong> with WhatsApp<\/li>\n\n\n\n<li>You\u2019ll now see the number listed in <strong>approved senders<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 <strong>Step 7: Configure Messaging<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a <strong>Messaging Service<\/strong> (optional, but recommended)<\/li>\n\n\n\n<li>Add your <strong>WhatsApp-approved number<\/strong> as sender<\/li>\n\n\n\n<li>Configure webhook URLs or use Twilio Studio \/ Functions<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 <strong>Step 8: Submit Message Templates for Approval<\/strong><\/h3>\n\n\n\n<p>You <strong>must use templates<\/strong> for initiating conversations (like OTP, booking):<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to: Twilio Console \u2192 Messaging \u2192 Templates<\/li>\n\n\n\n<li>Click \u201cSubmit Template\u201d<\/li>\n\n\n\n<li>Provide:\n<ul class=\"wp-block-list\">\n<li>Template name<\/li>\n\n\n\n<li>Content (e.g., <code>Your MotoShare OTP is {{1}}<\/code>)<\/li>\n\n\n\n<li>Language (e.g., English)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Wait for approval (typically under 24 hours)<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Final Status Check<\/h3>\n\n\n\n<p>Once templates are approved and your number is active, your production WhatsApp is ready.<\/p>\n\n\n\n<p>You can now:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Send OTPs, alerts, or transactional messages using approved templates<\/li>\n\n\n\n<li>Receive free-form replies from users<\/li>\n\n\n\n<li>Monitor delivery, usage, and cost in Twilio Console<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccc Key Notes<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Requirement<\/th><th>Details<\/th><\/tr><\/thead><tbody><tr><td>Meta Business Verification<\/td><td>Mandatory<\/td><\/tr><tr><td>Own number (non-sandbox)<\/td><td>Must be fresh or removed from WhatsApp<\/td><\/tr><tr><td>Template messages<\/td><td>Required to initiate messages<\/td><\/tr><tr><td>User opt-in<\/td><td>Must store user opt-ins before sending<\/td><\/tr><tr><td>Pricing<\/td><td>Depends on country and message type (Twilio bills per conversation)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>To move from Twilio WhatsApp Sandbox to a production-ready WhatsApp business account, you need to complete a series of onboarding steps with Twilio and Meta (Facebook). Here&#8217;s a full step-by-step&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-49794","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=49794"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49794\/revisions"}],"predecessor-version":[{"id":49795,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/49794\/revisions\/49795"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=49794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=49794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=49794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}