> 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/prerequisites.md).

# Prerequisites

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

What you need in place before writing the first line of integration code.

## On the IDlayr side

* **An approved IDlayr project** with the `reverse_sms` scope on its OAuth2 credentials. Projects are created by your IDlayr administrator via the Enterprise Portal — see [Projects](/get-started/concepts/projects.md). Each project is approved per use case; allow time for the approval flow before going live.
* **The project's `client_id` and `client_secret`.** See [Credentials](/get-started/concepts/credentials.md).
* **Production or sandbox mode** decided. Sandbox lets you test the full flow without real SMS traffic. See [Project modes](/get-started/concepts/project-modes.md).

{% hint style="warning" %}
Reverse SMS is currently **Early Access**. Production approval and rollout are gated on a per-use-case basis. Contact your IDlayr team to discuss enablement.
{% endhint %}

## On your backend

* A way to mint OAuth2 access tokens against `POST /oauth2/token`. See [Authentication](/get-started/authentication.md).
* A way to POST `/v1/number-verification/reverse-sms-checks` over HTTPS.
* A callback endpoint (recommended) to receive the terminal-state notification, or a polling mechanism against `GET /v1/number-verification/reverse-sms-checks/{check_id}`.
* A safe place to store the `client_secret` (e.g. a secrets manager). Don't commit it to source control or environment files.

## On the device

**No IDlayr SDK is required.** The device-side step is your app opening the native SMS composer via the standard `sms:` URL scheme. This works on iOS and Android out of the box — no installation, no platform-specific permissions, no Cloudsmith entitlement.

What your app does need:

* The ability to open `sms:` URLs (`UIApplication.shared.open` on iOS, `Intent(Intent.ACTION_VIEW)` on Android).
* A reliable channel to receive the destination MSISDN, message body, and `check_id` from your backend.

## Device capability requirements

* **The device must be able to send SMS.** Tablets, e-readers, and certain data-only devices are excluded. Use [Eligibility](/products/eligibility.md) to pre-check coverage.
* **The user must tap Send.** Both iOS and Android require user confirmation for outbound SMS. Design your UX so the user understands a verification SMS is about to be sent before the composer appears.
* **Carrier**: The user's carrier must permit user-originated SMS in the relevant direction. Reverse SMS targets IDlayr-provisioned destination numbers, which are operated to maximise carrier acceptance — but corner-case carriers and regions can still refuse delivery.

## Network requirements

* No cellular data requirement. Reverse SMS works as long as the device can send SMS, regardless of data connectivity.
* **SMS coverage** for the user's carrier in the region of use.

## Optional but recommended

* A **fallback path**. Reverse SMS itself is often used as a fallback for Secure SNA; if Reverse SMS also fails, you'll want a third path (e.g. customer support escalation, document upload, biometric).
* A **"didn't send the SMS?" branch** in your UX, so users who cancel the composer don't get stuck waiting for the check to time out.


---

# 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/prerequisites.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.
