# Send SMS with One Time Password for onboarding

`GET /omni/send/otp`

Base URL: `https://demo-api.incodesmile.com` — Incode demo environment

Send SMS with an OTP (One Time Password) code to validate an onboarding.
Phone number is obtained from interview data, so phone step it's required.

## Path & query parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `communicationchannel` | query | string |  | Enum: `SMS`, `EMAIL` |
| `api-version` | header | string | yes |  |

## Responses

### 200

OTP sent successfully

Response body (`application/json`):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `success` | boolean |  | Flag indicating request passed successfully. |
| `sessionStatus` | string |  | Session status Enum: `Alive`, `Closed`, `Deleted` |

### 400

Contact Already Verified - The phone/email is already verified for this session

Response body (`application/json`):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `timestamp` | integer (int64) |  | UTC timestamp in milliseconds |
| `status` | integer (int32) |  | Custom error code or HTTP status code |
| `error` | string |  | HTTP status error |
| `message` | string |  | Custom error message |
| `path` | string |  | Endpoint path |
| `details` | object |  | Custom error details |

```json
{
  "timestamp": 1234567890,
  "status": 4300,
  "error": "Contact Already Verified",
  "message": "OtpException: Session has verified contact",
  "path": "/omni/send/sms-otp"
}
```

### 429

Too Many Requests - Cooldown period not completed

Response body (`application/json`):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `timestamp` | integer (int64) |  | UTC timestamp in milliseconds |
| `status` | integer (int32) |  | Custom error code or HTTP status code |
| `error` | string |  | HTTP status error |
| `message` | string |  | Custom error message |
| `path` | string |  | Endpoint path |
| `details` | object |  | Custom error details |
