<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AlinaJ</title>
    <description>The latest articles on DEV Community by AlinaJ (@alinaj).</description>
    <link>https://dev.to/alinaj</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1257292%2Fbcd5b3ff-fd84-4aec-a7b4-324ae4b748c8.jpg</url>
      <title>DEV Community: AlinaJ</title>
      <link>https://dev.to/alinaj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alinaj"/>
    <language>en</language>
    <item>
      <title>How to Send 2FA OTPs in the USA Without 10DLC Registration</title>
      <dc:creator>AlinaJ</dc:creator>
      <pubDate>Fri, 19 Dec 2025 07:43:25 +0000</pubDate>
      <link>https://dev.to/alinaj/how-to-send-2fa-otps-in-the-usa-without-10dlc-registration-5f8e</link>
      <guid>https://dev.to/alinaj/how-to-send-2fa-otps-in-the-usa-without-10dlc-registration-5f8e</guid>
      <description>&lt;h2&gt;
  
  
  How to Send 2FA OTPs in the USA Without 10DLC Registration
&lt;/h2&gt;

&lt;p&gt;==========================================================&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Can you really send 2FA OTPs in the USA without 10DLC?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Yes. With &lt;a href="https://www.messagecentral.com/product/verify-now/overview" rel="noopener noreferrer"&gt;VerifyNow&lt;/a&gt;, you can start sending 2FA OTPs in the U.S. &lt;strong&gt;in minutes&lt;/strong&gt;, without waiting weeks for 10DLC brand and campaign approvals.&lt;/p&gt;

&lt;p&gt;If you have ever tried setting up SMS 2FA OTPs in the USA, you already know the problem.10DLC registration is slow. It blocks launches. And it delays security.&lt;/p&gt;

&lt;p&gt;This guide explains &lt;a href="https://www.messagecentral.com/send-otp-via-sms-whatsapp" rel="noopener noreferrer"&gt;how developers can send 2FA OTPs in the USA without 10DLC&lt;/a&gt;, stay compliant, and deliver 2FA OTPs reliably using pre-approved shared sender IDs and automatic fallback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Takeaway
&lt;/h2&gt;

&lt;p&gt;You don’t need to wait weeks for 10DLC approval to &lt;a href="https://www.messagecentral.com/setup-2fa" rel="noopener noreferrer"&gt;setup 2FA OTPs in the USA&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;By using &lt;strong&gt;pre-approved shared sender IDs&lt;/strong&gt; with VerifyNow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can go live &lt;strong&gt;instantly&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deliver OTPs in &lt;strong&gt;under 3 seconds&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stay compliant with &lt;strong&gt;TCPA and CTIA rules&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add &lt;strong&gt;WhatsApp fallback&lt;/strong&gt; for near-100% delivery&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use &lt;strong&gt;one API globally&lt;/strong&gt; across 190+ countries&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is ideal for startups, pilots, and teams that need speed without compliance friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why OTP Delivery Speed Matters in the USA
&lt;/h2&gt;

&lt;p&gt;2FA OTPs are used everywhere in the U.S.:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Login verification&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.messagecentral.com/reset-passwords" rel="noopener noreferrer"&gt;Password resets&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Payments and transactions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Two-factor authentication (2FA)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the OTP is slow or fails, users drop off.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. SMS Is Still the Most Reliable Channel
&lt;/h3&gt;

&lt;p&gt;Almost every U.S. user has a mobile phone. SMS works even when data or apps don’t.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Speed Directly Affects Conversion
&lt;/h3&gt;

&lt;p&gt;Most 2FA OTP messages are read within minutes. Even small delays increase retries, support tickets, and abandoned flows.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. OTPs Are a Security Requirement
&lt;/h3&gt;

&lt;p&gt;Industries like fintech, healthcare, and e-commerce rely on 2FA OTPs to meet security expectations and compliance standards.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Failed OTPs Hurt Revenue
&lt;/h3&gt;

&lt;p&gt;When 2FA OTPs fail, users cannot log in or complete payments. That means lost revenue and lower trust.&lt;/p&gt;

&lt;p&gt;This is why delivery reliability matters more than just “sending an SMS”.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is 10DLC and Why Does It Slow Things Down?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;10DLC (10-Digit Long Code)&lt;/strong&gt; is the U.S. framework for sending application-to-person (A2P) SMS.&lt;/p&gt;

&lt;p&gt;It requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Brand registration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Campaign registration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use-case approval&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Proof of opt-in&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Template review&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Developers Struggle With 10DLC
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Approval can take &lt;strong&gt;weeks&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Campaigns can be rejected&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Throughput is limited until trust scores improve&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Launches get delayed&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For teams that just want to ship 2FA OTP authentication, this is overkill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can You Send OTPs in the USA Without 10DLC?
&lt;/h2&gt;

&lt;p&gt;Yes.&lt;/p&gt;

&lt;p&gt;You can send 2FA OTPs in the USA &lt;strong&gt;without registering your own 10DLC campaign&lt;/strong&gt; by using a provider that offers &lt;strong&gt;pre-approved shared sender IDs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;VerifyNow handles carrier approvals centrally, so you don’t have to.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;No brand registration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No campaign vetting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No waiting period&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You still follow consent and compliance rules, but the infrastructure is already approved.&lt;/p&gt;

&lt;h2&gt;
  
  
  How VerifyNow Sends 2FA OTPs Without 10DLC
&lt;/h2&gt;

&lt;p&gt;VerifyNow uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Carrier-approved shared sender IDs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Direct operator routes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automatic channel fallback&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows you to send 2FA OTPs instantly while remaining compliant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-Step: Send 2FA OTPs in the USA Without 10DLC
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Create a Free VerifyNow Account
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://console.messagecentral.com/" rel="noopener noreferrer"&gt;Sign up on Message Central’s VerifyNow&lt;/a&gt; in minutes. No credit card required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Get Your API Key
&lt;/h3&gt;

&lt;p&gt;Your API key is available immediately in the dashboard.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Send an OTP (SMS)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnihtd6cl51xugw2t4yak.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnihtd6cl51xugw2t4yak.png" alt=" " width="627" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Verify the OTP
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4l9u0p9ck6t6arrel62u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4l9u0p9ck6t6arrel62u.png" alt=" " width="629" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Add Fallback Automatically
&lt;/h3&gt;

&lt;p&gt;If SMS fails, VerifyNow automatically sends the OTP via WhatsApp.&lt;/p&gt;

&lt;p&gt;No retries. No user confusion.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Scale Globally
&lt;/h3&gt;

&lt;p&gt;The same API works across 190+ countries. No new integrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Works Without 10DLC
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Shared sender IDs are already approved by carriers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Routing is optimized for OTP traffic&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compliance requirements are handled by the provider&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fallback prevents delivery failures&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You focus on product logic. The platform handles delivery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Skipping 10DLC With VerifyNow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Instant Go-Live
&lt;/h3&gt;

&lt;p&gt;No waiting weeks for approvals.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. High Delivery Rates
&lt;/h3&gt;

&lt;p&gt;Direct routes + fallback ensure OTPs arrive.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Sub-3 Second Latency
&lt;/h3&gt;

&lt;p&gt;Optimized routing for authentication traffic.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Automatic WhatsApp Fallback
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.messagecentral.com/product/verify-now/fallback-otp" rel="noopener noreferrer"&gt;If SMS fails, users still get the OTP&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Pay-As-You-Go Pricing
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.messagecentral.com/product/verify-now/pricing/usa" rel="noopener noreferrer"&gt;Transparent, pay-as-you-go pricing for 2FA OTPs&lt;/a&gt;. No contracts. No minimums.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Should You Still Consider 10DLC?
&lt;/h2&gt;

&lt;p&gt;If you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Send very high volumes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Want your own dedicated sender&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Need long-term brand ownership&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then 10DLC makes sense.&lt;/p&gt;

&lt;p&gt;But for fast launches, pilots, and global products, shared sender IDs are often the better option.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;You don’t need to delay security just because 10DLC takes time.&lt;/p&gt;

&lt;p&gt;With VerifyNow, developers can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Send 2FA OTPs in the USA instantly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid 10DLC delays&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add fallback for near-100% delivery&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use one API worldwide&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If speed, reliability, and simplicity matter, this is the fastest way to ship OTP authentication in the U.S.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>How to Integrate OTP SMS APIs in 15 Minutes | VerifyNow by Message Central</title>
      <dc:creator>AlinaJ</dc:creator>
      <pubDate>Fri, 26 Sep 2025 04:41:22 +0000</pubDate>
      <link>https://dev.to/alinaj/how-to-integrate-otp-sms-apis-in-15-minutes-verifynow-by-message-central-18nk</link>
      <guid>https://dev.to/alinaj/how-to-integrate-otp-sms-apis-in-15-minutes-verifynow-by-message-central-18nk</guid>
      <description>&lt;h2&gt;
  
  
  How to integrate OTP SMS API in your app in 15 Minutes
&lt;/h2&gt;

&lt;p&gt;======================================================&lt;/p&gt;

&lt;p&gt;If you have ever tried adding &lt;a href="https://www.messagecentral.com/en-in/send-otp-via-sms-whatsapp" rel="noopener noreferrer"&gt;SMS verification or OTP flows&lt;/a&gt; to your app, you probably know the pain. Some APIs take forever to set up, the docs feel like they were written in another language, and before you even send your first test SMS, you are buried under paperwork, sender ID approvals, or confusing subscription plans.&lt;/p&gt;

&lt;p&gt;The truth is, SMS is still one of the most reliable ways to reach users. Whether it is sending OTPs during sign-up, confirming an order, or securing a payment, SMS is the channel people actually open. The challenge has always been getting your integration live fast without hitting roadblocks.&lt;/p&gt;

&lt;p&gt;The good news? You do not need weeks or months to integrate an OTP SMS API anymore. With modern APIs, you can literally be up and running in minutes. In this guide, we will walk you through how to integrate OTP SMS APIs in just &lt;strong&gt;15 minutes&lt;/strong&gt;, while keeping things simple, clean, and reliable.&lt;/p&gt;

&lt;p&gt;And here is the best part: with &lt;a href="https://www.messagecentral.com/product/verify-now/overview" rel="noopener noreferrer"&gt;&lt;strong&gt;Message Central’s VerifyNow API&lt;/strong&gt;&lt;/a&gt;, you do not need a sender ID to start, you get free test credits in your wallet, and you only pay as you go. That means no long contracts, no hidden costs, and no wasted time — just plug in, test, and go live.&lt;/p&gt;

&lt;p&gt;And since VerifyNow works in &lt;strong&gt;190+ countries&lt;/strong&gt;, you don’t need to rebuild flows for each market. One API call works everywhere.&lt;/p&gt;

&lt;p&gt;Here is a sneak peek of how simple it looks:&lt;/p&gt;

&lt;p&gt;curl -X POST "&lt;a href="https://api.messagecentral.com/verify/send" rel="noopener noreferrer"&gt;https://api.messagecentral.com/verify/send&lt;/a&gt;" \&lt;/p&gt;

&lt;p&gt;  -H "Content-Type: application/json" \&lt;/p&gt;

&lt;p&gt;  -H "x-api-key: YOUR_API_KEY" \&lt;/p&gt;

&lt;p&gt;  -d '{&lt;/p&gt;

&lt;p&gt;    "phone_number": "+628123456789",&lt;/p&gt;

&lt;p&gt;    "channel": "sms"&lt;/p&gt;

&lt;p&gt;  }'&lt;/p&gt;

&lt;p&gt;That’s it. One call and your first OTP is on its way.&lt;/p&gt;

&lt;p&gt;So let’s roll up our sleeves and see how you can go from zero to sending your first OTP in 15 minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Get Your API Key
&lt;/h2&gt;

&lt;p&gt;First things first, you need an API key. Sign up at &lt;a href="https://www.messagecentral.com/" rel="noopener noreferrer"&gt;Message Central&lt;/a&gt; and log into the dashboard. You will see your API key under your VerifyNow account.&lt;/p&gt;

&lt;p&gt;The cool part? You get free test credits as soon as you sign up. That means you can send real OTPs without paying a single rupee until you’re ready to scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Make Your First API Call
&lt;/h2&gt;

&lt;p&gt;Now let’s send an OTP. You only need a single API call to get started. Here’s an example using curl:&lt;/p&gt;

&lt;p&gt;curl -X POST "&lt;a href="https://api.messagecentral.com/verify/send" rel="noopener noreferrer"&gt;https://api.messagecentral.com/verify/send&lt;/a&gt;" \&lt;/p&gt;

&lt;p&gt;  -H "Content-Type: application/json" \&lt;/p&gt;

&lt;p&gt;  -H "x-api-key: YOUR_API_KEY" \&lt;/p&gt;

&lt;p&gt;  -d '{&lt;/p&gt;

&lt;p&gt;    "phone_number": "+628123456789",&lt;/p&gt;

&lt;p&gt;    "channel": "sms"&lt;/p&gt;

&lt;p&gt;  }'&lt;/p&gt;

&lt;p&gt;If everything is set up correctly, you’ll get a JSON response confirming the OTP was sent:&lt;/p&gt;

&lt;p&gt;{&lt;/p&gt;

&lt;p&gt;  "request_id": "f92c3d20-xxxx-xxxx-xxxx-09ba2d7d1a3f",&lt;/p&gt;

&lt;p&gt;  "status": "OTP_SENT"&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;Boom. You’ve just sent your first OTP in less than two minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Verify the OTP
&lt;/h2&gt;

&lt;p&gt;Once your user receives the OTP, they’ll type it into your app. To verify it, call the verify endpoint like this:&lt;/p&gt;

&lt;p&gt;curl -X POST "&lt;a href="https://api.messagecentral.com/verify/check" rel="noopener noreferrer"&gt;https://api.messagecentral.com/verify/check&lt;/a&gt;" \&lt;/p&gt;

&lt;p&gt;  -H "Content-Type: application/json" \&lt;/p&gt;

&lt;p&gt;  -H "x-api-key: YOUR_API_KEY" \&lt;/p&gt;

&lt;p&gt;  -d '{&lt;/p&gt;

&lt;p&gt;    "request_id": "f92c3d20-xxxx-xxxx-xxxx-09ba2d7d1a3f",&lt;/p&gt;

&lt;p&gt;    "otp": "123456"&lt;/p&gt;

&lt;p&gt;  }'&lt;/p&gt;

&lt;p&gt;If the OTP is correct, you’ll get:&lt;/p&gt;

&lt;p&gt;{&lt;/p&gt;

&lt;p&gt;  "status": "VERIFIED"&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;If it’s wrong, you’ll get:&lt;/p&gt;

&lt;p&gt;{&lt;/p&gt;

&lt;p&gt;  "status": "FAILED"&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;That’s all you need for a simple OTP flow: one call to send, one call to verify.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Integrate Into Your App
&lt;/h2&gt;

&lt;p&gt;Here’s what this looks like in Node.js:&lt;/p&gt;

&lt;p&gt;const axios = require("axios");&lt;/p&gt;

&lt;p&gt;const apiKey = "YOUR_API_KEY";&lt;/p&gt;

&lt;p&gt;// Send OTP&lt;/p&gt;

&lt;p&gt;async function sendOTP(phone) {&lt;/p&gt;

&lt;p&gt;  const res = await axios.post(&lt;/p&gt;

&lt;p&gt;    "&lt;a href="https://api.messagecentral.com/verify/send" rel="noopener noreferrer"&gt;https://api.messagecentral.com/verify/send&lt;/a&gt;",&lt;/p&gt;

&lt;p&gt;    { phone_number: phone, channel: "sms" },&lt;/p&gt;

&lt;p&gt;    { headers: { "x-api-key": apiKey } }&lt;/p&gt;

&lt;p&gt;  );&lt;/p&gt;

&lt;p&gt;  console.log(res.data);&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;// Verify OTP&lt;/p&gt;

&lt;p&gt;async function verifyOTP(requestId, otp) {&lt;/p&gt;

&lt;p&gt;  const res = await axios.post(&lt;/p&gt;

&lt;p&gt;    "&lt;a href="https://api.messagecentral.com/verify/check" rel="noopener noreferrer"&gt;https://api.messagecentral.com/verify/check&lt;/a&gt;",&lt;/p&gt;

&lt;p&gt;    { request_id: requestId, otp },&lt;/p&gt;

&lt;p&gt;    { headers: { "x-api-key": apiKey } }&lt;/p&gt;

&lt;p&gt;  );&lt;/p&gt;

&lt;p&gt;  console.log(res.data);&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;You can do the same in Python, PHP, Java, or any language that supports HTTP requests. The API is language-agnostic, so you can plug it into any backend stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why VerifyNow is Different from Other OTP SMS APIs
&lt;/h2&gt;

&lt;p&gt;If you’ve worked with other &lt;a href="https://www.messagecentral.com/product/verify-now/overview" rel="noopener noreferrer"&gt;OTP SMS APIs&lt;/a&gt; before, you’ve probably run into the usual headaches: complicated onboarding, waiting weeks for sender ID approvals, or finding out that “delivery rates” are not what was promised.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.messagecentral.com/product/verify-now/overview/usa" rel="noopener noreferrer"&gt;VerifyNow&lt;/a&gt; was built to cut through all that clutter. Here’s why it feels different when you use it:&lt;/p&gt;

&lt;h3&gt;
  
  
  No sender ID approvals required to start
&lt;/h3&gt;

&lt;p&gt;In most countries, you can’t even send a test SMS without registering a sender ID. That process can take weeks or months. With VerifyNow, you can skip the wait and start sending OTPs instantly using shared sender IDs that are already pre-approved.&lt;/p&gt;

&lt;h3&gt;
  
  
  Global coverage in 190+ countries
&lt;/h3&gt;

&lt;p&gt;Whether your users are in Jakarta, New Delhi, São Paulo, or New York, you can verify them with the same API call. No juggling multiple providers, no operator-specific headaches.&lt;/p&gt;

&lt;h3&gt;
  
  
  Highest delivery rates
&lt;/h3&gt;

&lt;p&gt;Many SMS APIs cut corners by using grey routes. That’s why OTPs sometimes take minutes to arrive — or never do. VerifyNow connects directly with mobile operators, which means your OTPs actually get delivered, fast.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pay-as-you-go pricing
&lt;/h3&gt;

&lt;p&gt;Forget monthly subscription fees or minimum commitments. With VerifyNow, you only pay for what you send. If you’re just testing or scaling gradually, you don’t burn money upfront.&lt;/p&gt;

&lt;h3&gt;
  
  
  Built for developers
&lt;/h3&gt;

&lt;p&gt;The docs are clean, the APIs are RESTful, and integration is as easy as a single POST request. No bloated SDKs, no vendor lock-in. Just simple, predictable APIs that get the job done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where You Can Use VerifyNow
&lt;/h2&gt;

&lt;p&gt;Once you’ve got OTP SMS verification integrated, the possibilities go way beyond just login screens. Here are some common use cases where VerifyNow makes a big difference:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;E-commerce&lt;/strong&gt;: Send OTPs during checkout to cut fraud, confirm orders instantly, or remind customers about abandoned carts. Reliable delivery can directly boost conversion rates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fintech&lt;/strong&gt;: Secure every transaction with an OTP, verify new account sign-ups, and reduce fraud risk. With banking and payments, seconds matter, and VerifyNow ensures OTPs actually arrive on time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SaaS platforms&lt;/strong&gt;: Add frictionless sign-up verification, password resets, or 2FA to protect accounts without making users jump through hoops.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Healthcare&lt;/strong&gt;: Send appointment reminders, patient alerts, or secure report access codes where reliability and compliance are critical.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best part? You can start with OTPs today, then expand into transactional and engagement use cases whenever you’re ready — without changing your integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Integrating OTP SMS API into your product does not need to be slow or complicated. With just a few API calls, you can send and verify OTPs in minutes and start securing user journeys right away.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.messagecentral.com/send-otp-via-sms-whatsapp" rel="noopener noreferrer"&gt;&lt;strong&gt;Message Central’s VerifyNow API&lt;/strong&gt;&lt;/a&gt; makes it even easier: no sender ID delays, global coverage across 190+ countries, and a pay-as-you-go model that means you only pay for what you send. It is fast, reliable, and built for developers who value simplicity.&lt;/p&gt;

&lt;p&gt;If you are ready to test it out, grab your free credits, copy the sample code, and go live in 15 minutes. The API docs are here: &lt;a href="https://www.messagecentral.com/product/verify-now/api" rel="noopener noreferrer"&gt;VerifyNow API Documentation&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Stop Smishing Before It Reaches Your Customers</title>
      <dc:creator>AlinaJ</dc:creator>
      <pubDate>Mon, 25 Aug 2025 15:53:34 +0000</pubDate>
      <link>https://dev.to/alinaj/how-to-stop-smishing-before-it-reaches-your-customers-3ac8</link>
      <guid>https://dev.to/alinaj/how-to-stop-smishing-before-it-reaches-your-customers-3ac8</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwt04zh2x1au45lpxss18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwt04zh2x1au45lpxss18.png" alt=" " width="597" height="392"&gt;&lt;/a&gt;&lt;br&gt;
If your business relies on SMS to engage customers, you already know how powerful it can be for everything from logins to promotions. But with that power comes risk. Smishing attacks — fake SMS messages that trick users into sharing sensitive information — are on the rise, and they don’t just damage customer trust, they also make it harder for legitimate traffic to get delivered. That’s why businesses are turning to trusted partners like &lt;a href="https://www.messagecentral.com/" rel="noopener noreferrer"&gt;Message Central&lt;/a&gt; for &lt;a href="https://www.messagecentral.com/product/message-now/overview" rel="noopener noreferrer"&gt;&lt;strong&gt;reliable messaging APIs&lt;/strong&gt;&lt;/a&gt;, which combine secure delivery, compliance-first routing, and fraud detection to keep campaigns safe and effective.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Why Anti-Smishing Matters More Than Ever&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;If you use SMS to reach customers, you already know its power. Your &lt;a href="https://www.messagecentral.com/send-otp-via-sms-whatsapp" rel="noopener noreferrer"&gt;SMS OTPs&lt;/a&gt; arrive in seconds. A &lt;a href="https://www.messagecentral.com/services/transactional-sms" rel="noopener noreferrer"&gt;delivery update&lt;/a&gt; finds people wherever they are. A &lt;a href="https://www.messagecentral.com/services/promotional-sms" rel="noopener noreferrer"&gt;flash sale alert&lt;/a&gt; can turn into sales within minutes.&lt;/p&gt;

&lt;p&gt;But alongside all this convenience sits a growing threat: &lt;strong&gt;smishing&lt;/strong&gt;. It’s phishing’s SMS-based cousin — fake messages that look like they’re from banks, delivery companies, or even your brand. The goal? To trick people into giving away sensitive information.&lt;/p&gt;

&lt;p&gt;Smishing doesn’t just hurt consumers. It puts your business at risk too. When carriers detect suspicious activity, even legitimate messages can be blocked or delayed, dragging down your delivery rates and damaging customer trust.&lt;/p&gt;

&lt;p&gt;And here’s the tough part: even if your own campaigns are clean, scams elsewhere in the ecosystem can still impact your deliverability. That’s why carriers and regulators are tightening filters and demanding more proof of compliance.&lt;/p&gt;

&lt;p&gt;In short, it’s no longer enough to simply “send” a message. Your SMS traffic has to be secure, trusted, and compliant — or it may never land.&lt;/p&gt;

&lt;p&gt;This guide will break down what smishing is, how it impacts your delivery rates, and the best practices businesses can follow to keep messages safe, compliant, and reliably delivered.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;What is Smishing? A Business- and Developer-Friendly Breakdown&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;At its core, &lt;strong&gt;smishing&lt;/strong&gt; = &lt;strong&gt;SMS + phishing&lt;/strong&gt;. It’s when scammers send text messages that look legitimate but are designed to trick someone into clicking a malicious link, downloading malware, or handing over sensitive details like passwords or card numbers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common examples include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A fake delivery link: &lt;em&gt;“Your package is waiting. Click here to reschedule.”&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A false banking alert: &lt;em&gt;“Suspicious transaction detected. Log in now to verify.”&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A bogus OTP: &lt;em&gt;“Your verification code is 482913.”&lt;/em&gt; (from a service you never requested).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why has smishing exploded in recent years? Because &lt;strong&gt;SMS feels personal and urgent&lt;/strong&gt;. People check texts faster than email, which makes them more vulnerable — and makes SMS a high-reward channel for fraudsters.&lt;/p&gt;

&lt;p&gt;For real businesses, this creates two major problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Erosion of trust&lt;/strong&gt; – Once customers are burned by a fake SMS, they become hesitant to engage with legitimate ones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Delivery challenges&lt;/strong&gt; – Carriers now use stricter filters to catch scams, but those filters can also flag real campaigns, especially if your templates resemble common fraud patterns.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So if you’re a product manager, developer, or growth marketer relying on SMS, smishing isn’t just a security concern — it’s a &lt;strong&gt;trust, delivery, and business continuity challenge&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;How Smishing Hurts SMS Delivery and Your Business&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Smishing isn’t just a nuisance for customers. It has a direct impact on how well your &lt;strong&gt;legitimate&lt;/strong&gt; &lt;a href="https://www.messagecentral.com/services/bulk-sms" rel="noopener noreferrer"&gt;&lt;strong&gt;SMS campaigns&lt;/strong&gt;&lt;/a&gt; perform.&lt;/p&gt;

&lt;p&gt;Here’s why: carriers are under constant pressure to block fraudulent traffic before it reaches end users. To do this, they rely on filters that scan for risky patterns — things like suspicious links, keywords, or message formats often abused by scammers.&lt;/p&gt;

&lt;p&gt;The catch? These filters aren’t perfect. If your genuine OTPs, shipping alerts, or promo offers resemble scam-like patterns even slightly, they can get flagged and blocked. The result: messages never reach your customer.&lt;/p&gt;

&lt;p&gt;And when delivery fails, the damage goes far beyond a lost SMS fee. Think:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Failed logins because OTPs never arrive&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Missed sales from promotions that don’t land&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frustrated users losing trust in your brand&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Over time, this doesn’t just hurt &lt;strong&gt;delivery rates&lt;/strong&gt; — it chips away at customer loyalty and reduces ROI on every messaging dollar you spend.&lt;/p&gt;

&lt;p&gt;In short: &lt;strong&gt;smishing makes it harder for good traffic to get through, putting both your delivery and your bottom line at risk.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Best Practices to Protect Your SMS Campaigns from Smishing&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;The good news: you don’t have to be a security expert to safeguard your campaigns. With a few smart steps, you can protect your customers, improve trust, and keep your SMS messages delivering on time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Partner with a reliable SMS API provider&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not all providers are equal. &lt;a href="https://www.messagecentral.com/en-in/twilio-vs-message-central" rel="noopener noreferrer"&gt;The right partner&lt;/a&gt; will have &lt;strong&gt;direct carrier routes&lt;/strong&gt;, real-time fraud detection, and built-in compliance tools that reduce the risk of your messages being filtered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use consistent, recognizable sender IDs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If customers instantly know it’s you, they’re less likely to mistake your message for a scam. Stick to clear sender IDs and avoid random number changes that look suspicious.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep your content clean and trustworthy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Scammy-looking content gets flagged fast. Steer clear of shady links, spammy wording, or aggressive CTAs. If you use links, make them branded or use a reputable short link service to build confidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stay compliant with local regulations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rules like &lt;a href="https://www.messagecentral.com/a2p-10dlc-setup" rel="noopener noreferrer"&gt;&lt;strong&gt;10DLC in the US&lt;/strong&gt;&lt;/a&gt; or &lt;strong&gt;DLT in India&lt;/strong&gt; aren’t just red tape — they signal to carriers that your traffic is legitimate. Compliance helps your messages bypass unnecessary filters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watch delivery reports like a hawk&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A sudden dip in delivery is often an early warning sign. Regularly monitor reports and be ready to adjust your templates, routing, or provider if you see red flags.&lt;/p&gt;

&lt;p&gt;When you build these best practices into your workflow, you protect your users from smishing, keep delivery rates high, and ensure your SMS campaigns actually drive results.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Practical Steps to Keep Your Campaigns Smishing-Free&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;There’s no single switch that eliminates smishing. Protecting your SMS campaigns comes down to consistent practices and smart safeguards that reduce risks while keeping trust high. Here are some actionable steps you can put in place right away:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verify every sender ID&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Always use registered and approved sender IDs in the regions where you operate. This prevents spoofing attempts and reassures customers that messages truly come from your brand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maintain a clean customer database&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Regularly update your contact lists and remove inactive or incorrect numbers. Clean databases reduce exposure to fraud and improve your overall delivery performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write clear, trustworthy content&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Smishing attempts often look complicated or suspicious. Keep your messages simple, professional, and direct. Avoid unnecessary links or vague requests for personal information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Work with a reliable API partner&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Choose an &lt;a href="https://www.messagecentral.com/product/message-now/overview" rel="noopener noreferrer"&gt;API provider&lt;/a&gt; with strong fraud detection, intelligent routing, and delivery monitoring built in. The right partner will spot anomalies early and keep your campaigns safe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Educate your customers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Remind users not to click on links from unknown senders and to verify sensitive requests through your official channels. A well-informed audience is a stronger line of defense.&lt;/p&gt;

&lt;p&gt;By combining smart processes, trusted technology, and ongoing customer education, you can safeguard your SMS traffic, improve delivery rates, and protect your brand reputation.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Smishing isn’t just a security risk — it’s a delivery and trust problem that can directly impact your bottom line. As carriers tighten their defences, the margin for error gets smaller. Businesses that want to keep their SMS campaigns effective need more than just good content. They need clean practices, verified sender IDs, customer education, and the right technology partner.&lt;/p&gt;

&lt;p&gt;That’s where &lt;a href="https://www.messagecentral.com/" rel="noopener noreferrer"&gt;Message Central&lt;/a&gt; comes in. Our messaging APIs are built to deliver with speed, security, and compliance at scale — so your OTPs, alerts, and promotional campaigns actually reach the people they’re meant for. With built-in fraud detection and carrier-grade routing, we help businesses cut through the noise, protect their customers, and keep trust intact.&lt;/p&gt;

&lt;p&gt;At the end of the day, SMS works best when it’s both fast and safe. With the right safeguards and the right partner, you can make sure every message counts.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SMS Verification APIs with Node.js</title>
      <dc:creator>AlinaJ</dc:creator>
      <pubDate>Mon, 18 Mar 2024 05:56:43 +0000</pubDate>
      <link>https://dev.to/alinaj/sms-verification-apis-with-nodejs-34pi</link>
      <guid>https://dev.to/alinaj/sms-verification-apis-with-nodejs-34pi</guid>
      <description>&lt;h2&gt;
  
  
  What Is SMS Verification?
&lt;/h2&gt;

&lt;p&gt;SMS verification is a method of authentication system that enables users to receive a shortcode on their mobile phones, which is used to verify their identity when logging into an application. &lt;br&gt;
SMS is among the most widespread types of multi-factor authentication (MFA), requiring no apps or digital keys, making it independent of a specific ecosystem and helping to streamline various user workflows in applications.&lt;/p&gt;

&lt;p&gt;It provides enhanced security because a hacker would need to have the user's username, password, and physical access to their phone, which likely has its own authentication, to log into an application. Although, now a days, &lt;a href="https://www.messagecentral.com/product/verify-now/overview-india" rel="noopener noreferrer"&gt;OTP SMS&lt;/a&gt; is still being hacked and hence it is very necessary to keep in mind the &lt;a href="https://www.messagecentral.com/blog/a-comprehensive-guide-to-otp-sms-fraud-prevention" rel="noopener noreferrer"&gt;OTP SMS fraud prevention methods&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8nrcnjszvvhymowx1n3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8nrcnjszvvhymowx1n3.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of SMS Verification
&lt;/h2&gt;

&lt;p&gt;Despite alternatives like FIDO2 and mobile authenticator applications gaining popularity, SMS verification remains widely used due to its benefits:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a.&lt;/strong&gt; Secure: Increases security significantly as it makes it hard for malicious actors to access user accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;b.&lt;/strong&gt; Ease of use: Almost everyone has access to a mobile phone today, making SMS verification a popular choice with no additional costs on software or hardware devices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;c.&lt;/strong&gt; Convenience: Reduces the burden of remembering passwords by sending a unique code to the user's mobile for verification.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup for SMS Verification with Message Central
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.messagecentral.com/" rel="noopener noreferrer"&gt;Message Central&lt;/a&gt; is a CPaaS solution with a suite of products including OTP SMS APIs, &lt;a href="https://www.messagecentral.com/product/message-now/overview" rel="noopener noreferrer"&gt;SMS APIs&lt;/a&gt; and WhatsApp marketing platform. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a.&lt;/strong&gt; Create a MessageCentral Account: &lt;a href="https://console.messagecentral.com/signUp" rel="noopener noreferrer"&gt;Sign up for a Message Central&lt;/a&gt; account to get started. You will receive a customer ID, which you will use in your application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;b.&lt;/strong&gt; Install Required Packages: Ensure you have Node.js installed on your machine. Create a new directory for your project and initialize a new Node.js project. Install the required packages using npm:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;npm install express request&lt;/p&gt;
&lt;h3&gt;
  
  
  Integration Steps
&lt;/h3&gt;

&lt;p&gt;This process involves the following three significant steps:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;a.&lt;/strong&gt; Message Central Details&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;b.&lt;/strong&gt; Adding Message Central Details in Code&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;c.&lt;/strong&gt; Send a Test Otp for verification&lt;/p&gt;

&lt;h3&gt;
  
  
  Message Central Details
&lt;/h3&gt;

&lt;p&gt;After creating an account on Message Central, you need the following details:&lt;br&gt;
Customer Id - You can get the customer ID from Message Central Home Console&lt;br&gt;
Login Credentials: You’d require an email and would need to create a password.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding MessageCentral Details in Code
&lt;/h3&gt;

&lt;p&gt;To add MessageCentral details on the code find out the variable definition with name “customerId”, “email” and “password”: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;const customerId = '[Your Customer ID]';&lt;br&gt;
const email = '[Your Email]';&lt;br&gt;
const password = '[Your Password]';&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To add your credentials in javascript code, you need to create a javascript file i.e mc_verication_service.js: And add provided code into this file.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;const request = require('request');&lt;br&gt;
const express = require('express');&lt;br&gt;
const app = express();&lt;br&gt;
const port = 3000;&lt;br&gt;
const baseURL = '&lt;a href="https://cpaas.messagecentral.com" rel="noopener noreferrer"&gt;https://cpaas.messagecentral.com&lt;/a&gt;';&lt;br&gt;
const customerId = '[Your Customer ID]';&lt;br&gt;
const email = '[Your Email]';&lt;br&gt;
const password = '[Your Password]';&lt;br&gt;
let verificationId;&lt;br&gt;
const generateAuthToken = async () =&amp;gt; {&lt;br&gt;
    const base64String = Buffer.from(password).toString('base64');&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const url = `${baseURL}/auth/v1/authentication/token?country=IN&amp;amp;customerId=${customerId}&amp;amp;email=${email}&amp;amp;key=${base64String}&amp;amp;scope=NEW`;
const options = {
    url: url,
    headers: {
        'accept': '*/*'
    }
};
return new Promise((resolve, reject) =&amp;gt; {
    request(options, (error, response, body) =&amp;gt; {
        if (error) {
            console.error('Error generating auth token:', error);
            reject(error);
            return;
        }
        console.log('Auth Token:', body);
        authToken = JSON.parse(body).token;
        resolve(authToken);
    });
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;};&lt;br&gt;
const sendOtp = async (countryCode, mobileNumber) =&amp;gt; {&lt;br&gt;
    const url = &lt;code&gt;${baseURL}/verification/v2/verification/send?countryCode=${countryCode}&amp;amp;customerId=${customerId}&amp;amp;flowType=SMS&amp;amp;mobileNumber=${mobileNumber}&lt;/code&gt;;&lt;br&gt;
    const options = {&lt;br&gt;
        url: url,&lt;br&gt;
        method: 'POST',&lt;br&gt;
        json: true,&lt;br&gt;
        headers: {&lt;br&gt;
            'accept': '&lt;em&gt;/&lt;/em&gt;',&lt;br&gt;
            'authToken': authToken&lt;br&gt;
        }&lt;br&gt;
    };&lt;br&gt;
    return new Promise((resolve, reject) =&amp;gt; {&lt;br&gt;
        request(options, (error, response, body) =&amp;gt; {&lt;br&gt;
            if (error) {&lt;br&gt;
                console.error('Error generating auth token:', error);&lt;br&gt;
                reject(error);&lt;br&gt;
                return;&lt;br&gt;
            }&lt;br&gt;
            console.log('Request :', options)&lt;br&gt;
            console.log('Body :', body);&lt;br&gt;
            verificationId = body.data.verificationId;&lt;br&gt;
            resolve(body);&lt;br&gt;
        });&lt;br&gt;
    });&lt;br&gt;
};&lt;br&gt;
const velidateOtp = async (otpCode, countryCode, mobileNumber) =&amp;gt; {&lt;br&gt;
    const url = &lt;code&gt;${baseURL}/verification/v2/verification/validateOtp?countryCode=${countryCode}&amp;amp;mobileNumber=${mobileNumber}&amp;amp;verificationId=${verificationId}&amp;amp;customerId=${customerId}&amp;amp;code=${otpCode}&lt;/code&gt;;&lt;br&gt;
    const options = {&lt;br&gt;
        url: url,&lt;br&gt;
        method: 'GET',&lt;br&gt;
        json: true,&lt;br&gt;
        headers: {&lt;br&gt;
            'accept': '&lt;em&gt;/&lt;/em&gt;',&lt;br&gt;
            'authToken': authToken&lt;br&gt;
        }&lt;br&gt;
    };&lt;br&gt;
    return new Promise((resolve, reject) =&amp;gt; {&lt;br&gt;
        request(options, (error, response, body) =&amp;gt; {&lt;br&gt;
            if (error) {&lt;br&gt;
                console.error('Error generating auth token:', error);&lt;br&gt;
                reject(error)&lt;br&gt;
                return;&lt;br&gt;
            }&lt;br&gt;
            console.log('Request :', options)&lt;br&gt;
            console.log('Body :', body);&lt;br&gt;
            resolve(body);&lt;br&gt;
        });&lt;br&gt;
    });&lt;br&gt;
};&lt;br&gt;
app.post('/sendotp/:countryCode/:mobileNumber', async (req, res) =&amp;gt; {&lt;br&gt;
    const { countryCode, mobileNumber } = req.params;&lt;br&gt;
    const authToken = await generateAuthToken();&lt;br&gt;
    try {&lt;br&gt;
        body = await sendOtp(countryCode, mobileNumber)&lt;br&gt;
        if (body.data.responseCode == 200 &amp;amp;&amp;amp; body.data.errorMessage == null) {&lt;br&gt;
            res.status(200).send('Otp sent! Successfully');&lt;br&gt;
        } else {&lt;br&gt;
            res.status(400).send('Bad Request                     ${body.data.errorMessage}');&lt;br&gt;
        }&lt;br&gt;
    } catch (error) {&lt;br&gt;
        console.error('Error sending OTP:', error);&lt;br&gt;
        const s = error&lt;br&gt;
        res.status(500).send(s);&lt;br&gt;
    }&lt;br&gt;
});&lt;br&gt;
app.get('/validateOtp/:countryCode/:mobileNumber/:otpCode', async (req, res) =&amp;gt; {&lt;br&gt;
    const { countryCode, mobileNumber, otpCode } = req.params;&lt;br&gt;
    const authToken = await generateAuthToken();&lt;br&gt;
    try {&lt;br&gt;
        body = await velidateOtp(otpCode, countryCode, mobileNumber);&lt;br&gt;
        if (body.data.verificationStatus == 'VERIFICATION_COMPLETED' &amp;amp;&amp;amp; body.data.errorMessage == null) {&lt;br&gt;
            res.status(200).send('Otp verification Done! ');&lt;br&gt;
        } else {&lt;br&gt;
            res.status(400).send('Bad Request :                   ${body.data.errorMessage}');&lt;br&gt;
        }&lt;br&gt;
    } catch (error) {&lt;br&gt;
        console.error('Error verifying OTP:', error);&lt;br&gt;
        const s = error&lt;br&gt;
        res.status(500).send(s);&lt;br&gt;
    }&lt;br&gt;
});&lt;br&gt;
app.listen(port, () =&amp;gt; {&lt;br&gt;
    console.log(&lt;code&gt;Server running at http://localhost:${port}&lt;/code&gt;);&lt;br&gt;
});&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Send a Test Otp Sms for Verification
&lt;/h3&gt;

&lt;p&gt;If you need to test the service without code, you can go to the &lt;a href="https://www.messagecentral.com/product/verify-now/free-sms-verification" rel="noopener noreferrer"&gt;free SMS verification&lt;/a&gt; page on the Message Central’s website. &lt;/p&gt;

&lt;p&gt;To ensure that the integration is successful, send a test OTP SMS as follows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1 Run the javascript file using command&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;node mc_verification_service.js&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;2.Open the Postman and set Request Method as POST and &lt;br&gt;
URL&lt;/strong&gt; &lt;br&gt;
as &lt;a href="http://localhost:3000/sendotp/" rel="noopener noreferrer"&gt;http://localhost:3000/sendotp/&lt;/a&gt;/&lt;br&gt;&lt;br&gt;
Here’s the port 3000, it is default and defined in code, can be changed.&lt;br&gt;
Example, For Indian Phone Number URL : &lt;a href="http://localhost:3000/sendotp/91/123****123" rel="noopener noreferrer"&gt;http://localhost:3000/sendotp/91/123****123&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1p3vj6mcantkcza5wl4w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1p3vj6mcantkcza5wl4w.jpg" alt="Image description"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Now You have an otp on your sms inbox. Try your own validation Otp API to validate OTP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open the Postman and set Request Method as GET and&lt;br&gt;
URL as  &lt;a href="http://localhost:3000/validateOtp/" rel="noopener noreferrer"&gt;http://localhost:3000/validateOtp/&lt;/a&gt;//&lt;br&gt;
Here’s the port 3000, it is default and defined in code, can be changed.&lt;br&gt;
Example, For Indian Phone NumberURL :   &lt;a href="http://localhost:3000/validateOtp/91/123****123/****" rel="noopener noreferrer"&gt;http://localhost:3000/validateOtp/91/123****123/****&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftq7tk6csbv57kp0h8ijp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftq7tk6csbv57kp0h8ijp.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>API Guide to Setup OTP SMS Verification</title>
      <dc:creator>AlinaJ</dc:creator>
      <pubDate>Mon, 15 Jan 2024 15:52:37 +0000</pubDate>
      <link>https://dev.to/alinaj/api-guide-to-setup-otp-sms-verification-4ck2</link>
      <guid>https://dev.to/alinaj/api-guide-to-setup-otp-sms-verification-4ck2</guid>
      <description>&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;p&gt;If you want to send OTP SMS or enable &lt;a href="https://www.messagecentral.com/product/verify-now/overview"&gt;SMS verification&lt;/a&gt;, you need to Register and &lt;a href="https://console.messagecentral.com/signUp"&gt;create an account with Verify Now&lt;/a&gt; console.messagecentral.com/signUp Have a valid balance in your account to send OTPs.&lt;br&gt;
You can use the test credits during integration to verify our services or test our &lt;a href="https://www.messagecentral.com/product/verify-now/free-sms-verification"&gt;SMS verification services for free&lt;/a&gt;. &lt;br&gt;
REST API Base URL’s:&lt;br&gt;
All Platform API endpoints below should be prefixed with the following URL: &lt;br&gt;
&lt;a href="https://cpaas.messagecentral.com"&gt;https://cpaas.messagecentral.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;** These are the following steps to successfully send an otp to a mobile number:**&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate a token&lt;/li&gt;
&lt;li&gt;Make a post request to our ‘send otp’ API and pass the token in header&lt;/li&gt;
&lt;li&gt;Make a get request to our ‘validate otp’ API and pass the token in header&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to generate a token?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Make a get request to auth/v1/authentication/token&lt;/li&gt;
&lt;li&gt;Add the ‘customerId’ field. This is a unique id for every customer.&lt;/li&gt;
&lt;li&gt;Add ‘country’ field. This is the country ISO code of the registered user.&lt;/li&gt;
&lt;li&gt;Add ‘email’ field. This is the email address of the registered user. (It’s optional)&lt;/li&gt;
&lt;li&gt;Add ‘key’ field. This is the Base 64 encrypted password of the registered user.&lt;/li&gt;
&lt;li&gt;Add ‘scope’ field. This is a request to generate a ‘NEW’ token for the registered user.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;** Sample response:**&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uMahMTUv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e2hi9ub8ngea7k2f60qd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uMahMTUv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e2hi9ub8ngea7k2f60qd.png" alt="Image description" width="651" height="139"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to send OTP to a mobile number?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Make a post request to /verification/v2/verification/send&lt;/li&gt;
&lt;li&gt;Add ‘customerId’ field. This is a unique Id for every customer.&lt;/li&gt;
&lt;li&gt;Add ‘countryCode’ field. This is the country code of the mobile number who will receive the otp&lt;/li&gt;
&lt;li&gt;Add ‘otpLength’ field. This is the OTP length. It’s an optional field and by default the value is 4, you can configure it up to 8 digits.&lt;/li&gt;
&lt;li&gt;Add ‘mobileNumber’ field. This is the number that receives the otp.&lt;/li&gt;
&lt;li&gt;Add ‘flowType’ field. Set this type to ‘SMS’&lt;/li&gt;
&lt;li&gt;Add ‘authToken’ generated using the token API and pass that as a header in send otp.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;** Sample response:**&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IOlk4qDL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fxyu8srxgcdwdms83ns0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IOlk4qDL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fxyu8srxgcdwdms83ns0.png" alt="Image description" width="628" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The response will have a verificationId that will be passed a parameter in the validate OTP API to validate the request.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to validate an OTP?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Make a get request to /verification/v2/verification/validateOtp.&lt;/li&gt;
&lt;li&gt;Add ‘customerId’ field. This is a unique Id for every customer.&lt;/li&gt;
&lt;li&gt;Add ‘code’ field. This is the OTP code sent to the end user.&lt;/li&gt;
&lt;li&gt;Add ‘verificationId’ field. This is the verification id generated in the send OTP API.&lt;/li&gt;
&lt;li&gt;Add ‘authToken’ generated using the token API and pass that as a header in send otp.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;** Sample response:**&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DcMrUx9N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phaghz5k7y9vwefjb7q6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DcMrUx9N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phaghz5k7y9vwefjb7q6.png" alt="Image description" width="628" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can see our detailed &lt;a href="https://www.messagecentral.com/product/verify-now/api"&gt;SMS verification API documentation&lt;/a&gt; page for more details.&lt;/p&gt;

</description>
      <category>otp</category>
      <category>sms</category>
      <category>smsverification</category>
    </item>
  </channel>
</rss>
