Verification
Send and verify one-time passcodes (OTPs) over SMS or Voice, with KudiSMS managing generation, delivery, and attempt tracking for you.
Send OTP
POST
/sendotp| Field | Example | Description |
|---|---|---|
| token* | Your API Key | Your API key. |
| senderID | Your Approved Corporate Sender ID | Required for SMS only — an approved Corporate Sender ID. |
| recipients* | 234703xxxxx | Only 1 phone number per request. |
| appnamecode | Your approved App Name Code | Required for SMS only. Submit at /user/ssoan. |
| templatecode | Your approved SMSOTP Template Code | Required for SMS only. Submit at /user/csomt. |
| otp_type* | NUMERIC | NUMERIC | ALPHANUMERIC (NUMERIC only for Voice OTP). |
| otp_length* | 4 | 4–8 for SMS OTP, 4–6 for Voice OTP. |
| otp_duration* | 5 | 1–60 minutes. |
| otp_attempts* | 2 | Minimum 1. |
| channel* | sms or voiceotp | sms | voiceotp. |
Example response — 200 OK
{
"status": "success",
"error_code": "000",
"verification_id": "ac12f33f-8292-4942-9a08-22b0ab08a3c4",
"cost": "4.50",
"data": "234703xxxxx|94db1d4a-fbe0-bc13-e3b8-1e4043bdd59f",
"msg": "Message Sent Successfully",
"length": 57,
"page": 1,
"balance": "166,000.48"
}Verify OTP
POST
/verifyotp| Field | Example | Description |
|---|---|---|
| token* | XXXXXXXXX | Your API key. |
| verification_id* | XXXXXX | The verification_id received in the Send OTP API response. |
| otp* | XXXX | OTP value entered by the user. |
Example response — 200 OK
{
"status": "success",
"error_code": "000",
"verification_id": "897af25a-0f59-4dcf-ba9d-69081bf34694",
"cost": "1.00",
"balance": "166,009.48",
"msg": "OTP Verified Successfully.",
"attempts": 2
}