Built for Indian teams
DLT and WhatsApp templates, checked before the gateway checks them.
Indian transactional messaging fails for reasons no global sandbox models: a body that no longer matches its registered DLT template, a WhatsApp template whose parameters have drifted, TRAI quiet hours. Those failures normally arrive as a gateway rejection at 11pm. Here they arrive in your test output.
DLT template match
Every SMS compared verbatim, the way the gateway compares it.
DLT template registry
Register your approved bodies with {#var#} placeholders once. Every SMS is then flagged match, mismatch or unknown, per message, in the inbox and in the API your tests read.
WhatsApp template registry
A template send carries only a name and ordered parameters. Register the approved body and the sandbox renders what the customer will actually read - so a parameter in the wrong slot is visible, not invisible.
Realistic India profile
Operator latency, DND behaviour and quiet-hour handling, so a flow scheduled for 6am is tested the way the network will treat it rather than the way your unit tests assume.
Why it matters
The failures this catches are the expensive kind.
A template drifts by one character
Someone changes "5 minutes" to "10 minutes" in the code but not on the DLT portal. Every OTP is rejected by the operator; sign-ups stop; nothing in your monitoring says "template mismatch". In the sandbox that diff is on screen the first time the test runs.
Parameters in the wrong order
The WhatsApp send succeeds and the API returns a message id, so your logs look healthy - while the customer reads that a payment of TC-1103 is due on Ravi Naidu. Rendering the approved body is the only way to see it.
Testing against real recipients
Staging picks up a production export and a stranger gets an SMS about somebody else's flat. Because Notify-Sim has no delivery route at all, that class of incident becomes impossible rather than unlikely.
Retries you have never exercised
Gateway 5xx and delivery-report failures are rare in production and impossible to schedule - so the code that handles them is usually the least tested code you have. Here you turn them on.
Start in about two minutes
Send one message. Watch it arrive as a phone screen.
Create a project, copy the environment block for your stack, and run the flow you were about to test anyway. The free tier does not expire and needs no card.