KudiSMS Logo

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
FieldExampleDescription
token*Your API KeyYour API key.
senderIDYour Approved Corporate Sender IDRequired for SMS only — an approved Corporate Sender ID.
recipients*234703xxxxxOnly 1 phone number per request.
appnamecodeYour approved App Name CodeRequired for SMS only. Submit at /user/ssoan.
templatecodeYour approved SMSOTP Template CodeRequired for SMS only. Submit at /user/csomt.
otp_type*NUMERICNUMERIC | ALPHANUMERIC (NUMERIC only for Voice OTP).
otp_length*44–8 for SMS OTP, 4–6 for Voice OTP.
otp_duration*51–60 minutes.
otp_attempts*2Minimum 1.
channel*sms or voiceotpsms | 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
FieldExampleDescription
token*XXXXXXXXXYour API key.
verification_id*XXXXXXThe verification_id received in the Send OTP API response.
otp*XXXXOTP 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
}

Updated at, Sunday, July 19, 2026