success: false.
Authentication
| Message | Meaning | Fix |
|---|---|---|
Invalid token | Token does not exist or is malformed | Copy the token again |
API is disabled | Admin disabled the product token | Ask admin to enable it |
Plan has expired | Customer plan is expired or locked | Renew or update plan |
SMS
| Message | Meaning | Fix |
|---|---|---|
Sender name is not approved | Sender is pending/rejected/not owned by customer | Use an approved sender |
Sender name is not approved for <network> | Sender is not active for the recipient’s network | Wait for that network’s approval or use another approved sender |
Insufficient SMS balance | Wallet has no segments left | Buy SMS credits or ask admin to top up |
to and text are required | Recipient or body is missing | Include both to and text |
SMS was not accepted by the delivery gateway | Delivery route rejected the submission | Inspect SMS logs; failed submissions are refunded |
OTP
| Message | Meaning | Fix |
|---|---|---|
pinId is required | Verify request missing OTP id | Store pinId from send response |
pin is required | Verify request missing code | Send pin, otp, or code |
OTP expired | Code expired | Send a new OTP |
Too many verification attempts | Security limit hit | Request a new OTP after cooldown |
Invalid pinId format | Unified OTP ID is malformed | Use the exact kfot_... value returned by Unified OTP send |
Unified
| Message | Meaning | Fix |
|---|---|---|
No delivery channel succeeded | Every selected channel failed | Check channel settings and logs |
QR sender is not available | QR device is offline or not owned by customer | Reconnect QR or select another sender |
Meta account is not connected | Meta channel selected but unavailable | Connect Meta or remove channel |
HTTP Status Guidance
| Status | Meaning |
|---|---|
200 | Request accepted or verification succeeded |
400 | Invalid request fields |
401 | Missing or invalid token |
402 | Insufficient messaging balance |
403 | Product, plan, sender, or network is not allowed |
404 | Resource such as an OTP request was not found |
409 | OTP is incorrect, expired, duplicated, or exhausted |
429 | Security rate limit reached |
502 | Every selected delivery channel rejected the request |
