Skip to main content
Errors in SmsManager appear in two places: as HTTP status codes returned directly from API responses, and as result and result_info fields delivered to your webhook callback URL after a message has been dispatched. Understanding both surfaces helps you distinguish between request-level failures (where nothing was sent) and delivery-level failures (where a message was accepted but did not reach the recipient).

HTTP Status Codes

The table below covers every HTTP status code you can receive from the SmsManager API. A 200 response means the server accepted your request — but you should still inspect the rejected array in the response body to catch any per-recipient failures.
A 200 response from /message or /messages does not guarantee every recipient received the message. Always check the rejected array in the response body and monitor your webhook callbacks for final delivery results.

Message result values

After a message is sent, SmsManager delivers one or more webhook callbacks to your configured callback URL. Each callback contains a result field that reflects the current delivery state of the message. You may receive multiple callbacks for the same message as its state progresses (for example, sendingsentdelivered).
A rejected result means the message was never dispatched to the carrier. Check your account credit balance and verify the recipient’s phone number format before retrying.

result_info codes

The result_info field in webhook payloads provides additional detail about a delivery outcome. It follows the format [code] Description, where both parts are optional — you may receive a code only, a description only, or both.
  • Code — a numeric identifier in square brackets, e.g. [307]
  • Description — a human-readable explanation, e.g. Insufficient credit
Common examples you will encounter:
WhatsApp error codes (such as 131042) follow Meta’s WhatsApp error code reference. Refer to Meta’s documentation for the full list of WhatsApp-specific codes and their meanings.

Common errors and fixes

Your request was rejected because the API key is missing, malformed, or does not match any active key on your account.Fix: Log in to app.smsmanager.com/api-cloud and copy your current API key. Pass it in every request using the x-api-key header:
Alternatively, you can pass it as the apikey query parameter, though the header approach is recommended for security.
Your account does not have enough credit to send the requested messages. The affected messages will appear with result: rejected and result_info: [307] Insufficient credit in your webhook callbacks.Fix: Top up your account credit at app.smsmanager.com. After topping up, retry the failed messages.
The phone number you provided could not be parsed or normalised into a valid E.164 number.Fix: Use E.164 format without a leading + or 00. For example, the Czech number +420 777 123 456 should be sent as:
See the Phone Numbers reference for a full list of accepted formats.
A message appears in the rejected array of the API response or arrives at your webhook with result: rejected.Fix: The two most common causes are insufficient credit and an invalid phone number. Check both:
  1. Verify your account credit balance at app.smsmanager.com.
  2. Confirm the phone number is in E.164 format without a leading + (e.g. 420777123456).
You received a webhook with result: sent but never received a follow-up result: delivered callback.This is normal in many cases. The sent status means the carrier accepted the message, but delivery confirmation (DLR) depends on whether the carrier supports it and whether the recipient’s device is reachable. Some carriers and networks do not return delivery receipts at all.If the message is time-sensitive, consider using a fallback channel (e.g. SMS → Viber) via the flow parameter.
You received a 415 Unsupported Media Type response when calling the simple POST endpoint.Fix: The POST /simple/message endpoint requires form-encoded data, not JSON. Set your Content-Type header to:
All other JSON API v2 endpoints (/message, /messages) accept application/json.

Verify API error codes

The Verify API returns structured error objects with a machine-readable error code alongside a human-readable message. Use the error field in your application logic to handle specific failure conditions.