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

# Prerequisites

{% hint style="info" %}
**Device API** · NV 1.0 · Early Access
{% endhint %}

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

{% hint style="warning" %}
Discovery is **Early Access**. Availability is limited by carrier approvals per market. Contact your IDlayr team to confirm coverage for your target audience before integrating.
{% endhint %}

## On the IDlayr side

* **An approved IDlayr project** with the `discovery` scope on its OAuth2 credentials. See [Projects](/get-started/concepts/projects.md).
* **A specific use-case approval.** Because Discovery returns a user's MSISDN, each use case is reviewed individually for compliance with carrier and regulatory requirements. Allow time for this review.
* **The project's `client_id` and `client_secret`.** See [Credentials](/get-started/concepts/credentials.md).
* **A production-mode project.** Sandbox mode is not currently available for Discovery — see [Testing in sandbox](/products/number-verification/discovery/testing.md). Integration testing until then runs against a production project.

## 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/discovery-checks` over HTTPS.
* A safe place to store the `client_secret`.
* A privacy posture and consent flow for handling the returned MSISDN — see Privacy and consent below.

## On the device

For native mobile apps, install the IDlayr SDK:

* **iOS** — `IDlayrKit`, iOS 13+, Swift 5.9. Distributed via private Cloudsmith Swift Package Registry or CocoaPods.
* **Android** — `idlayr-sdk-android`, `minSdk 24`, `targetSdk 36`, Java 11. Distributed via private Cloudsmith Maven.

The SDK requires a **Cloudsmith entitlement token** to fetch the binary at build time. See [Install an SDK](/get-started/sdks.md).

## Network and device requirements

* **The device must be on cellular data** at the moment of discovery. Wi-Fi breaks the trust path under NV 1.0.
* **The MNO must support Discovery for the device.** Use [Eligibility](/products/eligibility.md) as a pre-check.

## Privacy and consent

Discovery returns personally identifiable data — the user's MSISDN. Your integration must:

* **Obtain appropriate consent** before invoking Discovery. The form of consent depends on the regulations in the user's region (e.g. GDPR in the EU, CCPA in California).
* **Surface the purpose** to the user — why you need their number, how you'll use it, who you'll share it with.
* **Comply with data minimisation** — only invoke Discovery when you actually need the MSISDN; don't speculatively trigger it.
* **Retain the MSISDN only as long as necessary** for the use case.

Discovery has no IDlayr-side user-confirmation step. Any user-facing UX (showing the discovered number, asking the user to confirm, masking a partial view) is an integration-side choice — see [User consent and displaying the number](/products/number-verification/discovery.md#user-consent-and-displaying-the-number) on the product page.

## Optional but recommended

* A **callback endpoint** on your backend to receive terminal-status notifications.
* A **fallback path** for cases where Discovery isn't available on the device — MNO not supported, no cellular data at the moment of the call, TTL elapsed.


---

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