> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stablepay.global/llms.txt
> Use this file to discover all available pages before exploring further.

# Send Mobile OTP

> Send OTP to user mobile number for verification

# Send Mobile OTP

Sends a 6-digit OTP to the user's registered mobile number via SMS.

<ParamField path="userId" type="string" required>
  The unique user ID
</ParamField>

## Request

```bash theme={null}
curl -X POST https://api.stablepay.global/v2/users/usr_abc123/verify/mobile/send \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Response

```json theme={null}
{
  "success": true,
  "message": "OTP sent to your mobile number",
  "data": {
    "maskedMobile": "+91987****10",
    "expiresIn": 600
  }
}
```

<Note>
  * OTP is valid for **10 minutes**
  * Maximum **3 OTP requests** per 10 minutes (rate limited)
  * Previous OTPs are invalidated when a new one is sent
</Note>

## Errors

| Code                | Description                            |
| ------------------- | -------------------------------------- |
| `Not Found`         | User not found                         |
| `Already Verified`  | Mobile number is already verified      |
| `Too Many Requests` | Rate limit exceeded (max 3 per 10 min) |

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "message": "OTP sent to your mobile number",
    "data": {
      "maskedMobile": "+91987****10",
      "expiresIn": 600
    }
  }
  ```

  ```json 400 theme={null}
  {
    "error": "Already Verified",
    "message": "Mobile number is already verified"
  }
  ```

  ```json 429 theme={null}
  {
    "error": "Too Many Requests",
    "message": "Too many OTP requests. Please try again later."
  }
  ```
</ResponseExample>
