# OTP Verification

OTP Verification helps you confirm that a user controls a phone number. DIDWW delivers a
one-time challenge by SMS or phone call, and your application reports the result through the
Verification API.

Use OTP Verification to confirm phone ownership during sign-up, login, account recovery,
two-factor authentication, service provisioning, and other flows that require a verified
number.

## Get Started

**Overview**

Learn what OTP Verification does, when to use it, and how the main verification
flow works.

[Overview](overview.html)

**Getting Started**

Create an OTP application, copy your credentials, and run your first verification.

[Getting Started](getting-started.html)

**Authentication**

Understand supported authentication modes and choose the right mode for your
integration.

[Authentication](authentication.html)

**OpenAPI Reference**

Browse endpoints, inspect schemas, and copy request examples in your preferred language.

[OpenAPI Reference](openapi-reference.html)

**Verification Methods**

Compare SMS and phone call verification methods.

[Verification methods](verification-methods/index.html)

**Callbacks**

Approve or reject verification requests from your own backend before delivery.

[Callbacks](callbacks.html)

**AI Best Practices**

Use the documentation, Markdown pages, and OpenAPI spec effectively with AI tools.

[AI Best Practices](ai-best-practices.html)

## API Reference

**API Overview**

Review base URLs, content types, endpoints, and the verification object.

[API reference](api-reference/index.html)

**Start a Verification**

Start a phone-number verification with a selected delivery method.

[Start a verification](api-reference/start-verification.html)

**Report a Verification**

Submit the OTP code received by the user.

[Report a verification](api-reference/report-verification.html)

**Get Verification Status**

Retrieve the current status of a verification by its identifier.

[Get verification status](api-reference/get-verification-status.html)

**Use Phone Number Lookup**

Get or report the latest verification for a phone number when you do not have the
verification ID.

[Get verification status by number](api-reference/get-verification-status-by-number.html)

**Errors and Status Codes**

Look up HTTP statuses, verification statuses, and machine-readable error codes.

[Errors and status codes](api-reference/errors.html)

## SDKs

**SDK Overview**

Compare available and planned SDKs for server-side and mobile integrations.

[SDKs](sdks/index.html)

**Ruby**

Use the Ruby SDK for server-side verification flows and callback signature checks.

[Ruby SDK](sdks/ruby.html)

**Python**

Use the Python SDK for server-side verification flows, with synchronous and
asynchronous clients.

[Python SDK](sdks/python.html)

**Node.js**

Use the Node.js SDK for server-side verification flows and inbound callback endpoints.

[Node.js SDK](sdks/node.html)

**PHP**

Use the PHP SDK for server-side verification flows and callback signature checks.

[PHP SDK](sdks/php.html)

**Android**

Use the Kotlin SDK to integrate OTP Verification into Android applications.

[Android SDK](sdks/android.html)

**iOS**

Use the Swift SDK to integrate OTP Verification into iOS applications.

[iOS SDK](sdks/ios.html)

**React Native**

Drive a whole verification from one hook in a React Native application.

[React Native SDK](sdks/react-native.html)

**Dart and Flutter**

Use the Dart SDK to integrate OTP Verification into Flutter applications.

[Dart and Flutter SDK](sdks/dart.html)
