{"id":17186,"date":"2026-08-02T00:36:11","date_gmt":"2026-08-01T19:06:11","guid":{"rendered":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/"},"modified":"2026-08-02T00:36:11","modified_gmt":"2026-08-01T19:06:11","slug":"otp-sms-api","status":"publish","type":"post","link":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/","title":{"rendered":"OTP SMS API for India: Send &#038; Verify OTP in Minutes (with Code)"},"content":{"rendered":"<p>An OTP SMS API does one job: your website or app calls one endpoint to send a one-time password to a customer&#8217;s mobile, and another endpoint to check what the customer typed. If both calls work reliably, you can verify any Indian mobile number in seconds, and everything built on that: signup verification, passwordless login, cash-on-delivery confirmation, becomes possible. This guide explains why stores in India need OTP verification more than most, and then shows the complete Fast2SMS OTP SMS API integration with working cURL and PHP code.<\/p>\n<p style=\"text-align:center;margin:28px 0;\">\n  <a href=\"https:\/\/www.fast2sms.com\" target=\"_blank\" rel=\"noopener\" style=\"display:inline-block;background:#e63329;color:#ffffff;font-size:20px;font-weight:700;padding:16px 52px;border-radius:40px;text-decoration:none;box-shadow:0 3px 8px rgba(0,0,0,0.22);\">Signup Now<\/a>\n<\/p>\n<h2>Why Indian stores need OTP verification<\/h2>\n<p>India&#8217;s ecommerce runs on cash on delivery more than almost any market, and that changes what &#8220;verification&#8221; means for a store:<\/p>\n<ul>\n<li><strong>Fake COD orders.<\/strong> A wrong or made-up mobile number costs you shipping both ways, packaging, and a blocked unit of stock. One OTP at checkout confirms a real, reachable customer before the parcel leaves.<\/li>\n<li><strong>Account takeovers and password pain.<\/strong> Customers reuse weak passwords, then forget them. OTP login removes the password entirely: the phone becomes the key, and support stops answering reset emails all day.<\/li>\n<li><strong>Coupon and signup abuse.<\/strong> &#8220;First order 50% off&#8221; invites one customer with ten fake accounts. Verified mobile numbers make each identity cost a real SIM, which kills the economics of abuse.<\/li>\n<li><strong>Dead contact data.<\/strong> Delivery riders call before arriving; marketing sends order updates. Both fail if the number was typed wrong. Verification at entry keeps the whole downstream chain working.<\/li>\n<li><strong>Customer trust.<\/strong> An OTP at signup or checkout signals a store that takes security seriously, the same pattern customers know from their bank and UPI apps.<\/li>\n<\/ul>\n<figure style=\"margin:36px 0;text-align:center;\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/07\/verification-funnel.png\" alt=\"Verification funnel showing where fake orders and dead numbers drop off when OTP verification is added\" width=\"1600\" height=\"900\" style=\"max-width:100%;height:auto;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.06);\" \/><figcaption style=\"font-size:14px;color:#6b7280;margin-top:12px;font-style:italic;\">Every unverified number that enters your funnel costs money further down. OTP moves the filter to the top.<\/figcaption><\/figure>\n<h2>What a good OTP SMS API handles for you<\/h2>\n<p>Sending a text is the easy part. A production OTP system also needs code generation, expiry, retry limits, resend windows, storage that never leaks, DLT-compliant templates, and a fallback when SMS does not arrive. The Fast2SMS OTP API does all of that server-side:<\/p>\n<ul>\n<li><strong>You never generate or store OTPs.<\/strong> The API creates the code, sends it, and checks it on verify. Your database never holds an OTP, so there is nothing to leak.<\/li>\n<li><strong>Smart OTP fallback.<\/strong> An OTP ID can send on WhatsApp first and automatically fall back to DLT SMS if WhatsApp delivery fails, or the reverse. One API call, two delivery paths.<\/li>\n<li><strong>Resend built in.<\/strong> Customers can request the code again within a 10 minute window, without your code juggling timers.<\/li>\n<li><strong>DLT handled.<\/strong> Ready OTP templates and free DLT support cover the compliance side of SMS in India.<\/li>\n<\/ul>\n<figure style=\"margin:36px 0;text-align:center;\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/07\/smart-otp-flow.png\" alt=\"Smart OTP flow diagram: one API call sends OTP on WhatsApp with automatic SMS fallback\" width=\"1600\" height=\"900\" style=\"max-width:100%;height:auto;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.06);\" \/><figcaption style=\"font-size:14px;color:#6b7280;margin-top:12px;font-style:italic;\">Smart OTP: one send call, WhatsApp first, SMS fallback automatic. Your code never knows the difference.<\/figcaption><\/figure>\n<h2>Step 1: Create your OTP ID<\/h2>\n<p>Signup free at <a href=\"https:\/\/www.fast2sms.com\" target=\"_blank\" rel=\"noopener\">fast2sms.com<\/a>, open the <strong>Smart OTP<\/strong> section and create an OTP ID. That is where you pick the channel (SMS, WhatsApp, or WhatsApp with SMS fallback), the template, and the sender. The OTP ID is the only thing your code needs besides the API key from the Dev API section.<\/p>\n<figure style=\"margin:36px 0;text-align:center;\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-24-at-9.15.02-PM.png\" alt=\"Smart OTP tab in the Fast2SMS panel with WhatsApp OTP primary and SMS fallback configured\" width=\"1115\" height=\"704\" style=\"max-width:100%;height:auto;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.06);\" \/><figcaption style=\"font-size:14px;color:#6b7280;margin-top:12px;font-style:italic;\">One OTP ID holds channel, template and fallback settings, so code stays one line simple.<\/figcaption><\/figure>\n<h2>Step 2: Send the OTP<\/h2>\n<pre style=\"background:#1f2937;color:#e5e7eb;padding:16px;border-radius:8px;overflow-x:auto;font-size:14px;\"><code>curl --request POST \\\n     --url https:\/\/www.fast2sms.com\/dev\/otp\/send \\\n     --header 'Authorization: YOUR_API_KEY' \\\n     --header 'accept: application\/json' \\\n     --header 'content-type: application\/json' \\\n     --data '{\n       \"otp_id\": \"11111111\",\n       \"mobile\": \"8888888888\"\n     }'<\/code><\/pre>\n<p>Success response:<\/p>\n<pre style=\"background:#1f2937;color:#e5e7eb;padding:16px;border-radius:8px;overflow-x:auto;font-size:14px;\"><code>{\n  \"return\": true,\n  \"status_code\": 200,\n  \"request_id\": \"lwdtp7cjyqxvfe9\",\n  \"message\": \"OTP sent successfully\"\n}<\/code><\/pre>\n<h2>Step 3: Verify what the customer typed<\/h2>\n<pre style=\"background:#1f2937;color:#e5e7eb;padding:16px;border-radius:8px;overflow-x:auto;font-size:14px;\"><code>curl --request POST \\\n     --url https:\/\/www.fast2sms.com\/dev\/otp\/verify \\\n     --header 'Authorization: YOUR_API_KEY' \\\n     --header 'accept: application\/json' \\\n     --header 'content-type: application\/json' \\\n     --data '{\n       \"mobile\": \"8888888888\",\n       \"otp\": \"123456\"\n     }'<\/code><\/pre>\n<pre style=\"background:#1f2937;color:#e5e7eb;padding:16px;border-radius:8px;overflow-x:auto;font-size:14px;\"><code>{\n  \"return\": true,\n  \"status_code\": 200,\n  \"message\": \"OTP verified successfully\"\n}<\/code><\/pre>\n<p>Wrong or expired code returns <code>\"return\": false<\/code>, so one if-check gates your signup, login or COD confirmation. Full reference: <a href=\"https:\/\/docs.fast2sms.com\/reference\/send-otp\" target=\"_blank\" rel=\"noopener\">send OTP<\/a> and <a href=\"https:\/\/docs.fast2sms.com\/reference\/verify-otp\" target=\"_blank\" rel=\"noopener\">verify OTP<\/a> at docs.fast2sms.com.<\/p>\n<h2>The whole flow in PHP<\/h2>\n<pre style=\"background:#1f2937;color:#e5e7eb;padding:16px;border-radius:8px;overflow-x:auto;font-size:14px;\"><code>&lt;?php\n\/\/ 1. Send the OTP when the customer submits their mobile\n$ch = curl_init('https:\/\/www.fast2sms.com\/dev\/otp\/send');\ncurl_setopt_array($ch, array(\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_POST           =&gt; true,\n    CURLOPT_HTTPHEADER     =&gt; array(\n        'Authorization: YOUR_API_KEY',\n        'Content-Type: application\/json',\n        'Accept: application\/json',\n    ),\n    CURLOPT_POSTFIELDS     =&gt; json_encode(array(\n        'otp_id' =&gt; '11111111',\n        'mobile' =&gt; $customerMobile,\n    )),\n));\n$send = json_decode(curl_exec($ch), true);\ncurl_close($ch);\n\nif (empty($send['return'])) {\n    exit('Could not send OTP, try again.');\n}\n\n\/\/ 2. Later, verify the code the customer typed\n$ch = curl_init('https:\/\/www.fast2sms.com\/dev\/otp\/verify');\ncurl_setopt_array($ch, array(\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_POST           =&gt; true,\n    CURLOPT_HTTPHEADER     =&gt; array(\n        'Authorization: YOUR_API_KEY',\n        'Content-Type: application\/json',\n        'Accept: application\/json',\n    ),\n    CURLOPT_POSTFIELDS     =&gt; json_encode(array(\n        'mobile' =&gt; $customerMobile,\n        'otp'    =&gt; $enteredOtp,\n    )),\n));\n$verify = json_decode(curl_exec($ch), true);\ncurl_close($ch);\n\nif (!empty($verify['return'])) {\n    \/\/ Verified: create the account, log the user in, or confirm the COD order\n} else {\n    \/\/ Wrong or expired OTP: show an error, offer resend\n}<\/code><\/pre>\n<p>Notice what is missing: no OTP generation, no expiry cron, no code comparison, no OTP column in your database. The API owns all of it. Need delivery events in your own system (mark verified numbers, alert on failures)? OTP webhooks push delivered and failed statuses to your endpoint: <a href=\"https:\/\/www.fast2sms.com\/help\/how-webhooks-work\/\">how webhooks work<\/a>.<\/p>\n<h2>No code? The same API powers ready plugins<\/h2>\n<ul>\n<li><strong>WordPress:<\/strong> free plugin with <a href=\"https:\/\/www.fast2sms.com\/help\/free-otp-login-wordpress\/\">OTP login<\/a> and signup verification; install from <a href=\"https:\/\/wordpress.org\/plugins\/fast2sms\/\" target=\"_blank\" rel=\"noopener\">WordPress.org<\/a>.<\/li>\n<li><strong>WooCommerce:<\/strong> <a href=\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-verification\/\">OTP verification for checkout and registration<\/a>, including COD confirmation.<\/li>\n<li><strong>Shopify:<\/strong> the official app covers storefront OTP login: <a href=\"https:\/\/www.fast2sms.com\/help\/integrate-otp-with-shopify\/\">integrate OTP with Shopify<\/a>.<\/li>\n<li><strong>Everything else:<\/strong> the two endpoints above work from any language or stack that can make an HTTPS POST.<\/li>\n<\/ul>\n<h2>OTP SMS API vs building it yourself<\/h2>\n<div style=\"overflow-x:auto;\">\n<table style=\"width:100%;border-collapse:collapse;font-size:15px;\">\n<thead>\n<tr>\n<th style=\"border:1px solid #e5e7eb;padding:12px;background:#f3f4f6;text-align:left;\">&nbsp;<\/th>\n<th style=\"border:1px solid #e5e7eb;padding:12px;background:#f3f4f6;text-align:left;\">Build in-house<\/th>\n<th style=\"border:1px solid #e5e7eb;padding:12px;background:#f3f4f6;text-align:left;\">Fast2SMS OTP API<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">OTP generation, expiry, storage<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Your code, your database, your risk<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\"><strong>Server-side, never touches your DB<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">DLT registration and templates<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">You research and file<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\"><strong>Ready templates + free DLT support<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">When SMS does not arrive<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Customer stuck, order lost<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\"><strong>Smart OTP auto-falls back to WhatsApp or SMS<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Resend handling<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">More timers in your code<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\"><strong>Built in, 10 minute window<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Cost structure<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Developer time + gateway contracts<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\"><strong>No setup or monthly fee, pay per message<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2>What it costs<\/h2>\n<p>There is no setup fee, no monthly platform fee and no minimum commitment: you pay the per-message rate from your wallet, and only for what you send. WhatsApp OTPs bill on delivery basis with failed messages auto-refunded, at \u20b90.25 per authentication message (\u20b90.11 on high-volume plans). SMS OTPs go at your account&#8217;s DLT SMS rate. A slow month costs you nothing.<\/p>\n<h2>Frequently asked questions<\/h2>\n<h3>What is an OTP SMS API?<\/h3>\n<p>Two REST endpoints: one sends a one-time password to a mobile number, the other verifies the code the user entered. Your application calls them over HTTPS with an API key; the provider handles generation, delivery, expiry and checking.<\/p>\n<h3>How fast do OTPs arrive?<\/h3>\n<p>OTP routes are prioritised for speed and typically arrive within seconds, with Smart OTP falling back to the second channel automatically when the first fails, so the customer is never left waiting on a dead channel.<\/p>\n<h3>Do I need DLT registration to send OTP SMS?<\/h3>\n<p>SMS OTPs in India need DLT like all business SMS; Fast2SMS provides ready OTP templates and free DLT support. WhatsApp OTPs need no DLT at all, which is why many stores start with WhatsApp-first Smart OTP.<\/p>\n<h3>Do I have to store OTPs in my database?<\/h3>\n<p>No, and you should not. The verify endpoint checks the code server-side; your system only ever sees verified or not verified.<\/p>\n<h3>Can the customer ask for the OTP again?<\/h3>\n<p>Yes, resend works within a 10 minute window per send, without extra logic on your side.<\/p>\n<h3>Which platforms can use this without code?<\/h3>\n<p>WordPress, WooCommerce and Shopify all have free official Fast2SMS plugins running on the same OTP API, covering login, registration and checkout verification.<\/p>\n<h3>What does an OTP cost?<\/h3>\n<p>No monthly or setup fee; per-message billing only. WhatsApp authentication messages are \u20b90.25 (\u20b90.11 high volume) on delivery basis with auto refund for failures; SMS follows your DLT SMS rate.<\/p>\n<h3>Where is the full API documentation?<\/h3>\n<p>At <a href=\"https:\/\/docs.fast2sms.com\" target=\"_blank\" rel=\"noopener\">docs.fast2sms.com<\/a>, including send, verify and resend references. The wider product is covered in the <a href=\"https:\/\/www.fast2sms.com\/help\/otp-sms-smart-otp\/\">Smart OTP guide<\/a> and the <a href=\"https:\/\/www.fast2sms.com\/help\/bulk-sms-api-india\/\">bulk SMS API guide<\/a>.<\/p>\n<h2>Verify your first number today<\/h2>\n<p>Create your free account, make one OTP ID, and the two API calls above turn any signup form, login page or COD checkout into a verified one this afternoon.<\/p>\n<p style=\"text-align:center;margin:28px 0;\">\n  <a href=\"https:\/\/www.fast2sms.com\" target=\"_blank\" rel=\"noopener\" style=\"display:inline-block;background:#e63329;color:#ffffff;font-size:20px;font-weight:700;padding:16px 52px;border-radius:40px;text-decoration:none;box-shadow:0 3px 8px rgba(0,0,0,0.22);\">Signup Now<\/a>\n<\/p>\n<p>Questions? Write to <a href=\"mailto:support@fast2sms.com\">support@fast2sms.com<\/a> or call +91-6262778822.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why Indian stores need OTP verification, and the complete Fast2SMS OTP SMS API integration: send and verify endpoints with working cURL and PHP code, Smart OTP fallback and DLT handled.<\/p>\n","protected":false},"author":11,"featured_media":17058,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"otp sms api","_yoast_wpseo_title":"OTP SMS API for India: Send & Verify OTP in Minutes (with Code) | Fast2SMS","_yoast_wpseo_metadesc":"OTP SMS API for India: send and verify OTP with two REST calls, working cURL and PHP code, WhatsApp fallback, DLT handled. No setup or monthly fee, pay per message.","footnotes":""},"categories":[4,2,5],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OTP SMS API for India: Send &amp; Verify OTP in Minutes (with Code) | Fast2SMS<\/title>\n<meta name=\"description\" content=\"OTP SMS API for India: send and verify OTP with two REST calls, working cURL and PHP code, WhatsApp fallback, DLT handled. No setup or monthly fee, pay per message.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OTP SMS API for India: Send &amp; Verify OTP in Minutes (with Code) | Fast2SMS\" \/>\n<meta property=\"og:description\" content=\"OTP SMS API for India: send and verify OTP with two REST calls, working cURL and PHP code, WhatsApp fallback, DLT handled. No setup or monthly fee, pay per message.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Fast2SMS\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Fast2SMS\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-01T19:06:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/07\/smart-otp-flow.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fast2SMS\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fast2sms\" \/>\n<meta name=\"twitter:site\" content=\"@fast2sms\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fast2SMS\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/\"},\"author\":{\"name\":\"Fast2SMS\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/#\/schema\/person\/9549639ed9c1998dbed435d88b9e70c9\"},\"headline\":\"OTP SMS API for India: Send &#038; Verify OTP in Minutes (with Code)\",\"datePublished\":\"2026-08-01T19:06:11+00:00\",\"dateModified\":\"2026-08-01T19:06:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/\"},\"wordCount\":1158,\"publisher\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/#organization\"},\"articleSection\":[\"API\",\"Blog\",\"OTP\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/\",\"url\":\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/\",\"name\":\"OTP SMS API for India: Send & Verify OTP in Minutes (with Code) | Fast2SMS\",\"isPartOf\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/#website\"},\"datePublished\":\"2026-08-01T19:06:11+00:00\",\"dateModified\":\"2026-08-01T19:06:11+00:00\",\"description\":\"OTP SMS API for India: send and verify OTP with two REST calls, working cURL and PHP code, WhatsApp fallback, DLT handled. No setup or monthly fee, pay per message.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.fast2sms.com\/help\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OTP SMS API for India: Send &#038; Verify OTP in Minutes (with Code)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/#website\",\"url\":\"https:\/\/www.fast2sms.com\/help\/\",\"name\":\"Fast2SMS\",\"description\":\"Help\",\"publisher\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.fast2sms.com\/help\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/#organization\",\"name\":\"Fast2SMS\",\"url\":\"https:\/\/www.fast2sms.com\/help\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/Fast2SMS\/\",\"https:\/\/twitter.com\/fast2sms\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2021\/01\/Fast2SMS-logo.jpg\",\"contentUrl\":\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2021\/01\/Fast2SMS-logo.jpg\",\"width\":210,\"height\":210,\"caption\":\"Fast2SMS\"},\"image\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/#\/schema\/person\/9549639ed9c1998dbed435d88b9e70c9\",\"name\":\"Fast2SMS\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OTP SMS API for India: Send & Verify OTP in Minutes (with Code) | Fast2SMS","description":"OTP SMS API for India: send and verify OTP with two REST calls, working cURL and PHP code, WhatsApp fallback, DLT handled. No setup or monthly fee, pay per message.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/","og_locale":"en_US","og_type":"article","og_title":"OTP SMS API for India: Send & Verify OTP in Minutes (with Code) | Fast2SMS","og_description":"OTP SMS API for India: send and verify OTP with two REST calls, working cURL and PHP code, WhatsApp fallback, DLT handled. No setup or monthly fee, pay per message.","og_url":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/","og_site_name":"Fast2SMS","article_publisher":"https:\/\/www.facebook.com\/Fast2SMS\/","article_published_time":"2026-08-01T19:06:11+00:00","og_image":[{"width":1600,"height":900,"url":"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/07\/smart-otp-flow.png","type":"image\/png"}],"author":"Fast2SMS","twitter_card":"summary_large_image","twitter_creator":"@fast2sms","twitter_site":"@fast2sms","twitter_misc":{"Written by":"Fast2SMS","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/#article","isPartOf":{"@id":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/"},"author":{"name":"Fast2SMS","@id":"https:\/\/www.fast2sms.com\/help\/#\/schema\/person\/9549639ed9c1998dbed435d88b9e70c9"},"headline":"OTP SMS API for India: Send &#038; Verify OTP in Minutes (with Code)","datePublished":"2026-08-01T19:06:11+00:00","dateModified":"2026-08-01T19:06:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/"},"wordCount":1158,"publisher":{"@id":"https:\/\/www.fast2sms.com\/help\/#organization"},"articleSection":["API","Blog","OTP"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/","url":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/","name":"OTP SMS API for India: Send & Verify OTP in Minutes (with Code) | Fast2SMS","isPartOf":{"@id":"https:\/\/www.fast2sms.com\/help\/#website"},"datePublished":"2026-08-01T19:06:11+00:00","dateModified":"2026-08-01T19:06:11+00:00","description":"OTP SMS API for India: send and verify OTP with two REST calls, working cURL and PHP code, WhatsApp fallback, DLT handled. No setup or monthly fee, pay per message.","breadcrumb":{"@id":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fast2sms.com\/help\/otp-sms-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.fast2sms.com\/help\/otp-sms-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fast2sms.com\/help\/"},{"@type":"ListItem","position":2,"name":"OTP SMS API for India: Send &#038; Verify OTP in Minutes (with Code)"}]},{"@type":"WebSite","@id":"https:\/\/www.fast2sms.com\/help\/#website","url":"https:\/\/www.fast2sms.com\/help\/","name":"Fast2SMS","description":"Help","publisher":{"@id":"https:\/\/www.fast2sms.com\/help\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fast2sms.com\/help\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.fast2sms.com\/help\/#organization","name":"Fast2SMS","url":"https:\/\/www.fast2sms.com\/help\/","sameAs":["https:\/\/www.facebook.com\/Fast2SMS\/","https:\/\/twitter.com\/fast2sms"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fast2sms.com\/help\/#\/schema\/logo\/image\/","url":"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2021\/01\/Fast2SMS-logo.jpg","contentUrl":"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2021\/01\/Fast2SMS-logo.jpg","width":210,"height":210,"caption":"Fast2SMS"},"image":{"@id":"https:\/\/www.fast2sms.com\/help\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.fast2sms.com\/help\/#\/schema\/person\/9549639ed9c1998dbed435d88b9e70c9","name":"Fast2SMS"}]}},"_links":{"self":[{"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/posts\/17186"}],"collection":[{"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/comments?post=17186"}],"version-history":[{"count":0,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/posts\/17186\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/media\/17058"}],"wp:attachment":[{"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/media?parent=17186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/categories?post=17186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/tags?post=17186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}