> For the complete documentation index, see [llms.txt](https://docs.idlayr.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.idlayr.com/products/number-verification/reverse-sms/testing.md).

# Testing in sandbox

{% hint style="info" %}
**Backend API** · Early Access
{% endhint %}

Test Reverse SMS without real SMS traffic by using a sandbox project. The last digits of the `phone_number` drive the simulated outcome — no real outbound SMS is sent, no real carrier billing.

See [Project modes](/get-started/concepts/project-modes.md) for the general sandbox model.

## How sandbox testing works

In sandbox mode, IDlayr returns simulated SMS routing details on the create response and simulates the carrier-side verification once the device-side step "happens". The shape of the response is the same as production — your integration code doesn't need to branch on environment.

Your app still opens the SMS composer (or you skip that step in automated tests) — the sandbox doesn't require an SMS to actually leave the device. The simulated outcome is driven by the MSISDN suffix on the create call.

## MSISDN suffix map

| MSISDN ends with                     | `match` | `status`    |
| ------------------------------------ | ------- | ----------- |
| Even digit (`0`, `2`, `4`, `6`, `8`) | `true`  | `COMPLETED` |
| Odd digit (`1`, `3`, `5`, `7`, `9`)  | `false` | `COMPLETED` |
| `00`, `55`, `99`                     | —       | `ERROR`     |

For the cross-product overview of sandbox — what's simulated, what isn't, sandbox retention — see [Sandbox testing](/get-started/sandbox-testing.md).

## Testing without sending an SMS

Because Reverse SMS doesn't use an SDK, sandbox testing is straightforward:

* **Backend-only tests** — call `POST /v1/number-verification/reverse-sms-checks` with a sandbox MSISDN, then poll or wait for the simulated callback. No device involved.
* **End-to-end tests with the composer step** — run the full app flow on a simulator or emulator; the `sms:` URL opens the composer, but you don't have to send anything in sandbox mode. The check still resolves based on the create-time MSISDN.

## What sandbox doesn't simulate

* Carrier-side SMS delivery delays and timing variation.
* Country-specific SMS pricing or regulatory restrictions.
* User cancellation of the SMS composer in real-world conditions.

Run a small set of production checks against real numbers in your target markets before going live, particularly to validate carrier coverage for user-originated SMS.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.idlayr.com/products/number-verification/reverse-sms/testing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
