{"id":17412,"date":"2026-09-29T10:30:47","date_gmt":"2026-09-29T05:00:47","guid":{"rendered":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/"},"modified":"2026-09-30T09:34:28","modified_gmt":"2026-09-30T04:04:28","slug":"woocommerce-otp-not-received","status":"publish","type":"post","link":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/","title":{"rendered":"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP"},"content":{"rendered":"<p>A customer taps &#8220;Send OTP&#8221; on your WooCommerce login or checkout page, waits, and nothing comes. They tap again, then give up and leave. When WooCommerce OTP is not working, or customers keep saying they are not getting OTP, the cause is almost always on a short list: the SMS template and DLT setup, the number format, the wallet, a security limit, or WhatsApp not being available on that number.<\/p>\n<p>This guide is organised by symptom. Find what your customer sees (nothing arrives, the OTP comes late, &#8220;too many attempts&#8221;, the code is rejected, WhatsApp not sending OTP, SMS OTP not received in WooCommerce) and follow the cause and fix. It is written around the free WooCommerce SMS plugin &#8220;Fast2SMS &#8211; OTP Login &amp; SMS Notifications&#8221;, but the DLT and delivery checks apply to any otp plugin for WooCommerce in India.<\/p>\n<p style=\"text-align:center;margin:28px 0;\"><a href=\"https:\/\/wordpress.org\/plugins\/fast2sms\/\" target=\"_blank\" rel=\"noopener\" style=\"display:inline-block;background:#e63329;color:#ffffff;font-size:18px;font-weight:700;padding:14px 40px;border-radius:40px;text-decoration:none;box-shadow:0 3px 8px rgba(0,0,0,0.22);margin:6px;\">Install Free Plugin<\/a><a href=\"https:\/\/www.fast2sms.com\" target=\"_blank\" rel=\"noopener\" style=\"display:inline-block;background:#e63329;color:#ffffff;font-size:18px;font-weight:700;padding:14px 40px;border-radius:40px;text-decoration:none;box-shadow:0 3px 8px rgba(0,0,0,0.22);margin:6px;\">Signup Now<\/a><\/p>\n<figure style=\"margin:36px 0;text-align:center;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/09\/woocommerce-otp-not-received-1.png\" alt=\"WooCommerce OTP not received: six symptoms with their usual cause and fix\" 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;\">Match what your customer sees to the likely cause before you change any settings.<\/figcaption><\/figure>\n<h2 id=\"first-checks\">First five checks when WooCommerce OTP is not working<\/h2>\n<p>Run these five checks before anything else. They clear most &#8220;OTP not received&#8221; tickets in minutes.<\/p>\n<ol>\n<li><strong>Wallet balance.<\/strong> Open WP Admin &gt; Fast2SMS. The header shows your wallet balance and SMS count. If the wallet is empty, no OTP goes out. Recharge from the link in the header.<\/li>\n<li><strong>API key.<\/strong> The Dashboard checks your API key live. If the key was revoked or changed in your Fast2SMS account, the plugin shows a warning across wp-admin. Enter the current key again.<\/li>\n<li><strong>OTP ID.<\/strong> On the OTP &amp; Login tab, Smart OTP needs an OTP ID from your Fast2SMS account. A missing or wrong OTP ID means nothing can be sent.<\/li>\n<li><strong>Admin test.<\/strong> Use the test OTP option on the OTP &amp; Login tab (&#8220;Test your OTP setup&#8221;). It sends a real OTP to a number you type and lets you verify it. If the test works but customers still complain, the problem is on their side (number, network, limits). If the test fails, the problem is in your setup.<\/li>\n<li><strong>Logs.<\/strong> The Logs tab shows the event, channel, masked number (like 98XXXXXX10), status, error and time. The error column usually tells you which section of this guide to read.<\/li>\n<\/ol>\n<figure style=\"margin:36px 0;text-align:center;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/07\/fast2sms-otp-login-settings.png\" alt=\"WooCommerce OTP not working fix: Fast2SMS OTP and Login tab with OTP ID and test OTP\" width=\"1440\" height=\"1000\" 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;\">The OTP &amp; Login tab: OTP ID, where OTP login is switched on, resend countdown and the admin test.<\/figcaption><\/figure>\n<h2 id=\"nothing-arrives\">WooCommerce OTP not received at all<\/h2>\n<p>The customer gets nothing on SMS or WhatsApp. Work through these causes in order.<\/p>\n<h3>Cause 1: setup problem on your side<\/h3>\n<p>An empty wallet, a revoked API key or a wrong OTP ID stops every OTP for every customer. The five checks above fix it.<\/p>\n<h3>Cause 2: SMS template or DLT problem<\/h3>\n<p>If your OTP goes by SMS, the telecom operator checks it against your DLT registration before delivery. A wrong header, an unapproved template or a broken PE-TM chain means the message is dropped. The <a href=\"#sms-otp-not-received\">SMS section below<\/a> covers each point.<\/p>\n<h3>Cause 3: wrong or badly formatted number<\/h3>\n<p>The plugin works with Indian 10-digit mobile numbers only. A typo, a landline, or a number from outside India will not get an OTP. On the login box the customer sees &#8220;OTP sent to 98XXXXXX10&#8221; with an Edit link, so ask them to check the masked number and tap Edit if it is wrong. At checkout they can use &#8220;Verify a different number&#8221;.<\/p>\n<h3>Cause 4: WhatsApp only, and the number is not on WhatsApp<\/h3>\n<p>If your OTP ID sends on WhatsApp with no SMS fallback, a customer without WhatsApp on that number gets nothing. See the <a href=\"#whatsapp-not-received\">WhatsApp section<\/a>.<\/p>\n<h2 id=\"sms-otp-not-received\">SMS OTP not received in WooCommerce: DLT, DND and number format<\/h2>\n<p>SMS OTP in India reaches the phone only if every DLT piece lines up. Check each one.<\/p>\n<ul>\n<li><strong>Registered entity and header.<\/strong> You need a registered principal entity on DLT and a 6-letter header (sender ID) linked to it. The header in the message must be the one registered for that template.<\/li>\n<li><strong>Approved OTP template in the Transactional category.<\/strong> Transactional now covers OTPs for any business. The text sent must match the approved template exactly, with variables in the right places.<\/li>\n<li><strong>Typed variables.<\/strong> Current templates use typed tags such as {#numeric#}, {#alphanumeric#} and {#url#}, not plain {#var#}. If your OTP template has extra variable slots (site name, phone, date), the plugin&#8217;s OTP template variables setting fills them. The values must fit the tag types. Read <a href=\"https:\/\/www.fast2sms.com\/help\/dlt-variable-tagging\/\" target=\"_blank\" rel=\"noopener\">DLT variable tagging<\/a> if you are unsure.<\/li>\n<li><strong>PE-TM chain.<\/strong> Your entity must be bound to a registered telemarketer (TMD). From 30th September, messages with a mismatched chain are blocked. Fast2SMS&#8217;s TMD is SID GROUPS PRIVATE LIMITED, TMD ID 1702178720558766591, with direct connectivity to Airtel, Jio, BSNL, Tata, Vi and Smartping. Our guide on <a href=\"https:\/\/www.fast2sms.com\/help\/pe-tm-chain-mismatch-detected\/\" target=\"_blank\" rel=\"noopener\">PE-TM chain mismatch<\/a> shows how to fix it.<\/li>\n<\/ul>\n<h3>DND and the Promotional category<\/h3>\n<p>If a customer has DND switched on, Promotional messages do not reach them. An OTP must never be registered as Promotional. DLT categories are now Transactional, Service Implicit and Promotional (Service Explicit was merged into Promotional, see <a href=\"https:\/\/www.fast2sms.com\/help\/service-explicit-to-promotional\/\" target=\"_blank\" rel=\"noopener\">what changed<\/a>). Keep your OTP template under Transactional so DND numbers still get it.<\/p>\n<h3>Operator rejections<\/h3>\n<p>Operator rejections show up with an error in your delivery reports. Match the exact error with our list of <a href=\"https:\/\/www.fast2sms.com\/help\/sms-not-delivered-dlt-errors\/\" target=\"_blank\" rel=\"noopener\">SMS not delivered DLT errors<\/a>, or send it to support.<\/p>\n<figure style=\"margin:36px 0;text-align:center;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/09\/woocommerce-otp-not-received-2.png\" alt=\"SMS OTP not received in WooCommerce vs WhatsApp not sending OTP: checklist for each channel\" 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;\">SMS OTP needs the full DLT chain. WhatsApp OTP needs no DLT but the number must be on WhatsApp.<\/figcaption><\/figure>\n<h2 id=\"whatsapp-not-received\">WhatsApp not sending OTP: what to check<\/h2>\n<p>WhatsApp OTP needs no DLT. Whichever WooCommerce WhatsApp plugin you use, when WhatsApp is not sending OTP to a customer, check these:<\/p>\n<ul>\n<li><strong>The number is not on WhatsApp.<\/strong> The customer may use WhatsApp on a different number than the one they typed. This is the most common reason.<\/li>\n<li><strong>The phone is offline.<\/strong> WhatsApp messages arrive when the phone has internet. On mobile data with a weak signal, the OTP can show up late or after the customer has given up.<\/li>\n<li><strong>No fallback set.<\/strong> With Smart OTP you set WhatsApp first and SMS as automatic fallback (or the reverse) at Fast2SMS, against your OTP ID. With fallback on, a customer who cannot get WhatsApp still gets the SMS. For SMS fallback you still need the DLT setup above.<\/li>\n<li><strong>Wrong inbox.<\/strong> Ask customers to check WhatsApp chats, not only SMS.<\/li>\n<\/ul>\n<p>Failed WhatsApp messages are not charged: WhatsApp is billed on delivery, and failed WhatsApp messages are refunded within 48 hours. For the full setup, see <a href=\"https:\/\/www.fast2sms.com\/help\/woocommerce-whatsapp-otp-login\/\" target=\"_blank\" rel=\"noopener\">WooCommerce WhatsApp OTP login<\/a> and <a href=\"https:\/\/www.fast2sms.com\/help\/otp-sms-smart-otp\/\" target=\"_blank\" rel=\"noopener\">how Smart OTP works<\/a>.<\/p>\n<h2 id=\"otp-late\">OTP arrives late<\/h2>\n<p>A late OTP makes customers tap Resend, get two codes and type the wrong one. Common reasons:<\/p>\n<ul>\n<li><strong>Customer&#8217;s network.<\/strong> Weak signal or flight mode delays delivery. Ask them to wait for the countdown.<\/li>\n<li><strong>Resend countdown too short.<\/strong> The plugin lets you set a resend countdown from 10 to 300 seconds. If it is very short, customers hit Resend before the first code arrives and burn through the send limit. A countdown around 30 to 60 seconds works well for most stores.<\/li>\n<li><strong>Single channel only.<\/strong> If WhatsApp is slow for that customer and there is no fallback, they wait. Smart OTP fallback gives a second route.<\/li>\n<li><strong>Background worker not running.<\/strong> The plugin&#8217;s queue (order updates, campaigns, retries) needs a worker. The Dashboard shows &#8220;in queue&#8221; counts and worker status. For reliable delivery, add the ready cron URL from the Dashboard to your server cron, or run <code>wp fast2sms worker<\/code> with WP-CLI. WP-Cron is only a fallback, because it runs when someone visits the site. If the queue keeps growing, fix the worker first.<\/li>\n<\/ul>\n<h2 id=\"too-many-attempts\">&#8220;Too many attempts&#8221; on WooCommerce OTP<\/h2>\n<p>The plugin enforces security limits on the server so bots cannot drain your wallet or guess codes. Real customers hit them by tapping Resend too often.<\/p>\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;\">Limit<\/th>\n<th style=\"border:1px solid #e5e7eb;padding:12px;background:#f3f4f6;text-align:left;\">Value<\/th>\n<th style=\"border:1px solid #e5e7eb;padding:12px;background:#f3f4f6;text-align:left;\">What the customer should do<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">OTP sends per mobile number<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">3 in 10 minutes<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Wait 10 minutes, then request once and wait for it<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">OTP sends per IP address<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">10 in 10 minutes<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Wait, or switch from shared Wi-Fi to mobile data<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Verify attempts per OTP<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">5<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Request a fresh OTP and type it carefully<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">OTP validity<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">10 minutes<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Use the code soon after it arrives<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Verification token (after a correct OTP)<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Single use, 15 minutes<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Finish login or checkout without a long pause<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Resend countdown<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">You set 10 to 300 seconds<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Wait for the timer before tapping Resend<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>The IP limit surprises some stores. An office or hostel on one Wi-Fi router shares a single IP address, so during a sale the eleventh request in 10 minutes has to wait.<\/p>\n<p>Do not fight these limits. They protect your wallet from OTP flooding. Set a sensible resend countdown instead, so customers do not waste their three sends.<\/p>\n<figure style=\"margin:36px 0;text-align:center;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/09\/woocommerce-otp-not-received-3.png\" alt=\"WooCommerce OTP not working after resends: security limits for sends, attempts and expiry\" 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;\">The server-side limits behind &#8220;too many attempts&#8221; and expired codes.<\/figcaption><\/figure>\n<h2 id=\"code-rejected\">OTP code rejected or expired<\/h2>\n<p>The OTP arrived, the customer typed it, and the store says it is wrong. Check these:<\/p>\n<ul>\n<li><strong>Older code typed.<\/strong> After a Resend there are two messages. Use the most recent one.<\/li>\n<li><strong>Code expired.<\/strong> Each OTP is valid for 10 minutes. After that, request a new code.<\/li>\n<li><strong>Five wrong tries used up.<\/strong> After 5 verify attempts that OTP is done. Request a fresh one.<\/li>\n<li><strong>Different number.<\/strong> The code belongs to the number it was sent to. If the customer tapped Edit and changed the number, the old code will not work for the new one.<\/li>\n<li><strong>Checkout left open.<\/strong> On checkout, a correct OTP creates a single-use verification token valid for 15 minutes. If the customer verifies, then leaves the tab open for a long time before placing the order, they may need to verify again.<\/li>\n<\/ul>\n<figure style=\"margin:36px 0;text-align:center;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/07\/otp-verification-code-step-wordpress.png\" alt=\"Customer not getting OTP accepted on WooCommerce: OTP entry step with Edit link and resend timer\" width=\"1440\" height=\"850\" 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;\">The enter-OTP step shows the masked number, an Edit link and the resend countdown.<\/figcaption><\/figure>\n<h2 id=\"checkout-otp-missing\">Checkout OTP box not showing<\/h2>\n<p>Stores often report this as &#8220;OTP not working&#8221;. Checkout OTP verification works with the classic (shortcode) WooCommerce checkout only, not the block checkout. If your checkout page uses the Checkout block, the OTP box will not appear. Switch the page to the classic checkout shortcode, then choose where the box shows: below billing details, above payment options, above order summary, top of checkout, or with the <code>&#91;fast2sms_checkout_otp&#93;<\/code> shortcode. Also check whether you turned on &#8220;skip for logged-in customers&#8221;, because then logged-in buyers will not see it by design. More in <a href=\"https:\/\/www.fast2sms.com\/help\/woocommerce-checkout-otp-verification\/\" target=\"_blank\" rel=\"noopener\">WooCommerce checkout OTP verification<\/a>.<\/p>\n<h2 id=\"logs\">Use Logs and the Dashboard to find the cause<\/h2>\n<p><strong>Dashboard.<\/strong> The last 30 days show sent, failed, in queue, OTPs sent, OTPs verified and worker status. If OTPs sent is high but OTPs verified is low, customers are receiving codes late, not receiving them, or dropping off. If failed is climbing, open Logs.<\/p>\n<figure style=\"margin:36px 0;text-align:center;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/07\/fast2sms-woocommerce-plugin-dashboard-wallet.png\" alt=\"WooCommerce OTP not working: Fast2SMS dashboard with wallet balance, OTPs sent, OTPs verified and worker status\" width=\"1440\" height=\"1000\" 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;\">Dashboard: wallet, setup checklist, 30-day counts and worker status in one place.<\/figcaption><\/figure>\n<p><strong>Logs.<\/strong> Each row shows event, channel (SMS or WhatsApp), masked number, status, error and time. Filter your thinking by channel: a WhatsApp failure points to the number or fallback, an SMS failure points to DLT. You can retry failed messages and export CSV for support. For OTPs, ask the customer to request a fresh code instead.<\/p>\n<figure style=\"margin:36px 0;text-align:center;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/07\/woocommerce-sms-delivery-logs-fast2sms.png\" alt=\"SMS OTP not received WooCommerce: Fast2SMS Logs tab with channel, status and error columns\" width=\"1440\" height=\"1000\" 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;\">Logs: channel, masked number, status and error for each message, with retry and CSV export.<\/figcaption><\/figure>\n<h2 id=\"diagnosis-table\">WooCommerce OTP diagnosis table<\/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;\">Symptom<\/th>\n<th style=\"border:1px solid #e5e7eb;padding:12px;background:#f3f4f6;text-align:left;\">Likely cause<\/th>\n<th style=\"border:1px solid #e5e7eb;padding:12px;background:#f3f4f6;text-align:left;\">Fix<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">No customer gets any OTP<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Empty wallet, revoked API key, wrong OTP ID<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Recharge, re-enter key, check OTP ID, run the admin test<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">SMS OTP not received, WhatsApp fine<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Header, template, category or PE-TM chain<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Fix DLT: Transactional OTP template, correct header, TMD bound<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">DND customers miss the OTP<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Template registered as Promotional<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Register the OTP template as Transactional<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">WhatsApp OTP not received<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Number not on WhatsApp, phone offline<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Turn on Smart OTP SMS fallback<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">OTP arrives late<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Network, short resend timer, no fallback<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Longer countdown, fallback on, server cron for the queue<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">&#8220;Too many attempts&#8221;<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">3 sends per number or 10 per IP in 10 minutes, or 5 wrong tries<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Wait 10 minutes, then request once<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Code rejected<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Old code, expired after 10 minutes, number edited<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Use the latest code or request a new one<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">No OTP box at checkout<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Block checkout in use<\/td>\n<td style=\"border:1px solid #e5e7eb;padding:12px;\">Use the classic (shortcode) checkout<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div style=\"background:#ecfdf5;border:1px solid #a7f3d0;border-left:6px solid #059669;border-radius:8px;padding:20px 24px;margin:28px 0;\">\n<p style=\"margin:0 0 8px;font-size:17px;\"><strong>Pricing: free WooCommerce plugin, pay only per message<\/strong><\/p>\n<ul style=\"margin:0;padding-left:20px;line-height:1.7;\">\n<li>The plugin is free: no licence, no monthly fee, no setup fee.<\/li>\n<li>WhatsApp OTP and order updates: \u20b90.25 per delivered message; failed WhatsApp messages are refunded within 48 hours.<\/li>\n<li>SMS: your DLT SMS rate per message.<\/li>\n<li>High volume? Rates are negotiable: call +91-6262778811, email <a href=\"mailto:sales@fast2sms.com\">sales@fast2sms.com<\/a> or <a href=\"https:\/\/www.fast2sms.com\/meet\" target=\"_blank\" rel=\"noopener\">book a free meeting<\/a>.<\/li>\n<li>Free signup with \u20b950 test credit.<\/li>\n<\/ul>\n<\/div>\n<div style=\"background:#eff6ff;border:1px solid #bfdbfe;border-left:6px solid #2563eb;border-radius:8px;padding:20px 24px;margin:28px 0;\">\n<p style=\"margin:0 0 8px;font-size:17px;\"><strong>Customers still not getting OTP on your WooCommerce store? We will look at it with you, free.<\/strong><\/p>\n<p style=\"margin:0 0 14px;font-size:15px;\">Share a screen with our team and we will check your OTP ID, DLT template, header and PE-TM chain, and read your logs together. <a href=\"https:\/\/www.fast2sms.com\/meet\" target=\"_blank\" rel=\"noopener\">Schedule a free meeting<\/a>, call +91-6262778822 or email <a href=\"mailto:support@fast2sms.com\">support@fast2sms.com<\/a>.<\/p>\n<p style=\"text-align:center;margin:0;\"><a href=\"https:\/\/www.fast2sms.com\/meet\" target=\"_blank\" rel=\"noopener\" style=\"display:inline-block;background:#e63329;color:#ffffff;font-size:18px;font-weight:700;padding:14px 40px;border-radius:40px;text-decoration:none;box-shadow:0 3px 8px rgba(0,0,0,0.22);margin:6px;\">Schedule Free Meeting<\/a><\/p>\n<\/div>\n<h2 id=\"faq\">Frequently asked questions<\/h2>\n<h3>Why is my WooCommerce OTP not working?<\/h3>\n<p>The usual causes are an empty Fast2SMS wallet, a revoked API key, a wrong OTP ID, a DLT problem with the SMS template or header, or a number that is not on WhatsApp with no fallback. Run the admin test OTP first to see whether the problem is your setup or the customer&#8217;s number.<\/p>\n<h3>Why am I not getting OTP from a WooCommerce store?<\/h3>\n<p>Check that you typed your own 10-digit Indian mobile number correctly, that your phone has signal or internet, and that you looked in both SMS and WhatsApp. If you tapped Resend several times, wait 10 minutes because the store limits sends to 3 per number in that window.<\/p>\n<h3>Why is SMS OTP not received on WooCommerce when WhatsApp works?<\/h3>\n<p>SMS OTP depends on DLT and WhatsApp does not, so the SMS side usually has a header, template, category or PE-TM chain problem. Check that your OTP template is approved under Transactional, the header matches, and your entity is bound to a registered TMD.<\/p>\n<h3>Why is WhatsApp not sending OTP to some customers?<\/h3>\n<p>Most often the customer&#8217;s number is not registered on WhatsApp, or their phone has no internet when the OTP is sent, so the message cannot be delivered. Turn on Smart OTP with automatic SMS fallback at Fast2SMS so those customers get the code by SMS instead. Failed WhatsApp messages are refunded within 48 hours.<\/p>\n<h3>Does OTP SMS reach numbers on DND?<\/h3>\n<p>Yes, OTP SMS reaches DND numbers when the OTP template is registered in the Transactional category, which now covers OTPs for any business. Promotional messages do not reach DND numbers, so an OTP registered as Promotional will miss those customers.<\/p>\n<h3>Which DLT category should a WooCommerce OTP template use?<\/h3>\n<p>Register your WooCommerce OTP template in the Transactional category, which now covers OTP messages for any business and is the right choice for login, signup and checkout codes. The current DLT categories are Transactional, Service Implicit and Promotional, since Service Explicit was merged into Promotional.<\/p>\n<h3>What is the PE-TM chain and can it block OTP SMS?<\/h3>\n<p>Yes, a broken PE-TM chain can block OTP SMS. It is the link between your registered entity and the telemarketer (TMD) that sends your SMS, and from 30th September messages with a mismatched chain are blocked. Fast2SMS&#8217;s TMD ID is 1702178720558766591 (SID GROUPS PRIVATE LIMITED).<\/p>\n<h3>Does WhatsApp OTP need DLT registration?<\/h3>\n<p>No, WhatsApp OTP does not need DLT registration, because the DLT rules for headers and templates apply only to SMS sent to Indian mobile numbers. That is why many WooCommerce stores start with WhatsApp OTP and add SMS fallback once their DLT header and Transactional template are approved.<\/p>\n<h3>How many times can a customer resend OTP in WooCommerce?<\/h3>\n<p>The plugin allows up to 3 OTP sends per mobile number in 10 minutes, and up to 10 sends per IP address in 10 minutes. After that the customer has to wait. You also set a resend countdown between 10 and 300 seconds.<\/p>\n<h3>Why does WooCommerce OTP say too many attempts?<\/h3>\n<p>The customer has hit a security limit: 3 sends per number in 10 minutes, 10 sends per IP in 10 minutes, or 5 wrong entries for one OTP. Waiting 10 minutes and then requesting a single fresh code solves it in almost every case.<\/p>\n<h3>How long is a WooCommerce OTP valid?<\/h3>\n<p>Each OTP sent by the plugin is valid for 10 minutes from the moment it is sent, after which the customer must request a fresh code. After a correct OTP, the plugin issues a single-use verification token that stays valid for 15 minutes, so the customer should finish logging in or placing the order within that time.<\/p>\n<h3>How many wrong OTP entries are allowed?<\/h3>\n<p>A customer gets 5 verify attempts per OTP. After the fifth wrong entry that code cannot be used, and they need to request a new OTP. This stops anyone from guessing codes on your login or checkout page.<\/p>\n<h3>Why is the OTP rejected even when typed correctly?<\/h3>\n<p>The customer is often typing an older code after tapping Resend, or the code has passed its 10-minute validity, so the store treats it as wrong. It also fails if they edited the number after the code was sent. Ask them to use the most recent code or request a fresh one.<\/p>\n<h3>Why does the OTP come late?<\/h3>\n<p>Late OTPs usually come from weak signal, a phone that is offline for WhatsApp, or a single channel with no fallback. A resend countdown of 30 to 60 seconds and Smart OTP SMS fallback reduce complaints. Delivery is never guaranteed on any network, so fallback matters.<\/p>\n<h3>What is Smart OTP fallback?<\/h3>\n<p>Smart OTP sends the OTP on WhatsApp first and falls back to SMS automatically if WhatsApp does not go through, or the reverse. You set it at Fast2SMS against your OTP ID, and the plugin only needs that OTP ID on the OTP &amp; Login tab.<\/p>\n<h3>How do I test OTP from the WooCommerce admin?<\/h3>\n<p>Go to WP Admin &gt; Fast2SMS &gt; OTP &amp; Login and use the test OTP option, which sends a real code to your own phone from the admin area. It sends a real OTP to the number you enter and lets you verify it, so you know your OTP ID, wallet and templates work before customers try.<\/p>\n<h3>Where can I see if an OTP failed?<\/h3>\n<p>Open the Logs tab in WP Admin &gt; Fast2SMS. Each row shows the event, channel, masked number, status, error and time. The Dashboard also shows 30-day counts for sent, failed, OTPs sent and OTPs verified, which helps you spot a pattern.<\/p>\n<h3>What mobile number format does the plugin accept?<\/h3>\n<p>The plugin works with Indian 10-digit mobile numbers only, so customers should type the plain 10-digit number they use for SMS or WhatsApp. Ask customers to enter their 10-digit number and check the masked number shown on the OTP box, such as 98XXXXXX10. If it is wrong, they can tap Edit and correct it.<\/p>\n<h3>Can customers outside India get a WooCommerce OTP from this plugin?<\/h3>\n<p>No, the plugin is built for India only and sends OTPs to Indian 10-digit mobile numbers, so a foreign number will not get a code. Customers with foreign numbers will not receive an OTP, so keep a password login open for them if you sell abroad.<\/p>\n<h3>Why is the checkout OTP box not showing?<\/h3>\n<p>Checkout OTP verification works with the classic (shortcode) WooCommerce checkout only, not the block checkout, so a page built with the Checkout block will not show it. If your checkout uses the Checkout block, the box will not appear. Also check whether &#8220;skip for logged-in customers&#8221; is on, which hides it for signed-in buyers.<\/p>\n<h3>Why can&#8217;t my administrator log in with OTP?<\/h3>\n<p>The plugin has a setting that blocks OTP-only login for administrators as protection against SIM swap, and it is probably switched on. If it is on, admin accounts log in with their password. Customers and other roles can still use Login with OTP.<\/p>\n<h3>Do I need a server cron for WooCommerce OTP and SMS?<\/h3>\n<p>A server cron is strongly recommended for reliable delivery of queued messages such as order updates, campaigns and retries, because WP-Cron only runs when someone visits. The Dashboard gives you a ready cron URL, or you can run the WP-CLI worker.<\/p>\n<h3>How do I run the Fast2SMS WP-CLI worker?<\/h3>\n<p>Run <code>wp fast2sms worker<\/code> from your server with WP-CLI, usually on a schedule through your hosting panel&#8217;s cron, so queued messages keep moving. The Dashboard shows worker status, so you can confirm it is running and the &#8220;in queue&#8221; count is not growing.<\/p>\n<h3>What happens when my Fast2SMS wallet runs out?<\/h3>\n<p>OTPs and notifications stop sending until you recharge the wallet, so customers trying to log in or check out see no code at all. The header on WP Admin &gt; Fast2SMS shows your balance with a recharge link, and in Settings you can get an email alert when the balance drops below an amount you choose.<\/p>\n<h3>Am I charged for OTPs that were not delivered?<\/h3>\n<p>WhatsApp is billed on delivery, and failed WhatsApp messages are refunded within 48 hours, so you do not pay for a WhatsApp OTP that never arrived. SMS is billed at your DLT SMS rate. For how undelivered SMS are treated on your account, check with Fast2SMS support at support@fast2sms.com.<\/p>\n<h3>Why are customers on the same Wi-Fi blocked from OTP?<\/h3>\n<p>They share one IP address, and the plugin allows 10 OTP sends per IP address in 10 minutes to stop bots flooding your store. In an office or hostel, many people can hit that together. Ask the customer to wait a few minutes or switch to mobile data.<\/p>\n<h3>Can I change the OTP resend timer?<\/h3>\n<p>Yes, the resend countdown can be set anywhere from 10 to 300 seconds on the OTP &amp; Login tab of the plugin settings. A value around 30 to 60 seconds stops customers from tapping Resend before the first code arrives and wasting their 3 sends.<\/p>\n<h3>Why did OTP stop after I changed my Fast2SMS API key?<\/h3>\n<p>The plugin is still using the old API key, which your Fast2SMS account no longer accepts, so every OTP request fails. It shows a warning across wp-admin when the key is revoked or changed. Paste the new key on the Dashboard, where it is checked live and stored encrypted.<\/p>\n<h3>Can the OTP message include my store name?<\/h3>\n<p>Yes, your store name can appear in the OTP if your approved DLT template has an extra variable slot for it. The plugin&#8217;s OTP template variables setting fills extra slots with the OTP again, phone, site name, site URL, date, time or static text. The final text must still match the approved template.<\/p>\n<h3>Why do customers get the OTP on SMS instead of WhatsApp?<\/h3>\n<p>Smart OTP fallback sent it by SMS because WhatsApp did not go through for that number, or your OTP ID is set to SMS first. You control the order and fallback at Fast2SMS against the OTP ID.<\/p>\n<h3>Is there a free WooCommerce OTP plugin with logs for troubleshooting?<\/h3>\n<p>Yes, &#8220;Fast2SMS &#8211; OTP Login &amp; SMS Notifications&#8221; is a free WooCommerce OTP plugin on WordPress.org with a Logs tab, 30-day OTP stats and an admin test OTP. There is no licence fee; you pay only per message from your Fast2SMS wallet.<\/p>\n<h3>Who can help me fix OTP delivery on my WooCommerce store?<\/h3>\n<p>Fast2SMS support can check your OTP ID, DLT setup and logs with you on a call or screen share, free of charge. Email support@fast2sms.com, call +91-6262778822, or <a href=\"https:\/\/www.fast2sms.com\/meet\" target=\"_blank\" rel=\"noopener\">book a free meeting<\/a>. Setup steps are also in the <a href=\"https:\/\/www.fast2sms.com\/help\/fast2sms-wordpress-plugin-setup-guide\/\" target=\"_blank\" rel=\"noopener\">plugin setup guide<\/a> and on <a href=\"https:\/\/docs.fast2sms.com\" target=\"_blank\" rel=\"noopener\">docs.fast2sms.com<\/a>.<\/p>\n<h2 id=\"wrap-up\">Fix the cause, not the symptom<\/h2>\n<p>Most WooCommerce OTP problems come down to five things: wallet, API key, OTP ID, DLT, and the customer&#8217;s number. Run the admin test, read the Logs, turn on Smart OTP fallback, keep your OTP template under Transactional, and set a sensible resend countdown. If you are also wondering what all this costs per month, read <a href=\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-cost\/\" target=\"_blank\" rel=\"noopener\">WooCommerce OTP cost explained<\/a>, and for other questions see the <a href=\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-plugin-faq\/\" target=\"_blank\" rel=\"noopener\">WooCommerce OTP plugin FAQ<\/a>.<\/p>\n<p style=\"text-align:center;margin:28px 0;\"><a href=\"https:\/\/wordpress.org\/plugins\/fast2sms\/\" target=\"_blank\" rel=\"noopener\" style=\"display:inline-block;background:#e63329;color:#ffffff;font-size:18px;font-weight:700;padding:14px 40px;border-radius:40px;text-decoration:none;box-shadow:0 3px 8px rgba(0,0,0,0.22);margin:6px;\">Install Free Plugin<\/a><a href=\"https:\/\/www.fast2sms.com\" target=\"_blank\" rel=\"noopener\" style=\"display:inline-block;background:#e63329;color:#ffffff;font-size:18px;font-weight:700;padding:14px 40px;border-radius:40px;text-decoration:none;box-shadow:0 3px 8px rgba(0,0,0,0.22);margin:6px;\">Signup Now<\/a><\/p>\n<p>Need help? <a href=\"https:\/\/www.fast2sms.com\/meet\" target=\"_blank\" rel=\"noopener\">Schedule a free meeting<\/a> &middot; <a href=\"mailto:support@fast2sms.com\">support@fast2sms.com<\/a> &middot; +91-6262778822 &middot; Sales and volume pricing: +91-6262778811<\/p>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Why is my WooCommerce OTP not working?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The usual causes are an empty Fast2SMS wallet, a revoked API key, a wrong OTP ID, a DLT problem with the SMS template or header, or a number that is not on WhatsApp with no fallback. Run the admin test OTP first to see whether the problem is your setup or the customer\\u0027s number.\"}},{\"@type\":\"Question\",\"name\":\"Why am I not getting OTP from a WooCommerce store?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Check that you typed your own 10-digit Indian mobile number correctly, that your phone has signal or internet, and that you looked in both SMS and WhatsApp. If you tapped Resend several times, wait 10 minutes because the store limits sends to 3 per number in that window.\"}},{\"@type\":\"Question\",\"name\":\"Why is SMS OTP not received on WooCommerce when WhatsApp works?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"SMS OTP depends on DLT and WhatsApp does not, so the SMS side usually has a header, template, category or PE-TM chain problem. Check that your OTP template is approved under Transactional, the header matches, and your entity is bound to a registered TMD.\"}},{\"@type\":\"Question\",\"name\":\"Why is WhatsApp not sending OTP to some customers?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Most often the customer\\u0027s number is not registered on WhatsApp, or their phone has no internet when the OTP is sent, so the message cannot be delivered. Turn on Smart OTP with automatic SMS fallback at Fast2SMS so those customers get the code by SMS instead. Failed WhatsApp messages are refunded within 48 hours.\"}},{\"@type\":\"Question\",\"name\":\"Does OTP SMS reach numbers on DND?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, OTP SMS reaches DND numbers when the OTP template is registered in the Transactional category, which now covers OTPs for any business. Promotional messages do not reach DND numbers, so an OTP registered as Promotional will miss those customers.\"}},{\"@type\":\"Question\",\"name\":\"Which DLT category should a WooCommerce OTP template use?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Register your WooCommerce OTP template in the Transactional category, which now covers OTP messages for any business and is the right choice for login, signup and checkout codes. The current DLT categories are Transactional, Service Implicit and Promotional, since Service Explicit was merged into Promotional.\"}},{\"@type\":\"Question\",\"name\":\"What is the PE-TM chain and can it block OTP SMS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, a broken PE-TM chain can block OTP SMS. It is the link between your registered entity and the telemarketer (TMD) that sends your SMS, and from 30th September messages with a mismatched chain are blocked. Fast2SMS\\u0027s TMD ID is 1702178720558766591 (SID GROUPS PRIVATE LIMITED).\"}},{\"@type\":\"Question\",\"name\":\"Does WhatsApp OTP need DLT registration?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No, WhatsApp OTP does not need DLT registration, because the DLT rules for headers and templates apply only to SMS sent to Indian mobile numbers. That is why many WooCommerce stores start with WhatsApp OTP and add SMS fallback once their DLT header and Transactional template are approved.\"}},{\"@type\":\"Question\",\"name\":\"How many times can a customer resend OTP in WooCommerce?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The plugin allows up to 3 OTP sends per mobile number in 10 minutes, and up to 10 sends per IP address in 10 minutes. After that the customer has to wait. You also set a resend countdown between 10 and 300 seconds.\"}},{\"@type\":\"Question\",\"name\":\"Why does WooCommerce OTP say too many attempts?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The customer has hit a security limit: 3 sends per number in 10 minutes, 10 sends per IP in 10 minutes, or 5 wrong entries for one OTP. Waiting 10 minutes and then requesting a single fresh code solves it in almost every case.\"}},{\"@type\":\"Question\",\"name\":\"How long is a WooCommerce OTP valid?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Each OTP sent by the plugin is valid for 10 minutes from the moment it is sent, after which the customer must request a fresh code. After a correct OTP, the plugin issues a single-use verification token that stays valid for 15 minutes, so the customer should finish logging in or placing the order within that time.\"}},{\"@type\":\"Question\",\"name\":\"How many wrong OTP entries are allowed?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A customer gets 5 verify attempts per OTP. After the fifth wrong entry that code cannot be used, and they need to request a new OTP. This stops anyone from guessing codes on your login or checkout page.\"}},{\"@type\":\"Question\",\"name\":\"Why is the OTP rejected even when typed correctly?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The customer is often typing an older code after tapping Resend, or the code has passed its 10-minute validity, so the store treats it as wrong. It also fails if they edited the number after the code was sent. Ask them to use the most recent code or request a fresh one.\"}},{\"@type\":\"Question\",\"name\":\"Why does the OTP come late?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Late OTPs usually come from weak signal, a phone that is offline for WhatsApp, or a single channel with no fallback. A resend countdown of 30 to 60 seconds and Smart OTP SMS fallback reduce complaints. Delivery is never guaranteed on any network, so fallback matters.\"}},{\"@type\":\"Question\",\"name\":\"What is Smart OTP fallback?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Smart OTP sends the OTP on WhatsApp first and falls back to SMS automatically if WhatsApp does not go through, or the reverse. You set it at Fast2SMS against your OTP ID, and the plugin only needs that OTP ID on the OTP \\u0026 Login tab.\"}},{\"@type\":\"Question\",\"name\":\"How do I test OTP from the WooCommerce admin?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Go to WP Admin \\u003e Fast2SMS \\u003e OTP \\u0026 Login and use the test OTP option, which sends a real code to your own phone from the admin area. It sends a real OTP to the number you enter and lets you verify it, so you know your OTP ID, wallet and templates work before customers try.\"}},{\"@type\":\"Question\",\"name\":\"Where can I see if an OTP failed?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Open the Logs tab in WP Admin \\u003e Fast2SMS. Each row shows the event, channel, masked number, status, error and time. The Dashboard also shows 30-day counts for sent, failed, OTPs sent and OTPs verified, which helps you spot a pattern.\"}},{\"@type\":\"Question\",\"name\":\"What mobile number format does the plugin accept?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The plugin works with Indian 10-digit mobile numbers only, so customers should type the plain 10-digit number they use for SMS or WhatsApp. Ask customers to enter their 10-digit number and check the masked number shown on the OTP box, such as 98XXXXXX10. If it is wrong, they can tap Edit and correct it.\"}},{\"@type\":\"Question\",\"name\":\"Can customers outside India get a WooCommerce OTP from this plugin?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No, the plugin is built for India only and sends OTPs to Indian 10-digit mobile numbers, so a foreign number will not get a code. Customers with foreign numbers will not receive an OTP, so keep a password login open for them if you sell abroad.\"}},{\"@type\":\"Question\",\"name\":\"Why is the checkout OTP box not showing?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Checkout OTP verification works with the classic (shortcode) WooCommerce checkout only, not the block checkout, so a page built with the Checkout block will not show it. If your checkout uses the Checkout block, the box will not appear. Also check whether \\\"skip for logged-in customers\\\" is on, which hides it for signed-in buyers.\"}},{\"@type\":\"Question\",\"name\":\"Why can\\u0027t my administrator log in with OTP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The plugin has a setting that blocks OTP-only login for administrators as protection against SIM swap, and it is probably switched on. If it is on, admin accounts log in with their password. Customers and other roles can still use Login with OTP.\"}},{\"@type\":\"Question\",\"name\":\"Do I need a server cron for WooCommerce OTP and SMS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A server cron is strongly recommended for reliable delivery of queued messages such as order updates, campaigns and retries, because WP-Cron only runs when someone visits. The Dashboard gives you a ready cron URL, or you can run the WP-CLI worker.\"}},{\"@type\":\"Question\",\"name\":\"How do I run the Fast2SMS WP-CLI worker?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Run wp fast2sms worker from your server with WP-CLI, usually on a schedule through your hosting panel\\u0027s cron, so queued messages keep moving. The Dashboard shows worker status, so you can confirm it is running and the \\\"in queue\\\" count is not growing.\"}},{\"@type\":\"Question\",\"name\":\"What happens when my Fast2SMS wallet runs out?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"OTPs and notifications stop sending until you recharge the wallet, so customers trying to log in or check out see no code at all. The header on WP Admin \\u003e Fast2SMS shows your balance with a recharge link, and in Settings you can get an email alert when the balance drops below an amount you choose.\"}},{\"@type\":\"Question\",\"name\":\"Am I charged for OTPs that were not delivered?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"WhatsApp is billed on delivery, and failed WhatsApp messages are refunded within 48 hours, so you do not pay for a WhatsApp OTP that never arrived. SMS is billed at your DLT SMS rate. For how undelivered SMS are treated on your account, check with Fast2SMS support at support@fast2sms.com.\"}},{\"@type\":\"Question\",\"name\":\"Why are customers on the same Wi-Fi blocked from OTP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"They share one IP address, and the plugin allows 10 OTP sends per IP address in 10 minutes to stop bots flooding your store. In an office or hostel, many people can hit that together. Ask the customer to wait a few minutes or switch to mobile data.\"}},{\"@type\":\"Question\",\"name\":\"Can I change the OTP resend timer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, the resend countdown can be set anywhere from 10 to 300 seconds on the OTP \\u0026 Login tab of the plugin settings. A value around 30 to 60 seconds stops customers from tapping Resend before the first code arrives and wasting their 3 sends.\"}},{\"@type\":\"Question\",\"name\":\"Why did OTP stop after I changed my Fast2SMS API key?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The plugin is still using the old API key, which your Fast2SMS account no longer accepts, so every OTP request fails. It shows a warning across wp-admin when the key is revoked or changed. Paste the new key on the Dashboard, where it is checked live and stored encrypted.\"}},{\"@type\":\"Question\",\"name\":\"Can the OTP message include my store name?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, your store name can appear in the OTP if your approved DLT template has an extra variable slot for it. The plugin\\u0027s OTP template variables setting fills extra slots with the OTP again, phone, site name, site URL, date, time or static text. The final text must still match the approved template.\"}},{\"@type\":\"Question\",\"name\":\"Why do customers get the OTP on SMS instead of WhatsApp?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Smart OTP fallback sent it by SMS because WhatsApp did not go through for that number, or your OTP ID is set to SMS first. You control the order and fallback at Fast2SMS against the OTP ID.\"}},{\"@type\":\"Question\",\"name\":\"Is there a free WooCommerce OTP plugin with logs for troubleshooting?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, \\\"Fast2SMS - OTP Login \\u0026 SMS Notifications\\\" is a free WooCommerce OTP plugin on WordPress.org with a Logs tab, 30-day OTP stats and an admin test OTP. There is no licence fee; you pay only per message from your Fast2SMS wallet.\"}},{\"@type\":\"Question\",\"name\":\"Who can help me fix OTP delivery on my WooCommerce store?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Fast2SMS support can check your OTP ID, DLT setup and logs with you on a call or screen share, free of charge. Email support@fast2sms.com, call +91-6262778822, or book a free meeting. Setup steps are also in the plugin setup guide and on docs.fast2sms.com.\"}}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Troubleshoot WooCommerce OTP not received on SMS or WhatsApp: six symptoms, their causes and fixes, plus the plugin security limits explained.<\/p>\n","protected":false},"author":11,"featured_media":17409,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"woocommerce otp not received","_yoast_wpseo_title":"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP | Fast2SMS","_yoast_wpseo_metadesc":"WooCommerce OTP not received or not working? Match the symptom to the cause and fix: wallet, DLT template, PE-TM chain, WhatsApp, limits and expired codes.","footnotes":""},"categories":[2,5,26,27],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP | Fast2SMS<\/title>\n<meta name=\"description\" content=\"WooCommerce OTP not received or not working? Match the symptom to the cause and fix: wallet, DLT template, PE-TM chain, WhatsApp, limits and expired codes.\" \/>\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\/woocommerce-otp-not-received\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP | Fast2SMS\" \/>\n<meta property=\"og:description\" content=\"WooCommerce OTP not received or not working? Match the symptom to the cause and fix: wallet, DLT template, PE-TM chain, WhatsApp, limits and expired codes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/\" \/>\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-09-29T05:00:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-30T04:04:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/09\/woocommerce-otp-not-received-1.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=\"20 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/\"},\"author\":{\"name\":\"Fast2SMS\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/#\/schema\/person\/9549639ed9c1998dbed435d88b9e70c9\"},\"headline\":\"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP\",\"datePublished\":\"2026-09-29T05:00:47+00:00\",\"dateModified\":\"2026-09-30T04:04:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/\"},\"wordCount\":3933,\"publisher\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/#organization\"},\"articleSection\":[\"Blog\",\"OTP\",\"WooCommerce\",\"WordPress Plugin\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/\",\"url\":\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/\",\"name\":\"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP | Fast2SMS\",\"isPartOf\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/#website\"},\"datePublished\":\"2026-09-29T05:00:47+00:00\",\"dateModified\":\"2026-09-30T04:04:28+00:00\",\"description\":\"WooCommerce OTP not received or not working? Match the symptom to the cause and fix: wallet, DLT template, PE-TM chain, WhatsApp, limits and expired codes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.fast2sms.com\/help\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP\"}]},{\"@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":"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP | Fast2SMS","description":"WooCommerce OTP not received or not working? Match the symptom to the cause and fix: wallet, DLT template, PE-TM chain, WhatsApp, limits and expired codes.","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\/woocommerce-otp-not-received\/","og_locale":"en_US","og_type":"article","og_title":"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP | Fast2SMS","og_description":"WooCommerce OTP not received or not working? Match the symptom to the cause and fix: wallet, DLT template, PE-TM chain, WhatsApp, limits and expired codes.","og_url":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/","og_site_name":"Fast2SMS","article_publisher":"https:\/\/www.facebook.com\/Fast2SMS\/","article_published_time":"2026-09-29T05:00:47+00:00","article_modified_time":"2026-09-30T04:04:28+00:00","og_image":[{"width":1600,"height":900,"url":"https:\/\/www.fast2sms.com\/help\/wp-content\/uploads\/2026\/09\/woocommerce-otp-not-received-1.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":"20 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/#article","isPartOf":{"@id":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/"},"author":{"name":"Fast2SMS","@id":"https:\/\/www.fast2sms.com\/help\/#\/schema\/person\/9549639ed9c1998dbed435d88b9e70c9"},"headline":"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP","datePublished":"2026-09-29T05:00:47+00:00","dateModified":"2026-09-30T04:04:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/"},"wordCount":3933,"publisher":{"@id":"https:\/\/www.fast2sms.com\/help\/#organization"},"articleSection":["Blog","OTP","WooCommerce","WordPress Plugin"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/","url":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/","name":"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP | Fast2SMS","isPartOf":{"@id":"https:\/\/www.fast2sms.com\/help\/#website"},"datePublished":"2026-09-29T05:00:47+00:00","dateModified":"2026-09-30T04:04:28+00:00","description":"WooCommerce OTP not received or not working? Match the symptom to the cause and fix: wallet, DLT template, PE-TM chain, WhatsApp, limits and expired codes.","breadcrumb":{"@id":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-not-received\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fast2sms.com\/help\/"},{"@type":"ListItem","position":2,"name":"WooCommerce OTP Not Received? Causes and Fixes for SMS and WhatsApp OTP"}]},{"@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\/17412"}],"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=17412"}],"version-history":[{"count":1,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/posts\/17412\/revisions"}],"predecessor-version":[{"id":17459,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/posts\/17412\/revisions\/17459"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/media\/17409"}],"wp:attachment":[{"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/media?parent=17412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/categories?post=17412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fast2sms.com\/help\/wp-json\/wp\/v2\/tags?post=17412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}