> For the complete documentation index, see [llms.txt](https://docs.tutelar.io/tutelar-api-document/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tutelar.io/tutelar-api-document/kyc-verification/document-verification/india/mobile-verification-with-otp.md).

# Mobile Verification With OTP

Mobile Number Verification API enables businesses to verify the ownership and authenticity of a mobile number through OTP-based validation. It helps enhance security, prevent fraud, and ensure reliable communication by confirming that the user has access to the provided mobile number.

## mobile\_verify\_with\_otp

<mark style="color:green;">`POST`</mark> `https://secctrl.tutelar.io/api/v1/kyc/utility/mobile_verify_with_otp`

### Post parameters For  description is given below,

<table><thead><tr><th width="197.12109375">Post Parameter </th><th width="139">Type</th><th width="212.17578125">Is  Mandatory</th><th>Description</th></tr></thead><tbody><tr><td>mobileNumber </td><td>String </td><td>Yes </td><td>Mobile Number</td></tr></tbody></table>

#### Sample Post Parameter&#x20;

```json
{
    "mobileNumber": "9360204090"
}
```

{% tabs %}
{% tab title="200: InProgress Response" %}

```json
{
    "success": true,
    "code": 200,
    "message": "The request is being processed. Please wait for completion.",
    "reference_id": "2c81c690-9966-48c1-91a6-b18956398425",
    "status": "in_progress",
    "result": {
        "message": "Otp Sent your mobile number successfully",
        "requestId": "telecom_dgda7851a6"
    },
    "requested_at": "2026-06-03T14:24:53.897Z"
},

{
    "success": true,
    "code": 200,
    "message": "The request is being processed. Please wait for completion.",
    "reference_id": "005d1731-85dd-4ad5-b8ff-eb67a7d2e42d",
    "status": "in_progress",
    "requested_at": "2026-05-18T14:17:40.481Z"
}
```

{% endtab %}

{% tab title="400: Validation Error Response" %}

```json
{
    "success": false,
    "code": 400,
    "message": "Invalid Mobile Number format",
    "error": {
        "message": "Invalid Mobile Number format",
        "field": "mobileNumber",
        "code": "BAD_REQUEST"
    }
}
{
    "success": false,
    "code": 400,
    "message": "Mobile Number should not be empty",
    "error": {
        "message": "Mobile Number should not be empty",
        "field": "mobileNumber",
        "code": "BAD_REQUEST"
    }
}
```

{% endtab %}
{% endtabs %}

## Submit OTP

<mark style="color:blue;">`GET`</mark> `https://secctrl.tutelar.io/api/v1/kyc/verify/mobile/otp`

### Post parameters For  description is given below,

<table><thead><tr><th width="197">Query Parameter </th><th width="139">Type</th><th>Is  Mandatory</th><th>Description</th></tr></thead><tbody><tr><td>referenceId </td><td>String </td><td>Yes </td><td>Document reference id</td></tr><tr><td>otp</td><td>String</td><td>Yes</td><td>OTP sent your mobile number</td></tr><tr><td>requestId</td><td>String</td><td>Yes</td><td>Unique ID received in the Initiate OTP response, required for OTP verification.</td></tr></tbody></table>

#### Sample Post Parameter&#x20;

```json
{
    "referenceId": "a239ccc7-f08a-4477-aa69-ac319d527d44",
    "otp": "0601",
    "requestId": "telecom_dgda785f36" 
}
```

{% tabs %}
{% tab title="200: Success Response" %}

```json
{
    "success": true,
    "code": 200,
    "message": "The request has been successfully completed.",
    "reference_id": "a239ccc7-f08a-4477-aa69-ac319d527d44",
    "status": "completed",
    "result": {
        "name": "Siva Manikandan",
        "address": "69A SOUTH STREET PADAINILAI UDAIYARPALAYAM Pappakudi north Artyalur,Ariyalur,Tamil Nadu,612903",
        "district": [
            "ARIYALUR"
        ],
        "state": [
            "TAMIL NADU",
            "TN"
        ],
        "pincode": "612903",
        "country": [
            "IN",
            "IND",
            "INDIA"
        ],
        "dob": "2001-07-08",
        "mobileNumber": "9360104074",
        "countryCode": "91",
        "email": "",
        "mobileNetworkOperator": "Airtel",
        "billingType": "prepaid",
        "alternatePhone": "8098987006",
        "deviceName": "Tecno KF8",
        "autoPay": false,
        "activationDate": "12-02-2021",
        "creditLimit": "",
        "currentPackDetails": {
            "expiry": "26-06-2026",
            "name": "",
            "price": ""
        },
        "internationalRoaming": false,
        "loyaltyCategory": "AIRTEL THANKS",
        "payment_mode": [],
        "paymentHistory": [],
        "billingHistory": [
            {
                "date": "30-05-2026",
                "description": "Payment mode: Others, Txn Id: 1329268110",
                "payment_mode": "Others",
                "amount": "22.0",
                "type": "recharge"
            },
            {
                "date": "29-05-2026",
                "description": "Payment mode: Others, Txn Id: 1297990704",
                "payment_mode": "Others",
                "amount": "349.0",
                "type": "recharge"
            },
            {
                "date": "01-05-2026",
                "description": "Payment mode: Others, Txn Id: 706361726",
                "payment_mode": "Others",
                "amount": "349.0",
                "type": "recharge"
            },
            {
                "date": "20-04-2026",
                "description": "Payment mode: Others, Txn Id: 486758010",
                "payment_mode": "Others",
                "amount": "22.0",
                "type": "recharge"
            },
            {
                "date": "19-04-2026",
                "description": "Payment mode: Others, Txn Id: 448240003",
                "payment_mode": "Others",
                "amount": "22.0",
                "type": "recharge"
            },
            {
                "date": "18-04-2026",
                "description": "Payment mode: Others, Txn Id: 423291182",
                "payment_mode": "Others",
                "amount": "22.0",
                "type": "recharge"
            },
            {
                "date": "14-04-2026",
                "description": "Payment mode: Others, Txn Id: 352357841",
                "payment_mode": "Others",
                "amount": "22.0",
                "type": "recharge"
            },
            {
                "date": "11-04-2026",
                "description": "Payment mode: Others, Txn Id: 267760353",
                "payment_mode": "Others",
                "amount": "22.0",
                "type": "recharge"
            },
            {
                "date": "03-04-2026",
                "description": "Payment mode: Others, Txn Id: 93091090",
                "payment_mode": "Others",
                "amount": "22.0",
                "type": "recharge"
            },
            {
                "date": "31-03-2026",
                "description": "Payment mode: Others, Txn Id: 11276891",
                "payment_mode": "Others",
                "amount": "319.0",
                "type": "recharge"
            }
        ]
    },
    "requested_at": "2026-06-04T06:27:49.141Z",
    "completed_at": "2026-06-04T06:32:09.946Z"
}
```

{% endtab %}

{% tab title="400: Validation Response" %}

```json
{
    "success": false,
    "code": 400,
    "message": "Reference id should not be empty"
},
{
    "success": false,
    "code": 400,
    "message": "RequestId should not be empty"
},
{
    "success": false,
    "code": 400,
    "message": "OTP should not be empty"
}
```

{% endtab %}

{% tab title="422 : Failure Response" %}

```json
{
    "success": false,
    "code": 422,
    "message": "Request Id does not correspond to mobile number"
},
{
    "success": false,
    "code": 422,
    "message": "OTP Already Used"
},
{
    "success": false,
    "code": 422,
    "message": "OTP Authentication Failed due to incorrect OTP"
},

{
    "success": false,
    "code": 400,
    "message": "Verification failed or OTP already verified."
}
```

{% endtab %}

{% tab title="200: OTP Expired" %}

```json
{
    "success": true,
    "code": 200,
    "message": "The request could not be completed due to an error.",
    "reference_id": "e7c76ebf-a3f5-42b5-817f-ef9fc7bf1657",
    "status": "failed",
    "error": {
        "message": "OTP Authentication Failed due to otp is expired",
        "code": "ERROR"
    },
     "requested_at": "2026-05-18T14:17:40.481Z",
    "completed_at": "2026-05-18T14:17:40.481Z"
}
```

{% endtab %}
{% endtabs %}


---

# 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:

```
GET https://docs.tutelar.io/tutelar-api-document/kyc-verification/document-verification/india/mobile-verification-with-otp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
