Notify-Sim sandbox

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.

1707178343191145417 match
Your VRIDHI verification code is 482913. Valid for 5 minutes. Do not share it with anyone. - VRIDHI
1707178343191145417 mismatch would be rejected by the gateway
Your VRIDHI verification code is 482913. Valid for 10 minutes. Do not share it with anyone! - VRIDHI
1707178343191999999 unknown template
Sent with a content id that is not registered on this project - caught here instead of on the gateway.

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.