v3 SMS HTTP
Response and Delivery Receipt Codes for SMS Version 3 API
Note: These response codes are for our SMS version 3 HTTP API. If you're new to OpenMarket, then integrate with our Global SMS (version 4) operations.
Customers currently integrated using v3 may continue to use it, although we encourage customers to migrate to v4 in order to take advantage of new features.
You can treat code 0 and 4 as meaning that the message was successfully delivered.
Codes 1, 2, and 3 are returned only when the request is still being processed in some way.
All other codes returned indicate an issue with either the request format, your account settings, or with reaching the end user in some way. The retryable codes are:
- 351
- 581
- 811
- 815
- 1010
- 1020
Any other returned code indicates that you may need to investigate what occurred before you can attempt sending the message again.
Code |
Description |
Notes |
---|---|---|
0 |
Message sent |
OpenMarket successfully sent the message to the mobile operator. In some situations the mobile operator will not return any further update than this receipt (e.g. for a message sent using a US landline). If this is your final delivery receipt, treat this as a "successful" delivery. Retryable: n/a |
1 |
Processing request |
The message is still being processed by OpenMarket. Retryable: n/a |
2 |
Message accepted |
OpenMarket has accepted and processed your message request but has yet to forward it to the mobile operator. Retryable: n/a |
3 |
Message buffered with carrier and waiting for a response |
OpenMarket has sent the message to the mobile operator. We are still waiting for a response. Retryable: n/a |
4 |
Message delivered |
The mobile operator successfully delivered the message to the end user. Retryable: n/a |
301 |
Only one top level request element is permitted |
Your message request was malformed. You will need to correct this before attempting another request. Retryable: no |
303 |
The required version attribute of the request element was not found in the request |
Your message request was malformed. You will need to correct this before attempting another request. Retryable: no |
304 |
The required protocol attribute of the request element was not found in the request |
Your message request was malformed. You will need to correct this before attempting another request. Retryable: no |
306 |
The XML POST parameter cannot be empty |
Your message request was malformed. You will need to correct this before attempting another request. Retryable: no |
307 |
The request was an ill-formed XML document |
Your message request was malformed. Common causes are: setting a url_encoded content-type, missing parameters, or incorrect syntax in the XML. You will need to correct this before attempting another request. Retryable: no |
321 |
Invalid request version Retry Prohibited SMS Messaging No |
Your message request was malformed. You will need to correct this before attempting another request. Retryable: no |
322 |
Invalid request protocol |
Your message request was malformed. You will need to correct this before attempting another request. Retryable: no |
323 |
Invalid request type |
Your message request was malformed. You will need to correct this before attempting another request. Retryable: no |
337 | Invalid carrier ID value |
The OpenMarket carrier ID is not an active carrier. Retryable: no |
339 |
Carrier ID is not an integer |
In your request, the carrier ID sent was not an integer, or the carrier ID attribute was submitted with a null value. You will need to correct this before attempting another request. Retryable: no |
341 |
The carrier ID does not exist |
The ID is not a known OpenMarket carrier ID. Retryable: no |
345 |
Unable to determine carrier ID from destination address |
Number not associated with a carrier our system supports. Verify from MO SMS if possible. Please contact OpenMarket support for further information. Retryable: no |
349 |
Destination address contains non-numeric characters |
The destination address must be a valid mobile number. Do not include a leading "+" character. Retryable: no |
350 |
A destination address is required |
Check the destination address against the list of deactivated numbers in Customer Center; if the number is listed you cannot resubmit the billing to the destination address unless you receive an opt-in from a wireless subscriber. Retryable: no |
351 |
Transaction failed: Invalid destination address value |
Mobile operators send us this delivery receipt for a variety of reasons. Unfortunately, these different error conditions are mixed between ones you could retry or not, based on the operator's own use of this code. If you are messaging anywhere outside of the US, we cannot refine the issue further, other than knowing that the message was sent using the right encoding to the correct mobile operator. OpenMarket has received more information from the US mobile operators. When messaging a US end user, the possible reasons can be one of:
In general, mobile operators do not want SMS senders to retry MT messages that have failed with error code 351. However, given the range of different possible root causes, we think it is reasonable to retry some of these messages. Here is our suggested behavior for US messaging:
Retryable: conditional |
352 |
Invalid destination address country code |
This error occurs in MTs when the country calling code of the destination address does not match the country provisioned for the source address. This error also occurs if a standard rate (charge type 0) MT is submitted to a destination address outside of the US and Canada. Retryable: no |
353 |
Message text or data is required |
You have not sent us any text (or data) content for the SMS message. You cannot send a blank message. Retryable: no |
354 |
Message text is not long enough |
You have not sent us any text content for the SMS message. You cannot send a blank message. Retryable: no |
355 |
Message text is too long |
If the mlc option was submitted with a value of 0 or the default value of 0 is applied, the submitted message will be rejected if the message text or data length is greater than the maximum single segment message length allowed: generally 160 characters for 7BIT datacoding and 70 characters for the UCS2 datacoding. Retryable: no |
358 |
Message from is too long |
Message requires a source address, verify one is provided, and is correct. Retryable: no |
365 |
Strict international addressing is enforced, please use a country code + national number |
Ensure you address are set with the proper source types, most likely use TON = 1 and begin the number with the destination country code. Retryable: no |
366 |
Invalid message length control option |
There are only 3 valid values for this option: 0, 1 and 2. Retryable: no |
367 |
Invalid source TON value |
Source ton most likely needs to be 3 when using short codes, 1 when using long codes Retryable: no |
368 |
Invalid source address value |
Message requires a source address, verify one is provided, and is correct for the locale of the destination address. Retryable: no |
369 |
Account not permitted to use an alphanumeric source address |
You have specified an alphanumeric string as your sender (source) address, rather than a short code or other number. To use an alphanumeric string, you must be provisioned in our systems first. If you did not intend to send a string, check that you have not included any additional characters in the address. Retryable: no |
370 |
Account not permitted to use a short code source address |
This most likely indicates an account provisioning issue. Check with OpenMarket. Retryable: no |
373 |
Invalid destination TON value |
Ensure that your Destination TON value equals 1 or 0 (international or unknown) for phone numbers. Retryable: no |
374 |
Preview lookup request failed |
Preview may have timed out, reattempt, contact support if persistent. Retryable: no |
375 |
Source address denied |
Account not configured to send from this short code, ensure correct account or contact support. Retryable: no |
376 |
Account not permitted to use premium billing options |
Premium SMS is no longer supported in SMS version 3. Retryable: no |
377 |
Invalid SMS charge type |
Charge type must be either 0 for US and Canada standard rate SMS, or 20 for international SMS. Retryable: no |
378 |
Invalid premium billing charge amount |
Account not configured to send charge amount, possible currency issue. Retryable: no |
379 |
Invalid user data header |
We could not parse your user data header. Retryable: no |
380 |
Invalid data coding scheme |
The value of the datacoding attribute submitted in the message is not a supported value. Retryable: no |
381 |
Invalid characters used with selected data coding scheme |
Retryable: no |
382 |
Invalid source or destination port |
Retryable: no |
383 |
Message data and text attributes cannot be used at same time |
If sending data, no text can be sent. Retryable: no |
384 |
Invalid message data |
Retryable: no |
388 |
Binary messaging is not supported for this carrier |
The mobile operator does not support WAP push or similar data transfer Retryable: no |
397 |
WAP Pushes require the optional URL parameter to be included |
To send a WAP Push, you must include the url parameter in your request. Retryable: no |
398 |
WAP Pushes not supported for this type of carrier |
Retryable: no |
420 |
Invalid account ID or account password |
Your account ID and password were not recognized. You should check that both are correct before resending the request. Retryable: no |
431 |
Invalid account ID Account ID incorrect, or formatted incorrectly |
Retryable: no |
432 |
Account access permanently blocked |
Your account has been blocked, please consult your OpenMarket account manager for more information. Retryable: no |
433 |
Account access denied |
Retryable: no |
451 |
Account mobile originated deliver profile incorrectly setup |
Contact OpenMarket Support if you see this error in your OpenMarket SMS reports. Retryable: no |
540 |
Invalid Request - <description> |
Your request was malformed in some way; for example, a required element or attribute was missing or misspelled. The response message will include a description that varies depending on the issue. Retryable: no |
541 | The mobile operator accepted the message but delivery failed because the TPS was exceeded |
The message was blocked by AT&T because the TPS (transactions per second) limit on your messaging campaign has been exceeded. Retryable: Yes you can try re-sending the message, though delivery cannot be guaranteed. You may still encounter the TPS limit. |
542 | The mobile operator accepted the message but delivery failed because the daily bucket size has been exceeded |
The message was blocked by T-Mobile because the daily volume limit for your brand has been exceeded. You cannot resend the message until the next day. Retryable: no |
560 |
Message recipient not authorized by carrier to receive the message |
Retryable: no |
561 |
Content blocked by mobile operator |
The message was blocked by AT&T's spam filter. Retryable: no |
562 |
Short code not active |
Contact your OpenMarket account manager if you believe that you are provisioned for the operator or if you want to begin provisioning. Retryable: no |
563 |
Short code expired |
Contact your OpenMarket account manager if you believe that you are provisioned for the operator or if you want to begin provisioning. Retryable: no |
564 |
Short code blocked |
The mobile operator rejected the message as the short code is currently blocked from sending messages across their network. Contact your OpenMarket account manager if you are unaware of why you have received this error. Retryable: no |
565 |
Reseller address blocked by carrier |
The mobile operator rejected the message as the end user is connected to their network via a mobile virtual network operator (MVNO). This restriction is on short code messages. Retryable: no |
566 |
Destination address blocked by carrier |
Retryable: no |
568 |
Destination address not provisioned for SMS |
Destination address not provisioned for SMS. Retryable: no |
569 |
Destination address suspended by carrier |
Destination address suspended by mobile operator. Retryable: no |
570 |
Invalid charge amount: charge amount not allowed for charge type |
You cannot include a charge amount in your request for charge type 20. Retryable: no |
571 |
Campaign rejected by carrier |
This error applies to messages sent to US mobile operators. The error indicates the program ID in the message request is not provisioned with the mobile operator. Contact your account manager if you receive this error and believe that your program is provisioned and active. Retryable: Retry only once the campaign has been corrected with the mobile operator. |
572 |
Campaign information is not provisioned for this carrier or is not active. |
This error applies to messages sent to US mobile operators. OpenMarket has determined (before forwarding the message) that the campaign is not provisioned or is not currently active with the mobile operator. Contact your account manager if you receive this error and believe that your program is provisioned and active. Retryable: Retry only if and when the campaign or program ID has been corrected. |
573 |
Short code blocked by subscriber |
The end user has asked their mobile operator to block any messages sent from your short code. Additional messages from the same short code must not be sent to the phone number unless the end user opts in again. Retryable: no |
574 |
Subscribers are not allowed to receive or send messages on this short code. |
Indicates that for a given short code, new subscribers are not allowed to receive or send messages. However, existing subscribers are still allowed to receive and send messages. This error is returned by Sprint US and Virgin Mobile USA. Contact your OpenMarket account manager if you are unaware of why you have received this error. Retryable: no |
575 |
Account not permitted to submit preview requests |
Retryable: no |
577 |
US SMS Demo Product required for this short code |
Contact your account manager for a demo of US standard rate SMS. Retryable: no |
578 |
Demo product expired |
The SMS demo you are using for US or International SMS has expired. Contact your account manager. Retryable: no |
579 |
Destination address not provisioned for this demo product |
Contact OpenMarket Support to provision the phone number to use with the demo product. Retryable: no |
580 |
Demo product transaction limit exceeded |
If you are using an SMS demo, you have reached the limit of MTs you can send with the demo. If you are using the Preview Lookup demo, you have reached the limit of Preview Lookups available for the demo. Contact your account manager. Retryable: no |
581 |
Prepaid subscriber out of credits |
You may retry every 24 hours for no more than seven days. Retryable: yes |
590 |
Invalid purpose for India SMS |
You must specify a purpose when sending to India. Retryable: no |
591 |
Monthly MT limit exceeded |
You may contact your account manager if you would like to increase your monthly international MT limit. Retryable: no |
592 |
Your account is not provisioned for international SMS |
You may contact your account manager if you would like to sign up for international SMS. Retryable: no |
603 | Content blocked by user opt-out (MO: STOP) |
This code can be returned in a delivery receipt for an MT originating from a North American, SMS-enabled toll-free number or an SMS-enabled landline number. Messaging can resume to the end user if the end user opts back in to your program. Retryable: no |
607 | This message was identified as spam and cannot be delivered |
The message was blocked by a spam filter and will not be delivered to the end user's handset. If you believe your message was falsely identified as spam, please submit a ticket to OpenMarket Support. Retryable: no |
628 | Temporary handset failure |
Communication to the end user failed, despite the end user's account being provisioned for SMS and the handset SMS-capable. This is typically a temporary failure. For instance, the handset might be turned off or without coverage. Retryable: yes |
629 | Destination address unable to receive SMS |
Communication to the end user failed to due to either the handset not being SMS-capable or not provisioned for SMS. Retryable: no |
630 | Destination overload |
The destination mobile operator currently is unable to deliver SMS messages due to high traffic. Retryable: yes |
631 | Mobile operator network error |
The mobile operator network infrascture has returned an error. This might be at either the Mobile Switching Server (MSC), Short Message Service Center (SMSC), or Home Location Register (HLR). Retryable: yes |
632 | SMS rejected by mobile operator for attempted destination address |
The mobile operator is explicitly rejecting the request, possibly on the end user's behalf -- for example, the end user's handset might be set to Do Not Disturb (DND) or has been opted out of receiving service traffic. Retryable: yes |
633 | Message failed due to unknown mobile operator error |
The mobile operator returned a generic error for an unexpected failure in message delivery. Retryable: no |
711 |
Ticket ID does not exist. |
Retryable: no |
810 |
Failed message delivery |
The mobile operator failed to get the text message to the end user's handset. This code is used when the mobile operator does not want retry attempts for the message. Retryable: no |
811 |
Message Delivery Error - Message expired |
OpenMarket and the mobile operator attempted to deliver the message but could not reach the handset. If you set a validity period in the message request, then the message was tried for the duration of that period. If you did not set a validity period, then the mobile operator has used their own expiry time (normally around three days). Unlike code 810, you can retry the message. Retryable: yes |
815 |
Message Delivery Error - Message submitted to but not acknowledged by carrier |
You can retry this message; however, it is possible that the end user will receive the message multiple times. Retryable: yes |
1000 |
System error: General error occurred while processing request |
Retryable: no |
1010 |
Temporary internal system error |
Retryable: yes |
1020 |
Temporary external system error |
If retries fail beyond the recommended retry period please contact OpenMarket Support for assistance troubleshooting. All Carriers: Retry every 24 hours for a period of seven days. T-Mobile USA: A 1020 response for for this carrier may either indicate a system error within T-Mobile USA or the following for the phone number: Content Blocking/Blacklisting/Family Allowance is enabled. It is important to note the only way family allowance; content blocking or blacklisting occurs is if the mobile subscriber called into T-Mobile customer care and specifically requested blocking of short code services. T-Mobile USA does not provide sufficient detail for OpenMarket to distinguish between the two potential causes for the 1020 response code. Retryable: yes |
1030 |
External system error |
Retryable: no |
3041 |
US standard rate message blocked by the OpenMarket deactivated numbers firewall |
Occurs when a US standard rate SMS message is sent to a deactivated number. Retryable: no |