000 | Success | Request accepted | No action. Store the JobId and MessageId so you can match the delivery report later. |
001 | Login details cannot be blank | Authentication | Pass APIKey on every call. Check that your code is not dropping the parameter when the value is read from config or an environment variable. |
003 | Sender cannot be blank | Request | Add the senderid parameter with a 6-character DLT-approved header mapped to your account. |
004 | Message text cannot be blank | Request | Send a non-empty text parameter. URL-encode it so characters such as & and # do not cut the value short. |
005 | Message data cannot be blank | Request | For JSON or bulk calls, include the message array with at least one number and text pair. |
006 | Generic error | Request | Retry once after a short wait. If it repeats, send the full request (with the API key masked) and the response to support. |
007 | Username or password is invalid | Authentication | Copy the APIKey again from API Settings in the panel. Remove stray spaces and regenerate the key if it may have leaked. |
008 | Account not active | Account | The account is inactive or expired. Contact support or your account manager to activate it. |
009 | Account locked | Account | The account has been locked. Contact your account manager to find out why and to unlock it. |
010 | API restriction | Account | API access is not enabled for this account or route. Ask support to enable API sending. |
011 | IP address restriction | Security | IP whitelisting is on and the request came from another IP. Add your server's public IP in the panel or remove the restriction. |
012 | Invalid length of message text | Content | The text is longer than allowed. Shorten it, or check that a Unicode message is flagged correctly (70 characters per part instead of 160). |
013 | Mobile numbers not valid | Request | Use the country code plus the number (for India, 91 followed by 10 digits) with no +, spaces or leading zero. Separate multiple numbers with commas. |
014 | Account locked due to spam message | Compliance | Sending was stopped because of content flagged as spam. Contact support, review the content and send only DLT-approved templates. |
015 | Sender ID not valid | DLT | The header is not approved on DLT or not mapped to your account. Check the header and the PE-TM chain in your DLT portal and the panel. |
017 | Group ID not valid | Request | The group ID does not exist in your panel account. Fetch the correct ID from the contacts or groups section. |
018 | Multi message to group is not supported | Request | Send one text to a group, or use the bulk JSON call when every number needs a different message. |
019 | Schedule date is not valid | Scheduling | Use the documented date-time format and a future time. Check your server's time zone against IST. |
020 | Message or mobile number cannot be blank | Request | Every entry in the request needs both a number and a message. |
021 | Insufficient credits | Balance | Your Pay As You Go balance is too low for this send. Recharge, then retry. Call GetBalance before large campaigns. |
022 | Invalid JobId | Reports | The JobId does not belong to this account or is mistyped. Use the JobId exactly as returned by the Send SMS response. |
023 | Parameter missing | Request | A required parameter is absent. Compare your call with the parameter table in the developer docs (APIKey, senderid, channel, DCS, flashsms, number, text, route, EntityId, dlttemplateid). |
024 | Invalid template or template mismatch | DLT | The text does not match the approved DLT template. Check spaces, punctuation, line breaks, variable values and the dlttemplateid. |
025 | {Field} can not be blank or empty | Request | The field named in the message is empty. Fill it in, or remove it if it is optional. |
026 | Invalid date range | Reports | The from date must be before the to date, and both must use the documented format. |
027 | Invalid optin user | Compliance | The number has not opted in for this route. Collect and record consent before sending on an opt-in route. |