Every SMS submitted to an Indian operator carries a DLT scrubbing charge and a carrier fee, whether or not the number on the other end is even real. Here’s what it costs to send to junk numbers, and what filtering them out before submission is actually worth.

Table of Contents
- The Short Answer
- TL;DR
- What “Junk Number” Actually Means Here
- The Cost Stack Behind Every SMS Send
- Where This Sits Next to SMPPCenter’s Other Filters
- Who This Actually Moves the Needle For
- What to Ask Before You Rely On It
- Next Steps
- FAQs
The Short Answer
The DLT scrubbing charge and the carrier’s per-message fee both get billed the moment a message is submitted to the operator, not when it’s confirmed delivered. So a message sent to a malformed, disconnected, or otherwise junk number costs the same as one that lands successfully. SMPPCenter’s junk number filtering strips those numbers out of a send list before submission, which means the savings show up as fees you never get charged rather than refunds you have to chase. It’s a smaller, quieter feature than most of what gets marketing attention, but at aggregator volume it’s one of the few cost levers that’s purely upside: you’re not sending fewer good messages, you’re just not paying to send bad ones.
TL;DR
Operators in India charge a DLT scrubbing fee (roughly 2.5 paise plus GST per SMS since September 2020) on every commercial message submitted to them, on top of the regular carrier rate, regardless of whether that number ever receives the message. A junk, malformed, or dead number costs exactly what a good one costs at the point of submission. Filtering those numbers out before the message leaves your queue avoids that cost entirely rather than recovering it after the fact. SMPPCenter’s features page already lists mobile series validation by country as a baseline capability; its dedicated junk number filtering plugin is a more deliberate, paid layer specifically aimed at this cost question, and the two likely overlap in practice, which is worth clarifying directly with SMPPCenter before you assume what’s covered where.
What “Junk Number” Actually Means Here
Worth being precise about this, because “junk number” gets used loosely. It’s not the same thing as a number on a do-not-call list, or a number that’s opted out, or a number flagged for spam complaints. Those are compliance and consent problems, and SMPPCenter already handles them through separate mechanisms, NCPR/DND scrubbing on one side and spam/blocklist/sender-name filtering on the other.
A junk number, in the sense that matters for this plugin, is one that’s structurally wrong or dead before you even get to compliance questions: too few or too many digits, a prefix that doesn’t correspond to any issued mobile series for that country, a landline number sitting in a column that was supposed to be mobile-only, a duplicate entry from a merged list, or a number that’s been disconnected long enough that the operator’s own number-portability and churn data would flag it. None of that is about whether the recipient wants your message. It’s about whether there’s a real, reachable handset on the other end at all.
A few concrete patterns show up constantly in real lists: a phone number field that accidentally captured a landline extension or an internal employee ID during a messy form migration; a 9-digit entry where a leading zero or country code got dropped somewhere between systems; the same person’s number entered three different ways across three different campaigns, each treated as a separate send; or a number copied from an old spreadsheet that nobody’s touched since the series it belongs to was reassigned. None of these are edge cases. They’re the ordinary residue of running any list through enough hands, systems, and years.
This matters because a dirty list isn’t rare. Lists built from form scraping, CSV merges across campaigns, manual data entry, or years of accumulated CRM records routinely carry a few percent of numbers that fall into this bucket, and that rate climbs fast for older lists or ones assembled from multiple sources without validation at the point of entry.
There’s a second, less obvious source of junk numbers that’s specific to India and worth understanding on its own: number recycling. Under the Department of Telecommunications’ rules, a mobile number that’s been deactivated, through non-payment, SIM expiry, or a subscriber simply walking away, goes back into the pool after a 90-day cooling-off period and can be reissued to a different person. The Supreme Court upheld this practice directly, declining to order telecom operators to stop reissuing deactivated numbers when asked to, on the reasoning that numbering resources are scarce and have to be recycled. The practical consequence for anyone holding a customer database for more than a year or two is that some of those numbers no longer belong to the person your records say they belong to. That number isn’t technically junk in the format sense, it’s a real, active, reachable mobile number, but it’s junk relative to the record you have for it, and depending on how aggressively a filtering tool is built, this category of staleness may or may not be something it catches at all. It’s a different failure mode than a malformed digit string, and worth asking about separately.
The Cost Stack Behind Every SMS Send
Here’s the part that makes junk filtering an economics question rather than a nice-to-have. Since September 1, 2020, Indian telecom operators have levied a DLT scrubbing charge, commonly cited around 2.5 paise (Rs 0.025) plus GST per SMS, on commercial messages submitted to their network, on top of whatever your existing carrier rate is. That charge exists because the operator has to check every message against the registered DLT templates and headers before it can be delivered, and that checking happens at submission time. It’s not contingent on the message actually reaching a working handset.
The carrier’s own per-message rate works the same way in practice. SMS billing across the industry is built around submission, not confirmed delivery; a message that bounces because the number is disconnected or malformed still consumed a slot in your outbound batch and still got billed by the operator for the attempt. Neither of these costs is SMPPCenter-specific; they’re how the Indian SMS supply chain is billed generally, and SMPPCenter passes them through like any other platform sending over the same operator connections.
This is worth sitting with for a second, because it’s counterintuitive if you’re used to thinking about advertising or email economics, where a bounced send is usually free or close to it. SMS doesn’t work that way. The operator’s gateway has to receive the message, check it against the DLT system, and attempt the handoff to the destination network before it can determine the number is unreachable, and all of that processing happens regardless of outcome. There’s no equivalent of an email bounce that costs nothing; every attempt is a billable event the moment it’s submitted.
Run that against actual list quality and the math gets concrete fast. A list with even a modest 3 to 5 percent junk-number rate, which is unremarkable for an aggregator pulling leads from multiple downline resellers or an enterprise merging CRM exports, means 3 to 5 percent of every campaign’s spend is going toward messages that were never going to land anywhere. At six-figure or seven-figure monthly volumes, that’s not rounding error.
Here’s what that looks like using just the DLT scrubbing charge on its own, at roughly 0.0295 INR per message (the 0.025 INR rate plus 18% GST), and leaving the carrier’s own per-message rate out entirely since that varies by route and isn’t published by any platform:
| Monthly volume | 1% junk rate | 3% junk rate | 5% junk rate | 10% junk rate |
|---|---|---|---|---|
| 1,000,000 messages | ~295 INR | ~885 INR | ~1,475 INR | ~2,950 INR |
| 10,000,000 messages | ~2,950 INR | ~8,850 INR | ~14,750 INR | ~29,500 INR |
| 50,000,000 messages | ~14,750 INR | ~44,250 INR | ~73,750 INR | ~147,500 INR |
That’s the DLT charge alone, every month, recurring, on messages that were never going to deliver regardless of content, consent, or anything else. Add the carrier’s own base rate on top, whatever that happens to be on a given route, and the real number is meaningfully higher. None of this requires the junk rate to be dramatic to matter. A platform processing tens of millions of messages a month at a 3 to 5 percent junk rate, which is an ordinary outcome for lists nobody’s actively scrubbed, is paying a five-figure monthly sum in DLT charges alone for messages that had no chance of landing anywhere.
Where This Sits Next to SMPPCenter’s Other Filters
SMPPCenter’s features page already names mobile series validation by country as a built-in capability, which is clearly addressing a related problem: confirming a number actually falls within a country’s issued mobile ranges before treating it as sendable. The junk number filtering plugin is described as stripping junk number data out before it reaches the operator specifically to save on DLT and SMS cost, which sounds like the same underlying mechanic applied with a sharper framing around cost rather than just format correctness.
Whether these are the same check wearing two names, or the plugin is a deeper, paid layer on top of the baseline validation, isn’t something that’s spelled out publicly, and it’s a reasonable thing to ask SMPPCenter directly before assuming either answer. What is clear is that both sit apart from NCPR/DND scrubbing (consent-based), spam and blocklist filtering (content and reputation-based), and sender-name or transaction-ID filtering (fraud-pattern-based). Junk number filtering is strictly about structural validity: is this a real, correctly formatted, plausibly reachable number, independent of whether the recipient wants the message or whether the content is clean.
That distinction matters operationally. A number can pass every compliance and content check and still be junk, and a number can be perfectly real and reachable while failing a consent check. They’re different gates, and a platform that only runs one of them is leaving either cost or compliance exposure on the table.
Who This Actually Moves the Needle For
This is squarely an aggregator and reseller economics story, not an end-user feature. If you’re running your own campaigns off a clean, small, actively maintained list, the savings are real but modest. The picture changes for anyone operating at the volumes this platform is actually built for: aggregators consolidating traffic from multiple downline resellers whose list hygiene they don’t directly control, resellers reselling SMS credit to clients who hand over whatever list they have on hand, and enterprises merging years of CRM exports where nobody’s gone back to re-validate old entries.
In those cases, the junk rate isn’t something you can just assume away, and the cost of not filtering compounds with scale rather than staying flat. A reseller managing margin on resold SMS credit is effectively eating the DLT and carrier charge on every junk number in a client’s uploaded list unless something catches it first. That’s a direct hit to resale margin, not just an abstract inefficiency.
Banks and fintechs sit in a related but slightly different spot, and it connects to the kind of regulatory expectations already covered for messaging software in that sector. Their customer databases tend to be old, built up over years of onboarding, and the number-recycling problem described above hits them harder than it hits a marketing list refreshed every quarter. A multi-year-old mobile number on a KYC record isn’t necessarily still connected to the account holder, and running statements, alerts, or promotional sends against that database without any validation layer means some fraction of those messages are landing in front of a complete stranger rather than failing cleanly. That’s a different risk profile from pure cost waste, closer to a privacy and customer-trust question, but it starts from the same root cause: nobody’s checking whether the number is still good before the message goes out.
What to Ask Before You Rely On It
Before building this into your cost model, get specific answers rather than assuming the plugin does everything the name implies:
- Is this a separate paid add-on, and if so, is pricing per-account, per-tier, or usage-based? No price is published on the pricing or integrations pages as of this writing, so confirm directly with sales.
- Does it validate number format and country-series range only, or does it also check against live carrier/portability data for genuinely disconnected numbers?
- Does filtering happen automatically on every send, or does it need to be explicitly enabled per account or per reseller downline?
- Is there a log or report of what got filtered, so you can audit savings and catch false positives, numbers that were real but got miscategorized as junk?
- How does this interact with the mobile series validation already listed on the features page, is one a subset of the other, or are they genuinely independent checks worth running both?
- Does it catch format-level junk only, or does it also flag numbers likely to have been reissued under the 90-day recycling rule, these are two different problems and a format check alone won’t catch the second one.
Next Steps
If list hygiene at volume is actually costing you money every month and nobody’s put a number on it, that’s worth doing before anything else, since the answer usually changes how urgent this is. SMPPCenter’s pricing page lays out the tiers this would sit alongside, and why SMPPCenter covers how the platform positions its cost and operational controls against other SMPP vendors.
FAQs
Does junk number filtering replace NCPR/DND scrubbing?
No. They solve different problems. Junk number filtering checks whether a number is structurally valid and reachable; NCPR/DND scrubbing checks whether a recipient has opted out of promotional contact. A number can pass one check and fail the other.
If a number is junk, does the carrier still charge for the attempt?
Both the DLT scrubbing charge and the standard carrier rate are billed on submission to the operator, not on confirmed delivery, so yes, a message sent to a junk number is generally billed the same as one that delivers successfully.
Is this the same as the mobile series validation already listed on the features page?
It’s not confirmed either way publicly. The two descriptions overlap closely enough that they may be the same underlying check framed differently, or the plugin may add a deeper layer on top. Worth confirming directly with SMPPCenter rather than assuming.
Does this help with messages that fail after submission for other reasons, like network congestion or a switched-off handset?
No. This is specifically about catching structurally invalid or clearly dead numbers before submission. A handset that’s temporarily switched off or a message delayed by network congestion is a delivery-timing issue, not a junk-number issue, and filtering won’t catch it.
Should a reseller apply this at their own account level, or expect each downline client to handle their own list hygiene?
Given that the cost of a junk number is incurred wherever the message actually gets submitted to the operator, it makes more sense for the reseller to apply filtering centrally rather than relying on every downline client to clean their own uploads. A client with a dirty list has no incentive to fix it if the reseller is the one absorbing the DLT and carrier cost on every bad send.
More from our Blog
TRAI URL, APK and Callback Number Whitelisting: What Every SMS Template Actually Needs
Running a CRM, E-Commerce, and Spreadsheet Connector Together on One SMPP Center Account
SMPPCenter’s WhatsApp Business API: Airtel BSP, Templates, and the 2025 Pricing Shift Explained
SMPPCenter’s Default 10 TPS Limit, and How the Pricing Tiers Actually Raise It
DLT Registration in India: Principal Entity, Header, and Template, Explained

