{"id":5756,"date":"2025-09-04T12:38:33","date_gmt":"2025-09-04T12:38:33","guid":{"rendered":"https:\/\/www.wizbrand.com\/tutorials\/?p=5756"},"modified":"2025-09-04T12:38:36","modified_gmt":"2025-09-04T12:38:36","slug":"dlt-registration-in-india","status":"publish","type":"post","link":"https:\/\/www.wizbrand.com\/tutorials\/dlt-registration-in-india\/","title":{"rendered":"DLT Registration in India"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">DLT Registration in India (Mandatory for SMS\/OTP)<\/h1>\n\n\n\n<p>TRAI requires every company to register on a <strong>DLT portal<\/strong> of an Indian telecom operator. Common operators:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Jio (Reliance)<\/strong> \u2192 <a href=\"https:\/\/trueconnect.jio.com\/\">https:\/\/trueconnect.jio.com<\/a><\/li>\n\n\n\n<li><strong>Vodafone Idea (Vi)<\/strong> \u2192 <a href=\"https:\/\/www.vilpower.in\/\">https:\/\/www.vilpower.in<\/a><\/li>\n\n\n\n<li><strong>Airtel<\/strong> \u2192 <a href=\"https:\/\/dltconnect.airtel.in\/\">https:\/\/dltconnect.airtel.in<\/a><\/li>\n\n\n\n<li><strong>BSNL<\/strong> \u2192 <a href=\"https:\/\/www.ucc-bsnl.co.in\/\">https:\/\/www.ucc-bsnl.co.in<\/a><\/li>\n<\/ul>\n\n\n\n<p>You can register on <strong>any one<\/strong>, and it propagates to all operators.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Step-by-step DLT Process<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Entity Registration<\/strong>\n<ul class=\"wp-block-list\">\n<li>Sign up on a DLT portal with company details, PAN, GST, CIN, and KYC docs.<\/li>\n\n\n\n<li>Get an <strong>Entity ID<\/strong> after approval.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Header Registration (Sender ID)<\/strong>\n<ul class=\"wp-block-list\">\n<li>For OTP\/Transactional SMS: choose a <strong>6-character alphabetic ID<\/strong> (e.g., <code>WIZBRD<\/code>).<\/li>\n\n\n\n<li>Each operator must approve it.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Template Registration<\/strong>\n<ul class=\"wp-block-list\">\n<li>Register your OTP and service templates. Example: <code>Your OTP for Wizbrand login is {#var#}. Do not share it with anyone.<\/code><\/li>\n\n\n\n<li><code>{#var#}<\/code> is a variable placeholder.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Scrubbing &amp; Approval<\/strong>\n<ul class=\"wp-block-list\">\n<li>Once approved, you\u2019ll get a <strong>Template ID<\/strong>.<\/li>\n\n\n\n<li>SMS providers (including AWS) must use this ID in their requests.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Integration<\/strong>\n<ul class=\"wp-block-list\">\n<li>Provide <strong>Entity ID, Header (Sender ID), and Template IDs<\/strong> to AWS or your aggregator.<\/li>\n\n\n\n<li>Without this, SMS in India will be dropped by operators.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Excellent and very practical question \ud83d\udc4c Let me clear it up:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83c\udf0d 1. Can SNS Send Worldwide After DLT?<\/h1>\n\n\n\n<p>\u2705 Yes \u2014 Amazon SNS can send SMS to <strong>any country worldwide<\/strong> once your AWS account is out of <strong>SMS sandbox mode<\/strong> and has the proper spend limit approved.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For <strong>India:<\/strong> delivery will only succeed if the SMS matches your <strong>DLT Entity + Header (Sender ID) + Template ID<\/strong>.<\/li>\n\n\n\n<li>For <strong>outside India (e.g., Germany, US):<\/strong> DLT is not required \u2014 SMS will route normally.<\/li>\n<\/ul>\n\n\n\n<p>So, one integration \u2192 global delivery.<br>But <strong>the Sender ID (the \u201cFROM\u201d field)<\/strong> is what changes depending on the country.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udcf2 2. What Will the Receiver See in the \u201cFROM\u201d Field?<\/h1>\n\n\n\n<p>This depends on <strong>region + telecom rules + what you configure<\/strong>:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 India (DLT Mandatory)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The \u201cFROM\u201d = your <strong>DLT-registered Header (Sender ID)<\/strong>, e.g.,\n<ul class=\"wp-block-list\">\n<li>If you register <code>WIZBRD<\/code>, the recipient sees:<br><strong><code>WIZBRD<\/code><\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Random numbers or unregistered headers will be <strong>blocked<\/strong> by Indian operators.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Other Countries<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>US &amp; Canada:<\/strong>\n<ul class=\"wp-block-list\">\n<li>The FROM will be a <strong>long code<\/strong> (regular phone number) or <strong>short code<\/strong> (5\u20136 digit number) that AWS provides.<\/li>\n\n\n\n<li>Sender IDs (like <code>WIZBRD<\/code>) are <strong>not supported<\/strong> by US carriers.<\/li>\n\n\n\n<li>Example: SMS might come from <strong>+1 206 555 1234<\/strong>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Europe (Germany, UK, etc.):<\/strong>\n<ul class=\"wp-block-list\">\n<li>Many carriers support <strong>alphanumeric Sender IDs<\/strong> (up to 11 characters).<\/li>\n\n\n\n<li>If you set <code>WIZBRD<\/code> in SNS attributes, the recipient in Germany will likely see:<br><strong><code>WIZBRD<\/code><\/strong>.<\/li>\n\n\n\n<li>If not supported, it falls back to a random long code.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Middle East (UAE, Saudi, etc.):<\/strong>\n<ul class=\"wp-block-list\">\n<li>Strict \u2014 often require <strong>pre-registration of Sender IDs<\/strong>.<\/li>\n\n\n\n<li>Without approval, FROM will show a random number.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udd27 3. How to Control \u201cFROM\u201d in SNS<\/h1>\n\n\n\n<p>When publishing SMS via SNS, you can set the <code>AWS.SNS.SMS.SenderID<\/code> attribute:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>aws sns publish \\\n  --phone-number \"+919812345678\" \\\n  --message \"Your OTP is 123456\" \\\n  --message-attributes '{\n     \"AWS.SNS.SMS.SenderID\":{\"DataType\":\"String\",\"StringValue\":\"WIZBRD\"},\n     \"AWS.SNS.SMS.SMSType\":{\"DataType\":\"String\",\"StringValue\":\"Transactional\"}\n   }'\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For <strong>India:<\/strong> SenderID must match your <strong>DLT-approved header<\/strong>.<\/li>\n\n\n\n<li>For <strong>Europe:<\/strong> Works fine as alphanumeric ID (if carrier supports).<\/li>\n\n\n\n<li>For <strong>US\/Canada:<\/strong> Ignored \u2192 replaced with AWS-assigned long\/short code.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u2696\ufe0f Summary<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Yes, SNS works worldwide after DLT.<\/strong><\/li>\n\n\n\n<li><strong>In India:<\/strong> FROM = your <strong>DLT Header (Sender ID)<\/strong>.<\/li>\n\n\n\n<li><strong>In Germany\/Europe:<\/strong> FROM = your custom Sender ID (if carrier supports).<\/li>\n\n\n\n<li><strong>In US\/Canada:<\/strong> FROM = AWS-assigned long\/short code (numbers).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\ud83d\udc49 Do you want me to create a <strong>mapping table (India, US, EU, Middle East, etc.)<\/strong> showing what the recipient sees in the FROM field when you send via SNS\/Pinpoint? That way your team knows exactly how the SMS looks in each market.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DLT Registration in India (Mandatory for SMS\/OTP) TRAI requires every company to register on a DLT portal of an Indian [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5756","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/posts\/5756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/comments?post=5756"}],"version-history":[{"count":1,"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/posts\/5756\/revisions"}],"predecessor-version":[{"id":5757,"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/posts\/5756\/revisions\/5757"}],"wp:attachment":[{"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/media?parent=5756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/categories?post=5756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wizbrand.com\/tutorials\/wp-json\/wp\/v2\/tags?post=5756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}