> 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 %}
